用MATLAB实现线性系统的频域分析
实验二 用MATLAB 实现线性系统的频域分析
[实验目的]
1.掌握MATLAB 平台下绘制典型环节及系统开环传递函数的Bode 图和Nyquist 图(极坐标图)绘制方法;
2.掌握利用Bode 图和Nyquist 图对系统性能进行分析的理论和方法。 [实验指导]
一、绘制Bode 图和Nyquist 图
1.Bode 图绘制
采用bode()函数 ,调用格式: ①bode(sys);bode(num,den);
系统自动地选择一个合适的频率范围。 ②bode(sys,w) ;
其中w(即ω) 是需要人工给出频率范围,一般由语句w =logspace(a,b,n)给出。
logspace(a,b,n):表示在10a 到10b 之间的 n个点, 得到对数等分的w 值。
③bode(sys,{wmin,wmax}) ;
其中{wmin,wmax}是在命令中直接给定的频率w 的区间。 以上这两种格式可直接画出规范化的图形。 ④[mag,phase,ω]=bode(sys)或[m,p]=bode(sys)
这种格式只计算Bode 图的幅值向量和相位向量,不画出图形。 m 为频率特性G(jω )的幅值向量;
p 为频率特性G(jω )的幅角向量,单位为角度(°)。 w 为频率向量,单位为[弧度]/秒。 在此基础上再画图,可用:
subplot(211);semilogx(w ,20*log10(m) %对数幅频曲线 subplot(212);semilogx(w ,p) %对数相频曲线 ⑤bode(sys1, sys2,…,sysN ) ; ⑥bode((sys1, sys2,…,sysN ,w);
这两种格式可在一个图形窗口同时绘多个系统的bode 图。 2. Nyquist 曲线的绘制
采用nyquist()函数 调用格式: ① nyquist(sys) ; ② nyquist(sys,w) ;
其中频率范围w 由语句w=w1:Δw:w2确定。 ③ nyquist(sys1,sys2,…,sysN) ; ④ nyquist(sys1,sys2,…,sysN,w); ⑤ [re,im,w]=nyquist(sys) ;
re —频率响应实部 im —频率响应虚部
使用命令axis()改变坐标显示范围,例如axis([-1,1.5,-2,2])。
⑥当传递函数串有积分环节时ω=0处会出现幅频特性为无穷大的情况,可用命令axis(),自定义图形显示范围,避开无穷大点。 二、系统分析
1.计算控制系统的稳定裕度
采用margin( )函数可以直接求出系统的幅值裕度和相角裕度。 调用格式为:
① [Gm,Pm,Wcg,Wcp]= margin(num,den) ; [Gm,Pm,Wcg,Wcp]= margin(A,B,C,D) ; [Gm,Pm,Wcg,Wcp]= margin(sys) ; Gm--- 幅值裕度; Pm---相位裕度;
wcg ---幅值裕度处对应的频率ωc ; wcp ---相位裕度处对应的频率ωg 。
②[Gm,Pm,Wcg,Wcp]= margin(mag ,phase,w); ③ margin(sys)
在当前图形窗口中绘制出系统裕度的Bode 图。
2.用幅值裕度和相角裕度判断闭环系统稳定性与相对稳定性 3.用Nyquist 图判断闭环系统稳定性
由Nyquist 曲线包围(-1,j0)点的情况,根据Nyquist 稳定判据判断闭环系统稳定性。 三、举例
例1:振荡环节如下:G (s ) =
程序:
16
,做出该环节的Bode 图和Nyquist 图。
s 2+10s +16
>>n=[16];d=[1 10 16];sys=tf(n,d);figure(1);bode(sys);figure(2);nyquist(sys)
运行结果:
Nyquist Diagram
Bode Diagram
M a g n i t u d e (d B )
I m a g i n a r y A x i s
P h a s e (d e g )
10
10
10
Frequency (rad/sec)
10
Real Axis
例2:振荡环节如下:G (s ) =
16s 2+ξωn s +16
,做出该环节的Bode 图和Nyquist 图。
ξ变化,取[0.05,0.1,0.2,0.5,0.7,1,2]。
1.Bode 图程序:
>> wn=8;znb=[0.05,0.1,0.5,0.7,2];w=logspace(0,2,10000);figure(1);n=[wn^2]; for k=znb d=[1 2*k*wn wn^2];sys=tf(n,d);bode(sys,w);hold on; end 运行结果:
Bode Diagram
4020M a g n i t u d e (d B
) P h a s e (d e g )
0-20-40-600-45-90-135-180
10
10
1
10
2
Frequency (rad/sec)
1.Nyquist 图程序:
>> wn=8;znb=[0.05,0.1,0.5,0.7,2];w=logspace(0,2,10000);figure(1);n=[wn^2]; for k=znb d=[1 2*k*wn wn^2];sys=tf(n,d); nyqiust(sys,w); hold on; end 运行结果:
Nyquist Diagram
I m a g i n a r y A x i s
-5
-4
-3
-2
-1
0Real Axis
1
2
3
4
5
例3:系统开环传递函数如下:
20
①G 0(s ) =,
s (0.5s +1)
0.23s +1
②G c (s ) =,
0.055s +1
③G (s ) =
20(0.23s +1)
,
s (0.055s +1)(0.5s +1)
做出各自的Bode 图,并求①、③幅值裕度和相角裕度 1.Bode 图程序:
>> n1=20;d1=conv([1,0],[0.5,1]);sys1=tf(n1,d1); figure(2);bode(sys1); n2=[0.23 1];d2=[0.055,1];sys2=tf(n2,d2);hold on; figure(2);bode(sys2);
n=[4.6 20];d=conv([1,0],conv([0.055,1],[0.5,1]));sys=tf(n,d);hold on; figure(2); bode(sys)
运行结果:
Bode Diagram
M a g n i t u d e (d B )
P h a s e (d e g )
10
10
10
Frequency (rad/sec)
10
2.求①②幅值裕度和相角裕度程序(图形与数据) >> n1=20;d1=conv([1,0],[0.5,1]);sys1=tf(n1,d1); figure(1);margin(sys1)
运行结果:
Bode Diagram
Gm = Inf, Pm = 17.964 deg (at 6.1685 rad/sec)
M a g n i t
u d e (d B ) P h a s e (d e g )
-110
10
10
1
Frequency (rad/sec)
>> n=[4.6 20];d=conv([1,0],conv([0.055,1],[0.5,1]));sys=tf(n,d);hold on; figure(2); margin(sys)
运行结果:
Bode Diagram
Gm = Inf, Pm = 50.472 deg (at 8.9542 rad/sec)
M a g n i t u d e (d B )
P h a s e (d e g )
-110
10
10
Frequency (rad/sec)
1
10
2
2.求①②幅值裕度和相角裕度程序和结果(数据)
>> [Gm,Pm,Wcg,Wcp]= margin(sys1)
Gm = Inf Pm = 17.9642 Wcg = Inf
Wcp = 6.1685
>> [Gm,Pm,Wcg,Wcp]= margin(sys)
Gm = Inf Pm = 50.4719 Wcg = Inf Wcp = 8.9542
4(3s +1)
例4:系统开环传递函数为:G 0(s ) = 做出nyquist 图,按nyquist 稳定判据判
s (2s +1)
断闭环系统的稳定性。
程序与结果:
>> n=conv([4],[3 1]);d=conv([1 0],[2 1]);sys2=tf(n,d) Transfer function: 12 s + 4 --------- 2 s^2 + s
>> figure(4);nyquist(sys2);v=[-1,6,-60,60];axis(v)
Nyquist Diagram
ω=0-
I m a g i n a r y A x i s
Real Axis
分析判断:p=0,nyquist 曲线没有包围(-1,j0) 点,闭环系统是稳定的。 下面通过闭环系统时域阶跃响应来验证闭环系统的稳定性:
>> n=conv([4],[3 1]);d=conv([1 0],[2 1]);G1=tf(n,d); G2=1;G=feedback(G1,G2,-1) Transfer function: 12 s + 4 ---------------- 2 s^2 + 13 s + 4 >> figure(7);step(G)
10.90.80.70.6
A m p l i t u d e
0.50.40.30.20.10
00.511.52Time (sec)
2.533.54
2(s +3)
例5:系统开环传递函数为:G 0(s ) = 做出nyquist 图,按nyquist 稳定判据判
s (s -1)
断闭环系统的稳定性。
程序与结果:
>>z=[-3];p=[0,1];k=2;sys=zpk(z,p,k) Zero/pole/gain:
2 (s+3) ------- s (s-1)
>>nyquist(sys);v=[-10,10,-20,20];axis(v)
ω=0+
Nyquist Diagram
ω=0
-
Real Axis
分析判断:p=1,nyquist 曲线逆时针包围(-1,j0) 点1周,闭环系统是稳定的。
下面通过闭环系统时域阶跃响应来验证闭环系统的稳定性: >> z=[-3];p=[0,1];k=2;sys=zpk(z,p,k);h=1;g= feedback(sys,h,-1) Zero/pole/gain: 2 (s+3)
------------- (s^2 + s + 6) >> figure(8);step(g)
Step Response
1.8
1.61.41.2
A m p l i t u d e
10.80.60.40.20
0246Time (sec)
81012
[实验内容]
1.作各典型环节的Bode 图和Nyquist 图,参数自定。
2.自确定多环节开环传递函数,作Bode 图和Nyquist 图;求取幅值裕度和相角裕度,据此判断闭环系统稳定性与相对稳定性;按nyquist 稳定判据判断闭环系统的稳定性。
在不同实验项目中都采用同一个开环传递函数,或各自采用各自的开环传递函数,皆可以。
[实验报告要求]
1.写明实验目的和实验原理。实验原理中简要说明作Bode 图和Nyquist 图、求取幅值裕度和相角裕度采用的语句或函数、说明nyquist 稳定判据的内容。
2.在实验过程和结果中,要列项目反映各自的实验内容,编写的程序,运行结果,按实验内容对结果的分析与判断。程序和运行结果(图)可以从屏幕上复制,打印报告或打印粘贴在报告上。不方便打印的同学,要求手动从屏幕上抄写和绘制。
3.简要写出实验心得和问题或建议。