Main Content

Implement state-space controller in self-conditioned form

**Library:**Aerospace Blockset / GNC / Control

The Self-Conditioned [A,B,C,D] block can be used to implement the state-space controller defined by

$$\left[\begin{array}{l}\dot{x}=Ax+Be\\ u=Cx+De\end{array}\right]$$

in the self-conditioned form

$$\begin{array}{l}\dot{z}=(A-HC)z+(B-HD)e+H{u}_{meas}\\ {u}_{dem}=Cz+De\end{array}$$

The input $${u}_{meas}$$ is a vector of
the achieved actuator positions, and the output $${u}_{dem}$$ is the vector of controller
actuator demands. In the case that the actuators are not limited,
then $${u}_{meas}={u}_{dem}$$ and substituting the output
equation into the state equation returns the nominal controller. In
the case that they are not equal, the dynamics of the controller are
set by the poles of *A*-*HC*.

Hence *H* must be chosen to make the poles
sufficiently fast to track $${u}_{meas}$$ but
at the same time not so fast that noise on e is propagated to $${u}_{dem}$$. The matrix *H* is
designed by a callback to the Control System Toolbox™ command `place`

to place the poles at defined locations.

This block requires the Control System Toolbox license.

[1] Kautsky, Nichols, and Van Dooren,
"Robust Pole Assignment in Linear State Feedback," *International Journal of
Control*, Vol. 41, Number 5, 1985, pp. 1129-1155.

1D Self-Conditioned [A(v),B(v),C(v),D(v)] | 2D Self-Conditioned [A(v),B(v),C(v),D(v)] | 3D Self-Conditioned [A(v),B(v),C(v),D(v)] | Linear Second-Order Actuator | Nonlinear Second-Order Actuator | Saturation