Purpose
DAVE-ML provides a digital exchange format for aerospace vehicle flight dynamic models in a facility- and programming-language-neutral way, using open standards. The goal is to drastically reduce the amount of time required to move an operating, real-time simulation model from one simulation laboratory to another from weeks/months to less than one work day (possible future slogan: "Eight months to eight minutes").
Introduction
This document describes a successful project to develop a text-based markup language, using the eXtensible Markup Language (XML) syntax, to exchange flight dynamic model (simulation/plant) data. This XML "application" is formally the Dynamic Aerospace Vehicle Exchange Markup Language, DAVE-ML. The concept was developed and demonstrated in the summer of 2002 by Bruce Jackson of NASA Langley Research Center for application to some projects he was working on there. It is based on simulation data standards developed by the AIAA Modeling and Simulation Technical Committee under the leadership of Bruce Hildreth, then with SAIC. It has subsequently been demonstrated in cross-agency model exchange, has been adopted by the Australian DSTO, and was approved as an ANSI standard in March 2011 (ANSI/AIAA-S-119-2011, available here.)
A paper regarding the DAVE-ML concept was presented at the 2002 AIAA Modeling and Simulation Technologies conference by Jackson and Hildreth (see the reference at the bottom of this document). An estimated savings of $6.8 million per year for a single in-service tactical aircraft program is identified, based on simulation model configuration control and rapid error correction dissemination alone.
The purpose of this website is to advertise, solicit, and coordinate efforts to develop, test, and promulgate an XML-based simulation model exchange format that is agency-neutral. DAVE-ML is an initial attempt; it is incomplete in that it does not yet model dynamic elements (see Status below).
XML is a formal standard supported by the World-Wide Web Consortium (W3C). More information may be found at http://www.xml.org/. Among its advantages are: (1) international standard for data encoding, (2) universally transportable, (3) human- and machine-readable, (4) self-documenting, and (5) can be transformed into a variety of other formats (using XSLT technology).
Required XML applications
To take advantage of existing XML developments, DAVE-ML relies on the Mathematics Markup Language (MATH-ML, version 2.0). More information on this XML application can be found at http://www.w3.org/TR/MathML2/. [An excellent on-line reference to the MathML syntax can be found at http://www.zvon.org/xxl/MathML/Output/.]
Dealing with XML files
XML files are simple text files with a specified structure. They are human-readable by design, but are generally written and read automatically. XML files are commonly used to specify software application preferences or operating system configurations, but are also used for descriptions of scientific and engineering data. XML-saavy editors and software to read (parse) and write XML files abound. Here’s a link to a 1999 article giving an introduction to handling XML using Java, found at http://javaworld.com; however, XML is not tied to Java directly. XML parsers are also available for most programming languages.
10,000 m overview
DAVE-ML models include precise definitions of variables, breakpoints, and function tables that can implement a non-linear mapping of inputs to outputs (aka math model). These definitions are described using either custom XML grammar elements or, in the case of calculations, MathML markup (which will reference other variables, themselves possibly the result of further calculations). Since high-fidelity aerodynamic models often are built from non-linear function tables, support for common breakpoint sets (used by more than one table) and multidimensional tables of values is included. DAVE-ML itself does not perform function interpolation; rather it allows the modeler to specify points in the table and the type of interpolation necessary to realize the function. Linear function interpolation in each dimension is customary in usage but higher-order interpolation can be specified.
In addition to the mathematical model and data, DAVE-ML files can include metadata about the model such as it’s origin, history, list of modifications, and links to reference material pertaining to the model (the so-called provenance of the model). Individual function tables can be linked to specific references to show how the data was derived.
Perhaps the most important part of a DAVE-ML model is optional verification data that prescribes output values for given sets of input values, with a required matching tolerance. This verification data assures proper implementation and execution of the model by a DAVE-ML interpreter or software realization.
Usage in real life
DAVE-ML models can be used in two primary ways for simulation purposes: interpreted and compiled, with the usual tradeoff between ease of use and execution speed. In addition, support for use within some existing simulation frameworks (Simulink®, POST II and OTIS 4) exists. A DAVE-ML model can be converted into an HTML report as well.
Interpreted DAVE-ML
A DAVE-ML interpreter is normally a software library that can be linked into an executable simulation that will, at run-time, open and load a DAVE-ML model file (.dml) directly, and normally will perform a self-verification. Two primary libraries exist as of this writing: Janus, a fairly complete DAVE-ML package written by the Australian Defence Science and Technology (DST) Group, and the DAVE-ML Translator (DMLT), a less-complete but pretty fast package written by Missy Hill of UNISYS at NASA Langley. Both are written in C++, are available as source code on request, are in production use and perform quite well.
A third run-time capability is the use of DAVE-ML models within Matlab®. Since newer versions of Matlab® allow Java-based extensions, the DAVEtools utility can be used at run-time within Matlab® to include a DAVE-ML model in calculations. See the DAVEtools webpage for instructions on how to make this work (it is not as straightforward as one might think, unfortunately).
Compiled DAVE-ML
DAVE-ML models can be compiled into a conventional programming language like C or FORTRAN, but these direct-to-code methods are not very mature (meaning incomplete support for MathML, with linear interpolation only). GeneSim (see link below) and the C XSLT generator script (see the DAVE-ML website, under Tools) provide rudimentary code generation capability. Another, indirect method, exists: using DAVEtools to generate the equivalent Simulink® model, which can then be autocoded into C using Mathworks' code generation tools. This method is in production use.
Sim framework support
DAVEtools can be used to realize most any DAVE-ML model as Mathworks Simulink® block diagram, with automatic verification script generation. The resulting block diagram is not very attractive but does function correctly.
An experimental version of DAVEtools provides an way to generate data table and source code excerpts for POST II and OTIS 4 optimization simulations, but this needs further testing. Contact the author for possible collaborative efforts to use this capability.
As of 2010, nearly every NASA simulation facility can import DAVE-ML models for use in-house. This capability is described in AIAA Paper 2011-6583.
Documentation generation
The DAVE-ML website (http://daveml.org) has a preliminary XSLT script that will convert a DAVE-ML model into a rudimentary HTML-formatted document, as described on this page.
Relationship with the ANSI S-119 standard
DAVE-ML forms the encoding part of the ANSI/AIAA S-119 Flight Dynamics Exchange Standard. In addition to use of the DAVE-ML XML grammar, the Standard lays out conventions for UNICODE strings of variable names, frames of reference, and units of measure. This is fully compatible with DAVE-ML and authors of DAVE-ML models are encouraged to adopt these further conventions. Doing so levies a minor penalty on ease of writing the model (the variable names can get fairly long) but will make them basically unambiguous; it does not require existing code to be rewritten; at most, a dictionary mapping the AIAA names into facility names will suffice to meet the standard.
Status
In version 2.0 of DAVEfunc.dtd, we meet most of the draft AIAA standards for static model definitions, including non-linear function descriptions, uncertainty statistics, and build-up equations. Thus, it is possible to fully describe an arbitrarily complex nonlinear static model (for example, aero coefficients or inertia models) including
-
non-linear function descriptions
-
links to on-line documentation
-
citations to off-line documentation
-
data provenance (original source and modification history)
-
buildup equations of arbitrary complexity, including switching between databases embedded check-case data, including all intermediate calculations
-
data uncertainty description
The DAVEfunc.dtd file, described here, contains the markup elements for this part of the full DAVE-ML application. This set of XML tags should be sufficient to model any static, non-linear model including aerostatics, steady engine thrust, and mass properties/loadouts. Missing from the design is support for dynamic elements (that is, systems containing states or integrators), so control laws other than simple feedback loops are not yet possible. A reference manual is also available both on-line and as a PDF file.
The AIAA Modeling and Simulation Technical Committee developed, and ANSI has approved, ANSI/AIAA-S-119-2011, Flight Dynamics Model Exchange Standard. It is available for sale from AIAA and is a free download for AIAA members.
Several example aerodynamic models of varying complexity are available for evaluation here.
Several tools have been developed to facilitate use of DAVE-ML including the Janus C++ API, developed for the Australian DST. More information about tools is available here.
An open-source tool (GeneSim) for converting DAVE-ML models into C code is under development: http://genesim.sourceforge.net.
A to-do list is available here.
Acknowledgements and related work
Jon Berndt has written, as part of the open source JSBsim flight simulation code, an XML-based model description specification, which serves as an inspiration for this work. We are working with Jon to support the JSBsim requirements with DAVE-ML. More information on this specification is available at http://www.jsbsim.org/.
Bruce Hildreth ([email protected]) has worked with the AIAA Modeling and Simulation Technical committee to develop the S-119 standard for function table data, variable names, and time history data files. This effort (DAVE-ML) is intended to follow these guidelines to the maximum extent possible.
Brent York, formerly of NAVAIR and now at Art Sim Magic has made many helpful suggestions and demonstrated DAVE-ML import capability in the U.S. Navy’s CASTLE simulation environment. He’s put together a nice Prezi presentation too.
Bill Cleveland, Tom Alderete, and Julie Mikula of Ames Research Center have been very supportive of this effort; in particular, Bill has done quite a bit of Perl development and has helped flesh out the idea by many helpful suggestions.
Geoff Brian of Australia’s DST has been instrumental in working out the bugs in DAVE-ML as they adopted DAVE-ML for encoding all their performance and six-degree-of-freedom simulation models. The Janus C++ library was developed under his direction by Quantitative Aeronautics Pty Ltd., principally by Dr. Dan Newman.
Two examples of models with ungridded-data-tables have been provided by Geoff Brian of DST and Dr. Peter Grant of UTIAS.
A group of NASA engineers provided a graduation exercise for DAVE-ML and S-119 in 2010: Zack Crues (JSC), Rob Falck (GRC), David Hasan (L-3), Missy Hill (UNISYS), Matt Jessick (L-3), Greg McCarthy (DFRC), Bill Othon (JSC), John Penn (L-3), Nghia Vuong (ARC), and Curtis Zimmerman (MSFC). They uncovered several bugs and typos and provided a lot of feedback, and some cool tools to boot.
The author is grateful for bug reports and suggestions received from Bill Cleveland, Missy Hill, Geoff Brian, Jon Berndt, Dan Newman, Brent York, Riley Rainey, Shane Hill, Rob Curtin, Hilary Keating, Bruce Hildreth, Giovanni Cignoni and Giovanni Mirri.
References
AIAA Modeling and Simulation Technical Committee: ANSI/AIAA-S-119-2011, Flight Dynamics Model Exchange Standard, 2011. Available from the AIAA Standards website.
Stevens, Brian L.; and Lewis, Frank L.: Aircraft Control and Simulation. J.Wiley & Sons, 1992. ISBN 0-471-61397-5.
Garza, Fredrico R.; and Morelli, Eugene A.: A Collection of Nonlinear Aircraft Simulations in MATLAB. NASA Technical Memorandum TM-2003-212145, January 2003.
Harold, Elliotte Rusty; & Means, W. Scott: XML in a Nutshell. O’Reilly & Associates, 2001. ISBN 0-596-00058-8.
McLaughlin, Brett: Java & XML. O’Reilly & Associates, 2000. ISBN 0-596-00197-5.
Jackson, E. Bruce; and Hildreth, Bruce L.: Flight Dynamic Model Exchange using XML. AIAA 2002-4482, presented at the AIAA Modeling and Simulation Technologies Conference, Monterey, CA, August 2002.
York, Brent W.: "DAVE-ML, the PDF of air vehicle simulations." http://prezi.com/eokorluuqsuf/dave-ml/, 11 April 2011.