主要内容

MIMO 模型

喷气式运输机的状态空间模型

此示例说明如何构建喷气式运输机的 MIMO 模型。由于喷气式飞机物理模型开发的内容繁多,此处只介绍其中的状态空间方程。有关飞机飞行的物理学原理的更完整讨论,请参阅标准的航空教科书。

巡航飞行时 MACH = 0.8 且 H = 40,000 英尺状态下喷气式飞机模型如下

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];

使用以下命令将此状态空间模型指定为 LTI 对象,并将名称附加到状态、输入和输出。

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);

您可以通过键入 sys_mimo 来显示 LTI 模型。

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.

该模型有两个输入和两个输出。beta(侧滑角)和 phi(倾斜角)的单位为弧度;yaw(偏航角速度)和 roll(滚转角速度)的单位为弧度/秒。方向舵和副翼偏转以度为单位。

与在 SISO 示例中一样,我们使用 tf 来推导传递函数表示。

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

构造 MIMO 传递函数

MIMO 传递函数是由基本 SISO 传递函数组成的二维数组。可以通过以下两种方法来指定 MIMO 传递函数模型:

  • 串联 SISO 传递函数模型

  • tf 与元胞数组参量结合使用

串联 SISO 模型

以如下单输入、双输出传递函数为例。

H(s)=[s1s+1s+2s2+4s+5]

您可以通过串联其 SISO 项来指定 H(s)。例如,

h11 = tf([1 -1],[1 1]);		
h21 = tf([1 2],[1 4 5]);		

或者,也可以将其等效项

s = tf('s')
h11 = (s-1)/(s+1);
h21 = (s+2)/(s^2+4*s+5); 

串联起来构成 H(s)。

H = [h11; h21]

此语法模拟标准矩阵串联,对于具有许多输入和/或输出的 MIMO 系统来说,更容易理解,可读性更好。

tf 函数与元胞数组结合使用

或者,要使用 tf 定义 MIMO 传递函数,您需要两个元胞数组(即 ND)来分别表示分子和分母多项式集。有关元胞数组的更多详细信息,请参阅元胞数组

例如,对于有理传递矩阵 H(s),两个元胞数组 ND 应包含以下两个等式的多项式项的行向量表示:

N(s)=[s1s+2]D(s)=[s+1s2+4s+5]

您可以通过键入以下内容来指定此 MIMO 传递矩阵 H(s):

N = {[1 -1];[1 2]};   % Cell array for N(s)
D = {[1 1];[1 4 5]}; % Cell array for D(s)
H = tf(N,D)

这些命令返回以下结果:

Transfer function from input to output...
      s - 1
 #1:  -----
      s + 1
 
          s + 2
 #2:  -------------
      s^2 + 4 s + 5

请注意,NDH 具有相同的维度。对于一般的 MIMO 传递矩阵 H(s),元胞数组项 N{i,j}D{i,j} 应为 Hij(s)(即传递矩阵 H(s) 的第 ij 项)的分子和分母的行向量表示。

在 MIMO 系统中访问 I/O 对组

定义 MIMO 系统后,您可以通过指定系统的输入和输出对组来访问和操作 I/O 对组。例如,如果 sys_mimo 是具有两个输入和三个输出的 MIMO 系统,

sys_mimo(3,1)

会提取子系统,将第一个输入映射到第三个输出。行索引选择输出,列索引选择输入。同样,

sys_mimo(3,1) = tf(1,[1 0])

将第一个输入和第三个输出之间的传递函数重新定义为积分器。