R_n = 1.0
L = 1.0

h_init = 150E3
X = r_earth + h_init
X0 = [X, 0, 0]  #inital position vector
V_mag = np.sqrt(mu_earth / (r_earth + h_init))
V0 = [0, V_mag, 0]  #inital velocity vector
sim_time = 60 * 60 * 24 * 2  #time to run the simulation

atm_steps = 1000
atm_init = [h_init * 10.0, -1E3]
h = np.linspace(atm_init[0], atm_init[1], atm_steps)

sc = tc.spacecraft(C_d, m_craft, A, R_n, L, Cl=C_l, Cs=C_s)
atm = tc.atmosphere_nrl(h)

t = tc.trajectory_aerobraking(mu_earth, sc, atm, V0, X0, sim_time, r_earth, dt=5)

start_time = time.time()
t.simulate_dopri(nsteps=1E8, rtol=1E-8)
end_time = time.time()
elapsed = end_time - start_time

plt.plot(t.pos_xyz[0:t.i, 0]/1E3, t.pos_xyz[0:t.i, 1]/1E3,'-r')  #plot orbit

try:
	i_100_km = np.argwhere(t.h < 100E3)[0]
	plt.scatter(t.pos_xyz[i_100_km, 0]/1E3, t.pos_xyz[i_100_km, 1]/1E3)
except:
	pass
Ejemplo n.º 2
0
		((2.6 * Re / 5.0) / (1 + (Re / 5.0)**1.52)) + \
		((0.411 * (Re / 263E3)**-7.94) / (1 + (Re / 263E3)**-8.0)) + \
		(Re**0.8 / 461E3)
		
	return [C_d, C_l, C_s]

atm_init = [1000E3, -1E3]
h = np.linspace(atm_init[0], atm_init[1], atm_steps)

#v = tc.spacecraft(C_d, m, A, R_n, L, Cl=C_l)
v = tc.spacecraft_var(aero_dat, C_d, C_l, 0.0, m, A, R_n, L, integrator_steps)

#atm = tc.atmosphere_us76(h)
#t = tc.trajectory(v, atm, gamma_init, V_init, g_0, R_e)

atm_2 = tc.atmosphere_nrl(h)
t = tc.trajectory_lifting(v, atm_2, gamma_init, V_init, g_0, R_e, h_init, 
	h_end, integrator_steps)
	
t.initialise()
t.simulate_dopri(dt=0.25)
t.calculate_heating()
t.post_calc()

t.plot_triple()
t.show_regimes()
t.plot_trajectory()
t.show_regimes()

plt.figure()
plt.xlabel(r'$\dot{Q} \; \left( \frac{kW}{m^2} \right)$', fontsize=17)