User defined control law definition

@USER_CONTROL_LAW_DEFINITION {
@USER_CONTROL_LAW_NAME {UsrLawName} {
@CONTROLLER_NAME {ContrlrName}
@NUMBER_OF_INPUTS { Ni}
@NUMBER_OF_OUTPUTS { No}
@CONTROL_PARAMETERS { i1, i2, ... i6}
@TARGET_VALUES {y1, y2, ..., yNi}
@INPUT_GAIN_MATRIX {g1I, g2I, ..., gNiI}
@OUTPUT_GAIN_MATRIX {g1O, g2O, ..., gNoO}
@JACOBIAN_MATRIX {J11, J21, ... JNN}
@INVERSE_JACOBIAN_MATRIX { J11-1, J12-1, ... JNN-1}
@CONTROL_LAW_PARAMETERS { p1, p2, ... p12}
@COMMENTS {CommentText}
}
}

NOTES

  1. The user defined control law provides an interface that allows the direct implementation of a control law supplied by the user. The user could directly write the control law as a subroutine, but it is more likely that the control law is first developed by an external simulation package such as MATLAB/SIMULINK©, then imported, typically as a C routine. The user defined control law is associated with the controller ContrlrName.
  2. The user defined control law features Ni inputs and No outputs. The number of inputs and outputs must match the corresponding quantities defined in the controller ContrlrName.
  3. The remaining inputs of the user defined control law are all optional. If defined, they will be available in the routine that implements the control law. The meaning of these inputs is user determined. These inputs expect the following format.
    • @CONTROL_PARAMETERS: a set of six integer entries.
    • @TARGET_VALUES: a set of Ni entries.
    • @INPUT_GAIN_MATRIX: a set of Ni entries.
    • @OUTPUT_GAIN_MATRIX: a set of No entries.
    • @JACOBIAN_MATRIX: a set of Ni * No entries.
    • @INVERSE_JACOBIAN_MATRIX: a set of Ni * No entries.
    • @CONTROL_LAW_PARAMETERS: a set of 12 entries.