Implement state-space controller in self-conditioned form

GNC/Controls

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.

**A-matrix**A-matrix of the state-space implementation.

**B-matrix**B-matrix of the state-space implementation.

**C-matrix**C-matrix of the state-space implementation.

**D-matrix**D-matrix of the state-space implementation.

**Initial state, x_initial**This is a vector of initial states for the controller, i.e., initial values for the state vector,

*z*. It should have length equal to the size of the first dimension of*A*.**Poles of A-H*C**This is a vector of the desired poles of

*A*-*H***C*. Hence the number of pole locations defined should be equal to the dimension of the*A*-matrix.

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

First | Contains the control error. | |

Second | Contains the measured actuator position. |

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

First | Contains the actuator demands. |

This block requires the Control System Toolbox product.

This Simulink^{®} model shows a state-space controller implemented
in both self-conditioned and standard state-space forms. The actuator
authority limits of ±0.5 units are modeled by the saturation
block.

Notice that the *A*-matrix has a zero in
the 1,1 element, indicating integral action.

The top trace shows the conventional state-space implementation. The output of the controller winds up well past the actuator upper authority limit of +0.5. The lower trace shows that the self-conditioned form results in an actuator demand that tracks the upper authority limit, which means that when the sign of the control error, e, is reversed, the actuator demand responds immediately.

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.

Was this topic helpful?