Implement gain-scheduled state-space controller in self-conditioned form depending on one scheduling parameter

GNC/Control

The 1D Self-Conditioned [A(v),B(v),C(v),D(v)] block implements a gain-scheduled state-space controller as defined by the equations

$$\begin{array}{l}\dot{x}=A(v)x+B(v)y\\ u=C(v)x+D(v)y\end{array}$$

in the self-conditioned form

$$\begin{array}{l}\dot{z}=(A(v)-H(v)C(v))z+(B(v)-H(v)D(V))e+H(v){u}_{meas}\\ {u}_{dem}=C(v)z+D(v)e\end{array}$$

For the rationale behind this self-conditioned implementation,
refer to the Self-Conditioned [A,B,C,D] block reference. This block implements
a gain-scheduled version of the Self-Conditioned [A,B,C,D] block, *v* being
the parameter over which *A*, *B*, *C*,
and *D* are defined. This type of controller scheduling
assumes that the matrices *A*, *B*, *C*,
and *D* vary smoothly as a function of *v*,
which is often the case in aerospace applications.

**A-matrix(v)***A*-matrix of the state-space implementation. The*A*-matrix should have three dimensions, the last one corresponding to the scheduling variable*v*. Hence, for example, if the*A*-matrix corresponding to the first entry of*v*is the identity matrix, then`A(:,:,1) = [1 0;0 1];`

.**B-matrix(v)***B*-matrix of the state-space implementation. The*B*-matrix should have three dimensions, the last one corresponding to the scheduling variable*v*. Hence, for example, if the*B*-matrix corresponding to the first entry of*v*is the identity matrix, then`B(:,:,1) = [1 0;0 1];`

.**C-matrix(v)***C*-matrix of the state-space implementation. The*C*-matrix should have three dimensions, the last one corresponding to the scheduling variable*v*. Hence, for example, if the*C*-matrix corresponding to the first entry of*v*is the identity matrix, then`C(:,:,1) = [1 0;0 1];`

.**D-matrix(v)***D*-matrix of the state-space implementation. The*D*-matrix should have three dimensions, the last one corresponding to the scheduling variable*v*. Hence, for example, if the*D*-matrix corresponding to the first entry of*v*is the identity matrix, then`D(:,:,1) = [1 0;0 1];`

.**Scheduling variable breakpoints**Vector of the breakpoints for the first scheduling variable. The length of

*v*should be same as the size of the third dimension of*A*,*B*,*C*, and*D*.**Initial state, x_initial**Vector of initial states for the controller, i.e., initial values for the state vector,

*x*. It should have length equal to the size of the first dimension of*A*.**Poles of A(v)-H(v)*C(v)**Vector of the desired poles of

*A*-*HC*. Note that the poles are assigned to the same locations for all values of the scheduling parameter*v*. Hence the number of pole locations defined should be equal to the length of the first dimension of the*A*-matrix.

Input | Dimension Type | Description |
---|---|---|

First | Any | Contains the measurements. |

Second | Contains the scheduling variable, conforming to the dimensions of the state-space matrices. | |

Third | Contains the measured actuator position. |

Output | Dimension Type | Description |
---|---|---|

First | Any | Contains the actuator demands. |

If the scheduling parameter inputs to the block go out of range, then they are clipped; i.e., the state-space matrices are not interpolated out of range.

This block requires the Control System Toolbox™ product.

The algorithm used to determine the matrix H is defined in Kautsky,
Nichols, and Van Dooren, “Robust Pole Assignment in Linear
State Feedback,” *International Journal of Control*,
Vol. 41, No. 5, pages 1129-1155, 1985.

1D Controller [A(v),B(v),C(v),D(v)]

1D Controller Blend u=(1-L).K1.y+L.K2.y

1D Observer Form [A(v),B(v),C(v),F(v),H(v)]

Was this topic helpful?