Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.

Getting started

This section will guide you through the necessary steps to get the tank_design module up and running. It contains information on tool requirements and design parameters.

!!! note 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).

In the following sections you will find more information on how to configure these files to suit your needs.

Design method selection {#design-method-selection}

The calculation method is automatically chosen based on the following data from the aircraft exchange and module configuration file:

Parameter File Example *
Configuration type acXML tube_and_wing
Calculation fidelity configXML empirical
Method name configXML tank_design_tu_berlin
Energy carrier type acXML kerosene

* This example defines a generic short and medium range tube-and-wing aircraft.

Thus, it must be ensured that this data is available. More information on required data can be found in the following sections.

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 *

* The tank_design execution is also possible without mission analysis data. Alternatively, the following assumption is used to calculate the mission fuel amount:

$ m_{fuel} = n_{PAX} \cdot R \cdot \frac{E}{100 \text{ km}} $

In which

  • n_{PAX} - number of passengers
  • R - range in km
  • E - energy demand (3.35 liter per PAX per 100 km)

The following data should then be available in the acXML:

  1. Requirements and specifications
    • Design specification
      • Configuration information: Configuration type, tank definition (see below)
      • Energy carrier(s)
    • Requirements
      • Top level aircraft requirements: Range (req. for design mission only)
  2. Analysis
    • Mission energy (req. for design mission only): Consumed energy, energy carrier ID
  3. Component design: Geometrical data of
    • Fuselage
    • Wing
    • Empennage

!!! note When the UNICADO workflow is executed the tool is run automatically. In this case, all the required data should be available anyway.

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).
  • energy_share: Share of this tanks energy in relation to required mission energy (of same energy carrier). Only relevant for liquid hydrogen tanks. Not used for the calculation of kerosene tanks. Should therefore equal 0.0 for kerosene tanks.

The following sections give an overview on valid tank configurations for kerosene and liquid hydrogen driven aircraft configurations.

Kerosene driven aircraft configurations {#kerosene-driven}

For a valid tank configuration, you must first define each tank entity by setting the parameters of the ID element. You must specify a correct parameter combination of tank position and location for each ID element.

Subsequently, you must define a valid overall tank configuration for the aircraft. In other words, the combination of the individual ID elements must be valid. The following sections will guide you through the process.

Valid tank location and tank position combinations

For aircraft configurations with a kinked wing, the "wing tank configuration" consist of an inner and outer tank on each side of the aircraft and a wing center tank by default. This corresponds to numbers 1-5 in the following table that provides an overview on possible tank location and tank position combinations. Furthermore, there is the option to design a trim tank and an additional center tank.

No. Location Position Note
1 Wing Center
2 Wing Inner left
3 Wing Outer left No outer tanks available for single trapezoidal wing, only valid for kinked wing.
4 Wing Inner right
5 Wing Outer right No outer tanks available for single trapezoidal wing, only valid for kinked wing.
6 Horizontal stabilizer Total Also referred to as 'trim tank'.
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
  • energy_share equals 0.0

Furthermore, give it a clear description tag, for example wing center tank.

To define more tanks, continue by subsequently defining those parameters for the ID elements with the ID="1", ID="2", and so on. Please ensure to always keep an eye on valid tank configurations described in the next sections.

Possible tank configurations: Aircraft with kinked wing

The following table provides an overview on possible tank configurations. As can be seen, the "wing tank configuration" also corresponds to the minimum tank configuration wing_all_tanks that is similar to a tank configuration that can be found at a common medium range aircraft. The maximum number of tanks is 7. This means that the last ID element should have the ID="6".

Tanks 1-5 Tank 6 Tank 7 Configuration name
Wing - - wing_all_tanks
Wing Horizontal stabilizer - Total - wing_with_trim_tank
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

The following table provides an overview on possible tank configurations. As can be seen, the "wing tank configuration" also corresponds to the minimum tank configuration wing_all_tanks. The maximum number of tanks is 5. This means that the last ID element should have the ID="4".

Tanks 1-3 Tank 4 Tank 5 Configuration name
Wing - - wing_all_tanks
Wing Horizontal stabilizer - Total - wing_with_trim_tank
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

The following tank_definition code block snippet shows how to configure a standard "wing tank configuration" for an aircraft with a kinked wing that is similar to the one of a common commercial medium range aircraft.

<tank_definition description="Energy tanks information">
    <tank ID="0" description="Inner left wing tank">
        <energy_carrier_ID description="see energy carrier specification node">
            <value>0</value>
            <unit>1</unit>
            <lower_boundary>0</lower_boundary>
            <upper_boundary>5</upper_boundary>
        </energy_carrier_ID>
        <location description="Component where the tank is located: fuselage, wing, horizontal_stabilizer">
            <value>wing</value>
        </location>
        <position description="Position of tank in location: tailcone, rear, front, top, bottom, center, inner_left, outer_left, inner_right, outer_right, total">
            <value>inner_left</value>
        </position>
        <energy_share description="Share of this tanks energy in relation to required mission energy (of same energy carrier). Only relevant for liquid hydrogen tanks. Equals 0.0 for kerosene tanks.">
            <value>0.0</value>
            <unit>1</unit>
            <lower_boundary>0.0</lower_boundary>
            <upper_boundary>1.0</upper_boundary>
        </energy_share>
    </tank>
    <tank ID="1" description="Outer left wing tank">
        <energy_carrier_ID description="see energy carrier specification node">
            <value>0</value>
            <unit>1</unit>
            <lower_boundary>0</lower_boundary>
            <upper_boundary>5</upper_boundary>
        </energy_carrier_ID>
        <location description="Component where the tank is located: fuselage, wing, horizontal_stabilizer">
            <value>wing</value>
        </location>
        <position description="Position of tank in location: tailcone, rear, front, top, bottom, center, inner_left, outer_left, inner_right, outer_right, total">
            <value>outer_left</value>
        </position>
        <energy_share description="Share of this tanks energy in relation to required mission energy (of same energy carrier). Only relevant for liquid hydrogen tanks. Equals 0.0 for kerosene tanks.">
            <value>0.0</value>
            <unit>1</unit>
            <lower_boundary>0.0</lower_boundary>
            <upper_boundary>1.0</upper_boundary>
        </energy_share>
    </tank>
    <tank ID="2" description="Inner right wing tank">
        <energy_carrier_ID description="see energy carrier specification node">
            <value>0</value>
            <unit>1</unit>
            <lower_boundary>0</lower_boundary>
            <upper_boundary>5</upper_boundary>
        </energy_carrier_ID>
        <location description="Component where the tank is located: fuselage, wing, horizontal_stabilizer">
            <value>wing</value>
        </location>
        <position description="Position of tank in location: tailcone, rear, front, top, bottom, center, inner_left, outer_left, inner_right, outer_right, total">
            <value>inner_right</value>
        </position>
        <energy_share description="Share of this tanks energy in relation to required mission energy (of same energy carrier). Only relevant for liquid hydrogen tanks. Equals 0.0 for kerosene tanks.">
            <value>0.0</value>
            <unit>1</unit>
            <lower_boundary>0.0</lower_boundary>
            <upper_boundary>1.0</upper_boundary>
        </energy_share>
    </tank>
    <tank ID="3" description="Outer right wing tank">
        <energy_carrier_ID description="see energy carrier specification node">
            <value>0</value>
            <unit>1</unit>
            <lower_boundary>0</lower_boundary>
            <upper_boundary>5</upper_boundary>
        </energy_carrier_ID>
        <location description="Component where the tank is located: fuselage, wing, horizontal_stabilizer">
            <value>wing</value>
        </location>
        <position description="Position of tank in location: tailcone, rear, front, top, bottom, center, inner_left, outer_left, inner_right, outer_right, total">
            <value>outer_right</value>
        </position>
        <energy_share description="Share of this tanks energy in relation to required mission energy (of same energy carrier). Only relevant for liquid hydrogen tanks. Equals 0.0 for kerosene tanks.">
            <value>0.0</value>
            <unit>1</unit>
            <lower_boundary>0.0</lower_boundary>
            <upper_boundary>1.0</upper_boundary>
        </energy_share>
    </tank>
    <tank ID="4" description="Wing center tank">
        <energy_carrier_ID description="see energy carrier specification node">
            <value>0</value>
            <unit>1</unit>
            <lower_boundary>0</lower_boundary>
            <upper_boundary>5</upper_boundary>
        </energy_carrier_ID>
        <location description="Component where the tank is located: fuselage, wing, horizontal_stabilizer">
            <value>wing</value>
        </location>
        <position description="Position of tank in location: tailcone, rear, front, top, bottom, center, inner_left, outer_left, inner_right, outer_right, total">
            <value>center</value>
        </position>
        <energy_share description="Share of this tanks energy in relation to required mission energy (of same energy carrier). Only relevant for liquid hydrogen tanks. Equals 0.0 for kerosene tanks.">
            <value>0.0</value>
            <unit>1</unit>
            <lower_boundary>0.0</lower_boundary>
            <upper_boundary>1.0</upper_boundary>
        </energy_share>
    </tank>
</tank_definition>

!!! note For aircraft with a single trapezoidal wing, please delete the Outer left tank and Outer right tank elements and adjust the other tank IDs accordingly.

Liquid hydrogen driven aircraft configurations {#lh2-driven}

tbd. 🚧

Module configuration file {#module-configuration-file}

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).

!!! note If the tool is executed via the workflow, those settings are set by the workflow settings.

The program settings are structured like this (descriptions can be found in the tank_design_conf.xml):

Program Settings
|- Configuration (ID="tube_and_wing")
|  |- Fidelity name
|  |- Method name
|  |- Fidelity (ID="empirical")
|  |  |- Tank design tu berlin
|  |  |  |- General
|  |  |  |  |- Mass technology factor
|  |  |  |- Specific
|  |  |  |  |- Kerosene tank design parameter
|  |  |  |  |  |- Obelisk calculation method
|  |  |  |  |  |- A/D factor
|  |  |  |  |  |- Factor volume usable
|  |  |  |  |  |- Temperature expansion allowance
|  |  |  |  |  |- Buffer inner tank segment
|  |  |  |  |  |- Buffer outer tank segment
|  |  |  |  |  |- Buffer center tank segment
|  |  |  |  |- Liquid hydrogen tank design parameter
|  |  |  |  |  |- End cap type
|  |  |  |  |  |- Internal pressure
|  |  |  |  |  |- Insulation type
|  |  |  |  |  |- Insulation material
|  |  |  |  |  |- Insulation thickness
|  |  |  |  |  |- Insulation density
|  |  |  |  |  |- Material wall
|  |  |  |  |  |- Density wall
|  |  |  |  |  |- Wall thickness calculation method
|  |  |  |  |  |- Mass baffle
|  |  |  |  |  |- Mass pumps
|  |  |  |  |- Miscellaneous
|  |  |  |  |  |- Factor usable diameter
|  |  |  |  |  |- Factor volume allowance

Additional requirements {#additional-requirements}

There is no additional data required at the moment.

Next steps {#next-steps}

The next step is to run the tank_design module.