Skip to content
Snippets Groups Projects
Commit 02451390 authored by s-roscher's avatar s-roscher Committed by Andi
Browse files

Documentation/update tank design

parent 5dd4ae6d
No related branches found
No related tags found
3 merge requests!76Draft: Updated Python code example,!73Initial open source version,!38Documentation/update tank design
......@@ -12,9 +12,11 @@ This section will guide you through the necessary steps to get the _tank\_design
It is assumed that you have the `UNICADO package` installed including the executables and UNICADO libraries.
Generally, we use two files to set or configure modules in UNICADO:
- The aircraft exchange file (or _acXML_) includes
- data related inputs (e.g., required energy, component design data) and
- data related outputs (e.g., tank positions).
- The module configuration file `tank_design_conf.xml` (also _configXML_) includes
- control settings (e.g., enable/disable generating plots) and
- program settings (e.g., information on buffers).
......@@ -37,12 +39,14 @@ Thus, it must be ensured that this data is available. More information on requir
## Aircraft exchange file requirements {#aircraft-exchange-file}
To single execute the _tank\_design_ module, we need an _acXML_ file that already contains the output data from the following tools:
- _wing\_design_
- _empennage\_design_
- _fuselage\_design_
- _mission\_analysis_ - _tank\_design_ execution also possible without mission analysis data (an assumption is made to calculate mission energy amount)
- _mission\_analysis_ <sup>*</sup>
The following data should then be available in the _acXML_:
1. Requirements and specifications
- Design specification
- Configuration information: Configuration type, tank definition ([see below](#configuring-tank-design-parameters-in-the-aircraft-exchange-file))
......@@ -59,11 +63,26 @@ The following data should then be available in the _acXML_:
!!! note
When the UNICADO workflow is executed the tool is run automatically. In this case, all the required data should be available anyway.
<sup>*</sup> The _tank\_design_ execution is also possible without mission analysis data. Alternatively, the following assumption is used to calculate the mission fuel amount:
$$
m_{\text{fuel}} = n_{\text{PAX}} \cdot R \cdot \frac{E}{100 \text{ km}}
$$
In which
- $n_{\text{PAX}}$ - number of passengers
- $R$ - range in km
- $E$ - energy demand (3.35 liter per PAX per 100 km)
Using the volumetric energy density of kerosene, the initial energy demand can then be calculated.
## Configuring tank design parameters in the aircraft exchange file {#configuring-tank-design-parameters-in-the-aircraft-exchange-file}
The desired tank configuration is defined by the user in the aircraft exchange file. The information can be found in the `aircraft_exchange_file/requirements_and_specifications/design_specification/configuration/tank_definition` block.
### The ID `tank_element`
Each tank is configured in the _acXML_ as one element (ID element) with the following parameters:
- `energy_carrier_ID`: ID of energy carrier to obtain which fuel is to be stored in the tanks.
- `location`: Aircraft component where the tank is located (valid options depend on the energy carrier).
- `position`: Position at the desired location (valid options depend on location and energy carrier).
......@@ -91,6 +110,7 @@ For aircraft configurations with a kinked wing, the "wing tank configuration" co
| 7 | Fuselage | Center | Also referred to as 'additional center tank'. |
For example, to define a valid combination for the wing center tank, set the following parameters for the ID element `ID="0"`:
- `energy_carrier_ID` to `0` (it is assumed that `0` equals kerosene)
- `location` to `wing`
- `position` to `center`
......@@ -110,6 +130,7 @@ The following table provides an overview on possible tank configurations. As can
| Wing | Fuselage - Center | - | wing_with_additional_center_tank |
| Wing | Horizontal stabilizer - Total | Fuselage - Center | wing_with_additional_center_and_trim_tank|
| Wing | Fuselage - Center | Horizontal stabilizer - Total | wing_with_additional_center_and_trim_tank|
Note: "Wing" always refers to either the combinations 1 to 5 of the table in the previous section ("wing tank configuration").
#### Possible tank configurations: Aircraft with singe trapezoidal wing
......@@ -122,6 +143,7 @@ The following table provides an overview on possible tank configurations. As can
| Wing | Fuselage - Center | - | wing_with_additional_center_tank |
| Wing | Horizontal stabilizer - Total | Fuselage - Center | wing_with_additional_center_and_trim_tank|
| Wing | Fuselage - Center | Horizontal stabilizer - Total | wing_with_additional_center_and_trim_tank|
Note: "Wing" always refers to the combinations 1, 2, and 4 of the table in the previous section ("wing tank configuration").
#### Example: Minimum tank configuration
......@@ -242,6 +264,7 @@ tbd. :construction:
The _configXML_ is structured into two blocks: the control and program settings.
The control settings are standardized in UNICADO and will not be described in detail here. But to get started, you have to change at least
- the `aircraft_exchange_file_name` and `aircraft_exchange_file_directory` to your respective settings,
- the `console_output` at least to `mode_1`, and
- the `plot_output` to false (or define `inkscape_path` and `gnuplot_path`).
......
......@@ -13,10 +13,12 @@ Blended-wing-body |... |... |... |under development
## A user's guide to tank design
The _tank\_design_ tool is your key to designing the aircraft's fuel storage. In this user documentation, you’ll find all the information you need to understand the tool, as well as the necessary inputs and configurations to run a tank design from the ground up.
The following sections will walk you through the process:
- [Getting started](getting_started.md)
- [Run your first tank design](run_your_first_tank_design.md)
For a comprehensive understanding of the tool’s functionality, the documentation is structured into two distinct sections:
- A [method description](tank_design_method.md) and
- a [software architecture](software_architecture.md)
section.
......
......@@ -3,6 +3,7 @@ Let's dive into the fun part and design some tanks!
## Tool single execution
The tool can be executed from the console directly if all paths are set. The following will happen:
- [Console output](#console-output)
- [Generation of reports and plots](#reporting)
- [Writing output to aircraft exchange file](#acxml)
......@@ -10,7 +11,7 @@ The tool can be executed from the console directly if all paths are set. The fol
Some of the above mentioned steps did not work? Check out the [troubleshooting](#troubleshooting) section for advices.
Also, if you need some additional information on the underlying methodology, check out the page on the [tank design method](tank_design_method.md).
So, feel free to open the terminal and run `tank_design.exe` to see what happens...
So, feel free to open the terminal and run `python.exe tank_design.py` to see what happens...
### Console output {#console-output}
Firstly, you see output in the console window. Let's go through it step by step...
......@@ -46,11 +47,11 @@ The tool continues with the calculation of the wing tank entities - in this exam
2024-12-10 13:05:45,847 - PRINT - Energy check: Wing center tank necessary to store required energy amount.
2024-12-10 13:05:45,847 - PRINT - Energy check: Energy demand covered.
```
After the wing tank design there is an energy check to review whether the required mission energy can be stored in the tanks. If the energy demand would not be covered up until this point, an energy check would be occur after the calculation of every subsequent tank.
After the wing tank design there is an energy check to review whether the required mission energy can be stored in the tanks. If the energy demand would not be covered up until this point, an energy check would be carried out after the calculation of every subsequent tank.
```
2024-12-10 13:05:45,848 - PRINT - Additional center tank design started...
2024-12-10 13:05:45,848 - PRINT - Additional center tank (tank_5) calculated. Volume (energy) available: 3,068.50 L (99,189.26 MJ)
2024-12-10 13:05:45,848 - PRINT - Additional center tank (tank_5) calculated. Volume (energy) available: 3,068.50 L (103,818.10 MJ)
2024-12-10 13:05:45,849 - PRINT - Additional center tank design completed.
2024-12-10 13:05:45,849 - PRINT - Additional center tank is generated but unnecessary to store required energy amount.
```
......@@ -78,15 +79,14 @@ Finally, you receive information about the reports and plots created (depending
### Reporting {#reporting}
In the following, a short overview is given on the generated reports:
- A `tank_design.log` file is written within the directory of the executable
- Depending on your settings, the following output is generated and saved in the `reporting` folder, located in the directory of the aircraft exchange file:
- an HTML report in the `report_html` folder (not implemented yet)
- an HTML report in the `report_html` folder
- a TeX report in the `report_tex` folder (not implemented yet)
- an XML file with additional output data in the `report_xml` folder (not written since no more data output necessary)
- an XML file with additional output data in the `report_xml` folder (currently, only a rough output file is generated with the routing information but without any additional data)
- plots in the `plots` folder (not implemented yet)
@warning Steffi: Check if additional output written
### Write data to the aircraft exchange file {#acxml}
!!! note
The _acXML_ is an exchange file - we agreed on that only data will be saved as output that is needed by another tool!
......@@ -96,33 +96,22 @@ Results are saved in the aircraft exchange file at the `/aircraft_exchange_file/
Aircraft exchange file
|- Component design
| |- Tank
| | |- Position
| | | |- x
| | | |- y
| | | |- z
| | |- Mass properties
| | | |- ...
| | |- Position*
| | |- Mass properties**
| | |- Specific
| | | |- Additional fuselage length
| | | |- Tank (ID="0")
| | | | |- Name
| | | | |- Designator
| | | | |- Position
| | | | | |- x
| | | | | |- y
| | | | | |- z
| | | | |- Direction
| | | | |- Mass properties
| | | | | |- ...
| | | | |- Position*
| | | | |- Direction*
| | | | |- Mass properties**
| | | | |- Maximum energy capacity
| | | | |- Energy required for mission energy
| | | | |- Energy capacity required for mission
| | | | |- Geometry
| | | | | |- Cross section (ID="0")
| | | | | | |- Name
| | | | | | |- Position
| | | | | | | |- x
| | | | | | | |- y
| | | | | | | |- z
| | | | | | |- Position*
| | | | | | |- Shape
| | | | | | |- Height
| | | | | | |- Width
......@@ -133,5 +122,9 @@ Aircraft exchange file
| | | | |- ...
```
<sup>*</sup> Node has been shortened. It contains the following sub-nodes: x, y, z
<sup>*</sup> Node has been shortened. It contains sub-nodes with information on the mass, inertia, and center of gravity.
## Troubleshooting {#troubleshooting}
- The tool does not run properly? *Make sure you have all the paths set up correctly and the specified elements exist.*
# Calculation method
The task of the _tank_design_ module differs slightly depending on the energy carrier:
- [Kerosene](#kerosene-tanks) - Determine the maximum fuel capacity of the aircraft using its geometry.
- [Liquid hydrogen](#liquid-hydrogen-tanks) - Size tanks to ensure that the required amount of fuel is available.
......@@ -42,6 +43,15 @@ The obelisk method simplifies the wing by dividing it into several volumes. Depe
![](figures/01_tank_locations.png)
##### Obelisk geometry
The geometry of the obelisks is obtained based on the wing geometry.
Knowing the chord length $l_\text{chord}$ and the thickness-to-chord ratio, the maximum profile thickness $h_\text{max}$ can be obtained.
The actual thickness $h_1$ is calculated using the a-to-d factor (user input).
The width of the obelisk $w_1$ is defined as the distance between the front $p_\text{fs}$ and the rear spar $p_\text{rs}$ of the wing.
![](figures/03_wing_box.png)
The obelisk volume can be determined using two different approaches that are described in the following.
The user can select the desired method via the following node in the `program_settings` section of the _confXML_:
`configuration[@ID="tube_and_wing"]/specific/kerosene_tank_design_parameter/obelisk_calculation_method`.
......@@ -53,10 +63,13 @@ The user can select the desired method via the following node in the `program_se
![](figures/02_obelisk.png)
The volume can be calculated using the following equation:
$
$$
V_{\text{obelisk}} = \frac{l}{3} \cdot \left( S_1 + S_2 + \frac{h_1 \cdot w_2 + h_2 \cdot w_1}{2}\right)
$
$$
In which
- $l$ - length
- $S_1$, $S_2$ - end face areas
- $h_1$, $w_1$ - height and width of end face $S_1$
......@@ -91,9 +104,10 @@ The Simpson's rule is a method of numerical integration that is often used to ca
cross-sections are known at different positions. In the case of an obelisk - i.e. a body with square or rectangular
cross-sections that vary along the height - the volume is integrated as the sum of the cross-sectional areas $S(x)$
along the length $l$:
$
$$
V_{\text{obelisk}} = \int_0^l S(x) \, dx
$
$$
If the cross-sectional areas $S(x)$ at $i+1$ uniformly distributed points are known (which is the case for the
tank design), Simpson's rule can be applied.
......@@ -104,35 +118,39 @@ interpolation (see following figure). Each tank is thus divided into two section
![](figures/02_obelisk_simpson.png)
The tank volume can therefore be determined using a simplified Simpson's rule:
$
$$
V_{\text{obelisk}} = \frac{l}{6.0} \cdot (S_{1} + 4.0 \cdot S_{12} + S_{2})
$
$$
#### Calculate net tank volume {#net-tank-volume}
The volume must then be converted from cubic meter to liter. A portion of the volume of the obelisk is lost to the internal structure of the integral tanks (e.g., ribs), with a reduction factor $ f_{\text{volume,usable}} = 0.95$.
Additionally, the expansion of the fuel due to heating must be considered, with a temperature expansion allowance of $ a_{\text{temperature,expansion}} = 0.95$. Thus, the wing tank volume is calculated as:
$
$$
V_{\text{tank}} = f_{\text{volume,usable}} \cdot a_{\text{temperature,expansion}} \cdot V_{\text{obelisk}}
$
$$
!!! note
As the wing has a vent tank at each wing tip to allow for the thermodynamic expansion of the fuel, this factor is `1.0` for the wing tanks.
#### Calculate energy {#calculate-energy}
Using the volumetric energy density of kerosene $\eta_{\text{v,kerosene}}$, the energy contained in each tank can be determined:
$
$$
V_{\text{tank}} = \eta_{\text{v,kerosene}} \cdot V_{\text{obelisk}}
$
$$
### Additional center tank
The module allows the installation of an additional center tank in the form of an LD3-45 container. The process includes the following steps:
1. **Height check**: The program first verifies whether the cargo compartment has sufficient height to accommodate the container.
- If insufficient height is detected: All output values related to the center tank are set to zero.
- If sufficient height is detected: The installation proceeds.
- If insufficient height is detected: All output values related to the center tank are set to zero.
- If sufficient height is detected: The installation proceeds.
2. **Installation placement**: The LD3-45 container is positioned 10 cm behind the end of the landing gear bay, aligning approximately with the trailing edge of the wing.
3. **Container data**: The volume and dimensions of the LD3-45 container are predefined and referenced from the Lufthansa Cargo website<sup>[2]</sup>.
The energy contained in an additional center tank is calculated by first determining the usable volume and then taking into account the volumetric energy density of kerosene. With the known factors $ f_{\text{volume,usable}}$ and $a_{\text{temperature,expansion}}$, the usable volume of an additional center tank results in $V_{\text{ACT,usable}} = 3068.5\text{ L}$ which is equal to an energy amount of $ E_{\text{ACT}} = 99189262.5\text{ MJ}$.
The energy contained in an additional center tank is calculated by first determining the usable volume and then taking into account the volumetric energy density of kerosene. With the known factors $ f_{\text{volume,usable}}$ and $a_{\text{temperature,expansion}}$, the usable volume of an additional center tank results in $V_{\text{ACT,usable}} = 3,068.5\text{ L}$ which is equal to an energy amount of $ E_{\text{ACT}} = 103,818.1\text{ MJ}$.
#### Limitations
**Single Center Tank Limit:** The program currently supports the calculation of only one additional center tank. Attempts to add more tanks will not be processed.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment