Skip to content

ENH: Flight Class Overhaul #276

@giovaniceotto

Description

@giovaniceotto

While the Environment class, the Motor class and the Rocket class have been refactored significantly since the first implementation, the Flight class has mainly stayed the same. Now, it is clear that it is outdated when compared with the rest of the code.

This issue proposes the implementation of the following new features to the flight class:

  • Integration with sensors and controllers (Sensors #273 and ENH: Continuous and Discrete Control #274)
  • Support for different flight models (simpler models may be faster)
  • Support for flight enabling, disabling and adding flight events
    • Events include parachute triggers, staging, flight termination, etc
    • Disabling certain events changes how the flight is simulated
    • Adding termination events can help when only a portion of the flight is of interest
  • Clear statement of all assumptions used, considering the active flight model
    • Active mass variation terms
    • Active aerodynamic models
    • Active earth/gravity models
    • Active atmospheric models
  • Return a FlightTrajectorySolution object, rather than keeping the solution in the Flight class.
    • Allows for the reuse of the flight instance, changing the model or events and running the simulation multiple times.

Proposed Usage Example

from rocketpy import Flight

test_flight = Flight(...)

# Run first standard simulation
flight_trajectory_solution_1 = test_flight.simulate()

# Change models and events
test_flight.enable_models(...)

test_flight.list_events()

test_flight.disable_event(...)

test_flight.add_event(...)

# Run a second simulation
flight_trajectory_solution_2 = test_flight.simulate()

Requirements

  • To be defined.

Proposed Architecture

  • To be defined.

Proposed Milestone

Considering the roadmap to v1.0.0 and the work on sensors and controllers only for v2.0.0, it seems like this feature will be necessary only on v2.0.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    FlightFlight Class related features

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions