用MATLAB实现线性系统的频域分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二用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:振荡环节如下:16
()21016
G s s s =
++,做出该环节的Bode 图和Nyquist 图。
程序:
>>n=[16];d=[1 10 16];sys=tf(n,d);figure(1);bode(sys);figure(2);nyquist(sys)
运行结果:
Bode Diagram
Frequency (rad/sec)
P h a s e (d e g )
M a g n i t u d e (d B )
10
10
10
10
Nyquist Diagram
Real Axis
I m a g i n a r y A x i
s
例2:振荡环节如下:16()216
n G s s s ξω=
++,做出该环节的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
Frequency (rad/sec)
P h a s e (d e g )
M a g n i t u d e (d B
)-60-40-200204010
10
10
-180
-135-90-450