Implement gain-scheduled state-space controller in observer form depending on two scheduling parameters

GNC/Control

The 2D Observer Form [A(v),B(v),C(v),F(v),H(v)] block implements a gain-scheduled state-space controller defined in the following observer form:

$$\begin{array}{l}\dot{x}=(A(v)+H(v)C(v))x+B(v){u}_{meas}+H(v)\left(y-{y}_{dem}\right)\\ {u}_{dem}=F(v)x\end{array}$$

The main application of these blocks is to implement a controller designed using H-infinity loop-shaping, one of the design methods supported by Robust Control Toolbox.

**A-matrix(v1,v2)***A*-matrix of the state-space implementation. In the case of 2-D scheduling, the*A*-matrix should have four dimensions, the last two corresponding to scheduling variables*v*1 and*v*2. Hence, for example, if the*A*-matrix corresponding to the first entry of*v*1 and first entry of*v*2 is the identity matrix, then`A(:,:,1,1) = [1 0;0 1];`

.**B-matrix(v1,v2)***B*-matrix of the state-space implementation. In the case of 2-D scheduling, the*B*-matrix should have four dimensions, the last two corresponding to scheduling variables*v*1 and*v*2. Hence, for example, if the*B*-matrix corresponding to the first entry of*v*1 and first entry of*v*2 is the identity matrix, then`B(:,:,1,1) = [1 0;0 1];`

.**C-matrix(v1,v2)***C*-matrix of the state-space implementation. In the case of 2-D scheduling, the*C*-matrix should have four dimensions, the last two corresponding to scheduling variables*v*1 and*v*2. Hence, for example, if the*C*-matrix corresponding to the first entry of*v*1 and first entry of*v*2 is the identity matrix, then`C(:,:,1,1) = [1 0;0 1];`

.**F-matrix(v1,v2)**State-feedback matrix. In the case of 2-D scheduling, the

*F*-matrix should have four dimensions, the last two corresponding to scheduling variables*v*1 and*v*2. Hence, for example, if the*F*-matrix corresponding to the first entry of*v*1 and first entry of*v*2 is the identity matrix, then`F(:,:,1,1) = [1 0;0 1];`

.**H-matrix(v1,v2)**Observer (output injection) matrix. In the case of 2-D scheduling, the

*H*-matrix should have four dimensions, the last two corresponding to scheduling variables*v*1 and*v*2. Hence, for example, if the*H*-matrix corresponding to the first entry of*v*1 and first entry of*v*2 is the identity matrix, then`H(:,:,1,1) = [1 0;0 1];`

.**First scheduling variable (v1) breakpoints**Vector of the breakpoints for the first scheduling variable. The length of

*v*1 should be same as the size of the third dimension of*A*,*B*,*C*,*F*, and*H*.**Second scheduling variable (v2) breakpoints**Vector of the breakpoints for the second scheduling variable. The length of

*v*2 should be same as the size of the fourth dimension of*A*,*B*,*C*,*F*, and*H*.**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*.

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

First | Contains the set-point error. | |

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

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

Fourth | Contains the measured actuator position. |

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

First | 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.

See H-Infinity Controller (Two Dimensional Scheduling) in `aeroblk_lib_HL20`

`aeroblk_lib_HL20`

for
an example of this block.

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 6.

Was this topic helpful?