当前位置:
文档之家› 基于MATLAB的控制系统仿真及应用 (8)
基于MATLAB的控制系统仿真及应用 (8)
%绘制Bode图,并将稳定裕度 及相应的频率标示在图上。
%不绘制曲线,得到稳定裕度 数据值。 %w为频率范围。
14
说明:
(1)该系统适用于线性定常连续系统和离散系统。 (2)在绘制的Bode图中,稳定裕度所在的位置将
用垂直线标示出来。 (3)每次只计算或绘制一个系统的稳定裕度。 (4)返回值中,Gm表示幅值裕度;Pm表示相位
Pole-Zero Map
3
2
1
0
-1
-2
-3
-2
-1.5
-1
-0.5
0
Real Axis
【例4.1.1】系统的零极点图
7
【例4.1.2】已知线性定常离散系统的
脉冲传递函数为
G(z)
2z2 5z 1 z2 2z 3
,应用MATLAB判断系统的稳定性。
【解】在MATLAB命令窗口中输入: >> num=[2 5 1];den=[1 2 3]; >> sys=tf(num,den,-1); >> pzmap(sys)
在MATLAB中,可以使用函数pzmap( )绘制系 统的零极点图,从图中可以直观地看到左半s 平面是否存在极点,从而判断系统是否稳定。 其主要功能和格式如下。
功能:计算线性定常系统的零极点,并将它们 表示在s复平面上。
4
格式:
pzmap(sys1,…,s %在一张零极点图中同时绘制N个线
ysN)
第四章
基于MATLAB的控制系统运动性能分析
1
4.1 控制系统的稳定性分析 4.2 控制系统的稳态性能分析 4.3 控制系统的动态性能分析
2
4.1 控制系统的稳定性分析
稳定性是控制系统的重要性能,也是系 统能够正常运行的首要条件。应用MATLAB 可以方便、快捷地作出系统稳定性的判断。
3
时域分析
p=pole(sys) %求系统sys传递函数的极点。 p=roots(s) %求多项式s的特征根。
10
【例4.1.3】已知反馈系统的开环传递
函数为
G(s)
s5
s2 2s4 9s3
10s2
,
应用MATLAB通过直接计算其极点值
和特征根来判断稳定性。
【解】(1) 使用函数pole( )计算传递函数的极点。在 MATLAB命令窗口中输入:
>> num=[1 2];
>> den=[1 2 9 10 0 0]; >> sys=tf(num,den); >> p=pole(sys)
11
运行结果为:
p= 0 0
-0.3795 + 2.8132i -0.3795 - 2.8132i -1.2410
12
(2) 使用函数roots计算多项式的特征根: >> p=roots([1 2 9 10 0 0]) 运行结果为:
18
(2)函数allmargin( ):计算系 统的稳定裕度及截止频率
S= allmargin(sys) %提供SISO开环系统的信息。
说明: (1)返回变量S包括:
GMFrequency:穿越频率(单位:rad/s) GainMargin:幅值裕度(单位:度) PMFrequency:截止频率(单位:rad/s) PhaseMargin:相位裕度(单位:度) DelayMargin:延迟裕度(单位:s)及临界频率(单位:rad/s) Stable:相应闭环系统稳定(含临界稳定)时值为1,否则为0 (2)系统sys不能为频率响应数据模型。 (3)输出为无穷大时,用Inf表示。
裕度(单位:度);Wcg表示截止频率; Wcp表示穿越频率。
15
【例4.1.4】设单位负反馈的开环传递
函数为
G(s)
3200
,
s(s 5)(s 16)
计算稳定裕度。
【解】在MATLAB命令窗口中输入: >> G=zpk([],[0 -5 -16],3200); >> margin(G)
16
运行结果为:
性定常系统sys1,…,sysN的零极
点图。
[p,z]=pzmap(sys) %得到线性定常系统的极点和零点 数值,并不绘制零极点图。
说明: (1)sys描述的系统可以是连续系统,也可以是离散系统; (2)零极点图中,极点以“×”表示,零点以“○”表示。
5
【例4.1.1】已知反馈系统的开环传递
函数为
G(s)
s5
s2 2s4 9s3
10s2
,
应用MATLAB判断系统的稳定性。
【解】首先建立系统的数学模型,然后绘制其零 极点图
>> num=[1 2];
>> den=[1 2 9 10 0 0];
>> sys=tf(num,den);
>> pzmap(sys)
6
运行结果为:
Imaginary Axis
Magnitude (dB)
100 50 0 -50
-100 -150
-90
Bode Diagram Gm = -5.6 dB (at 8.94 rad/sec) , Pm = -14.8 deg (at 12.1 rad/sec)
-135
-180
-225
-270
10-1
100
101
102
103
Frequency (rad/sec)
【例4.1.4】的Bode图
17
Phase (deg)
直接返回值,在MATLAB命令窗口中输入:
>> [Gm,Pm,Wcg,Wcp]=margin(G);
运行结果为:
Gm =
0.5250
Pm =
-14.7820
Wcg =
8.9443 Wcp =
12.1343
注意:
Gm的单位不是分贝。若须采用分 贝表示,则按照20lg(Gm)计算。
p= 0 0
-0.3795 + 2.8132i -0.3795 - 2.8132i -1.2410 可见,上述几种方法得到的结果相同。
13
频域分析
MATLAB也提供了函数用来计算系统的频域指 标。
(1)函数margin( ):计算SISO开环系统所对应 的闭环系统频域指标。
margin(sys)
[Gm,Pm,Wcg,Wcp]= margin(sys) [Gm,Pm,Wcg,Wcp]= margin(mag,phase,w)
8
运行结果为:
Imaginary Axis
1.5
Pole-Zero Map
1
0.5
0
-0.5
-1
-1.5 -2.5 -2 -1.5 -1 -0.5 0 0.5 1
Real Axis
【例4.1.2】系统的零极点图
9
在MATLAB中,也可以用函数 pole( )直接求出系统传递函数的极点, 或使用函数roots( )求其特征根。主要 格式如下: