OpenMDAO / OpenMDAO/Aviary

GASP based engine sizing

Open
#1,081 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
287
Forks
140
Avg merge
6d 14h
Merged PRs (30d)
18

Description

Desired capability or behavior.

Currently, Aviary computes engine dimensions using an empirical equation. This is the initial step just to get estimates to do engine sizing. GASP compute more accurate engine dimensions to meet certain Federal Air Regulations Parts 23 and 25. The following is a copy of the description from GASP document:

ENGSZ determines the engine size necessary to meet selected performance requirements. The engine size is expressed in terms of rate of airflow under normal sea level static conditions. The engine is first sized to match cruise drag, with an option to specify a rate of climb margin. An option is then provided to resize the engine so as to match a required takeoff distance or to match one-engine-out requirements on the aircraft rate of climb (FAR, Part 23 or Part 25.).

The engine sizing problem is iterative, because of the effect of nacelle geometry on total drag. The input flag KNAC accounts for nacelle drag by the following means:

`KNAC = 0`  Nacelle drag is included as an engine performance penalty. Nacelle size is a function of engine size and is computed during engins sizing.
`KNAC = 1`  Nacelle drag is accounted for as an aerodynamic force. Nacelle size is a function of engine size and is computed during engine sizing
`KNAC = 2`  Same as `KNAC = 1`, but nacelle dimensions are input and remain fixed.

When KNAC = 0 or 1, the nacelle size is initially estimated as a function of aircraft gross weight since the engine size is unknown. The required engine size is then computed, and, based on this engine size, an improved estimate of the nacelle dimensions is made. The nacelle diameter is computed from the sea level static airflow (WASLS), the fan face Mach number (SMLB, input), and the fan hub-to-tip ratio (HBTP, input) using one-dimensional isentropic compressible flow theory; the nacelle length is computed from the diameter and an input nacelle fineness ratio (XLQDE). Based on these dimensions the nacelle drag is recomputed, and the engine sizing process is repeated once. When KNAC = 0, the nacelle drag is computed exactly as when KNAC = 1. Engine specific thrust and specific fuel consumption are adjusted for nacelle drag in subroutine MACDG.

The flight condition input flag for engine sizing (JENGSZ) can take on the following values:

JENGSZ FLIGHT condition
0 Size engine for cruise flight condition
1 Size engine for cruise and takeoff flight conditions
2 Size engine for cruise and takeoff and one engine out climb flight conditions
3 Size engine for cruise and one-engine-out climb flight conditions
4 Engine thrust is specified

The engines are initially sized at: the design cruise flight conditions except when the engine size is input (JENGSZ = 4). This means that, at cruise power setting, the engines must produce total thrust equal to the cruise drag of the aircraft. If a cruise climb margin is specified (RCCRU), the engines must also have enough excess cruise thrust to meet this margin.

The required engine size, expressed as sea level static airflow (WASLS) is computed by scaling the performance of the reference engine to match the required cruise thrust. Engine performance is scaled by assuming that at a given altitude, Mach number, and engine power setting the specific thrust (SFN = thrust per unit airflow) and percent corrected airflow (PCWAC = corrected airflow/WASLS) of the scaled engine are the same as for the reference engine. Thus, the sea level static airflow of the engine is computed by

Cruise Airflow = required thrust/`SFN`
Corrected Cruise Airflow =  (Cruise Airflow x SQRT(Total_Temp/SLS Temp)/(Total Pressure/SLS Pressure))
`WASLS` = Corrected Cruise Airflow/`PCWAC`

When JENGSZ = 1 or 2, the take-off distance of the aircraft (with engines sized for cruise) is computed (ENGSZ calls PERZPM which calla TAKEOFF) and compared with the input required distance (XTORQ), the required take-off distance may be for high altitude and for hot day conditions. If the computed distance exceeds the required distance, then the engines are resized by adjusting the airflow to meet this requirement.

Federal Air Regulations Parts 23 and 25 establish climb requirements. When JENGSZ is input as 2 or 3, ENGSZ computes the climb performance of the aircraft in accordance with Part 23 or 25 and compares the computed performance with the required performance. If necessary, the engines are resized so that the aircraft meets the most critical requirement.

ENGSZ includes an option for sizing the engines for an input tuning performance requirement. This option (JTRSZ = 1) must be used in conjunction with one of the engine sizing options described above (JENGSZ = 0-3; may not be used with JENGSZ = 4)
The user must specify the required turn load factor, altitude and Mach number (XLFTRN, HTURN, EMTURN - input). ENGSZ computes the thrust required to execute the turn and compares this thrust with that available from the engines at the desired power setting (engines as sized for cruise, takeoff, or climb). If insufficient, thrust is available, engine thrust is set equal to that required, and a new sea level static airflow is determined. An additional iteration is performed to account for resized nacelles when nacelle size is a function of engine airflow (KNAC = 0, 2).

Turning performance may be limited by the maximum lift coefficient in the turn configuration. This limiting lift coefficient may be specified by the user (input as CLTLMT; default a 1.0). If required lift coefficient in that turn exceeds the maximum turn lift coefficient, the turn load factor is automatically reduced to the value achievable by the aircraft at its limiting turn lift coefficient.

The simplest engine sizing option (JENGSZ = 4) is for the user to specify the rated sea-level static thrust (THIN, lbs.) of one engine. In this case engine sizing at cruise is bypassed. Engine-out climb performance is computed as when sizing for climb; however, if a climb deficiency is detected, the engines are not resized.

When the engine size is input, several additional inputs are required. The nacelle size must be specified (KNAC = 2, ELN and DBARN). In addition, the engine, nacelle, and pylon weights (WENG, WAC, WPYLON) musk be input if non-zero values are desired.

Is your feature request related to a problem? Please describe.

No response

Associated Bug Report

No response

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the ENGSZ entry point and trace its calls to PERZPM, TAKEOFF, and MACDG. Read the existing empirical engine-sizing path first, then map the JENGSZ, JTRSZ, and KNAC cases described here. Done means GASP-based sizing covers the specified cruise, takeoff, climb, turn, and fixed-thrust options.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.