MIMO State-Space Models
MIMO Explicit State-Space Models
You create a MIMO state-space model in the same way as you create a SISO state-space model. The only difference between the SISO and MIMO cases is the dimensions of the state-space matrices. The dimensions of the B, C, and D matrices increase with the numbers of inputs and outputs as shown in the following illustration.
In this example, you create a state-space model for a rotating body with inertia tensor J, damping force F, and three axes of rotation, related as:
The system input T is the driving torque. The output y is the vector of angular velocities of the rotating body.
To express this system in state-space form:
rewrite it as:
Then the state-space matrices are:
To create this model, enter the following commands:
J = [8 -3 -3; -3 8 -3; -3 -3 8]; F = 0.2*eye(3); A = -J\F; B = inv(J); C = eye(3); D = 0; sys_mimo = ss(A,B,C,D);
These commands assume that J is the inertia tensor of a cube rotating about its corner, and the damping force has magnitude 0.2.
sys_mimo
is an ss
model.
MIMO Descriptor State-Space Models
This example shows how to create a continuous-time descriptor
(implicit) state-space model using dss
.
This example uses the same rotating-body system shown in MIMO Explicit State-Space Models, where you inverted the inertia matrix J to obtain the value of the B matrix. If J is poorly-conditioned for inversion, you can instead use a descriptor (implicit) state-space model. A descriptor (implicit) state-space model is of the form:
Create a state-space model for a rotating body with inertia tensor J, damping force F, and three axes of rotation, related as:
The system input T is the driving torque. The output y is the vector of angular velocities of the rotating body. You can write this system as a descriptor state-space model having the following state-space matrices:
To create this system, enter:
J = [8 -3 -3; -3 8 -3; -3 -3 8]; F = 0.2*eye(3); A = -F; B = eye(3); C = eye(3); D = 0; E = J; sys_mimo = dss(A,B,C,D,E)
These commands assume that J is the inertia tensor of a cube rotating about its corner, and the damping force has magnitude 0.2.
sys
is an ss
model
with a nonempty E matrix.
State-Space Model of Jet Transport Aircraft
This example shows how to build a MIMO model of a jet transport. Because the development of a physical model for a jet aircraft is lengthy, only the state-space equations are presented here. See any standard text in aviation for a more complete discussion of the physics behind aircraft flight.
The jet model during cruise flight at MACH = 0.8 and H = 40,000 ft. is
A = [-0.0558 -0.9968 0.0802 0.0415 0.5980 -0.1150 -0.0318 0 -3.0500 0.3880 -0.4650 0 0 0.0805 1.0000 0]; B = [ 0.0073 0 -0.4750 0.0077 0.1530 0.1430 0 0]; C = [0 1 0 0 0 0 0 1]; D = [0 0 0 0];
Use the following commands to specify this state-space model as an LTI object and attach names to the states, inputs, and outputs.
states = {'beta' 'yaw' 'roll' 'phi'}; inputs = {'rudder' 'aileron'}; outputs = {'yaw rate' 'bank angle'}; sys_mimo = ss(A,B,C,D,'statename',states,... 'inputname',inputs,... 'outputname',outputs);
You can display the LTI model by typing sys_mimo
.
sys_mimo
a = beta yaw roll phi beta -0.0558 -0.9968 0.0802 0.0415 yaw 0.598 -0.115 -0.0318 0 roll -3.05 0.388 -0.465 0 phi 0 0.0805 1 0 b = rudder aileron beta 0.0073 0 yaw -0.475 0.0077 roll 0.153 0.143 phi 0 0 c = beta yaw roll phi yaw rate 0 1 0 0 bank angle 0 0 0 1 d = rudder aileron yaw rate 0 0 bank angle 0 0 Continuous-time model.
The model has two inputs and two outputs. The units are radians for
beta
(sideslip angle) and phi
(bank angle)
and radians/sec for yaw
(yaw rate) and roll
(roll rate). The rudder and aileron deflections are in degrees.
As in the SISO case, use tf
to derive the transfer function
representation.
tf(sys_mimo)
Transfer function from input "rudder" to output... -0.475 s^3 - 0.2479 s^2 - 0.1187 s - 0.05633 yaw rate: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674 0.1148 s^2 - 0.2004 s - 1.373 bank angle: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674 Transfer function from input "aileron" to output... 0.0077 s^3 - 0.0005372 s^2 + 0.008688 s + 0.004523 yaw rate: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674 0.1436 s^2 + 0.02737 s + 0.1104 bank angle: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674