Skip to content

Two-dof refactor part 3: Added a new ODE/Phase for a simple cruise that is more consistent with the other phases.#986

Open
Kenneth-T-Moore wants to merge 27 commits intoOpenMDAO:mainfrom
Kenneth-T-Moore:2dof_3
Open

Two-dof refactor part 3: Added a new ODE/Phase for a simple cruise that is more consistent with the other phases.#986
Kenneth-T-Moore wants to merge 27 commits intoOpenMDAO:mainfrom
Kenneth-T-Moore:2dof_3

Conversation

@Kenneth-T-Moore
Copy link
Member

Summary

Motivation: The original Cruise phase in the two-dof equations of motion is based on the Breguet Range equations, and uses an AnalyticPhase from Dymos, and additionally integrates over mass instead of time. This causes problems when trying to add an external subsystem with a state that needs to be integrated over time. This PR adds an alternative that eliminates these problems.

Added a new SimpleCruise eom, ode, and phase to the two-dof formulation.

  • Has 1 dynamic state: mass
  • Integrates in time, so initial time and duration are also controlled by the optimizer.
  • Has no controls: throttle is solved, and altitude and velocity are fixed. Distance is a simple calculation from those.

Added a new option "phase_builder" to the phase_options to allow the user to specify what phase_builder to use for this phase. The following choices are valid:

    DEFAULT: Use the default phase builder for this EquationsOfMotion.

    BREGUET_RANGE: Use a phase builder that implements the Breguet Range equations.

    SIMPLE_CRUISE: Use a phase builder that implements a single DOF (mass) cruise.

Presently, this option only works for the two-dof equations of motion, but there is a potential to expand the capability to use these phases in other equations.

  • The old Cruise ode/eom/phase have all been renamed to include Breguet in their names.
  • All tests and benchmarks that used the old Cruise phase have been switched over to the new SimpleCruisePhase.
  • One new benchmark has been added for the BreguetCruisePhase

Related Issues

  • Resolves #

Backwards incompatibilities

None

New Dependencies

None

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant