DATVAL : A Model-Integrated Data Validation System

DatVal is a model-based data validation system used in turbine engine testing developed for, and in use at, Arnold Engineering Development Center. It is designed to enhance the test engineer's ability to find corrupted test data streams. In its current configuration, about 10,000 data points arrive at DatVal approximately every two minutes. Data validation is performed by checking relationships among data streams based on a model of engine's underlying physics.

One of the more interesting aspects of DatVal is the integration of legacy code in the current system. Existing data validation routines were integrated as originally coded. This approach greatly reduced the amount of new software that had to be designed and written.

 Technical overview
DATVAL Design Goals

Some of the design goals for DatVal were:

  • Reconfigurability. Test engineers should be able to change a system configuration during a test.
  • Extendability. Additional system functionality must be added easily.
  • Friendly to legacy code. The system must re-use the original system's Fortran code (legacy code).
  • Distributed execution environment. DatVal must be executable on a distributed workstation enviroment.
  • Diagnostic capability. DatVal must assist the test engineer to find the source of data anomalies.
  • Graphical user interface. Test engineers must be able to understand problems and reconfigure the system easily.
  • Clean interfaces. DatVal must be adaptable to new data systems without major system changes.
Model-Based Computing and DatVal

In order to meet the requirements, we chose to implement DatVal as a model-based system. First, a system editor was implemented (DatEdit). This editor allows the system user to graphically configure the run-time system (RTS) for his particular needs. Each user can build and save models that implement his needed RTS. The system editor manages the use of multiple projects and tests.

Next, a RTS can be automatically generated from the models specified by the system user. This allows the system users to build complex systems without the need for in-depth knowledge of their computing platforms. The system user just specifies what he needs the system to do, using familiar technologies. Then, the user can automatically generate a RTS with his necessary features implemented.

 Automatic Data-dependency Analysis

During system development, it became apparent that an automatic method of deriving diagnostic information was needed. A structural diagnostic method is used by the system to determine possible error causes. Structural diagnostics is a method based on the system connectivity. If an error occurs, the diagnostics system can trace the system connectivity map to determine all possible root causes of the error. The diagnostic system used in DatVal does not perform a probablistic analysis. Instead, the diagnostics system determines all possible error causes and notifies the user of these fault hypotheses. In order for this diagnostic subsystem to work, a mapping of system inputs to system outputs is needed. This mapping is analogous to the mapping of sensors to system errors. However, this mapping changes from test to test.

A automatic system to determine the data dependencies in the legacy code has been developed. The legacy code contains the core sensor validation routines, so extracting the mapping of system inputs to system errors would generate the information needed for performing diagnostics. By extracting this information automatically, we can greatly reduce the man-power necessary to configure DatEdit for a new test configuration.

Example screenshots