现在的位置: 首页 > 综合 > 正文

matlab 由状态空间表达式求传递函数 笔记

2013年01月05日 ⁄ 综合 ⁄ 共 701字 ⁄ 字号 评论关闭

1 内容

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

,求该系统的传递函数表达式子。

 

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

 

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

 

此次笔记记录完毕。

抱歉!评论已关闭.