Track and Flag extrapolation within subsystem metamodels
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.
Aviary currently uses metamodels within subsystems such as Propulsion and Aerodynamics. These models can extrapolate to create data outside of the bounds of the input data for that system.
Examples might include:
- Mach/Altitude/Throttle point that is outside of all those given in the Engine Deck.
- Mach/Altitude/CL point outside of the aero prediction tables generated by aviary aero or provided by the user as tabular aero data.
It would be good to flag cases where Aviary extrapolates to the user as it would help the designer understand the validity of the assumptions in the model, and indicate where a higher fidelity physics-based subsystem may be more appropriate. (e.g. run NPSS at a greater range of operating conditions in the sky, or run CFD aero points over a greater range of CLs).
There are 2 levels where extrapolation could be used:
- At some trajectory point on the path to the optimal solution (this is probably ok)
- At some trajectory point in the final solution (this might invalidate the solution or at the very least increase the uncertainty for that solution).
For the internal aviary aero (EDET) I believe there are additional levels of extrapolation:
- Extrapolation could occur within the EDET lookup tables when calculating the aero performance of an aircraft.
- Extrapolation could occur on continuous functions of empirical relationships if the function is evaluated outside the bounds of the data used to fit that empirical relationship.
This is also true for all of the empirical relationships in Aviary (e.g. mass subsystem).
User should be alerted to whether extrapolation was used, when in the optimization it was required (optimization path or final solution) along with other useful diagnostic data such as the closest points used for extrapolation, the extrapolation method (e.g. linear) and ideally the fraction of the trajectory that is affected by the extrapolation.
(For a transport aircraft the user probably doesn't care about a few minutes in the middle of descent, but cares a lot about any extrapolation in the cruise phase. Likewise a user evaluating time to climb for a fighter interceptor aircraft would care a lot about extrapolation in the climb segment.)
Diagnostic data could be shown using something similar to OpenMDAOs view_mm analysis feature.
Example here showing that if extrapolation into red circled zone occured then that might be problematic, this could be alongside data showing where in the trajectory the extrapolation occured:
These ideas triggered by discussion with dev team on PR906
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing PR906 and OpenMDAO's view_mm analysis feature, then trace how subsystem metamodels and EDET currently handle extrapolation. Define the diagnostic entry points and data needed to distinguish optimization-path from final-solution extrapolation. Done means the scope, reporting behavior, and affected trajectory data are agreed and covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100