matlab由状态空间求传递函数,matlab 由状态空间表达式求传递函数 [李园7舍_404]

  • Post author:
  • Post category:其他


1 内容

有一个两输入两输出线性系统

0818b9ca8b590ca3270a3433284dd417.png
,求该系统的传递函数表达式子。

2 求解

2.1 相关函数

状态空间表达式的传递函数用ss2tf函数来求解

函数原型

[b,a] = ss2tf(A,B,C,D,iu)

功能

将状态空间表达式转换成传递函数的形式

参数含义

A, B, C, D代表状态空间表达式前面的矩阵,如在内容当中的状态空间表达式中,A代表矩阵[-1, -1; 6.5 ,0],B代表矩阵[1, 1;1, 0],C代表矩阵[1, 0; 0, 1],D代表矩阵[0, 0;0, 0]

返回值

b代表是传递函数分子的各系数,a代表传递函数分母的各系数

2.2 编写代码求解

matlab 版本:7.9.0(R2009b)

打开matlab,file–>New–>Blank M-file

%列写状态空间表达式矩阵

A=[-1 -1;6.5 0];

B=[1 1; 1 0];

C=[1 0; 0 1];

D=[0 0;0 0];

%得到传递函数表达式

[num, den]=ss2tf(A, B, C, D, 2);

%在命令行打印传递函数

printsys(num, den);

将此文件保存到matlab的空间内,然后在这个文件中选择Debug–>Run或者直接按F5,在命令窗口中得到的结果如下:

num(1)/den =

1 s + 3.5527e-015

—————–

s^2 + 1 s + 6.5

num(2)/den =

6.5

—————

s^2 + 1 s + 6.5

因为这是两输入量输出的系统,所以有两个传递函数。就这样子就从状态空间表达式求得了系统的传递函数(闭环的还是开环的哦,主要是系统是怎么样子的呢,呵呵)。

此次笔记记录完毕。