如何在Matlab中使用系统矩阵得到多输入多输出系统的传递函数

时间:2015-12-30 13:28:24

标签: matlab matrix

这里我有多输入多输出系统的矩阵(矩阵D不为零),我想采用这个模型的传递函数。     大小A [9 * 9]

A = [-6.932e-2,17.41,-36.75,0,0,0,-6.0660,-31.54,0;
    -1.435e-4,2.719e-2,-1.411e-3,3.467e-1,0,-9.380e-1,7.139e-2,-1.691e-2,0;
    -4.537e-4,1.870e-3,-2.025e-1,0,1,0,-4.688e-2,7.563e-3,0;
    -1.304e-4,-7.179,-4.916e-1,-6.172e-1,-3.689e-2,7.631e-1,0,0,0;
    2.297e-5,0,-8.667e-1,4.393e-2,-1.947e-1,-2.026e-2,0,0,0;
    1.964e-5,4.263e-2,-1.329e-2,1.233e-3,1.579e-2,-1.600e-1,0,0,0;
    0,0,0,1,1.941e-1,2.771e-1,0,6.258e-2,0;
    0,0,0,0,8.192e-1,-5.736e-1,-5.612e-2,0,0;
    0,0,0,0,6.055e-1,8.648e-1,0,2.006e-2,0]

size  B = [9*4]

B = [0,0,-7.560,9.067e-4;
     -6.952e-3,1.293e-2,0,0;
     0,0,-3.425e-2,-9.577e-7;
     4.249,5.989e-1,0,0;
     0,0,-1.796,0;
     -7.287e-2,-2.877e-1,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0]

size  C = [7*9]

C = [0,-5.758e-1,0,0,0,0,0,0,0;
     0,0,0,1,0,0,0,0,0;
     0,0,0,0,0,1,0,0,0;
     0,0,1,0,0,0,0,0,0;
     0,1,0,0,0,0,0,0,0;
     0,0,0,0,1,0,0,0,0;
     0,2.719e-2,-1.411e-3,3.467e-1,0,-9.380e-1,7.139e-2,0,0]

size D = [7*4]

D = [-1.298e-1,-1.610e-1,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0;
     0,0,0,0;
     -6.952e-3,1.293e-2,0,0]

如何使用Matlab获得此模型的传递函数?

1 个答案:

答案 0 :(得分:3)

您可以使用ss命令从系统矩阵创建状态空间模型。 D非零是不重要的,因为在使用ss创建模型时MATLAB使用标准形式:

model(图片来自Wikipedia.org

equations

所以你用

创建模型
sys = ss(A,B,C,D);

并读出传递函数:

tf(sys)

返回一个7x4 tf对象,其中包含从每个输入到每个输出的传递函数。

注意:您在此处发布的矩阵A不正确:某些行中有太多零,但我认为这是一个简单的复制粘贴错误。删除后,这很好。