OpenMDAO / Aviary

NASA's aircraft analysis, design, and optimization tool
https://openmdao.github.io/Aviary/
Other
107 stars 51 forks source link

Clarification on Wing Thickness to Chord Ratio for FLOPS analysis #266

Open cmbenne3 opened 2 months ago

cmbenne3 commented 2 months ago

Desired capability or behavior.

We should update documentation, consider renaming and/or possibly removing variables.

There are 3 thickness to chord ratio inputs to FLOPS. These are currently mapped to Aviary Variables as follows:

  1. TOC(I) - Vector of thickness to chord ratios for ith wing section -> Aircraft.Wing.THICKNESS_TO_CHORD_DIST
  2. TCREF - Reference thickness to chord ratio (default = TCA) -> Aircraft.Wing.THICKNESS_TO_CHORD_REF
  3. TCA - Design Variable thickness to chord ratio (weighted average) -> Aircraft.Wing.THICKNESS_TO_CHORD

Suggestion 1 There is no definition of how to calculate "weighted average". Ideally we should use whatever method was used by the FLOPS analysists for calculating the empirical relationships, unfortunately it's not known what this was. The recommended approach from ASAB would be to use "Wing Frontal Area / Wing Planform Area". This could be obtained from an aircraft geometry tool such as OpenVSP. For linear chord and thickness tapering this is equivalent to a 'chord weighted average', but using the area ratio is valid for an arbitrary geometry. Suggestion is to change the description under variable_meta_data.py to recommend using the area ratio.

Suggestion 2 We should remove the TCREF variable to reduce number of input variables and simplify the complex codebase.

FLOPS had the ability to run parametric studies and optimization through the use of input design and reference variables. This functionality is rarely used now, and FLOPS is essentially only used for single point analysis. FLOPS and Aviary will scale all the section thickness to chord ratios by a factor of TCA/TCREF in the detailed wing mass code (maybe also in other places): subsystems>mass>flops_based>wing_detailed.py

This scaling functionality is not needed inside aviary. If someone wants to run a parametric sweep, or optimization using Aircraft.Wing.THICKNESS_TO_CHORD, then they should just do so by changing the input variable - aviary doesn't need to 'know' what the reference or start value was.

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

No response

Associated Bug Report

No response

jkirk5 commented 1 week ago

I lean towards solution 2, although there may be unforeseen implications from removing this value. The worst I can think of is needing some special handling when converting a FLOPS file, in case this value is used in FLOPS as a default elsewhere in the code such as for TCA