Skip to content
Snippets Groups Projects
Commit 91f89286 authored by Christopher Ruwisch's avatar Christopher Ruwisch
Browse files

update empennage_design documentation

parent b873a64b
No related branches found
No related tags found
3 merge requests!76Draft: Updated Python code example,!73Initial open source version,!22[Update] empennage design documentation
Pipeline #1602939 waiting for manual action
# Design methods
On this page you get information about the methods used to design an empennage
## Volume coefficient method
The volume coefficient method which is used to generate the empennage. It is a classic method by selecting an appropriate Volumecoefficient where it creates a relation between the reference area and the empennage area.
E.g. the volume coefficient for a conventional tail (vertical stabilizer ($vs$) and horizontal stabilizer ($hs$)) is given for the vertical stabilizer by:
$$
C_{vs} = \frac{S_{ref}\cdot b}{S_{vs}\cdot l_{vs}} \qquad C_{hs} = \frac{S_{ref}\cdot \overline{c}}{S_{hs}\cdot l_{hs}}
$$
where:
- $C_{vs}$: Volumecoefficient
- $S_{ref}$: Wing Reference Area
- $S_{vs}$: Area vertical stabilizer
- $b$: Wing span
- $\overline{c}$: Wing Mac
- $l_{vs}$: Distance between neutral point of wing and neutral point of vertical stabilizer
This equation is the starting point for determining the geometry of a vertical stabilizer. A crucial part is to determine the root chord and the position of the neutral point of the vertical stabilizer based on it's geometry. In this case to keep the surface of the vertical stabilizer small to reduce the drag of the stabilizer, the leverarm $l_{vs}$ must be maximized. This leads to an root finding problem, when aspect ratio, taper ratio and sweep are predefined based on delta values or factors of the main wing properties.
In this case the root chord is found by a newton algorithm, which maximizes the leverarm $l_{vs}$. As a predefined parameter, the maximum distance from the end of the fuselage most backward point which can be varied by the `rear_x_offset` parameter.
From this point on, the geometry is fixed and the mass is computed by a method from the Flight Optimization System (Flops) which are empirical calculation methods. The spar positions and control device(s) positions can be determined by user in a relative position frame from the configuration file.
!!! note
For a conventional tail, empirical volume coefficients are calculated when the volume coefficient of a tail element is set to a value of zero.
......@@ -6,13 +6,14 @@ This guide gives you a step-by-step overview of the parameters which affects the
The main method selection, _which_ empennage shall be designed comes from the _Aircraft Exchange File_. This is defined in the Block `requirements_and_specification` of the _Aircraft Exchange File_.
Here you have a main element which will affect the empennage design inside `design_specification/configuration`:
- `configuration_type`: This defines the aircraft configuration which the wing is build for
- `tube_and_wing`
- `blended_wing_body`
- `tube_and_wing`
- `blended_wing_body`
- `empennage_definition`: This defines what type of empennage shall be designed
- for _Tube and Wing_: `conventional` or `t_tail`
- for _Blended Wing Body_: `vertical_tails`
- for _Tube and Wing_: `conventional` or `t_tail`
- for _Blended Wing Body_: `vertical_tails`
The configuration file of the Empennage Design tool `empennage\_design_conf.xml`, gives you then more specified parameters to chose which will tailor the empennage to your desire in the `program_settings` Block.
......@@ -20,16 +21,18 @@ The configuration file of the Empennage Design tool `empennage\_design_conf.xml`
The file comes with mode selectors and associated parameters to set which can vary.
Parameters to chose:
- `design_mode`:
- `mode_0: design`: Designs an empennage from scratch
- `mode_1: redesign`: Redesigns an existing empennage (not implemented - planned in a future release)
- `mode_0: design`: Designs an empennage from scratch
- `mode_1: redesign`: Redesigns an existing empennage (not implemented - planned in a future release)
As an example selection:
- `configuration_type` → `tube_and_wing`
- `empennage_type` → `conventional`
This selects a conventional tail for a tube and wing configuration.
<pre class="mermaid">
```mermaid
graph LR;
A[Empennage Design] ==> B[Tube and Wing];
B==>C[Conventional];
......@@ -38,137 +41,131 @@ graph LR;
D-->F[Vertical Tails];
style B stroke-width:4px
style C stroke:#0f0, stroke-width:4px
</pre>
```
Each `empennage_type` will have it's own block to chose parameters from.
<dl class="section todo">
<dt>Note</dt>
<dd>For default values or ranges, you should check the description of the parameters or the allowed ranges inside the configuration file</dd>
</dl>
<dl class="section invariant">
<dt>Tip</dt>
<dd>If you are missing some of the terms in here - take a look at [basic concepts](basic-concepts.md).</dd>
</dl>
!!! note
For default values or ranges, you should check the description of the parameters or the allowed ranges inside the configuration file
!!! tip
If you are missing some of the terms in here - take a look at [:octicons-arrow-right-16: basic concepts](basic-concepts.md).
## Configuration parameters &rarr; General
In this section you find parameters for an empennage. To keep it simple, a so called ID `tail_element` is part of each existing configuration. It defines basic parts for a classic volume coefficient method (low-fidelity).
### The Tail Elements parameters (ID Element)
Each tail element has the following parameter which may differ from empennage type
- `name`: Name of the element
- `parameter`:
- `offset`: Offset in multiple directions (differs for empennage type)
- `volume_coefficent`: Associated volume coefficient, if coefficient is set to 0 automatic values are used based on empirical data
- `factor_aspect_ratio`: A factor on how to scale the aspect ratio of a part of the empennage according to the wing aspect ratio
- `factor_taper_ratio`: A factor on how to scale the taper ratio of a part of the empennage according to the wing aspect ratio
- `delta_sweep`: Additional sweep to a part of the empennage according to the wing sweep
- `offset`: Offset in multiple directions (differs for empennage type)
- `volume_coefficent`: Associated volume coefficient, if coefficient is set to 0 automatic values are used based on empirical data
- `factor_aspect_ratio`: A factor on how to scale the aspect ratio of a part of the empennage according to the wing aspect ratio
- `factor_taper_ratio`: A factor on how to scale the taper ratio of a part of the empennage according to the wing aspect ratio
- `delta_sweep`: Additional sweep to a part of the empennage according to the wing sweep
- `profiles`: Tail profile used (root and tip)
- `profile`: Tail profile name - ID Element
- `profile`: Tail profile name - ID Element
- `spars`: Spar for a tail
- `spar`: Spar Element - ID Element
- `param: name`: Set spar name (e.g. front spar, rear spar etc.)
- `param: position`: Set position parameters like chordwise and spanwise position for inner and outer dimension of a spar
- `spar`: Spar Element - ID Element
- `param: name`: Set spar name (e.g. front spar, rear spar etc.)
- `param: position`: Set position parameters like chordwise and spanwise position for inner and outer dimension of a spar
- `control_devices`: Control devices for a tail
- `control_device`: Control device Element - ID Element
- `param: type`: Sets type of control device (e.g. aileron, rudder, elevator...)
- `param: deflection`: Set positive and negative deflection limits
- `param: position`: Set position parameters like chordwise and spanwise position for inner and outer dimension of a control device
- `control_device`: Control device Element - ID Element
- `param: type`: Sets type of control device (e.g. aileron, rudder, elevator...)
- `param: deflection`: Set positive and negative deflection limits
- `param: position`: Set position parameters like chordwise and spanwise position for inner and outer dimension of a control device
### Tube and Wing: The Conventional Tail (low fidelity &rarr Volume Coefficient Method)
For a conventional tail, two tail elements are required! Here specific parts should be mentioned:
- `tail_element ID="0"`:
- `name`: vertical_stabilizer
- `offset`: Offset of the vertical stabilizer
- `rear_x_offset`: Set offset to between vertical stabilizer at root chord trailing edge to the fuselage end
- `centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
- `name`: vertical_stabilizer
- `offset`: Offset of the vertical stabilizer
- `rear_x_offset`: Set offset to between vertical stabilizer at root chord trailing edge to the fuselage end
- `centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
- `tail_element ID="1"`:
- `name`: horizontal_stabilizer
- `offset`: Offset of the horizontal stabilizer
- `rear_x_offset`: Set offset to between horizontal stabilizer at root chord trailing edge to the fuselage end
- `centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
<dl class="section todo">
<dt>Note</dt>
<dd>Control surfaces should be named here according to its usage e.g. horizontal stabilizer has an elevator and vertical stabilizer has a rudder.</dd>
</dl>
<dl class="section bug">
<dt>Important</dt>
<dd>The user must be careful! You can choose values in a certain range, however always keep in mind _with great power comes great responsibility!_</dd>
</dl>
- `name`: horizontal_stabilizer
- `offset`: Offset of the horizontal stabilizer
- `rear_x_offset`: Set offset to between horizontal stabilizer at root chord trailing edge to the fuselage end
- `centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
!!! note
Control surfaces should be named here according to its usage e.g. horizontal stabilizer has an elevator and vertical stabilizer has a rudder.
!!! danger "Important"
The user must be careful! You can choose values in a certain range, however always keep in mind _with great power comes great responsibility!_
### Tube and Wing: The T-Tail (low fidelity &rarr Volume Coefficient Method)
For a T-tail, two tail elements are required! Here specific parts should be mentioned:
- `tail_element ID="0"`:
- `name`: vertical_stabilizer
- `offset`: Offset of the vertical stabilizer
- `param: rear_x_offset`: Set offset between vertical stabilizer at root chord trailing edge to the fuselage end
- `param: centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `param: centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
- `name`: vertical_stabilizer
- `offset`: Offset of the vertical stabilizer
- `param: rear_x_offset`: Set offset between vertical stabilizer at root chord trailing edge to the fuselage end
- `param: centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `param: centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
- `tail_element ID="1"`:
- `name`: horizontal_stabilizer
- `offset`: Offset of the horizontal stabilizer trailing
- `param: rear_x_offset`: Set offset between horizontal stabilizer at root chord trailing edge to the tip chord of the vertical stabilizer trailing edge.
- `param: centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `param: centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
- `name`: horizontal_stabilizer
- `offset`: Offset of the horizontal stabilizer trailing
- `param: rear_x_offset`: Set offset between horizontal stabilizer at root chord trailing edge to the tip chord of the vertical stabilizer trailing edge.
- `param: centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be zero
- `param: centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
!!! note
Control surfaces should be named here according to its usage e.g. horizontal stabilizer has an elevator and vertical stabilizer has a rudder.
<dl class="section todo">
<dt>Note</dt>
<dd>Control surfaces should be named here according to its usage e.g. horizontal stabilizer has an elevator and vertical stabilizer has a rudder.</dd>
</dl>
!!! danger "Important"
The user must be careful! You can choose values in a certain range, however always keep in mind _with great power comes great responsibility!_.
<dl class="section bug">
<dt>Important</dt>
<dd>The user must be careful! You can choose values in a certain range, however always keep in mind _with great power comes great responsibility!_</dd>
</dl>
### Blended Wing Body: The Vertical Tails method (low fidelity &rarr Volume Coefficient Method)
### Blended Wing Body: The Vertical Tails method (low fidelity &rarr; Volume Coefficient Method)
For a blended wing body, only one tail element is required! This method is experimental and will only be applyable on the center body, so no checking of values is active to give you freedom to design!
It will create a tail and it's symmetric partner mirrored on the centerline of the Blended Wing Body. So keep in mind to keep the `offset` section correctly.
- `offset`:
- `param: rear_x_offset`: Set offset between vertical stabilizer at root chord trailing edge to the end of the fuselage (center body wing) at specified y offset.
- `param: centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be NONE zero
- `param: centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
- `param: rear_x_offset`: Set offset between vertical stabilizer at root chord trailing edge to the end of the fuselage (center body wing) at specified y offset.
- `param: centerline_y_offset`: Set offset from the centerline of the fuselage in y direction - should be NONE zero
- `param: centerline_z_offset`: Set offset from the centerline of the fuselage in z direction - should be zero
A copied version will be generated automatically.
<dl class="section warning">
<dt>Warning</dt>
<dd>Do not create a second element on the other side, it will be mirrored automatically.</dd>
</dl>
!!! warning
Do not create a second element on the other side, it will be mirrored automatically.
!!! danger "Important"
The user must be careful! You can choose values in a certain range, however always keep in mind _with great power comes great responsibility!_.
<dl class="section bug">
<dt>Important</dt>
<dd>The user must be careful! You can choose values in a certain range, however always keep in mind _with great power comes great responsibility!_</dd>
</dl>
### Mass Calculation methods - general
_Mass Calculation Methods_
- `mass`: How to calculate the mass methods
- `mode_0: flops`: Calculate the empennage mass according to FLOPS (_NASA Flight Optimization System_)
-
- `mass`: How to calculate the mass methods
- `mode_0: flops`: Calculate the empennage mass according to FLOPS (_NASA Flight Optimization System_)
## Additional configurations
Additionally, one has to define the common airfoil data paths inside the configuration file:
- `common_airfoil_data_paths`: Defines the path, where to look for airfoils - normally a database
## Additional information and requirements
The methods in the empennage design tool also require additional information on the wing and the fuselage from the requirements and specification block of the _Aircraft Exchange File_.
<dl class="section bug">
<dt>Important</dt>
<dd>Keep in mind that the _empennage\_design_ tool generates an empennage as a part of an aircraft. This lets it rely on specific values, e.g. for defining the area inside the fuselage etc. This leads to mandatory items at this point:
- A specified fuselage - here length and width and height are necessary to determine wing geometry and wing position
- Initial Maximum Takeoff Mass (MTOM) - for determination of the wing area necessary based on the wing loading (only if method is selected)</dd>
</dl>
!!! danger "Important"
Keep in mind that the _empennage\_design_ tool generates an empennage as a part of an aircraft. This lets it rely on specific values, e.g. for defining the area inside the fuselage etc. This leads to mandatory items at this point:
- A specified fuselage - here length and width and height are necessary to determine wing geometry and wing position
- Initial Maximum Takeoff Mass (MTOM) - for determination of the wing area necessary based on the wing loading (only if method is selected)
Please keep in mind, that the module is still in beta phase and you can gratefully contribute to the
## Next Steps
The next step is to run the _empennage\_design_ tool. So let's get your wings from [Design your first empennage](dfe.md)
The next step is to run the _empennage\_design_ tool. So let's get your empennage from [:octicons-arrow-right-16: Design your first empennage](run-your-first-empennage-design.md)
# Introduction {#mainpage}
The empennage is an essential part of the aircraft. The _empennage\_design_ tool is one of the core design tools in UNICADO and enables the workflow to design an empennage according to specified requirements and design specifications.
According to the workflow, the tool requires a valid _Aircraft Exchange File_ with inputs from the tools _initial\_sizing_, _fuselage\_design_ and _wing\_design_.
```mermaid
flowchart LR
A@{ shape: sm-circ } --> B["..."]
B --> D@{ shape: rounded, label: "Wing Design"}
D --> E@{ shape: rounded, label: "Empennage Design"} --> F["..."]
style F stroke: none, fill: none
style B stroke: none, fill: none
style D stroke: #9e0f0f,fill: #9e0f0f
```
## Summary of features
Here is a quick overview of what the tool is currently capable of including a preview which is planned:
| Configuration | Empennage Type | Method | Status |
|-------------------|----------------|-------------------|:---------------------------------------:|
| tube-and-wing | Conventional | Volumecoefficient | running :octicons-feed-issue-closed-16: |
| tube-and-wing | T-Tail | Volumecoefficient | running :octicons-beaker-16: |
| blended-wing-body | Vertical-Tails | Volumecoefficient | running (experimental) :octicons-beaker-16: |
## A User's Guide to Empennage Design
The _empennage\_design_ tool will help you design various empennages for classical configurations to blended wing body confiugartions. This user documentation will guide you through all necessary steps to understand the tool as well as the necessary inputs and configurations to create a new empennage from scratch.
The following pages will guide you through the process of generating your first empennage within UNICADO:
- [Basic Concepts](basic-concepts.md)
- [Getting Started](getting-started.md)
- [Design your first empennage](dfe.md)
[:octicons-arrow-right-16: Basic Concepts](basic-concepts.md)
[:octicons-arrow-right-16: Getting Started](getting-started.md)
[:octicons-arrow-right-16: Design Methods](design-methods.md)
[:octicons-arrow-right-16: Design your first empennage](run-your-first-empennage-design.md)
So let's get started!
......@@ -19,10 +43,9 @@ If you are familiar with these concepts and want to contribute - head over to th
The following pages will help you understand the code structure:
- [Prerequisites](prerequisites.md)
- [Build the code](build-the-code.md)
- [Empennage module structure](wing-module-structure.md)
- [Available methods](available-methods.md)
- [Method template](method-template.md)
[:octicons-arrow-right-16: Prerequisites](prerequisites.md)
[:octicons-arrow-right-16: Build the code](build-the-code.md)
[:octicons-arrow-right-16: Empennage module structure](empennage-module-structure.md)
[:octicons-arrow-right-16: Method template](method-template.md)
We appreciate it!
# Design your first empennage {#design-your-first-empennage}
Let's dive into the fun part. In this guide we will create an empennage for a classic tube and wing configuration with a conventional empennage design method.
- [Requirements:](#requirements) - Information on tool requirements
- [Design parameters:](#design-parameters) - Information on design parameters
- [Tool execution:](#tool-execution) - Tool execution information
- [Reporting](#reporting) - Wing Design tool report information
- [Changing parameters](#changing-parameters) - The fun part! Let's change parameters
- [Troubleshooting](#troubleshooting) - Something went wrong? Maybe you are not the first one!
[:octicons-arrow-right-16: Requirements:](#requirements) - Information on tool requirements
The empennage will be part of a generic tube and wing aircraft which is a look-a-like A320.
[:octicons-arrow-right-16: Design parameters:](#design-parameters) - Information on design parameters
[:octicons-arrow-right-16: Tool execution:](#tool-execution) - Tool execution information
[:octicons-arrow-right-16: Reporting](#reporting) - Wing Design tool report information
The wing will be part of a generic tube and wing aircraft which is a look-a-like A320.
[:octicons-arrow-right-16: Changing parameters](#changing-parameters) - The fun part! Let's change parameters
[:octicons-arrow-right-16: Troubleshooting](#troubleshooting) - Something went wrong? Maybe you are not the first one!
The empennage will be part of a generic tube and wing aircraft which is a look-a-like A320.
## Requirements
Therefor we use an _Aircraft Exchange File_ where the tools _initial\_sizing_ and _fuselage\_design_ already run.
Therefor we use an _Aircraft Exchange File_ where the tools _initial\_sizing_, _fuselage\_design_ and _wing\_design_ already run.
```mermaid
flowchart LR
A@{ shape: sm-circ } --> B["..."]
B --> D@{ shape: rounded, label: "Wing Design"}
D --> E@{ shape: rounded, label: "Empennage Design"} --> F["..."]
style F stroke: none, fill: none
style B stroke: none, fill: none
style D stroke: #9e0f0f,fill: #9e0f0f
```
From the _Aircraft Exchange File_ we have the following information:
From the Requirements block:
Parameter | Value
:--------------------|-------------:
A/C Type | CeraS
......@@ -43,21 +58,22 @@ Taper Ratio | 0.17
Quarter-Chord Sweep | 27°
Dihedral | 5°
<dl class="section todo">
<dt>Note</dt>
<dd>Parameters of the fuselage arenot listed - however, it has a length of ~37m and a width of ~4m.</dd>
</dl>
!!! note
Parameters of the fuselage are not listed - however, it has a length of ~37m and a width of ~4m.
## Design parameters
Empennage Design tool parameters for conventional low method
_Design and mass mode_
Parameter | Value
:-------------|------------------------:
`design_mode` | `mode_0` &rarr; `design`
`mass_mode` | `mode_0` &rarr; `flops`
_Tail Element `ID = 0`_
Parameter | Value
:-- | --:
`name` | `vertical_stabilizer`
......@@ -73,6 +89,7 @@ Parameter | Value
`control_devices` | `((rudder, -25°, 25°,0.2,0.7,1.0,0.9,0.7,1.0))`
_Tail Element `ID = 1`_
Parameter | Value
:-- | --:
`name` | `horizontal_stabilizer`
......@@ -88,7 +105,7 @@ Parameter | Value
`control_devices` | `((elevator, -25°, 25°,0.2,0.7,1.0,0.9,0.7,1.0))`
## Tool execution
The tool can be executed from console directly if all paths are set (see [How to run a tool](howToRunATool.md)).
The tool can be executed from console directly if all paths are set (see [:octicons-arrow-right-16: How to run a tool](howToRunATool.md)).
We go through the tool output step by step
```
......@@ -169,15 +186,12 @@ The resulted output in the console will not change, however you see that the rud
Soo .... Now it is your turn!
<dl class="section invariant">
<dt>Tip</dt>
<dd>Start by changing only one parameter at once. There might be interactions with other parameters, so don't rush!</dd>
</dl>
!!! tip
Start by changing only one parameter at once. There might be interactions with other parameters, so don't rush!
## Troubleshooting
- Tool does not run properly:
- Make sure you have all the paths set up correctly and the specified elements exist!
- Tool is not there:
- You can build the tool directly from scratch - see therefor [How to build a tool](howToBuildATool.md)
- You can build the tool directly from scratch - see therefor [:octicons-arrow-right-16: How to build a tool](howToBuildATool.md)
\ No newline at end of file
......@@ -227,8 +227,9 @@ nav: # Customizes the main navigation struc
- Empennage Design:
- Introduction: documentation/sizing/empennage_design/index.md
- Getting Started: documentation/sizing/empennage_design/getting-started.md
- Design Method: documentation/sizing/empennage_design/design-methods.md
- Basic Concepts: documentation/sizing/empennage_design/basic-concepts.md
- Run your First Design: documentation/sizing/empennage_design/dfe.md
- Run your First Design: documentation/sizing/empennage_design/run-your-first-empennage-design.md
- API Reference:
- empennage_design/classes.md
- empennage_design/namespaces.md
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment