Implement gain-scheduled state-space controller depending on three scheduling parameters

GNC/Control

The 3D Controller [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}$$

where *v* is a vector of parameters 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(v1,v2,v3)***A*-matrix of the state-space implementation. In the case of 3-D scheduling, the*A*-matrix should have five dimensions, the last three corresponding to scheduling variables*v*1,*v*2, and*v*3. Hence, for example, if the*A*-matrix corresponding to the first entry of*v*1, the first entry of*v*2, and the first entry of*v*3 is the identity matrix, then`A(:,:,1,1,1) = [1 0;0 1];`

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

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

.**D-matrix(v1,v2,v3)***D*-matrix of the state-space implementation. In the case of 3-D scheduling, the*D*-matrix should have five dimensions, the last three corresponding to scheduling variables*v*1,*v*2, and*v*3. Hence, for example, if the*D*-matrix corresponding to the first entry of*v*1, the first entry of*v*2, and the first entry of*v*3 is the identity matrix, then`D(:,:,1,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*, and*D*.**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*, and*D*.**Third scheduling variable (v3) breakpoints**Vector of the breakpoints for the third scheduling variable. The length of

*v*3 should be same as the size of the fifth 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*.

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

First | Contains the measurements. | |

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

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

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

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

First | Contains the actuator demands. |

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

Was this topic helpful?