Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: Full support for multi-stage rockets #662

Open
14 tasks
Gui-FernandesBR opened this issue Aug 19, 2024 · 0 comments
Open
14 tasks

ENH: Full support for multi-stage rockets #662

Gui-FernandesBR opened this issue Aug 19, 2024 · 0 comments
Assignees
Labels
Enhancement New feature or request, including adjustments in current codes Flight Flight Class related features

Comments

@Gui-FernandesBR
Copy link
Member

Gui-FernandesBR commented Aug 19, 2024

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:

  1. Create a Stage class
  2. Use the new Stage class in the Rocket
  3. Improves the Flight class to deal with different stage flights

Details of each part:

  1. 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_surfaces and add_motor.
  • Moment of inertias should be optional arguments
  1. 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.
  1. 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 FlightEvents enum.
  • 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?
@Gui-FernandesBR Gui-FernandesBR self-assigned this Aug 19, 2024
@Gui-FernandesBR Gui-FernandesBR added Enhancement New feature or request, including adjustments in current codes Flight Flight Class related features labels Aug 19, 2024
@Gui-FernandesBR Gui-FernandesBR moved this from Backlog to Mid-Term in LibDev Roadmap Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request, including adjustments in current codes Flight Flight Class related features
Projects
Status: Mid-Term
Development

No branches or pull requests

1 participant