## Linear control law definition

@LINEAR_CONTROL_LAW_DEFINITION {
@LINEAR_CONTROL_LAW_NAME {LinCntName} {
@CONTROLLER_NAME {ContrlrName}
@NUMBER_OF_INPUTS {Ni}
@NUMBER_OF_OUTPUTS {No}
@NUMBER_OF_STATES {Nx}
@MATRIX_A {A1,1, A2,1, ..., ANx, Nx}
@MATRIX_B {B1,1, B2,1, ..., BNx, Ni}
@MATRIX_C {C1,1, C2,1, ..., CNo, Nx}
@MATRIX_D {D1,1, D2,1, ..., DNo, Ni}
@TARGET_VALUES {y1, y2, ..., yNi}
}
}

### Introduction

The linear control law is an embedded control law that implements a generic linear control law of the following form

dx/dt = A x + B (y - y),

u = C x + D (y - y),

where x is an array of Nx controller internal states and d./dt denotes a derivative with respect to time. The control law involves four constant matrices: A(Nx x Nx), B(Nx x Ni), C(No x Nx) and D(No x Ni). The control law is discretized using the central difference scheme to find

(xf - xi) / Δ t = A (xf + xi)/2 + B ((yf + yi)/2 - y),

where the subscripts (.)i and (.)f denote quantities computed at the initial and final times of the time step, respectively, denoted ti and tf, respectively, and Δt = tf - ti is the time step size. The final values of the control law internal states now become

xf = (I/Δ t - A/2)-1 [ (I/Δt + A/2) xi + B ((yf + yi)/2 - y) ].

The final output of the control law then follow as

uf = C xf + D (yf - y).

If the number of internal states is zero, the linear control law reduces to a simple input-output gain relationship,

u = D (y - y).

### NOTES

1. The linear control law is an embedded control law that implements the generic linear control law described above. The linear control law is associated with the controller ContrlrName.
2. The linear control law features Ni inputs, No outputs and Nx internal states. The number of inputs and outputs must match the corresponding quantities defined in the controller ContrlrName.
3. The remaining inputs defined the arrays and matrices characterizing the linear control law. These inputs expect the following format.
• @MATRIX_A: a set of Nx * Nx entries defining matrix A column by column. This input is required if Nx > 0.
• @MATRIX_B: a set of Nx * Ni entries defining matrix B column by column. This input is required if Nx > 0.
• @MATRIX_C: a set of No * Nx entries defining matrix C column by column. This input is required if Nx > 0.
• @MATRIX_D: a set of No * Ni entries defining matrix D column by column.
• @TARGET_VALUES: a set of Ni entries defining the target value array, y.

### Sensors

Sensors can be defined to extract information linear control laws.

1. A single SensorType specification is allowed for linear control laws: SIGNAL. (Default value: SIGNAL).
2. No FrameName is allowed for this sensor.
3. Parameter u value must be integer and indicates which of the internal states of the linear control law will be evaluated by the sensor. No parameter v value is accepted for linear control laws.