OpenMDAO / Aviary

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

Using propeller table #356

Open xjjiang opened 5 days ago

xjjiang commented 5 days ago

Summary

  1. Created two new Aviary variables Aircraft.Engine.USE_PROPELLER_MAP and Aircraft.Engine.PROPELLER_DATA_FILE.
  2. Created a new class PropellerMap which loads user provided propeller map and create the propeller. There are two cases: helical Mach numbers and free stream Mach numbers. In both cases, the thrust coefficient is a function of Mach number, advance ratio, and power coefficient.
  3. Created a new utility class OutMachs which establishes the relations among helical Mach, free stream Mach and propeller tip Mach. The relation is: helical_mach = sqrt(mach*mach + tip_mach*tip_mach).
  4. If Aircraft.Engine.USE_PROPELLER_MAP = True, then PropellerMap replacels HamiltonStandard to compute thrust coefficient which is fed to PostHamiltonStandard.
  5. When PropellerMap is instantiated, it automatically detects whether helical Mach or free stream Mach is in the table. If helical Mach is in the table, OutMachs is instantiated and it computes free stream Mach before the propeller is created.
  6. In propeller maps, the compressibility has already been taken into account. Therefore, this factor is assumed to be 1.0 and is supplied to post Hamilton Standard component. Other outputs are computed using the same formulas.
  7. Unit tests are added for PropellerMap and PropellerPerformance group.
  8. User guide is updated in Hamilton Standard Propulsion Model page.

In PR #332 (Electroprop), there are structural changes that will have impacts on this PR. If it is merged to main, this PR needs updates.

Related Issues

Backwards incompatibilities

None

New Dependencies

None