-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrocket_eq.py
63 lines (52 loc) · 1.58 KB
/
rocket_eq.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""
File: rocket_eq.py
Author: Halvard Sutterud
Email: [email protected]
Github: https://github.com/halvarsu
Description:
"""
import numpy as np
import sys
def load_data(filename):
infile = open(filename, 'r')
lines = infile.readlines()
data = [int(lines[0])] # first line, outside_count
for line in lines[1:]:
data.append(float(line))
return data
def rocket_eq(delta_v, drymass = 1100):
'''
Returns the fuel mass needed before boost
'''
print "Loading data from simulated engine..."
data = load_data('gasInBox/data_dump.dat')
outside_count = data[0]
m = data[1]
#force_up = data[2]
#fuel_per_box = data[3]
#dt = data[4]
gained_momentum = data[5]
v_e = gained_momentum/(m*outside_count)
print v_e / 9.81
print "Calculating..."
# To be given:
dry_mass = 1100
fuel_mass = dry_mass*np.exp(delta_v/v_e) - dry_mass
print "Satelite mass : %11d kg" % dry_mass
print "Delta v needed : %11.2f m/s" % delta_v
print "Fuel needed : %11.2f kg" % fuel_mass
#print "Boxes needed : %11.2f s" % boxes
return fuel_mass
def trip_mass_calculator(boosts, initial_mass = 1100):
mass = initial_mass
for boost in reversed(boosts):
mass += rocket_eq(boost, mass)
return mass
if __name__ == "__main__":
try:
delta_v = float(sys.argv[1])
#time = float(sys.argv[2])
except IndexError:
print "WrongUsageError! usage: python %s delta_v " %sys.argv[0]
sys.exit()
rocket_eq(delta_v)