当前位置:文档之家› 05线性定常系统的MATLAB实现

05线性定常系统的MATLAB实现


C s bm s bm1 s ... b0 nums Gs n n 1 Rs an s an1 s ... a0 dens
m m 1
2
C s bm s m bm1 s m1 ... b0 nums Gs n n 1 Rs an s an1 s ... a0 dens
10
例:已知系统的传递函数为
2s 2 3s 4 Gs 6 3s 4s 5 5s 4 6s 3 7 s 2 8s 9 根据传递函数求解零点、极点和增益值。
num=[2,3,4];
den=[3,4,5,6,7,8,9]; [z,p,k]=tf2zp(num,den)
试用MATLAB创建系统的零极点增益模型。 z=[-1,-2];
p=[-2-i,-2+i,-3];
k=1; sys=zpk(z,p,k)
8
三、两种数学模型之间的转换
这两种数学模型之间是可以相互转换的,其调用格式分别为:
tf (sys) ——将零极点增益模型转换成传递函数模型; zpk (sys)——将传递函数模型转换成零极点增益模型。
三、连续系统单位斜坡和单位加速度响应
MATLAB中,没有求斜坡响应和加速度响应的特定函数, 根据闭环传递函数的定义:
C s s Rs 1 1 对于单位阶跃信号有: Rs C s s Rs s s s
对于单位斜坡信号有: 对于单位加速度信号有:


j 1
MATLAB中,连续系统可以直接用零点向量z,极点向量p 和增益量k来表示系统 z [ z1 , z 2 ,..., z m ] p [ p1 , p 2 ,..., p n ] * k [ K ] p1 , p 2 ,..., p n ] * k [ K ]
MATLAB中,用函数命令zpk ( )来建立控制系统的零极点 增益模型,其调用格式为: sys=zpk (z, p, k):用来建立连续系统的零极点增益模型; 若已知系统零极点增益模型传递函数sys,其零点与极点可 分别由sys.z{1}与sys.p{1}指令求出。
7
已知系统传递函数为 例:
Gs ( s 1)(s 2) ( s 2 i )(s 2 i)(s 3)
由此可以看出:可以将系统闭环传递函数除以拉氏算子 s (s2 ) ,再使用step函数就求得系统的单位斜坡响应(单位
加速度响应)。在MATLAB中,只需在系统闭环传递函数 分母多项式向量最末位补上一个(两个)“0”即可。
24
例: 已知单位负反馈系统的前向通道的传递函数为:
80 ,试作出其单位斜坡响应曲线 G s 2 s 2s 和单位加速度响应曲线。
第二章 基于MATLAB的线性连续系统分析
2.1 连续系统数学模型的Matlab实现 2.2 基于Matlab的线性系统时域分析 2.3 基于Matlab的线性系统频域分析
1
2.1 连续系统数学模型的Matlab实现
数学模型是控制系统仿真的基础。在MATLAB中, 用来表示线性连续控制系统的数学模型有:分子分母 多项式模型,零极点增益模型与Simulink结构图。 一、分子分母多项式模型 对于单输入单输出(SISO) 连续线性定常系统,其传递函数 为:
2 8 s 24s 16 例:已知系统的传递函数为: Gs s 4 12s 3 47s 2 60s 试求其等效的零极点增益模型。
sys2 = zpk (sys1)
9
[z, p, k] = tf2zp (num,den),其中num和den分别为系统传 递函数的分子与分母多项式系数向量, z, p, k分别为系统 对应的零点向量、极点向量和增益。 [num, den] = zp2tf (z, p, k),其中z, p, k分别为系统的零点 向量、极点向量和增益。 num和den分别为系统对应的传 递函数模型分子与分母多项式系数向量。 注意: z, p必须为列向量!
1 1 1 1 Rs 2 C s s Rs s 2 s s s s s
1 1 1 1 Rs 3 C s s Rs s 3 s 223 s s s s
在MATLAB中,用tf( )命令来建立控制系统的分子分母多 项式模型。其调用格式为: sys=tf (num, den):返回连续系统的传递函数模型,num与 den分别为系统的分子与分母多项式系数向量; 若已知系统传递函数G,其分子与分母多项式系数向量可 分别由G.num{1}与G.den{1}指令求出。
1 1 s2 1 s 1 G1 s ,G2 s , G3 s 2 , G3 s s 10 s 1 s6 s 4s 4 1 H 1 s 1, H 2 s 2, H 3 s s2
H 2 ( s) R( s )
- -

G7=feedback(series(G6,G1),H3)
19
2.2 基于Matlab的线性系统时域分析
2.2.1 线性系统时域响应
一、连续系统单位阶跃响应 在MATLAB中,用step ( )命令求连续系统的单位阶跃响 应,其调用格式为: step (sys , t) ,函数在当前图形窗口中直接绘制出系统的 阶跃响应曲线。式中sys是由tf或zpk函数建立的系统模型; t 可以指定为一个仿真终止时间,此时t为标量;也可将其 设置为一个时间矢量(用t=0:dt:Tfinal的形式)。
[y,t]=step (sys),不绘制阶跃响应曲线,返回阶跃响应幅 值y和时间t。
20
例: 已知单位负反馈系统的前向通道的传递函数为:
80 ,试作出其单位阶跃响应曲线。 G s 2 s 2s
num=80;
den=[1,2,0];
sys=tf (num, den); closys=feedback(sys,1); step (closys,1:0.1:10)
16
例: G1=tf(1,[1,2,1]);
G2=tf(1,1); disp('负反馈系统闭环传递函数为:') G=feedback(G1,G2) disp('正反馈系统闭环传递函数为:') G=feedback(G1,G2,1)
17
例:系统动态结构图如下图所示,试求系统传递函数
C(s)/R(s),其中
num=80; den=[1,2,0];
sys=tf (num, den);
closys=feedback(sys,1);
sys1=closys*tf(1,[1,0]);step (sys1) ,figure(2);
sys2=closys*tf(1,[1,0,0]);step (sys2)
25
四、连续系统任意输入下的时间响应
G1 ( s )
G2 ( s )

G3 ( s )
G4 ( s )
C ( s)
H 3 ( s)
H1 ( s)
18

G1=tf(1,[1,10]);
G2=tf(1,[1,1]);
G3=tf([1,0,1],[1,4,4]); G4=tf([1,1],[1,6]); H1=tf(1,1); H2=tf(1,1); H3=tf(1,[1,2]); G5=feedback(series(G3,G4),H3); G6=feedback(series(G5,G2),H2/G4);
4
已知两系统传递函数分别为 例:
8s 2 24s 16 6(s 5) G1 s 4 ,G2 s 2 3 2 s 12s 47s 60s (s 3s 1) 2 (s 6)
试用MATLAB创建系统分子分母多项式模型。
num1=[8,24,16];
12
已知两系统传递函数分别为 例:
1 1 G1 s 2 ,G2 s s 1 s 2s 1
求两系统串联后的系统模型。 G1=tf(1,[1,2,1]);
G2=tf(1,[1,1]);
G=G1*G2
G=series(G1,G2)
13
2、并联环节化简
在MATLAB中,当n个模型并联时,可用 sys=sys1+sys2+…+sysn 来求并联后的系统模型。 还可用命令parallel ( )函数来实现两个系统模型的串 联,其调用格式为: sys=parallel (sys1, sys2)。
1 1 1 1 Rs 2 C s s Rs s 2 s s s s s 1 1 1 1 Rs 3 C s s Rs s 3 s 2 s s s s
14
已知两系统传递函数分别为 例:
1 1 G1 s 2 ,G2 s s 1 s 2s 1
求两系统并联联后的系统模型。 G1=tf(1,[1,2,1]);
G2=tf(1,[1,1]);
G=G1+G2
G= parallel(G1,G2)
15
3、反馈环节化简 MATLAB中,用函数命令feedback ( )来求反馈连接下的系 统模型,其调用格式为: sys= feedback (sys1, sys2, sign)—— sys1为前向通道传递函 数模型,sys2为反馈环节模型,sign为反馈极性,取-1时, 为负反馈;取1时,表示正反馈;默认值为-1。
11
四、控制系统结构图化简 控制系统框图的化简主要包括串联环节、并联环节和反 馈环节的化简。 1、串联环节化简 在MATLAB中,当n个模型串联时,可用 sys=sys1*sys2*…*sysn 来求串联后的系统模型。 还可用命令series( )函数来实现两个系统模型的串联, 其调用格式为: sys=series (sys1, sys2)。
相关主题