diff --git a/tests/fixtures/acceptance/EPFL_Bella_Lui/bella_lui_flight_sim.py b/tests/fixtures/acceptance/EPFL_Bella_Lui/bella_lui_flight_sim.py deleted file mode 100644 index f118389f4..000000000 --- a/tests/fixtures/acceptance/EPFL_Bella_Lui/bella_lui_flight_sim.py +++ /dev/null @@ -1,242 +0,0 @@ -# Bella Lui Kaltbrunn Mission from ERT (EPFL Rocket Team) -# Permission to use flight data given by Antoine Scardigli, 2020 - -# Importing libraries -from rocketpy import Environment, SolidMotor, Rocket, Flight, Function -import numpy as np -import matplotlib.pyplot as plt - -# Defining all parameters -parameters = { - # Mass Details - "rocket_mass": (18.227, 0.010), # 1.373 = propellant mass - # Propulsion Details - "impulse": (2157, 0.03 * 2157), - "burn_time": (2.43, 0.1), - "nozzle_radius": (44.45 / 1000, 0.001), - "throat_radius": (21.4376 / 1000, 0.001), - "grain_separation": (3 / 1000, 1 / 1000), - "grain_density": (782.4, 30), - "grain_outer_radius": (85.598 / 2000, 0.001), - "grain_initial_inner_radius": (33.147 / 1000, 0.002), - "grain_initial_height": (152.4 / 1000, 0.001), - # Aerodynamic Details - "inertia_i": (0.78267, 0.03 * 0.78267), - "inertia_z": (0.064244, 0.03 * 0.064244), - "radius": (156 / 2000, 0.001), - "distance_rocket_nozzle": (-1.1356, 0.100), - "distance_rocket_propellant": (-1, 0.100), - "power_off_drag": (1, 0.05), - "power_on_drag": (1, 0.05), - "nose_length": (0.242, 0.001), - "nose_distance_to_cm": (1.3, 0.100), - "fin_span": (0.200, 0.001), - "fin_root_chord": (0.280, 0.001), - "fin_tip_chord": (0.125, 0.001), - "fin_distance_to_cm": (-0.75, 0.100), - "tail_top_radius": (156 / 2000, 0.001), - "tail_bottom_radius": (135 / 2000, 0.001), - "tail_length": (0.050, 0.001), - "tail_distance_to_cm": (-1.0856, 0.001), - # Launch and Environment Details - "wind_direction": (0, 5), - "wind_speed": (1, 0.05), - "inclination": (89, 1), - "heading": (45, 5), - "rail_length": (4.2, 0.001), - # Parachute Details - "CdS_drogue": (np.pi / 4, 0.20 * np.pi / 4), - "lag_rec": (1, 0.020), -} - -# Environment conditions -env = Environment( - gravity=9.81, - latitude=47.213476, - longitude=9.003336, - date=(2020, 2, 22, 13, 0, 1), - elevation=407, -) -env.set_atmospheric_model( - type="Reanalysis", - file="tests/fixtures/acceptance/EPFL_Bella_Lui/bella_lui_weather_data_ERA5.nc", - dictionary="ECMWF", -) -env.max_expected_height = 2000 - -# Motor Information -K828FJ = SolidMotor( - thrust_source="tests/fixtures/acceptance/EPFL_Bella_Lui/bella_lui_motor_AeroTech_K828FJ.eng", - burn_time=parameters.get("burn_time")[0], - grains_center_of_mass_position=parameters.get("distanceRocketPropellant")[0], - grain_number=3, - grain_separation=parameters.get("grain_separation")[0], - grain_density=parameters.get("grain_density")[0], - grain_outer_radius=parameters.get("grain_outer_radius")[0], - grain_initial_inner_radius=parameters.get("grain_initial_inner_radius")[0], - grain_initial_height=parameters.get("grain_initial_height")[0], - nozzle_radius=parameters.get("nozzle_radius")[0], - throat_radius=parameters.get("throat_radius")[0], - interpolation_method="linear", - nozzle_position=parameters.get("distanceRocketNozzle")[0], -) - -# Rocket information -BellaLui = Rocket( - radius=parameters.get("radius")[0], - mass=parameters.get("rocket_mass")[0], - inertia=( - parameters.get("inertia_i")[0], - parameters.get("inertia_i")[0], - parameters.get("inertia_z")[0], - ), - power_off_drag=0.43, - power_on_drag=0.43, -) -BellaLui.set_rail_buttons(0.1, -0.5) -BellaLui.add_motor(K828FJ, parameters.get("distance_rocket_nozzle")[0]) -NoseCone = BellaLui.add_nose( - length=parameters.get("nose_length")[0], - kind="tangent", - position=parameters.get("nose_distance_to_cm")[0] - + parameters.get("nose_length")[0], -) -fin_set = BellaLui.add_trapezoidal_fins( - 3, - span=parameters.get("fin_span")[0], - root_chord=parameters.get("fin_root_chord")[0], - tip_chord=parameters.get("fin_tip_chord")[0], - position=parameters.get("fin_distance_to_cm")[0], -) -tail = BellaLui.add_tail( - top_radius=parameters.get("tail_top_radius")[0], - bottom_radius=parameters.get("tail_bottom_radius")[0], - length=parameters.get("tail_length")[0], - position=parameters.get("tail_distance_to_cm")[0], -) - - -# Parachute set-up -def drogue_trigger(p, h, y): - # p = pressure - # y = [x, y, z, vx, vy, vz, e0, e1, e2, e3, w1, w2, w3] - # activate drogue when vz < 0 m/s. - return True if y[5] < 0 else False - - -drogue = BellaLui.add_parachute( - "Drogue", - cd_s=parameters.get("CdS_drogue")[0], - trigger=drogue_trigger, - sampling_rate=105, - lag=parameters.get("lag_rec")[0], - noise=(0, 8.3, 0.5), -) - -# Define aerodynamic drag coefficients -BellaLui.power_off_drag = Function( - [ - (0.01, 0.51), - (0.02, 0.46), - (0.04, 0.43), - (0.28, 0.43), - (0.29, 0.44), - (0.45, 0.44), - (0.49, 0.46), - ], - "Mach Number", - "Drag Coefficient with Power Off", - "linear", - "constant", -) -BellaLui.power_on_drag = Function( - [ - (0.01, 0.51), - (0.02, 0.46), - (0.04, 0.43), - (0.28, 0.43), - (0.29, 0.44), - (0.45, 0.44), - (0.49, 0.46), - ], - "Mach Number", - "Drag Coefficient with Power On", - "linear", - "constant", -) -BellaLui.power_off_drag *= parameters.get("power_off_drag")[0] -BellaLui.power_on_drag *= parameters.get("power_on_drag")[0] - -# Flight -test_flight = Flight( - rocket=BellaLui, - environment=env, - rail_length=parameters.get("rail_length")[0], - inclination=parameters.get("inclination")[0], - heading=parameters.get("heading")[0], -) -test_flight.post_process() - -# Comparision with Real Data -flight_data = np.loadtxt( - "tests/fixtures/acceptance/EPFL_Bella_Lui/bella_lui_flight_data_filtered.csv", - skiprows=1, - delimiter=",", - usecols=(2, 3, 4), -) -time_kalt = flight_data[:573, 0] -altitude_kalt = flight_data[:573, 1] -vert_vel_kalt = flight_data[:573, 2] - -# Make sure that all vectors have the same length -time_rcp = [] -altitude_rcp = [] -velocity_rcp = [] -acceleration_rcp = [] -i = 0 -while i <= int(test_flight.t_final): - time_rcp.append(i) - altitude_rcp.append(test_flight.z(i) - test_flight.env.elevation) - velocity_rcp.append(test_flight.vz(i)) - acceleration_rcp.append(test_flight.az(i)) - i += 0.005 - -time_rcp.append(test_flight.t_final) -altitude_rcp.append(0) -velocity_rcp.append(test_flight.vz(test_flight.t_final)) -acceleration_rcp.append(test_flight.az(test_flight.t_final)) - -# Acceleration comparison (will not be used in our publication) -from scipy.signal import savgol_filter - -# Calculate the acceleration as a velocity derivative -acceleration_kalt = [0] -for i in range(1, len(vert_vel_kalt), 1): - acc = (vert_vel_kalt[i] - vert_vel_kalt[i - 1]) / (time_kalt[i] - time_kalt[i - 1]) - acceleration_kalt.append(acc) - -acceleration_kalt_filt = savgol_filter(acceleration_kalt, 51, 3) # Filter our data - -# Summary -print("Apogee (AGL)") -print("RocketPy: {:.2f} meters".format(test_flight.apogee - test_flight.env.elevation)) -print("Real data: {:.2f} meters".format(max(altitude_kalt))) -print( - "RocketPy - Real data: {:.2f} meters".format( - abs(max(altitude_kalt) - test_flight.apogee + test_flight.env.elevation) - ) -) -print() -print("Max Velocity") -print("RocketPy: {:.2f} m/s".format(max(velocity_rcp))) -print("Real data: {:.2f} m/s".format(max(vert_vel_kalt))) -print("RocketPy - Real data: {:.2f} m/s".format(max(velocity_rcp) - max(vert_vel_kalt))) -print() -print("Max Acceleration") -print("RocketPy: {:.2f} m/s²".format(max(acceleration_rcp))) -print("Real data (derivative): {:.2f} m/s²".format(max(acceleration_kalt_filt))) -print( - "RocketPy - Real data: {:.2f} m/s^2".format( - max(acceleration_rcp) - max(acceleration_kalt_filt) - ) -) diff --git a/tests/fixtures/acceptance/NDRT_2020/ndrt_2020_flight_sim.py b/tests/fixtures/acceptance/NDRT_2020/ndrt_2020_flight_sim.py deleted file mode 100644 index 376661c81..000000000 --- a/tests/fixtures/acceptance/NDRT_2020/ndrt_2020_flight_sim.py +++ /dev/null @@ -1,214 +0,0 @@ -# Notre Dame Rocket Team 2020 Flight -# Launched at 19045-18879 Avery Rd, Three Oaks, MI 49128 -# Permission to use flight data given by Brooke Mumma, 2020 -# -# IMPORTANT RESULTS (23rd feb) -# Measured Stability Margin 2.875 cal -# Official Target Altitude 4,444 ft -# Measured Altitude 4,320 ft or 1316.736 m -# Drift: 2275 ft - -# Importing libraries -from rocketpy import Environment, SolidMotor, Rocket, Flight, Function -from scipy.signal import savgol_filter -import numpy as np -import pandas as pd - -# Defining all parameters -parameters = { - # Mass Details - "rocket_mass": (23.321 - 2.475, 0.010), - # Propulsion Details - "impulse": (4895.050, 0.033 * 4895.050), - "burn_time": (3.51, 0.1), - "nozzle_radius": (49.5 / 2000, 0.001), - "throat_radius": (21.5 / 2000, 0.001), - "grain_separation": (3 / 1000, 0.001), - "grain_density": (1519.708, 30), - "grain_outer_radius": (33 / 1000, 0.001), - "grain_initial_inner_radius": (15 / 1000, 0.002), - "grain_initial_height": (120 / 1000, 0.001), - # Aerodynamic Details - "drag_coefficient": (0.44, 0.1), - "inertia_i": (83.351, 0.3 * 83.351), - "inertia_z": (0.15982, 0.3 * 0.15982), - "radius": (203 / 2000, 0.001), - "distance_rocket_nozzle": (-1.255, 0.100), - "distance_rocket_propellant": (-0.85704, 0.100), - "power_off_drag": (1, 0.033), - "power_on_drag": (1, 0.033), - "nose_length": (0.610, 0.001), - "nose_distance_to_cm": (0.71971, 0.100), - "fin_span": (0.165, 0.001), - "fin_root_chord": (0.152, 0.001), - "fin_tip_chord": (0.0762, 0.001), - "fin_distance_to_cm": (-1.04956, 0.100), - "transition_top_radius": (203 / 2000, 0.010), - "transition_bottom_radius": (155 / 2000, 0.010), - "transition_length": (0.127, 0.010), - "transitiondistance_to_cm": (-1.194656, 0.010), - # Launch and Environment Details - "wind_direction": (0, 3), - "wind_speed": (1, 0.30), - "inclination": (90, 1), - "heading": (181, 3), - "rail_length": (3.353, 0.001), - # Parachute Details - "CdS_drogue": (1.5 * np.pi * (24 * 25.4 / 1000) * (24 * 25.4 / 1000) / 4, 0.1), - "CdS_main": (2.2 * np.pi * (120 * 25.4 / 1000) * (120 * 25.4 / 1000) / 4, 0.1), - "lag_rec": (1, 0.5), -} - -# Environment conditions -Env23 = Environment( - gravity=9.81, - latitude=41.775447, - longitude=-86.572467, - date=(2020, 2, 23, 16), - elevation=206, -) -Env23.set_atmospheric_model( - type="Reanalysis", - file="tests/fixtures/acceptance/NDRT_2020/ndrt_2020_weather_data_ERA5.nc", - dictionary="ECMWF", -) -Env23.max_expected_height = 2000 - -# Motor Information -L1395 = SolidMotor( - thrust_source="tests/fixtures/acceptance/NDRT_2020/ndrt_2020_motor_Cesaroni_4895L1395-P.eng", - burn_time=parameters.get("burn_time")[0], - grains_center_of_mass_position=parameters.get("distanceRocketPropellant")[0], - grain_number=5, - grain_separation=parameters.get("grain_separation")[0], - grain_density=parameters.get("grain_density")[0], - grain_outer_radius=parameters.get("grain_outer_radius")[0], - grain_initial_inner_radius=parameters.get("grain_initial_inner_radius")[0], - grain_initial_height=parameters.get("grain_initial_height")[0], - nozzle_radius=parameters.get("nozzle_radius")[0], - throat_radius=parameters.get("throat_radius")[0], - interpolation_method="linear", - nozzle_position=parameters.get("distanceRocketNozzle")[0], -) - -# Rocket information -NDRT2020 = Rocket( - radius=parameters.get("radius")[0], - mass=parameters.get("rocket_mass")[0], - inertia=( - parameters.get("inertia_i")[0], - parameters.get("inertia_i")[0], - parameters.get("inertia_z")[0], - ), - power_off_drag=parameters.get("dragCoefficient")[0], - power_on_drag=parameters.get("dragCoefficient")[0], -) -NDRT2020.set_rail_buttons(0.2, -0.5, 45) -NDRT2020.add_motor(L1395, parameters.get("distance_rocket_nozzle")[0]) -NoseCone = NDRT2020.add_nose( - length=parameters.get("nose_length")[0], - kind="tangent", - position=parameters.get("nose_distance_to_cm")[0] - + parameters.get("nose_length")[0], -) -fin_set = NDRT2020.add_trapezoidal_fins( - 3, - span=parameters.get("fin_span")[0], - root_chord=parameters.get("fin_root_chord")[0], - tip_chord=parameters.get("fin_tip_chord")[0], - position=parameters.get("fin_distance_to_cm")[0], -) -transition = NDRT2020.add_tail( - top_radius=parameters.get("transition_top_radius")[0], - bottom_radius=parameters.get("transition_bottom_radius")[0], - length=parameters.get("transition_length")[0], - position=parameters.get("transitiondistance_to_cm")[0], -) - - -# Parachute set-up -def drogue_trigger(p, h, y): - # p = pressure - # y = [x, y, z, vx, vy, vz, e0, e1, e2, e3, w1, w2, w3] - # activate drogue when vz < 0 m/s. - return True if y[5] < 0 else False - - -def main_trigger(p, h, y): - # p = pressure - # y = [x, y, z, vx, vy, vz, e0, e1, e2, e3, w1, w2, w3] - # activate main when vz < 0 m/s and z < 167.64 m (AGL) or 550 ft (AGL) - return True if y[5] < 0 and h < 167.64 else False - - -Drogue = NDRT2020.add_parachute( - "Drogue", - cd_s=parameters.get("CdS_drogue")[0], - trigger=drogue_trigger, - sampling_rate=105, - lag=parameters.get("lag_rec")[0], - noise=(0, 8.3, 0.5), -) -Main = NDRT2020.add_parachute( - "Main", - cd_s=parameters.get("CdS_main")[0], - trigger=main_trigger, - sampling_rate=105, - lag=parameters.get("lag_rec")[0], - noise=(0, 8.3, 0.5), -) - -# Flight -Flight23 = Flight( - rocket=NDRT2020, - environment=Env23, - rail_length=parameters.get("rail_length")[0], - inclination=parameters.get("inclination")[0], - heading=parameters.get("heading")[0], -) -Flight23.post_process() -df_ndrt_rocketpy = pd.DataFrame(Flight23.z[:, :], columns=["Time", "Altitude"]) -df_ndrt_rocketpy["Vertical Velocity"] = Flight23.vz[:, 1] -df_ndrt_rocketpy["Altitude"] -= Env23.elevation - -# Reading data from the flightData (sensors: Raven) -df_ndrt_raven = pd.read_csv( - "tests/fixtures/acceptance/NDRT_2020/ndrt_2020_flight_data.csv" -) -# convert feet to meters -df_ndrt_raven[" Altitude (m-AGL)"] = df_ndrt_raven[" Altitude (Ft-AGL)"] / 3.28084 -df_ndrt_raven[" Time (s)"] -# Calculate the vertical velocity as a derivative of the altitude -velocity_raven = [0] -for i in range(1, len(df_ndrt_raven[" Altitude (m-AGL)"]), 1): - v = ( - df_ndrt_raven[" Altitude (m-AGL)"][i] - - df_ndrt_raven[" Altitude (m-AGL)"][i - 1] - ) / (df_ndrt_raven[" Time (s)"][i] - df_ndrt_raven[" Time (s)"][i - 1]) - if ( - v != 92.85844059786486 - and v != -376.85000927682034 - and v != -57.00530169566588 - and v != -52.752200796647145 - and v != 63.41561104540437 - ): - # This way we remove the outliers - velocity_raven.append(v) - else: - velocity_raven.append(velocity_raven[-1]) - -# Filter the data for a better resolution: -velocity_raven_filt = savgol_filter(velocity_raven, 51, 3) - -# Output comparison between flight and simulation data: summary -print("Apogee raven NDRT: ", max(df_ndrt_raven[" Altitude (m-AGL)"]), "m") -print("Apogee RocketPy: ", max(df_ndrt_rocketpy["Altitude"]), "m") -print( - "Relative error:", - 100 - * (max(df_ndrt_rocketpy["Altitude"]) - max(df_ndrt_raven[" Altitude (m-AGL)"])) - / max(df_ndrt_raven[" Altitude (m-AGL)"]), -) -print("Apogee time raven NDRT: ", 17.095, "s") -print("Apogee time Rocketpy: ", 16.77, "s") -print("Relative error:", 100 * (16.77 - 17.095) / 17.095, "%") diff --git a/tests/fixtures/acceptance/PJ_Valetudo/valetudo_flight_sim.py b/tests/fixtures/acceptance/PJ_Valetudo/valetudo_flight_sim.py deleted file mode 100644 index 4a73eb460..000000000 --- a/tests/fixtures/acceptance/PJ_Valetudo/valetudo_flight_sim.py +++ /dev/null @@ -1,159 +0,0 @@ -# Valetudo Flight from Projeto Jupiter -# Launched at LASC 2019 -# Permission to use flight data given by Projeto Jupiter, 2020 - -# Importing libraries -from rocketpy import Environment, SolidMotor, Rocket, Flight, Function -from scipy.signal import savgol_filter -import numpy as np -import os - -# Import parachute trigger algorithm named SisRec -if os.name == "nt": - from SisRecWindows import SisRec -else: - from SisRecLinux import SisRec - -# Defining all parameters -analysis_parameters = { - # Mass Details - "rocket_mass": (8.257, 0.001), - # Propulsion Details - "impulse": (1415.15, 35.3), - "burn_time": (5.274, 1), - "nozzle_radius": (21.642 / 1000, 0.5 / 1000), - "throat_radius": (8 / 1000, 0.5 / 1000), - "grain_separation": (6 / 1000, 1 / 1000), - "grain_density": (1707, 50), - "grain_outer_radius": (21.4 / 1000, 0.375 / 1000), - "grain_initial_inner_radius": (9.65 / 1000, 0.375 / 1000), - "grain_initial_height": (120 / 1000, 1 / 1000), - # Aerodynamic Details - "inertia_i": (3.675, 0.03675), - "inertia_z": (0.007, 0.00007), - "radius": (40.45 / 1000, 0.001), - "distance_rocket_nozzle": (-1.024, 0.001), - "distance_rocket_propellant": (-0.571, 0.001), - "power_off_drag": (0.9081 / 1.05, 0.033), - "power_on_drag": (0.9081 / 1.05, 0.033), - "nose_length": (0.274, 0.001), - "nose_distance_to_cm": (1.134, 0.001), - "fin_span": (0.077, 0.0005), - "fin_root_chord": (0.058, 0.0005), - "fin_tip_chord": (0.018, 0.0005), - "fin_distance_to_cm": (-0.906, 0.001), - # Launch and Environment Details - "wind_direction": (0, 2), - "wind_speed": (1, 0.033), - "inclination": (84.7, 1), - "heading": (53, 2), - "rail_length": (5.7, 0.0005), - # "ensemble_member": list(range(10)), - # Parachute Details - "CdS_drogue": (0.349 * 1.3, 0.07), - "lag_rec": (1, 0.5), - # Electronic Systems Details - "lag_se": (0.73, 0.16), -} - -# Environment conditions -env = Environment( - gravity=9.8, - date=(2019, 8, 10, 21), - latitude=-23.363611, - longitude=-48.011389, -) -env.set_elevation(668) -env.max_expected_height = 1500 -env.set_atmospheric_model( - type="Reanalysis", - file="tests/fixtures/acceptance/PJ_Valetudo/valetudo_weather_data_ERA5.nc", - dictionary="ECMWF", -) - -# Create motor -Keron = SolidMotor( - thrust_source="tests/fixtures/acceptance/PJ_Valetudo/valetudo_motor_Keron.csv", - burn_time=5.274, - grains_center_of_mass_position=analysis_parameters.get( - "distance_rocket_propellant" - )[0], - reshape_thrust_curve=( - analysis_parameters.get("burn_time")[0], - analysis_parameters.get("impulse")[0], - ), - nozzle_radius=analysis_parameters.get("nozzle_radius")[0], - throat_radius=analysis_parameters.get("throat_radius")[0], - grain_number=6, - grain_separation=analysis_parameters.get("grain_separation")[0], - grain_density=analysis_parameters.get("grain_density")[0], - grain_outer_radius=analysis_parameters.get("grain_outer_radius")[0], - grain_initial_inner_radius=analysis_parameters.get("grain_initial_inner_radius")[0], - grain_initial_height=analysis_parameters.get("grain_initial_height")[0], - interpolation_method="linear", - nozzle_position=analysis_parameters.get("distance_rocket_nozzle")[0], -) - -# Create rocket -Valetudo = Rocket( - motor=Keron, - radius=analysis_parameters.get("radius")[0], - mass=analysis_parameters.get("rocket_mass")[0], - inertia=( - analysis_parameters.get("inertia_i")[0], - analysis_parameters.get("inertia_i")[0], - analysis_parameters.get("inertia_z")[0], - ), - power_off_drag="tests/fixtures/acceptance/PJ_Valetudo/valetudo_drag_power_off.csv", - power_on_drag="tests/fixtures/acceptance/PJ_Valetudo/valetudo_drag_power_on.csv", -) -Valetudo.power_off_drag *= analysis_parameters.get("power_off_drag")[0] -Valetudo.power_on_drag *= analysis_parameters.get("power_on_drag")[0] -Valetudo.add_motor(Keron, analysis_parameters.get("distance_rocket_nozzle")[0]) -nosecone = Valetudo.add_nose( - length=analysis_parameters.get("nose_length")[0], - kind="vonKarman", - position=analysis_parameters.get("nose_distance_to_cm")[0] - + analysis_parameters.get("nose_length")[0], -) -fin_set = Valetudo.add_trapezoidal_fins( - n=3, - root_chord=analysis_parameters.get("fin_root_chord")[0], - tip_chord=analysis_parameters.get("fin_tip_chord")[0], - span=analysis_parameters.get("fin_span")[0], - position=analysis_parameters.get("fin_distance_to_cm")[0], -) -Valetudo.set_rail_buttons(0.224, -0.93, 30) - -# Set up parachutes -sis_rec_drogue = SisRec.SisRecSt(0.8998194205245451, 0.2) - - -def drogue_trigger(p, h, y): - return True if sis_rec_drogue.update(p / 100000) == 2 else False - - -drogue = Valetudo.add_parachute( - "Drogue", - cd_s=analysis_parameters["CdS_drogue"][0], - trigger=drogue_trigger, - sampling_rate=105, - lag=analysis_parameters["lag_rec"][0] + analysis_parameters["lag_se"][0], - noise=(0, 8.3, 0.5), -) -# Prepare parachutes -sis_rec_drogue.reset() -sis_rec_drogue.enable() - -test_flight = Flight( - rocket=Valetudo, - environment=env, - rail_length=analysis_parameters.get("rail_length")[0], - inclination=analysis_parameters.get("inclination")[0], - heading=analysis_parameters.get("heading")[0], - max_time=600, -) -test_flight.post_process() - -# Print summary -test_flight.info()