Implement 1-D vector of state-space controllers by linear interpolation of their outputs

GNC/Control

The 1D Controller Blend u=(1-L).K1.y+L.K2.y block implements
an array of state-space controller designs. The controllers are run
in parallel, and their outputs interpolated according to the current
flight condition or operating point. The advantage of this implementation
approach is that the state-space matrices *A*, *B*, *C*,
and *D* for the individual controller designs do
not need to vary smoothly from one design point to the next.

For example, suppose two controllers are designed at two operating
points *v*=*v*_{min} and *v*=*v*_{max}.
The 1D Controller Blend block implements

$$\begin{array}{l}{\dot{x}}_{1}={A}_{1}{x}_{1}+{B}_{1}y\\ {u}_{1}={C}_{1}{x}_{1}+{D}_{1}y\\ {\dot{x}}_{2}={A}_{2}{x}_{2}+{B}_{2}y\\ {u}_{2}={C}_{2}{x}_{2}+{D}_{2}y\\ u=(1-\lambda ){u}_{1}+\lambda {u}_{2}\\ \\ \lambda =\{\begin{array}{ccc}0& & v<{v}_{\mathrm{min}}\\ \frac{v-{v}_{\mathrm{min}}}{{v}_{\mathrm{max}}-{v}_{\mathrm{min}}}& & {v}_{\mathrm{min}}\le v\le {v}_{\mathrm{max}}\\ 1& & v>{v}_{\mathrm{max}}\end{array}\\ \end{array}$$

For longer arrays of design points, the blocks only implement nearest neighbor designs. For the 1D Controller Blend block, at any given instant in time, three controller designs are being updated. This reduces computational requirements.

As the value of the scheduling parameter varies and the index of the controllers that need to be run changes, the states of the oncoming controller are initialized by using the self-conditioned form as defined for the Self-Conditioned [A,B,C,D] block.

**A-matrix(v)***A*-matrix of the state-space implementation. In the case of 1-D blending, the*A*-matrix should have three dimensions, the last one corresponding to 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.**C-matrix(v)***C*-matrix of the state-space implementation.**D-matrix(v)***D*-matrix of the state-space implementation.**Scheduling variable breakpoints**Vector of the breakpoints for the 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)**For oncoming controllers, an observer-like structure is used to ensure that the controller output tracks the current block output,

*u*. The poles of the observer are defined in this dialog box as a vector, the number of poles being equal to the dimension of the*A*-matrix. Poles that are too fast result in sensor noise propagation, and poles that are too slow result in the failure of the controller output to track*u*.

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

First | Any | Contains the measurements. |

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

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

First | Any | Contains the actuator demands. |

This block requires the Control System Toolbox™ product.

Hyde, R. A., “H-infinity Aerospace Control Design - A
VSTOL Flight Application,” Springer Verlag, *Advances
in Industrial Control Series*, 1995. ISBN 3-540-19960-8.
See Chapter 5.

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

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

Was this topic helpful?