Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions aviary/docs/developer_guide/doctape_examples.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"If {glue:md}`get_all_keys` is used on an object like {glue:md}`Mission` without specifying a value for {glue:md}`track_layers` will return all of the uniquely named attributes of the object (such as {glue:md}GEARBOX_SHAFT_POWER_RESIDUAL). Setting {glue:md}`track_layers` to `True` will get all of the attributes in dot notation, but will not include the name of the original object ({glue:md}Constraints.GEARBOX_SHAFT_POWER_RESIDUAL). If you want the full name of the attribute, including the name of the original object, you can use that name as the value of {glue:md}`track_layers` (using {glue:md}track_layers_with_Mission gives us access to {glue:md}Mission.Constraints.GEARBOX_SHAFT_POWER_RESIDUAL)\n",
"If {glue:md}`get_all_keys` is used on an object like {glue:md}`Mission` without specifying a value for {glue:md}`track_layers` will return all of the uniquely named attributes of the object (such as `GEARBOX_SHAFT_POWER_RESIDUAL`). Setting {glue:md}`track_layers` to `True` will get all of the attributes in dot notation, but will not include the name of the original object (`Constraints.GEARBOX_SHAFT_POWER_RESIDUAL`). If you want the full name of the attribute, including the name of the original object, you can use that name as the value of {glue:md}`track_layers` (using {glue:md}`track_layers_with_Mission` gives us access to {glue:md}`Mission.Constraints.GEARBOX_SHAFT_POWER_RESIDUAL`)\n",
"\n",
"Using {glue:md}`glue_keys` handles this for us automatically by using the `__name__` attribute of the object passed to it as the value of {glue:md}`track_layers`.\n",
"\n",
Expand All @@ -563,7 +563,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "aviary",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand All @@ -577,9 +577,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.9"
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
"nbformat_minor": 4
}
4 changes: 2 additions & 2 deletions aviary/docs/examples/multi_mission.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@
"The total number of passengers ({glue:md}`Aircraft.CrewPayload.Design.NUM_PASSENGERS`) and the design number of passengers of each type (business, tourist, first class), help to define the passenger air conditioning subsystems and the passenger support mass (seats) respectively. Thus when these values are set equal in mission1 and mission2, we ensure the aircraft will be designed similarly. These settings were already set in the `LargeSingleAisle2FLOPS` model which we are using.\n",
"\n",
"```\n",
"Note: It is good practice, but not required, to set {glue:md}`Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` in Aviary Values to ensure consistent design of the landing gear for both missions. This combined with {glue:md}`Design.GROSS_MASS` helps to ensure that {glue:md}`Aircraft.LandingGear.MAIN_GEAR_MASS` and {glue:md}`Aircraft.LandingGear.NOSE_GEAR_MASS` are the same for both missions. If {glue:md}`Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` is not set, Landing Gear Masses will be caluclated based on {glue:md}`Mission.Summary.CRUISE_MACH` and {glue:md}`Mission.Design.RANGE`. This is potentially problematic because {glue:md}`Mission.Summary.CRUISE_MACH` may not be set, and instead cruse mach may be optimized. In that case, {glue:md}`Mission.Summary.CRUISE_MACH` could vary between mission1 and mission2, which would then cascade into differeing {glue:md}`Aircraft.LandingGear.MAIN_GEAR_MASS` which causes the aircraft designs to diverge.\n",
"Note: It is good practice, but not required, to set `Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` in Aviary Values to ensure consistent design of the landing gear for both missions. This combined with `Design.GROSS_MASS` helps to ensure that `Aircraft.LandingGear.MAIN_GEAR_MASS` and `Aircraft.LandingGear.NOSE_GEAR_MASS` are the same for both missions. If `Aircraft.Design.LANDING_TO_TAKEOFF_MASS_RATIO` is not set, Landing Gear Masses will be caluclated based on`Mission.Summary.CRUISE_MACH` and Mission.Design.RANGE`. This is potentially problematic because `Mission.Summary.CRUISE_MACH` may not be set, and instead cruse mach may be optimized. In that case, `Mission.Summary.CRUISE_MACH` could vary between mission1 and mission2, which would then cascade into differeing `Aircraft.LandingGear.MAIN_GEAR_MASS` which causes the aircraft designs to diverge.\n",
"```"
]
},
Expand Down Expand Up @@ -331,7 +331,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "aviary_developer",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand Down
6 changes: 3 additions & 3 deletions aviary/docs/getting_started/onboarding_level1.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -1112,7 +1112,7 @@
"id": "18e1c3c6",
"metadata": {
"tags": [
"remove-output"
"remove-cell"
]
},
"outputs": [],
Expand Down Expand Up @@ -1152,7 +1152,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "aviary",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand All @@ -1166,7 +1166,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.9"
"version": "3.12.3"
}
},
"nbformat": 4,
Expand Down
6 changes: 3 additions & 3 deletions aviary/docs/getting_started/onboarding_level2.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@
"\n",
"## Dissection of level 2 for the same `aircraft_for_bench_GwGm` model\n",
"\n",
"All the methods of `prob` object (including its creation) are defined in level 3 ({glue:md}`methods_for_level2.py`). We now look at each of them.\n",
"All the methods of `prob` object (including its creation) are defined in level 2 ({glue:md}`methods_for_level2.py`). We now look at each of them.\n",
"\n",
"We add other inputs that {glue:md}`run_aviary()` requires:"
]
Expand Down Expand Up @@ -1013,7 +1013,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "aviary",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
Expand All @@ -1027,7 +1027,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.9"
"version": "3.12.3"
}
},
"nbformat": 4,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@
"- {glue:md}`set_engine_cutback_to_mic_p1()` : a phase builder, typically of type\n",
" {glue:md}`TakeoffEngineCutbackToMicP1`, for the eighth phase of takeoff, engine cutback to the\n",
" P1 mic location\n",
"- `{glue:md}set_mic_p1_to_climb()` : a phase builder, typically of type {glue:md}`TakeoffMicP1ToClimb`, for\n",
"- `{glue:md}`set_mic_p1_to_climb`()` : a phase builder, typically of type {glue:md}`TakeoffMicP1ToClimb`, for\n",
" the ninth phase of takeoff, from P1 mic location to climb.\n",
"\n",
"The builder also has setters for the following phase builders, which are only required if\n",
Expand Down
4 changes: 2 additions & 2 deletions aviary/docs/user_guide/mass.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@
"- **{glue:md}`Total Mass Summation` ({glue:md}`MassSummation`):** Orchestrates the calculation of the total mass by summing up contributions from structural, propulsion, systems and equipment, and fuel masses.\n",
"- **{glue:md}`Structure Mass` ({glue:md}`StructureMass`):** Calculates the mass contributions from the aircraft's structural components like wings, fuselage, landing gear, etc.\n",
"- **{glue:md}`Propulsion Mass` ({glue:md}`PropulsionMass`):** Computes the mass related to the aircraft's propulsion system, including engines and associated components.\n",
"- **{glue:md}`Systems and Equipment Mass` ({glue:md}):** Determines the mass of systems and equipment on the aircraft, with an alternative calculation option ({glue:md}`AltSystemsEquipMass`) available.\n",
"- **{glue:md}`Empty Mass` ({glue:md}`SystemsEquipMass`):** Represents the total mass of the aircraft without fuel, calculated using either standard or alternative methods.\n",
"- **{glue:md}`Systems and Equipment Mass` ({glue:md}`SystemsEquipMass`):** Determines the mass of systems and equipment on the aircraft, with an alternative calculation option ({glue:md}`AltSystemsEquipMass`) available.\n",
"- **{glue:md}`Empty Mass` ({glue:md}`EmptyMass`):** Represents the total mass of the aircraft without fuel, calculated using either standard or alternative methods.\n",
"- **{glue:md}`Operating Mass` ({glue:md}`OperatingMass`):** Accounts for the mass of the crew, passengers, and service items in addition to the empty mass.\n",
"- **{glue:md}`Zero Fuel Mass` ({glue:md}`ZeroFuelMass`):** The total mass of the aircraft without considering the fuel.\n",
"- **{glue:md}`Fuel Mass` ({glue:md}`FuelMass`):** Calculates the mass of the fuel required for the mission.\n",
Expand Down
70 changes: 35 additions & 35 deletions aviary/docs/user_guide/phase_info.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -92,78 +92,78 @@
"\n",
"Each builder has its own options that are tied to the equations of motion that it models. Thus, since the two-degree-of-freedom (2DOF) equations have different states and controls than the height energy equations, the phase_infos have some user options that are different. The following section describes the general patterns that apply to the phases that are included in Aviary. Note that, at present, the height energy phases fully adhere to this standard, while the '2DOF' phases are still being converted.\n",
"\n",
"###General phase settings\n",
"### General phase settings\n",
"\n",
"- **{glue:md}num_segments**: The number of segments in the dymos transcription.\n",
"- **{glue:md}`num_segments`**: The number of segments in the dymos transcription.\n",
"\n",
"- **{glue:md}order**: The order of polynomials for the dymos transcription.\n",
"- **{glue:md}`order`**: The order of polynomials for the dymos transcription.\n",
"\n",
"- **{glue:md}throttle_enforcement**: Enforce throttle as a path_constraint (default), boundary_constraint, a control (which can be optimized or set to a fixed value), or a solver bound (not recommended).\n",
"- **{glue:md}`throttle_enforcement`**: Enforce throttle as a path_constraint (default), boundary_constraint, a control (which can be optimized or set to a fixed value), or a solver bound (not recommended).\n",
"\n",
"- **{glue:md}throttle_allocation**: How to allocate throttles for multi-engine, can be [‘fixed’, ‘static’, ‘dynamic’].\n",
"- **{glue:md}`throttle_allocation`**: How to allocate throttles for multi-engine, can be [‘fixed’, ‘static’, ‘dynamic’].\n",
"\n",
"- **{glue:md}no_climb**: Set to True to prevent the aircraft from climbing during the phase. This option can be used to prevent unexpected climb during a descent phase.\n",
"- **{glue:md}`no_climb`**: Set to True to prevent the aircraft from climbing during the phase. This option can be used to prevent unexpected climb during a descent phase.\n",
"\n",
"- **{glue:md}no_descent**: Set to True to prevent the aircraft from descending during the phase. This can be used to prevent unexpected descent during a climb phase.\n",
"- **{glue:md}`no_descent`**: Set to True to prevent the aircraft from descending during the phase. This can be used to prevent unexpected descent during a climb phase.\n",
"\n",
"###Specialized phase settings\n",
"### Specialized phase settings\n",
"\n",
"- **{glue:md}reserve**: When True, this is a reserve phase. These phases should be after your flight phases.\n",
"- **{glue:md}`reserve`**: When True, this is a reserve phase. These phases should be after your flight phases.\n",
"\n",
"- **{glue:md}ground_roll**: When True, restrict the problem to the ground plane. This will remove certain states/controls, and is only used in takeoff and landing phases.\n",
"- **{glue:md}`ground_roll`**: When True, restrict the problem to the ground plane. This will remove certain states/controls, and is only used in takeoff and landing phases.\n",
"\n",
"- **{glue:md}required_available_climb_rate**: Adds a lower bound path constraint on altitude_rate_max, which is the maximum rate that the aircraft could climb at any point in the phase.\n",
"- **{glue:md}`required_available_climb_rate`**: Adds a lower bound path constraint on altitude_rate_max, which is the maximum rate that the aircraft could climb at any point in the phase.\n",
"\n",
"- **{glue:md}target_distance**: Total mission distance constraint. This should be set in the final flight phase only.\n",
"- **{glue:md}`target_distance`**: Total mission distance constraint. This should be set in the final flight phase only.\n",
"\n",
"###State variables\n",
"### State variables\n",
"\n",
"In a height energy phase, the states are mass and distance. In a two degree of freedom phase, the states also include altitude and velocity.\n",
"\n",
"- **{glue:md}mass_initial**: Mass at the start of the phase. When unspecified, the optimizer controls the value. When specified, a constraint is created on the initial mass.\n",
"- **{glue:md}`mass_initial`**: Mass at the start of the phase. When unspecified, the optimizer controls the value. When specified, a constraint is created on the initial mass.\n",
"\n",
"- **{glue:md}mass_final**: Mass at the end of the phase. When unspecified, the optimizer controls the value. When specified, a constraint is created on the final mass.\n",
"- **{glue:md}`mass_final`**: Mass at the end of the phase. When unspecified, the optimizer controls the value. When specified, a constraint is created on the final mass.\n",
"\n",
"- **{glue:md}mass_bounds**: Tuple of upper and lower bounds for all values of mass in the phase. The default of None for either means that bound will not be declared.\n",
"- **{glue:md}`mass_bounds`**: Tuple of upper and lower bounds for all values of mass in the phase. The default of None for either means that bound will not be declared.\n",
"\n",
"- **{glue:md}mass_ref**: Multiplicative scale factor \"ref\" for mass. Default is 1.0\n",
"- **{glue:md}`mass_ref`**: Multiplicative scale factor \"ref\" for mass. Default is 1.0\n",
"\n",
"- **{glue:md}mass_ref0**: Additive scale factor \"ref0\" for mass. Default is None.\n",
"- **{glue:md}`mass_ref0`**: Additive scale factor \"ref0\" for mass. Default is None.\n",
"\n",
"- **{glue:md}mass_defect_ref**: Multiplicative scale factor \"ref\" for defect constraint. Deafult is None, which means the ref and defect_ref are the same.\n",
"- **{glue:md}`mass_defect_ref`**: Multiplicative scale factor \"ref\" for defect constraint. Deafult is None, which means the ref and defect_ref are the same.\n",
"\n",
"- **{glue:md}mass_solve_segments**: When True, a solver will be used to converge the mass collocation defects within a segment. Note that the state continuity defects between segements will still be handled by the optimizer.\n",
"- **{glue:md}`mass_solve_segments`**: When True, a solver will be used to converge the mass collocation defects within a segment. Note that the state continuity defects between segements will still be handled by the optimizer.\n",
"\n",
"###Controls\n",
"### Controls\n",
"\n",
"In a height energy phase, the controls are mach and altitude. In a two degree of freedom phase, the controls are throttle or angle of attack depending on the phase.\n",
"\n",
"- **{glue:md}altitude_optimize**: When True, the optimizer will set this value. When False, the initial value for all nodes can be set in the initial_conditions section of the phase.\n",
"- **{glue:md}`altitude_optimize`**: When True, the optimizer will set this value. When False, the initial value for all nodes can be set in the initial_conditions section of the phase.\n",
"\n",
"- **{glue:md}altitude_initial**: Altitude at the start of the phase. If altitude_optimize is True, specifying this will create a constraint. Otherwise, it serves as an initial value for the first point. When unspecified, the linkage constraint with the upstream phase will drive this value if altitude_optimize is True.\n",
"- **{glue:md}`altitude_initial`**: Altitude at the start of the phase. If altitude_optimize is True, specifying this will create a constraint. Otherwise, it serves as an initial value for the first point. When unspecified, the linkage constraint with the upstream phase will drive this value if altitude_optimize is True.\n",
"\n",
"- **{glue:md}altitude_final**: Altitude at the end of the phase. If altitude_optimize is True, specifying this will create a constraint. Otherwise, it serves as an initial value for the first point. When unspecified, the linkage constraint with the downstream phase will drive this value if altitude_optimize is True.\n",
"- **{glue:md}`altitude_final`**: Altitude at the end of the phase. If altitude_optimize is True, specifying this will create a constraint. Otherwise, it serves as an initial value for the first point. When unspecified, the linkage constraint with the downstream phase will drive this value if altitude_optimize is True.\n",
"\n",
"- **{glue:md}altitude_bounds**: Tuple of upper and lower bounds for all values of altitude in the phase. The default of None for either means that bound will not be declared.\n",
"- **{glue:md}`altitude_bounds`**: Tuple of upper and lower bounds for all values of altitude in the phase. The default of None for either means that bound will not be declared.\n",
"\n",
"- **{glue:md}altitude_ref**: Multiplicative scale factor \"ref\" for altitude. Default is 1.0\n",
"- **{glue:md}`altitude_ref`**: Multiplicative scale factor \"ref\" for altitude. Default is 1.0\n",
"\n",
"- **{glue:md}altitude_ref0**: Additive scale factor \"ref0\" for altitude. Default is None.\n",
"- **{glue:md}`altitude_ref0`**: Additive scale factor \"ref0\" for altitude. Default is None.\n",
"\n",
"- **{glue:md}altitude_polynomial_order**: The order of polynomials for interpolation in the transcription. Default is None, which does not use a polynomial.\n",
"- **{glue:md}`altitude_polynomial_order`**: The order of polynomials for interpolation in the transcription. Default is None, which does not use a polynomial.\n",
"\n",
"###Time\n",
"- **{glue:md}time_initial**: Value of \"time\" at the start of the phase. When unspecified, the value is determined by the optimizer.\n",
"### Time\n",
"- **{glue:md}`time_initial`**: Value of \"time\" at the start of the phase. When unspecified, the value is determined by the optimizer.\n",
"\n",
"- **{glue:md}time_duration**: Duration of the phase. When unspecified, the value is determined by the optimizer.\n",
"- **{glue:md}`time_duration`**: Duration of the phase. When unspecified, the value is determined by the optimizer.\n",
"\n",
"- **{glue:md}time_initial_bounds**: Upper and lower bounds for time_initial. Ignored if \"time_initial\" is specified. \n",
"- **{glue:md}`time_initial_bounds`**: Upper and lower bounds for time_initial. Ignored if \"time_initial\" is specified. \n",
"\n",
"- **{glue:md}time_duration_bounds**: Upper and lower bounds for time_duration. \n",
"- **{glue:md}`time_duration_bounds`**: Upper and lower bounds for time_duration. \n",
"\n",
"- **{glue:md}time_initial_ref**: Multiplicative scale factor \"ref\" for time_initial. Default is 1.0\n",
"- **{glue:md}`time_initial_ref`**: Multiplicative scale factor \"ref\" for time_initial. Default is 1.0\n",
"\n",
"- **{glue:md}time_duration_ref**: Additive scale factor \"ref\" for time_duration. Default is None.\n",
"- **{glue:md}`time_duration_ref`**: Additive scale factor \"ref\" for time_duration. Default is None.\n",
"\n",
"A full description of every user option in the phase_info for each of Aviary's phase builders is given in the [Complete phase_info Reference.](phase_info_detailed.ipynb)."
]
Expand Down
Loading
Loading