From acb6d127cc865de1e2d3e7cda7a502855b108267 Mon Sep 17 00:00:00 2001
From: Gerrit Pauls <gerrit.pauls@tuhh.de>
Date: Thu, 6 Feb 2025 09:14:52 +0100
Subject: [PATCH 1/5] Initial commit

---
 .../mission_analysis/mission_steps.md         |   6 +-
 .../figures/flight_path.png                   |   3 +
 .../create_mission_xml/getting_started.md     | 288 ++++++++++++++++++
 .../sizing/create_mission_xml/index.md        |  20 ++
 .../create_mission_xml/mission_steps.md       | 123 ++++++++
 mkdocs.yml                                    |   4 +
 6 files changed, 441 insertions(+), 3 deletions(-)
 create mode 100644 docs/documentation/sizing/create_mission_xml/figures/flight_path.png
 create mode 100644 docs/documentation/sizing/create_mission_xml/getting_started.md
 create mode 100644 docs/documentation/sizing/create_mission_xml/index.md
 create mode 100644 docs/documentation/sizing/create_mission_xml/mission_steps.md

diff --git a/docs/documentation/analysis/mission_analysis/mission_steps.md b/docs/documentation/analysis/mission_analysis/mission_steps.md
index 31312dd..ee75836 100644
--- a/docs/documentation/analysis/mission_analysis/mission_steps.md
+++ b/docs/documentation/analysis/mission_analysis/mission_steps.md
@@ -25,14 +25,14 @@ A mission step can consist of the following nodes:
 If you need further information about these, please head other to [Create Mission XML](../../sizing/create_mission_xml/index.md).
 
 
-## Step Modes
+## Step Modes {#step_modes}
 
 In the following paragraphs, we focus on how the steps' `mode` will manipulate the `mission_profile` from start to landing.
 
 
 ### Takeoff {#takeoff_subparagraph}
 
-The `takeoff` is composed of ground run (break release until lift-off) and first climb segment to screen height ($35\,ft$). First, the aircraft is accelerated from $ 0\,\frac{m}{s} $ to the lift-off velocity $ v_{LOF} $ utilizing the `acceleration increments` of the [Configuration File](getting_started.md/#config_file). According to [EASA's CS-25 rules](https://www.easa.europa.eu/en/document-library/easy-access-rules/easy-access-rules-large-aeroplanes-cs-25), $ v_{LOF} $ equals $ 110\,\%$ $v_{MU}$ (minimum unstick speed) for aerodynamically limited aircrafts and $ 108\,\%$ $v_{MU}$ for geometry limited aircrafts. To generalize the $v_{LOF}$ calculation, a more conservative approach has been implemented. Since the climb speed at screen height $v_2$ should always be (moderately) greater than the lift-off speed, the following approximation is used (all velocities are calibrated airspeeds):
+The `takeoff` is composed of ground run (break release until lift-off) and first climb segment to screen height ($35\,ft$). First, the aircraft is accelerated from $ 0\,\frac{m}{s} $ to the lift-off velocity $ v_{LOF} $ utilizing the `acceleration increments` of the [Configuration File](getting_started.md/#config_file). According to [EASA's CS-25 rules](https://www.easa.europa.eu/en/document-library/easy-access-rules/easy-access-rules-large-aeroplanes-cs-25), $ v_{LOF} $ equals $ 110\,\%$ $v_{MU}$ (minimum unstick speed) for aerodynamically limited aircraft and $ 108\,\%$ $v_{MU}$ for geometry limited aircraft. To generalize the $v_{LOF}$ calculation, a more conservative approach has been implemented. Since the minimum safe climb speed at screen height $v_2$ should always be (moderately) greater than the lift-off speed, the following approximation is used (all velocities are calibrated airspeeds):
 
 $$
 v_{LOF} \approx v_2 \geq 1.2 \cdot v_{stall} = 1.2 \cdot 0.94 \cdot v_{stall,\,1g} = 1.128 \cdot v_{stall,\,1g}
@@ -69,7 +69,7 @@ before adapting the other _FlightConditions_ using the _set_segment_end_conditio
 
 ### Change Speed {#change_speed_subparagraph}
 
-See [Accelerate](#accelerate_subparagraph). Unlike `accelerate`, `change_speed` uses a (constant) given glide path angle from the `mission file` to derive a rate of climb. For this reason, it is used for deceleration during approach steps below $10\,000\,ft$ (ATC regulations demand certain glide path angles which can be maintained with this mode).
+See [Accelerate](#accelerate_subparagraph). Unlike `accelerate`, `change_speed` uses a (constant) given glide path angle from the `mission file` to derive a rate of climb. Because ATC regulations demand that you can maintain glide path angles between $0°$ and $3°$ at lower altitudes, it is used for deceleration during approach steps below $10\,000\,ft$. .
 
 
 ### Change Speed to CAS {#change_speed_to_CAS_subparagraph}
diff --git a/docs/documentation/sizing/create_mission_xml/figures/flight_path.png b/docs/documentation/sizing/create_mission_xml/figures/flight_path.png
new file mode 100644
index 0000000..1f5c8ff
--- /dev/null
+++ b/docs/documentation/sizing/create_mission_xml/figures/flight_path.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b8a41cfe089727a6116f2252b6755310e498bd380b5ec2b476dec80586998ae
+size 191274
diff --git a/docs/documentation/sizing/create_mission_xml/getting_started.md b/docs/documentation/sizing/create_mission_xml/getting_started.md
new file mode 100644
index 0000000..51efce0
--- /dev/null
+++ b/docs/documentation/sizing/create_mission_xml/getting_started.md
@@ -0,0 +1,288 @@
+# Getting started
+
+Because **create_mission_xml** only needs the user input from the [aircraft XML's](#acxml) `requirements_and_specifications` block it can operate without other tools being executed first. Only if [Mission Analysis](../../analysis/mission_analysis/index.md) was run in between, **create_mission_xml** would adapt given cruise steps, but it is not needed to generate a functioning `mission file`.
+
+
+## Run Create Mission XML
+
+Sounds easy? It gets better! Since the `mission file` is this tool's sole output no plots or reports must be written and therefore, you can simply ignore those settings within the [Configuration File](#config_file). Once you set the path to your aircraft XML and provide its name, you can simply open a terminal and execute **create_mission_xml**. Et voilà, it's done!
+
+Even though, you could happily head over to the next tool, we should take a look at what happens in detail and how you can manipulate the mission for your needs.
+
+
+## Mission Configuration
+
+Like we mentioned before, **create_mission_xml** only needs input from the [aircraft XML's](#acxml) `requirements_and_specifications` block and it's own [Configuration File](#config_file). So, let's see what we can do here!
+
+
+### Aircraft Exchange File {#acxml}
+
+Since we don't need all information from the `requirements_and_specifications` block, we have filtered it a little bit to only show you the relevant nodes:
+
+```plaintext
+requirements_and_specifications
+└── mission_files
+    ├── design_mission_file
+    ├── study_mission_file
+    ├── requirements_mission_file
+└── design_specification
+    ├── transport_task
+    │   ├── cargo_definition
+    │   │   ├── additional_cargo_mass
+    │   ├── passenger_definition
+    │   │   ├── total_number_passengers
+    │   │   ├── mass_per_passenger
+    │   │   ├── luggage_mass_per_passenger
+└── requirements
+    ├── top_level_aircraft_requirements
+    │   ├── maximum_structrual_payload_mass
+    │   ├── design_mission*
+    │   ├── study_mission*
+    │   ├── flight_envelope
+    │   │   ├── maximum_operating_altitude
+    │   │   ├── maximum_approach_speed
+```
+<em>* including its subnodes.</em>
+
+The `mission_files` node simply saves the names of said files. Within `design_specification`, **create_mission_xml** gets the information about the transport task from which we can derive the needed payload mass. In the `top_level_aircraft_requirements` node, the `maximum_structrual_payload_mass` is checked against the calculated payload. Also, we can find other performance maxima and characteristics (e.g. initial cruise altitude & Mach number) for `design_mission` and `study_mission` there.
+
+
+### Configuration File {#config_file}
+
+Since the control settings are equal for all tool's, we will skip it and focus on the tool-specific `program_settings`:
+
+```plaintext
+program_settings
+├── mission_selector
+├── maximum_operating_mach_number
+│   ├── enable
+│   ├── delta
+├── adapt_climb_speed_schedule
+│   ├── enable
+│   ├── crossover_altitude
+├── climb_thrust_setting
+├── maximum_rate_of_climb
+├── design_mission
+│   ├── output_file_name
+│   ├── terminal_operation_time
+│   ├── takeoff_procedure
+│   ├── approach_procedure
+│   ├── taxi_time_origin
+│   ├── taxi_time_destination
+│   ├── auto_select_initial_cruise_altitude
+│   ├── auto_select_flight_level
+│   ├── round_to_regular_flight_level
+│   ├── auto_climb_altitude_steps
+│   ├── auto_rate_of_climb_steps
+│   ├── alternate_distance
+│   ├── engine_warmup_time
+│   ├── taxiing_procedure
+│   ├── origin_airport
+│   ├── destination_airport
+├── study_mission
+│   ├── copy_mach_number
+│   ├── copy_initial_cruise_altitude
+│   ├── output_file_name
+│   ├── terminal_operation_time
+│   ├── takeoff_procedure
+│   ├── approach_procedure
+│   ├── taxi_time_origin
+│   ├── taxi_time_destination
+│   ├── auto_select_initial_cruise_altitude
+│   ├── auto_select_flight_level
+│   ├── round_to_regular_flight_level
+│   ├── auto_climb_altitude_steps
+│   ├── auto_rate_of_climb_steps
+│   ├── alternate_distance
+│   ├── engine_warmup_time
+│   ├── taxiing_procedure
+│   ├── origin_airport
+│   ├── destination_airport
+```
+
+In this config, you can decide what takeoff and approach procedure you want to use and how the aircraft shall operate at the airport and while cruising. In the `mission_selector`, you can choose if the `mission file` shall be generated for a `design_mission`, `study_mission` or `requirements_mission`. For more details, check the descriptions in `create_mission_xml_conf.xml`.
+
+!!!node
+    `maximum_operating_mach_number` and the nodes starting with `auto` will lead to **mission_analysis** ignoring user input from the aircraft XML. In those cases, the tool will try to find an own optimum.
+
+
+## Output
+
+Like we have already discussed, the output of **create_mission_xml** is the mission_file which generally looks like this:
+
+```xml
+<mission>
+    <range description="Mission range">
+        <value>5000000</value>
+        <unit>m</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>100000000</upper_boundary>
+    </range>
+    <payload description="Payload mass">
+        <value>20000</value>
+        <unit>kg</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>100000</upper_boundary>
+    </payload>
+    <number_of_pax description="Number of passenger (Mass per PAX = 95 kg)">
+        <value>200</value>
+        <unit>1</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>1000</upper_boundary>
+    </number_of_pax>
+    <cargo_mass description="Cargo mass">
+        <value>2000</value>
+        <unit>kg</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>100000</upper_boundary>
+    </cargo_mass>
+    <desired_cruise_speed description="Planned cruise Mach number for fuel calculation">
+        <value>0.78</value>
+        <unit>1</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>1</upper_boundary>
+    </desired_cruise_speed>
+    <alternate_distance description="Distance from destination to alternate aerodrome">
+        <value>370400.2</value>
+        <unit>m</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>10000000</upper_boundary>
+    </alternate_distance>
+    <taxi_time_origin description="Taxi time at departure airport">
+        <value>540</value>
+        <unit>s</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>10000</upper_boundary>
+    </taxi_time_origin>
+    <taxi_time_destination description="Taxi time at destination">
+        <value>300</value>
+        <unit>s</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>10000</upper_boundary>
+    </taxi_time_destination>
+    <engine_warmup_time description="Running time of the engines before take-off">
+        <value>0</value>
+        <unit>s</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>10000</upper_boundary>
+    </engine_warmup_time>
+    <terminal_operation_time description="Time at the terminal for stopovers">
+        <value>1500</value>
+        <unit>s</unit>
+        <lower_boundary>0</lower_boundary>
+        <upper_boundary>10000</upper_boundary>
+    </terminal_operation_time>
+    <taxiing_procedure description="Taxiing procedure for start and landing.">
+        <value>propulsion_taxiing</value>
+    </taxiing_procedure>
+    <departure description="Departure procedure; Additional nodes neded for mode... 
+                                Takeoff: No additional nodes. 
+                                climb: End Point Altitude [m] (double).
+                                accelerate: Rate of climb [m/s] (double), End point CAS [m/s] (double).">
+        <departure_step ID="0" description="Single departure step">
+            <configuration description="Configuration of the aircraft during this step">
+                <value>e.g. clean</value>
+            </configuration>
+            <derate description="Derate during this step">
+                <value>1</value>
+                <unit>1</unit>
+                <lower_boundary>0</lower_boundary>
+                <upper_boundary>1.5</upper_boundary>
+            </derate>
+            <mode description="Mode during this step">
+                <value>e.g. accelerate</value>
+            </mode>
+            <rating description="Sets thrust rating within climb/acceleration segments to Takeoff, Climb, Maximum continuous, Cruise">
+                <value>e.g. idle</value>
+            </rating>
+            <additional_nodes>...</additional_nodes>
+        </departure_step>
+    </departure>
+    <cruise description="Cruise procedure: Additional nodes needed for mode...
+                            change_speed_to_CAS: Rate of climb [m/s] (double), end point CAS [m/s] (double)
+                            change_speed_to_Mach: Rate of climb [m/s] (double), Mach [-] (double)
+                            climb_to_cruise: End Point Altitude [m] (double), Mach [-] (double)
+                            cruise: Range [%] (double, relative distance at the end of the cruise segment without climb and descend)
+                            change_flight_level_constant_ROC: Rate of climb [m/s] (double), end Point Altitude [m] (double)
+                            descend_to_approach: End Point Altitude [m] (double), end point CAS [m/s] (double).">
+        <cruise_step ID="0" description="Single cruise step">
+            <configuration description="Configuration of the aircraft during this step">
+                <value>e.g. clean</value>
+            </configuration>
+            <derate description="Derate during this step">
+                <value>1</value>
+                <unit>1</unit>
+                <lower_boundary>0</lower_boundary>
+                <upper_boundary>1.5</upper_boundary>
+            </derate>
+            <mode description="Mode during this step">
+                <value>e.g. change_speed_to_CAS</value>
+            </mode>
+            <rating description="Sets thrust rating within climb/acceleration segments to Takeoff, Climb, Maximum continuous, Cruise">
+                <value>e.g. idle</value>
+            </rating>
+            <auto_select_optimum_flight_level description="Parameters to handle automatized flight_level changes">
+                <enabled description="Switch for automatic selection of the optimum flight level of the cruise step">
+                    <value>false</value>
+                </enabled>
+                <auto_climb_step_height description="Height difference for an automatic altitude change step.">
+                    <value>0</value>
+                    <unit>m</unit>
+                    <lower_boundary>0</lower_boundary>
+                    <upper_boundary>5000</upper_boundary>
+                </auto_climb_step_height>
+            </auto_select_optimum_flight_level>
+            <flight_management_system description="Flight management system settings">
+                <enabled description="Switch to indicate if a flight management system is equipped">
+                    <value>false</value>
+                </enabled>
+                <cost_index description="Cost index [kg/min], scaled 0 to 999 according to Sperry/Honeywell">
+                    <value>0</value>
+                    <unit>1</unit>
+                    <lower_boundary>0</lower_boundary>
+                    <upper_boundary>999</upper_boundary>
+                </cost_index>
+            </flight_management_system>
+            <additional_nodes>...</additional_nodes>
+        </cruise_step>
+    </cruise>
+    <approach description="Approach procedure: Additional nodes needed for mode... : 
+                            descend: End Point Altitude [m] (double), glide_path [deg] (double).
+                            change_speed: End point CAS [m/s] (double), glide_path [deg] (double).
+                            level_glide_slope_interception: No additional nodes.
+                            landing: End Point Altitude [m] (double), glide_path [deg] (double).">
+        <approach_step ID="0" description="Single approach step">
+            <configuration description="Configuration of the aircraft during this step">
+                <value>e.g. clean</value>
+            </configuration>
+            <derate description="Derate during this step">
+                <value>1</value>
+                <unit>1</unit>
+                <lower_boundary>0</lower_boundary>
+                <upper_boundary>1.5</upper_boundary>
+            </derate>
+            <mode description="Mode during this step">
+                <value>e.g. change_speed</value>
+            </mode>
+            <rating description="Sets thrust rating within climb/acceleration segments to Takeoff, Climb, Maximum continuous, Cruise">
+                <value>e.g. idle</value>
+            </rating>
+            <additional_nodes>...</additional_nodes>
+        </approach_step>
+    </approach>
+</mission>
+```
+
+!!!node
+    Bleed air and power offtakes are not displayed here, but every step will include these, too. Offtakes are written and explained by [Systems Design](../systems_design/index.md).
+
+
+While the most parameters like `range` and `alternate_distance` are copied directly from [Aircraft Exchange File](#acxml) and [Configuration File](#config_file), the `payload` is derived from the given number of passengers, their luggage and the mass per passenger. Each step (`departure_step`, `cruise_step` or `approach_step`) contains the nodes `configuration`, `mode`, `derate` and `rating`. The `configuration` node will tell [Mission Analysis](../../analysis/mission_analysis/index.md) which polar (generated by [Aerodynamic Assessment](../../sizing/aerodynamic_analysis/index.md)) shall be used. `derate` and `rating` characterize the engine operations and `mode` specifies what shall happen during the segment between two steps (more infos about `modes`, [click here](../../analysis/mission_analysis/mission_steps.md/#step_modes)). Furthermore, `cruise_steps` always include `flight_management_system` and `auto_select_optimum_flight_level` nodes.
+
+Other entries within these steps can differ depending on which `mode` is used. What input nodes are needed can be found in the descriptions of `departure`, `cruise` and `approach`. As a rule of thumb, the following input nodes can usually be expected:
+
+- `mode` that changes speed: Target speed (Mach or CAS), rate of climb or target speed
+- `mode` that changes altitude: Target altitude, rate of climb or target speed
+
+!!!node
+    For an `approach_step`, the rate of climb cannot be determined up-front, because the glide path angle must be kept constant at $3°$ due to regulatory requirements. Therefore, the rate of climb will be derived from the `glide_path` node by [Mission Analysis](../../analysis/mission_analysis/index.md).
diff --git a/docs/documentation/sizing/create_mission_xml/index.md b/docs/documentation/sizing/create_mission_xml/index.md
new file mode 100644
index 0000000..6993510
--- /dev/null
+++ b/docs/documentation/sizing/create_mission_xml/index.md
@@ -0,0 +1,20 @@
+# Introduction
+
+Good news first: **create_mission_xml** is quite slim... or perhaps the slimmest tool of the whole UNICADO chain. It's sole purpose is to define some basic parameters and target points on the mission's trajectory. Nonetheless, this is critical to the whole operation, because we all know *if you fail planning, you'll be planning your failure!* But no worries, we'll help you out :wink:
+
+
+## What a mission looks like
+
+In short, a mission contains a handful of so-called segments with which you can define a basic mission profile. Depending on the aircraft size, regulation and flight path planning philosophy, some details may differ, but in general is should look something like this:
+
+<p align="center">
+  <img src="figures/flight_path.png" alt="Flight segments" width="97.5%">
+  <br>
+  <em>Flight segments with typical speeds: IAS (blue), Mach (green), and TAS (violet) [1].</em>
+</p>
+
+
+**create_mission_xml** sets the target/end points of these flight segments which will later be connected by [Mission Analysis](../../analysis/mission_analysis/index.md). Those target points are saved into the `mission file` in which they are categorized as `departure_steps`, `cruise_steps` and `approach_steps`. What this `mission_file` contains in detail can be found in the [Getting Started](getting_started.md). 
+
+
+To fill and order `departure_steps` and `approach_steps`, departure and approach procedures based on regulatory requirements were implemented. Since cruise segments are pretty much straight forward and automatic/optimized flight level changes will be handled by [Mission Analysis](../../analysis/mission_analysis/index.md), there are no pre-defined procedures for cruise. Still, there are a few thing to take into account which we will describe in the [Mission Steps](mission_steps.md) section.
diff --git a/docs/documentation/sizing/create_mission_xml/mission_steps.md b/docs/documentation/sizing/create_mission_xml/mission_steps.md
new file mode 100644
index 0000000..8f44062
--- /dev/null
+++ b/docs/documentation/sizing/create_mission_xml/mission_steps.md
@@ -0,0 +1,123 @@
+# Mission Steps
+
+The steps in the `mission_file` can be filled and arranged in different ways, depending on what departure and approach procedures you want to implement and how you want the aircraft to behave during cruise. Let's see what **create_mission_xml** can do with the `departure`, `cruise` and `approach` nodes.
+
+
+## Departure
+
+| Procedure                 | Description                                  | Status                          |
+|---------------------------|----------------------------------------------|---------------------------------|
+| Standard                  | FAA/ICAO compliant standard                  | running :white_check_mark:      |
+| Standard 19 seat commuter | FAA/ICAO compliant standard 19 seat commuter | running :white_check_mark:      |
+| ICAO-A                    | Noise reduced takeoff according to ICAO      | under development :construction:|
+| ICAO-B                    | Noise reduced takeoff according to ICAO      | under development :construction:|
+
+
+### Standard
+
+| Mode       | Thrust Rating        | Config                         | End Altitude [m] | Rate of Climb [m/s]     | End CAS [m/s]         |
+|------------|----------------------|--------------------------------|------------------|-------------------------|-----------------------|
+| takeoff    | takeoff              | takeoff                        | N/A              | N/A                     | N/A                   |
+| climb      | climb thrust setting | takeoff landing gear retracted | 457.2 (1500 ft)  | maximum rate of climb   | N/A                   |
+| climb      | climb thrust setting | takeoff landing gear retracted | 914.4 (3000 ft)  | maximum rate of climb   | N/A                   |
+| accelerate | climb thrust setting | climb                          | N/A              | 5.08 (1000 fpm)         | 108.0 (210 kt)        |
+| accelerate | climb thrust setting | clean                          | N/A              | 6.10 (1200 fpm)         | CAS ATC limit climb   |
+| climb      | climb thrust setting | clean                          | 3048 (10,000 ft) | maximum rate of climb   | N/A                   |
+
+In the standard procedure, we assume that the thrust-to-weight ratio is high enough to maintain minimum safe climb speed $v_2$ (see pic) from takeoff until en-route transition at $3\,000\,ft$. Therefore, the aircraft shall climb with the given `maximum_rate_of_climb` and `climb_thrust_setting` from the [Configuration File](getting_started.md/#config_file) without an acceleration in between. Since the landing gear gets retracted between screen height ($35\,ft$) and $1\,500\,ft$, climbing up to $3\,000\,ft$ is divided into two segments. Like this, it's easier [Systems Design](../systems_design/index.md) to simulate the retraction and to put the power/bleed air demand into the `mission file`. Once en-route transition is reached, flaps are set to `climb` while accelerating to $210\,kt$ calibrated airspeed. Just after that, the aircraft accelerates further in `clean` configuration (least drag) until the _CAS_ATC_limit_climb_ is obtained. Since the air space below $10,000\,ft$ is more crowded, institutions like FAA and ICAO limit the speed to $250 kt$ calibrated airspeed, but you can change that in the `climb_speed_below_FL100` node of our [Aircraft Exchange File](getting_started.md/#acxml). Then, the aircraft finishes the departure procedure by climbing up to $10,000\,ft$ using the `maximum_rate_of_climb`.
+
+!!!node
+    Although `maximum_rate_of_climb` can be set as a constant value, we usually set it to $-1$ to indicate that the aircraft shall use all possible thrust of its current engine settings to achieve altitude gains. Therefore, rate of climb varies within these `climb` segments. Since acceleration is most effective and saver when keeping a constant rate of climb, it is manually set to $1\,000\,\frac{ft}{min}$/$1\,200\,\frac{ft}{min}$ which follows the ICAO's recommendations.
+
+
+### Standard 19 seat commuter
+
+| Mode         | Thrust Rating        | Config                         | End Altitude [m] | Rate of Climb [m/s]     | End CAS [m/s]       |
+|--------------|----------------------|--------------------------------|------------------|-------------------------|---------------------|
+| takeoff      | takeoff              | takeoff                        | N/A              | N/A                     | N/A                 |
+| climb        | climb thrust setting | takeoff landing gear retracted | 60.96 (200 ft)   | maximum rate of climb   | N/A                 |
+| accelerate   | climb thrust setting | clean                          | N/A              | 6.10 (1200 fpm)         | CAS ATC limit climb |
+| climb        | climb thrust setting | clean                          | 3048 (10000 ft)  | maximum rate of climb   | N/A                 |
+
+Using a smaller aircraft, an acceleration segment at lower altitudes is needed. Analogous to the procedure above, it accelerates to the maximum allowed speed (normally $250\,kts$ calibrated airspeed) before climbing with maximum rate of climb towards $10\,000\,ft$.
+
+
+### Minimal Noise Takeoff
+
+ICAO-A and ICAO-B should tackle this, but it is not ready yet :construction:
+
+
+## Cruise
+
+| Mode                 | Thrust Rating        | Config  | End Altitude [m] | Rate of Climb [m/s]       | End CAS [m/s] / Mach [-]          |
+|----------------------|----------------------|---------|------------------|---------------------------|-----------------------------------|
+| change speed to CAS  | climb thrust setting | clean   | N/A              | 1.524 (300 ft/min)        | CAS over flight level 100 climb   |
+| climb to cruise      | climb thrust setting | clean   | initial cruise altitude   | maximum rate of climb   | N/A                        |
+| change speed to Mach | climb thrust setting | clean   | N/A              | 0                         | initial_cruise_mach_number        |
+| cruise               | cruise               | clean   | N/A              | N/A                       | N/A                               |
+| change flight level constant_ROC / change flight level | cruise | clean | auto / cruise FL + 20  | N/A / auto | N/A        |
+| cruise               | cruise               | clean   | N/A              | N/A                       | N/A                               |
+| descend to approach  | idle                 | clean   | 10000 ft         | N/A                       | CAS over flight level 100 descend |
+
+After reaching $10\,000\,ft$ the aircraft accelerates to the next higher speed limit `CAS_over_flight_level_100_climb` which is usually $300\,kts$ calibrated airspeed. Then it keeps on climbing until the `initial_cruise_altitude` from where it accelerates to the `initial_cruise_mach_number` without climbing any further. In the table above, only one flight level change is displayed. How many of them will be initiated can be determined in the following way:
+
+- Short Range ($\leq 1\,000\,NM$):
+    - 1 cruise climb step
+- Medium Range ($1\,000 - 5\,000\,NM$):
+    - 2 cruise climb steps
+- Long Range ($\ge 5\,000\,NM$):
+    - 3 cruise climb steps
+
+!!! node
+    If climbs during cruise are disabled (`no_steps` node in the [Configuration File](getting_started.md/#config_file)), then only 1 climb step is generated. Also when automatic flight level changes are activated, [Mission Analysis](../../analysis/mission_analysis/index.md) will try to find an optimum by itself.
+
+Once the end of cruise is reached, the aircraft shall descend to approach using the maximum descend speed. Again, this is normally $300\,kts$ until it reaches $10\,000\,ft$.
+
+
+## Approach
+
+| Procedure                 | Description                                  | Status                          |
+|---------------------------|----------------------------------------------|---------------------------------|
+| Standard                  | FAA/ICAO compliant standard                  | running :white_check_mark:      |
+| Standard 19 seat commuter | FAA/ICAO compliant standard 19 seat commuter | running :white_check_mark:      |
+| Continuous ICAO           | Continuous descent approach                  | under development :construction:|
+| Steep Continuous ICAO     | Steep Continuous descent approach            | under development :construction:|
+
+
+### Standard
+
+| Mode                           | Thrust rating  | Config                        | End Altitude [m] | Glide Path Angle [°] | End CAS [m/s]                 |          
+|--------------------------------|----------------|-------------------------------|------------------|----------------------|-------------------------------|
+| change speed                   | idle           | clean                         | N/A              | 0                    | CAS ATC limit descend         |
+| descend                        | cruise         | clean                         | 914.4 (3000 ft)  | -3                   | N/A                           |
+| change speed                   | idle           | approach                      | N/A              | 0                    | $v_{approach}$                |
+| level glide slope interception | cruise         | approach landing gear out     | N/A              | -3                   | N/A                           |
+| change speed                   | idle           | approach landing gear out     | N/A              | -3                   | $v_{max, approach + 5\,kt}$   |
+| descend                        | cruise         | approach landing gear out     | 457.2 (1500 ft)  | -3                   | N/A                           |
+| change speed                   | idle           | landing                       | N/A              | -3                   | $v_{max, approach}$           |
+| descend                        | cruise         | landing                       | 304.8 (1000 ft)  | -3                   | N/A                           |
+| descend                        | cruise         | landing                       | 15.24 (50 ft)    | -3                   | N/A                           |
+| landing                        | takeoff        | landing                       | 0                | -3                   | N/A                           |
+
+The first approach segment starts at $10\,000\,ft$ where the descend speed limit from the [Aircraft Exchange File](getting_started.md/#acxml) has to be followed. Like in departure, ICAO and FAA dictate $250 kt$ calibrated airspeed. Once this speed limit is met, the aircraft descends to $3,000\,ft$ maintaining a glide path angle of $-3°$. There, high-lift systems are activated (`approach` config) while decelerating to $v_{approach}$. With $v_{approach}$ the aircraft extends its landing gear and cruises to glide slope interception where instrument landing systems start operating. After decelerating to $v_{max, approach + 5\,kt}$, the aircraft descends to visual approach at $1\,500\,ft$. Lastly, the aircraft changes its speed to $v_{max, approach}$ being in `landing` configuration. Tensions rise, while we descend lower and lower until we finally touch the ground. Congratulations, we have landed! You need more braking power? We set the engines' rating to `takeoff` so you can use them as thrust reversers.
+
+!!!node
+    The `maximum_approach_speed` $v_{max, approach}$ (to be found in the [Aircraft Exchange File](getting_started.md/#acxml)) limits the calibrated airspeed below $1,000\,ft$. Above that, $v_{max, approach + 5\,kts} = v_{approach} + 5\,kt$ and $v_{approach} = max\left(v_{max,\,approach + 5\,kts}, 170\,kts\right)$.
+
+
+### Standard 19 seat commuter
+
+| mode         | rating  | config   | End Altitude [m] | Glide Path Angle [°] | End CAS [m/s]         |
+|--------------|---------|----------|------------------|----------------------|-----------------------|
+| change speed | idle    | clean    | N/A              | 0                    | CAS ATC limit descend |
+| descend      | cruise  | clean    | 609.6 (2000 ft)  | -3                   | N/A                   |
+| change speed | idle    | approach | N/A              | -3                   | $v_{max, approach}$   |
+| descend      | cruise  | landing  | 15.24 (50 ft)    | -3                   | N/A                   |
+| landing      | takeoff | landing  | 0                | -3                   | N/A                   |
+
+For smaller aircraft, the approach procedure becomes less complicated. You can simply decelerate to the before mentioned CAS limit of $250\,kt$ before descending towards initial approach fix at $2\,000\,ft$. Next the aircraft's configuration is set to `approach` while decelerating to $v_{max, approach}$ with which we bring it to the ground using its `landing` configuration. Easy peasy lemon squeezy! :lemon:
+
+
+### (Steep) Continuous Descent Approach
+
+Continuous descent has not been implemented yet, but that's just a matter of time :clock:
diff --git a/mkdocs.yml b/mkdocs.yml
index a21c7bd..d50b615 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -217,6 +217,10 @@ nav:                                      # Customizes the main navigation struc
               - initial_sizing/namespaces.md
               - initial_sizing/files.md
               - initial_sizing/functions.md
+          - Create Mission XML:
+            - Introduction: documentation/sizing/create_mission_xml/index.md
+            - Getting Started: documentation/sizing/create_mission_xml/getting_started.md
+            - Mission Steps: documentation/sizing/create_mission_xml/mission_steps.md
           - Fuselage Design:
             - Introduction: documentation/sizing/fuselage_design/index.md
             - Getting Started: documentation/sizing/fuselage_design/getting_started.md
-- 
GitLab


From aaf961b67bf9c08625951ab3c1711cb29a3de4aa Mon Sep 17 00:00:00 2001
From: Gerrit Pauls <gerrit.pauls@tuhh.de>
Date: Mon, 10 Feb 2025 08:14:33 +0100
Subject: [PATCH 2/5] Little changes

---
 docs/documentation/sizing/create_mission_xml/index.md       | 4 ++--
 .../sizing/create_mission_xml/mission_steps.md              | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/docs/documentation/sizing/create_mission_xml/index.md b/docs/documentation/sizing/create_mission_xml/index.md
index 6993510..3389223 100644
--- a/docs/documentation/sizing/create_mission_xml/index.md
+++ b/docs/documentation/sizing/create_mission_xml/index.md
@@ -3,9 +3,9 @@
 Good news first: **create_mission_xml** is quite slim... or perhaps the slimmest tool of the whole UNICADO chain. It's sole purpose is to define some basic parameters and target points on the mission's trajectory. Nonetheless, this is critical to the whole operation, because we all know *if you fail planning, you'll be planning your failure!* But no worries, we'll help you out :wink:
 
 
-## What a mission looks like
+## What a Mission Looks Like {#typical_mission}
 
-In short, a mission contains a handful of so-called segments with which you can define a basic mission profile. Depending on the aircraft size, regulation and flight path planning philosophy, some details may differ, but in general is should look something like this:
+In short, a mission contains a handful of so-called segments with which you can define a basic mission profile. Depending on the aircraft size, regulation and flight path planning philosophy, some details may differ, but in general it should look something like this:
 
 <p align="center">
   <img src="figures/flight_path.png" alt="Flight segments" width="97.5%">
diff --git a/docs/documentation/sizing/create_mission_xml/mission_steps.md b/docs/documentation/sizing/create_mission_xml/mission_steps.md
index 8f44062..1a8d22e 100644
--- a/docs/documentation/sizing/create_mission_xml/mission_steps.md
+++ b/docs/documentation/sizing/create_mission_xml/mission_steps.md
@@ -24,10 +24,10 @@ The steps in the `mission_file` can be filled and arranged in different ways, de
 | accelerate | climb thrust setting | clean                          | N/A              | 6.10 (1200 fpm)         | CAS ATC limit climb   |
 | climb      | climb thrust setting | clean                          | 3048 (10,000 ft) | maximum rate of climb   | N/A                   |
 
-In the standard procedure, we assume that the thrust-to-weight ratio is high enough to maintain minimum safe climb speed $v_2$ (see pic) from takeoff until en-route transition at $3\,000\,ft$. Therefore, the aircraft shall climb with the given `maximum_rate_of_climb` and `climb_thrust_setting` from the [Configuration File](getting_started.md/#config_file) without an acceleration in between. Since the landing gear gets retracted between screen height ($35\,ft$) and $1\,500\,ft$, climbing up to $3\,000\,ft$ is divided into two segments. Like this, it's easier [Systems Design](../systems_design/index.md) to simulate the retraction and to put the power/bleed air demand into the `mission file`. Once en-route transition is reached, flaps are set to `climb` while accelerating to $210\,kt$ calibrated airspeed. Just after that, the aircraft accelerates further in `clean` configuration (least drag) until the _CAS_ATC_limit_climb_ is obtained. Since the air space below $10,000\,ft$ is more crowded, institutions like FAA and ICAO limit the speed to $250 kt$ calibrated airspeed, but you can change that in the `climb_speed_below_FL100` node of our [Aircraft Exchange File](getting_started.md/#acxml). Then, the aircraft finishes the departure procedure by climbing up to $10,000\,ft$ using the `maximum_rate_of_climb`.
+In the standard procedure, we assume that the thrust-to-weight ratio is high enough to maintain minimum safe climb speed $v_2$ (see [What a Mission Looks Like](index.md/#typical_mission)) from takeoff until en-route transition (`climb` configuration) at $3\,000\,ft$. Please mind, that EASA's CS-25 only allows extrapolation of the propulsion system's takeoff performance data up to that altitude. To do so, the aircraft shall climb with the given `maximum_rate_of_climb` and `climb_thrust_setting` from the [Configuration File](getting_started.md/#config_file) without an acceleration in between. Since the landing gear gets retracted between screen height ($35\,ft$) and $1\,500\,ft$, climbing up to $3\,000\,ft$ is divided into two segments. Like this, it's easier [Systems Design](../systems_design/index.md) to simulate the retraction and to put the power/bleed air demand into the `mission file`. Once en-route transition is reached, flaps are set to `climb` while accelerating to $210\,kt$ calibrated airspeed. Just after that, the aircraft accelerates further in `clean` configuration (least drag) until the _CAS_ATC_limit_climb_ is obtained. Since the air space below $10,000\,ft$ is more crowded, institutions like FAA and ICAO limit the speed to $250 kt$ calibrated airspeed, but you can change that in the `climb_speed_below_FL100` node of our [Aircraft Exchange File](getting_started.md/#acxml). Then, the aircraft finishes the departure procedure by climbing up to $10,000\,ft$ using the `maximum_rate_of_climb`.
 
 !!!node
-    Although `maximum_rate_of_climb` can be set as a constant value, we usually set it to $-1$ to indicate that the aircraft shall use all possible thrust of its current engine settings to achieve altitude gains. Therefore, rate of climb varies within these `climb` segments. Since acceleration is most effective and saver when keeping a constant rate of climb, it is manually set to $1\,000\,\frac{ft}{min}$/$1\,200\,\frac{ft}{min}$ which follows the ICAO's recommendations.
+    Although `maximum_rate_of_climb` can be set as a constant value, we usually set it to $-1$ to indicate that the aircraft shall use all possible thrust of its current engine settings to achieve altitude gains. Therefore, rate of climb varies within these climb segments. Since acceleration is most effective and saver when keeping a constant rate of climb, it is manually set to $1\,000\,\frac{ft}{min}$/$1\,200\,\frac{ft}{min}$ which follows the ICAO's recommendations.
 
 
 ### Standard 19 seat commuter
@@ -115,7 +115,7 @@ The first approach segment starts at $10\,000\,ft$ where the descend speed limit
 | descend      | cruise  | landing  | 15.24 (50 ft)    | -3                   | N/A                   |
 | landing      | takeoff | landing  | 0                | -3                   | N/A                   |
 
-For smaller aircraft, the approach procedure becomes less complicated. You can simply decelerate to the before mentioned CAS limit of $250\,kt$ before descending towards initial approach fix at $2\,000\,ft$. Next the aircraft's configuration is set to `approach` while decelerating to $v_{max, approach}$ with which we bring it to the ground using its `landing` configuration. Easy peasy lemon squeezy! :lemon:
+For smaller aircraft, the approach procedure becomes less complicated. You can simply decelerate to the before mentioned CAS limit of $250\,kt$ before descending towards initial approach fix at $2\,000\,ft$. Next, the aircraft's configuration is set to `approach` while decelerating to $v_{max, approach}$ with which we bring it to the ground using its `landing` configuration. Easy peasy lemon squeezy! :lemon:
 
 
 ### (Steep) Continuous Descent Approach
-- 
GitLab


From 19e9e6800d1705102710edbdf232f2749e542a32 Mon Sep 17 00:00:00 2001
From: Gerrit Pauls <gerrit.pauls@tuhh.de>
Date: Mon, 10 Feb 2025 08:19:14 +0100
Subject: [PATCH 3/5] Missed a 'for'

---
 docs/documentation/sizing/create_mission_xml/mission_steps.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/documentation/sizing/create_mission_xml/mission_steps.md b/docs/documentation/sizing/create_mission_xml/mission_steps.md
index 1a8d22e..fa4722b 100644
--- a/docs/documentation/sizing/create_mission_xml/mission_steps.md
+++ b/docs/documentation/sizing/create_mission_xml/mission_steps.md
@@ -24,7 +24,7 @@ The steps in the `mission_file` can be filled and arranged in different ways, de
 | accelerate | climb thrust setting | clean                          | N/A              | 6.10 (1200 fpm)         | CAS ATC limit climb   |
 | climb      | climb thrust setting | clean                          | 3048 (10,000 ft) | maximum rate of climb   | N/A                   |
 
-In the standard procedure, we assume that the thrust-to-weight ratio is high enough to maintain minimum safe climb speed $v_2$ (see [What a Mission Looks Like](index.md/#typical_mission)) from takeoff until en-route transition (`climb` configuration) at $3\,000\,ft$. Please mind, that EASA's CS-25 only allows extrapolation of the propulsion system's takeoff performance data up to that altitude. To do so, the aircraft shall climb with the given `maximum_rate_of_climb` and `climb_thrust_setting` from the [Configuration File](getting_started.md/#config_file) without an acceleration in between. Since the landing gear gets retracted between screen height ($35\,ft$) and $1\,500\,ft$, climbing up to $3\,000\,ft$ is divided into two segments. Like this, it's easier [Systems Design](../systems_design/index.md) to simulate the retraction and to put the power/bleed air demand into the `mission file`. Once en-route transition is reached, flaps are set to `climb` while accelerating to $210\,kt$ calibrated airspeed. Just after that, the aircraft accelerates further in `clean` configuration (least drag) until the _CAS_ATC_limit_climb_ is obtained. Since the air space below $10,000\,ft$ is more crowded, institutions like FAA and ICAO limit the speed to $250 kt$ calibrated airspeed, but you can change that in the `climb_speed_below_FL100` node of our [Aircraft Exchange File](getting_started.md/#acxml). Then, the aircraft finishes the departure procedure by climbing up to $10,000\,ft$ using the `maximum_rate_of_climb`.
+In the standard procedure, we assume that the thrust-to-weight ratio is high enough to maintain minimum safe climb speed $v_2$ (see [What a Mission Looks Like](index.md/#typical_mission)) from takeoff until en-route transition (`climb` configuration) at $3\,000\,ft$. Please mind, that EASA's CS-25 only allows extrapolation of the propulsion system's takeoff performance data up to that altitude. To do so, the aircraft shall climb with the given `maximum_rate_of_climb` and `climb_thrust_setting` from the [Configuration File](getting_started.md/#config_file) without an acceleration in between. Since the landing gear gets retracted between screen height ($35\,ft$) and $1\,500\,ft$, climbing up to $3\,000\,ft$ is divided into two segments. Like this, it's easier for [Systems Design](../systems_design/index.md) to simulate the retraction and to put the power/bleed air demand into the `mission file`. Once en-route transition is reached, flaps are set to `climb` while accelerating to $210\,kt$ calibrated airspeed. Just after that, the aircraft accelerates further in `clean` configuration (least drag) until the _CAS_ATC_limit_climb_ is obtained. Since the air space below $10,000\,ft$ is more crowded, institutions like FAA and ICAO limit the speed to $250 kt$ calibrated airspeed, but you can change that in the `climb_speed_below_FL100` node of our [Aircraft Exchange File](getting_started.md/#acxml). Then, the aircraft finishes the departure procedure by climbing up to $10,000\,ft$ using the `maximum_rate_of_climb`.
 
 !!!node
     Although `maximum_rate_of_climb` can be set as a constant value, we usually set it to $-1$ to indicate that the aircraft shall use all possible thrust of its current engine settings to achieve altitude gains. Therefore, rate of climb varies within these climb segments. Since acceleration is most effective and saver when keeping a constant rate of climb, it is manually set to $1\,000\,\frac{ft}{min}$/$1\,200\,\frac{ft}{min}$ which follows the ICAO's recommendations.
-- 
GitLab


From 8609304fd18026d5d08f8e37469ab932dac092ce Mon Sep 17 00:00:00 2001
From: Gerrit Pauls <gerrit.pauls@tuhh.de>
Date: Mon, 10 Feb 2025 08:24:04 +0100
Subject: [PATCH 4/5] Small adaption

---
 docs/documentation/sizing/create_mission_xml/mission_steps.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/documentation/sizing/create_mission_xml/mission_steps.md b/docs/documentation/sizing/create_mission_xml/mission_steps.md
index fa4722b..04552da 100644
--- a/docs/documentation/sizing/create_mission_xml/mission_steps.md
+++ b/docs/documentation/sizing/create_mission_xml/mission_steps.md
@@ -59,7 +59,7 @@ ICAO-A and ICAO-B should tackle this, but it is not ready yet :construction:
 | cruise               | cruise               | clean   | N/A              | N/A                       | N/A                               |
 | descend to approach  | idle                 | clean   | 10000 ft         | N/A                       | CAS over flight level 100 descend |
 
-After reaching $10\,000\,ft$ the aircraft accelerates to the next higher speed limit `CAS_over_flight_level_100_climb` which is usually $300\,kts$ calibrated airspeed. Then it keeps on climbing until the `initial_cruise_altitude` from where it accelerates to the `initial_cruise_mach_number` without climbing any further. In the table above, only one flight level change is displayed. How many of them will be initiated can be determined in the following way:
+After reaching $10\,000\,ft$ the aircraft accelerates to the next higher speed limit `CAS_over_flight_level_100_climb` which is usually $300\,kts$ calibrated airspeed. Again, you can change this in the aircraft XML, but when you want to stick to current regulations, you should keep $300\,kts (= 154.3334 m/s)$. Then the aircraft keeps on climbing until the `initial_cruise_altitude` from where it accelerates to the `initial_cruise_mach_number` without climbing any further. In the table above, only one flight level change is displayed. How many of them will be initiated can be determined in the following way:
 
 - Short Range ($\leq 1\,000\,NM$):
     - 1 cruise climb step
@@ -71,7 +71,7 @@ After reaching $10\,000\,ft$ the aircraft accelerates to the next higher speed l
 !!! node
     If climbs during cruise are disabled (`no_steps` node in the [Configuration File](getting_started.md/#config_file)), then only 1 climb step is generated. Also when automatic flight level changes are activated, [Mission Analysis](../../analysis/mission_analysis/index.md) will try to find an optimum by itself.
 
-Once the end of cruise is reached, the aircraft shall descend to approach using the maximum descend speed. Again, this is normally $300\,kts$ until it reaches $10\,000\,ft$.
+Once the end of cruise is reached, the aircraft shall descend to approach ($10\,000\,ft$) using the maximum descend speed.
 
 
 ## Approach
-- 
GitLab


From bcc213de8a010c2e8b8083749c0e7cb1482fb3a4 Mon Sep 17 00:00:00 2001
From: Gerrit Pauls <gerrit.pauls@tuhh.de>
Date: Mon, 10 Feb 2025 08:34:06 +0100
Subject: [PATCH 5/5] requirements_mission was missing

---
 docs/documentation/sizing/create_mission_xml/mission_steps.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/docs/documentation/sizing/create_mission_xml/mission_steps.md b/docs/documentation/sizing/create_mission_xml/mission_steps.md
index 04552da..27700c5 100644
--- a/docs/documentation/sizing/create_mission_xml/mission_steps.md
+++ b/docs/documentation/sizing/create_mission_xml/mission_steps.md
@@ -73,6 +73,9 @@ After reaching $10\,000\,ft$ the aircraft accelerates to the next higher speed l
 
 Once the end of cruise is reached, the aircraft shall descend to approach ($10\,000\,ft$) using the maximum descend speed.
 
+!!!node
+    For the `requirements_mission`, `climb_to_cruise` gets replaced by `climb_to_ceiling` where [Missionis Analysis](../../analysis/mission_analysis/index.md) searches for the maximum altitude. After this segment, the mission ends. Thus, the `mission_file` will not have any more entries after `climb_to_ceiling`.
+
 
 ## Approach
 
-- 
GitLab