-
-
Notifications
You must be signed in to change notification settings - Fork 236
Open
Labels
EnhancementNew feature or request, including adjustments in current codesNew feature or request, including adjustments in current codesFlightFlight Class related featuresFlight Class related features
Description
RocketPy already allows you to run mult-stage rocket simulations. However, we all now it is not an easy task. Let's improve user's experience with this feature request.
We can divide this task into 3 main blocks:
- Create a
Stageclass - Use the new Stage class in the
Rocket - Improves the Flight class to deal with different stage flights
Details of each part:
- Create the Stage class
- The new class should work in a pretty similar way to the current Rocket class.
- It should have methods like
add_surfacesandadd_motor. - Moment of inertias should be optional arguments
- Use the new stage class in the Rocket class
- A new attribute should be available: list
Rocket.stages: list[Stage]should be created - When you initialize a Rocket, it already comes with an empty Stage, it is selected and ready to be used.
- Rocket.add_surfaces actually adds the surfaces to the current selected stage.
- Improve the Flight class.
- Flight setting or flight model file: Before simulating the flight, we should be able to generate the "simulation model" file, which could be a .json file or something more readable. The flight class should be able to read this simulation model file.
- The simulation flight phases/stage should be predicted before the flight actually happens. Maybe a "Flight settings" class?
- We need a better handling of the Events om our simulation. It's time to create a
FlightEventsenum. - We need custom exceptions in the flight class, this will make our lives pretty easier.
- We need to make the rail length argument optional now.
Breaking changes (postponed to future versions):
- Create a Flight.simulate() method and stop running the simulation in the init method.
Additional requirements:
- Inertia Tensors must be stored using the new class
- Q: is it time for a "EjectablePayload" class?
Metadata
Metadata
Assignees
Labels
EnhancementNew feature or request, including adjustments in current codesNew feature or request, including adjustments in current codesFlightFlight Class related featuresFlight Class related features