6.2.7. The checkData element

The checkData element contains one or more input/output vector pairs (and optionally a dump of internal values) for the encoded model to assist in verification and debugging of the implementation.

    checkData : 
        staticShot* : name [refID]
            ( provenance | provenanceRef )?
            description?
            checkInputs :
                signal+ :
                    signalName
                    signalUnits?
                    signalValue
            internalValues* :
                signal+ :
                    varID
                    signalValue
            checkOutputs :
                signal+ :
                    signalName
                    signalUnits?
                    signalValue
                    tol
	

checkData sub-elements:

provenance

The optional provenance subelement allows the author to describe the source and history of the data within this ungriddedTable. Alternatively, a <provenanceRef> reference can be made to a previously defined provenance.

description

An optional description subelement is provided to allow documentation of the purpose of each particular checkcase.

staticShot

One or more check-case data sets, which each contain mandatory subelements <checkInputs> and <checkOutputs> vectors (with required match tolerances), optional <provenance>, <provenanceRef>, <description> and <internalValues> subelements.

Example 14. Check-case data set excerpt

A DAVE-ML file excerpt specifying a check-case data set example for a simple model

  <checkData>
    <staticShot name="Nominal" refID="NOTE1"> 1
      <description>An example static check of a simple DAVE-ML model</description>
      <checkInputs>  2
        <signal>  3
          <signalName>trueAirspeed</signalName>
          <signalUnits>f/s</signalUnits>
          <signalValue> 300.000</signalValue>
        </signal>
        <signal> 
          <signalName>angleOfAttack</signalName>
          <signalUnits>d</signalUnits>
          <signalValue>   5.000</signalValue>
        </signal>
         .
         .       (similar input signals omitted)
         .
        <signal>
          <signalName>delta elevator</signalName> 
          <signalUnits>d</signalUnits>
          <signalValue>   0.000</signalValue>
        </signal>
      </checkInputs>
      <checkOutputs> 4
        <signal>  5
          <signalName>CX</signalName>
          <signalUnits/>   6
          <signalValue>-0.00400000000000</signalValue>
          <tol>0.000001</tol>
        </signal>
         .
         .       (similar output signals omitted)
         .
      </checkOutputs>
    </staticShot>
    <staticShot name="Positive pitch rate"> 7
      <checkInputs> 
         .
         .       (similar input and output signal information omitted)
         .
      </checkOutputs>
    </staticShot>
    <staticShot name="Positive elevator">
      <checkInputs> 
         .
         .       (similar input and output signal information omitted)
         .
      </checkOutputs>
    </staticShot>
  </checkData>
	  
1

This first check case refers to a note given in the file header; this is useful to document the source of the check case values.

2

The checkInputs element defines the input variable values, by variable name, as well as units (so they can be verified).

3

Multiple variable values are given, constituting the input "vector."

4

The checkOutputs element defines output variable values that should result from the specified input values.

5

Note the included tolerance value, within which the output values must match the check-case data values.

7

Multiple check cases may be specified; this one differs from the previous check-case due to an increase in the pitching rate input.

6

Empty signalUnits implies a non-dimensional signal.


Example 15. A second checkData example with internal values given

  <checkData>
    <staticShot name="Skewed inputs">
      <description>
        Another example static check; this one includes all the internal, intermediate calculations
        to assist in debugging the implementation.
      </description>
      <checkInputs> 
        <signal> 
          <signalName>trueAirspeed</signalName>
          <signalUnits>fs_1</signalUnits>\
          <signalValue> 300.000</signalValue>
        </signal>
        <signal>
          <signalName>angleOfAttack</signalName>
          <signalUnits>d</signalUnits>
          <signalValue>  16.200</signalValue>
        </signal>
         .
         .       (similar input values omitted)
         .
        <signal>
          <signalName>XBodyPositionOfCG</signalName>
          <signalUnits>fracMAC</signalUnits>
          <signalValue>   0.123</signalValue>
        </signal>
      </checkInputs>
      <internalValues> 1
        <signal>
          <refID>vt</refID>
          <signalValue>300.0</signalValue>
        </signal>
        <signal>
          <refID>alpha</refID>
          <signalValue>16.2</signalValue>
        </signal>
         .
         .       (similar internal values omitted)
         .
      </internalValues>
      <checkOutputs>
        <signal>
          <signalName>aeroXBodyForceCoefficient</signalName>
          <signalValue> 0.04794994533333</signalValue>
	  <signalUnits/>
          <tol>0.000001</tol>
        </signal>
        <signal>
          <signalName>aeroZBodyForceCoefficient</signalName>
          <signalValue>-0.72934852554344</signalValue>
	  <signalUnits/>
          <tol>0.000001</tol>
        </signal>
        <signal>
          <signalName>aeroPitchBodyMomentCoefficient</signalName>
          <signalValue>-0.10638585796503</signalValue>
	  <signalUnits/>
          <tol>0.000001</tol>
        </signal>
      </checkOutputs>
    </staticShot>
  </checkData>
            
	  
1

A dump of all model-defined variable values is included in this example to aide in debugging the implementation by the recipient.


$Revision: 348 $