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

Takeoff documentation #490

Merged
merged 4 commits into from
Apr 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,10 @@ def setup(app):
intersphinx_mapping = {
"sphinx": ("https://www.sphinx-doc.org/en/master", None),
"python": ("https://docs.python.org/" + python_version, None),
"matplotlib": ("https://matplotlib.org", None),
"matplotlib": ("https://matplotlib.org/stable", None),
"numpy": ("https://numpy.org/doc/stable", None),
"sklearn": ("https://scikit-learn.org/stable", None),
"pandas": ("https://pandas.pydata.org/pandas-docs/stable", None),
"scipy": ("https://docs.scipy.org/doc/scipy", None),
"openmdao": ("https://openmdao.org/twodocs/versions/latest", None),
"openmdao": ("https://openmdao.org/newdocs/versions/latest", None),
}
32 changes: 16 additions & 16 deletions docs/documentation/mission_module/extensibility/adding_segments.rst
Original file line number Diff line number Diff line change
Expand Up @@ -183,39 +183,39 @@ and a provided `target` (providing the result as a pandas DataFrame)
The AbstractTimeStepFlightSegment class
***************************************

:class:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment` is a
:class:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment` is a
base class for segments that do time step computations.

This class has 4 main additional fields:

- :attr:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.propulsion`,
- :attr:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.propulsion`,
that is expected to be an :class:`~fastoad.model_base.propulsion.IPropulsion` instance.
- :attr:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.polar`,
- :attr:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.polar`,
that is expected to be a :class:`~fastoad.models.performances.mission.polar.Polar` instance.
- :attr:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.reference_area`,
- :attr:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.reference_area`,
that provides the reference surface area consistently with provided aerodynamic polar.
- :attr:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.time_step`,
- :attr:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.time_step`,
that sets the time step for resolution. It is set with a low enough default value.

An inheritor class will have to provide the implementations for 3 methods that are used at each
computed time step:
:meth:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.get_distance_to_target`,
:meth:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.compute_propulsion` and
:meth:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.get_gamma_and_acceleration`.
:meth:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.get_distance_to_target`,
:meth:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.compute_propulsion` and
:meth:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.get_gamma_and_acceleration`.
(see each method documentation for more information)

There are some specialized base classes that provide a partial implementation of
:class:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment`:
:class:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment`:

- :class:`~fastoad.models.performances.mission.segments.base.AbstractManualThrustSegment`
implements :meth:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.compute_propulsion`.
- :class:`~fastoad.models.performances.mission.segments.time_step_base.AbstractManualThrustSegment`
implements :meth:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.compute_propulsion`.
It has its own field,
:attr:`~fastoad.models.performances.mission.segments.base.AbstractManualThrustSegment.thrust_rate`,
:attr:`~fastoad.models.performances.mission.segments.time_step_base.AbstractManualThrustSegment.thrust_rate`,
that is used to compute thrust.
- :class:`~fastoad.models.performances.mission.segments.base.AbstractRegulatedThrustSegment` also
implements :meth:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.compute_propulsion`,
- :class:`~fastoad.models.performances.mission.segments.time_step_base.AbstractRegulatedThrustSegment` also
implements :meth:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.compute_propulsion`,
but it adjusts the thrust rate to have aircraft thrust equal to its drag.
- :class:`~fastoad.models.performances.mission.segments.base.AbstractFixedDurationSegment`
implements :meth:`~fastoad.models.performances.mission.segments.base.AbstractTimeStepFlightSegment.get_distance_to_target`.
- :class:`~fastoad.models.performances.mission.segments.time_step_base.AbstractFixedDurationSegment`
implements :meth:`~fastoad.models.performances.mission.segments.time_step_base.AbstractTimeStepFlightSegment.get_distance_to_target`.
It allows to compute a segment with a time duration set by the target.

2 changes: 1 addition & 1 deletion docs/documentation/mission_module/mission_file/index.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##########################
Mission module
Defining missions
##########################

Here you will find information about the mission definition files for the FAST-OAD performance module.
Expand Down
66 changes: 66 additions & 0 deletions docs/documentation/mission_module/mission_file/mission_file.rst
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,72 @@ Example:
climb: # Phase name
... # Definition of the phase...

.. _takeoff-section:

Specific takeoff phase definition section
************************

The takeoff and associated manoeuvres may be simulated by assembling the specific segments.
An exemple of takeoff phase definition, as well as start-stop phase are given here:

Example:

.. code-block:: yaml

takeoff:
engine_setting: takeoff
polar:
CL: data:aerodynamics:aircraft:takeoff:CL
CD: data:aerodynamics:aircraft:takeoff:CD
ground_effect: None # Ground effect model selection
CL0_clean: data:aerodynamics:aircraft:takeoff:CL0_clean
CL_alpha: data:aerodynamics:aircraft:takeoff:CL_alpha
CL_high_lift: data:aerodynamics:high_lift_devices:takeoff:CL
thrust_rate: 1.0
isa_offset: data:mission:operational:ISA_offset
parts:
- segment: ground_speed_change
target:
equivalent_airspeed:
value: data:mission:operational:takeoff:Vr
- segment: rotation
target:
delta_altitude:
value: 35
unit: ft
- segment: end_of_takeoff
time_step: 0.05
target:
delta_altitude:
value: 35
unit: ft
start_stop: # start - stop manoeuvre with only brakes on
engine_setting: takeoff
polar:
CL: data:aerodynamics:aircraft:takeoff:CL
CD: data:aerodynamics:aircraft:takeoff:CD
ground_effect: Raymer # Ground effect model selection
CL0_clean: data:aerodynamics:aircraft:takeoff:CL0_clean
CL_alpha: data:aerodynamics:aircraft:takeoff:CL_alpha
CL_high_lift: data:aerodynamics:high_lift_devices:takeoff:CL
thrust_rate: 1.0
isa_offset: data:mission:operational:ISA_offset
parts:
- segment: ground_speed_change
wheels_friction: 0.03
time_step: 0.05
target:
equivalent_airspeed:
value: data:mission:operational:takeoff:V1
- segment: ground_speed_change
engine_setting: idle
thrust_rate: 0.07
wheels_friction: 0.5
time_step: 0.05
target:
true_airspeed:
value: 0
unit: m/s

.. _route-section:

Expand Down