首页 理论教育 Matlab在频率分析中的应用

Matlab在频率分析中的应用

时间:2023-06-27 理论教育 版权反馈
【摘要】:前面介绍了几种用曲线表示开环系统频率特性的方法,利用这些曲线可以分析系统的稳定性及其他的频域性能指标,还可由开环频率特性求取控制系统的闭环频率特性。利用Matlab工具箱中函数,可以准确地作出系统的频率特性曲线,为控制系统的设计和分析提供了极大的方便。Matlab工具箱中,绘制系统频率特性曲线的几个常用函数有bode,nyquist,nichols, ngrid,margin等,下面通过具体的例子来说明这些函数的应用。

Matlab在频率分析中的应用

前面介绍了几种用曲线表示开环系统频率特性的方法,利用这些曲线可以分析系统的稳定性及其他的频域性能指标,还可由开环频率特性求取控制系统的闭环频率特性。利用Matlab工具箱中函数,可以准确地作出系统的频率特性曲线,为控制系统的设计和分析提供了极大的方便。

Matlab工具箱中,绘制系统频率特性曲线的几个常用函数有bode,nyquist,nichols, ngrid,margin等,下面通过具体的例子来说明这些函数的应用。

(1)函数bode

函数bode可以求出系统的Bode图,其格式为

[mag,phase,w]=bode(num,den)

[mag,phase,w]=bode(num,den,w)

bode(num,den)可以绘制传递函数时系统的Bode图。

bode(num,den,w)可利用指定的频率值ω绘制系统的Bode图。

当带输出变量引用函数时,可以得到系统Bode图相应的幅值、相角及频率值。其中

mag=∣G(jω)∣

phase=∠G(jω)

(2)函数nyquis

函数nyquis的功能是求系统的奈氏曲线,格式为

[re,im,w]=nyquist(num,den)

[re,im,w]=nyquist(num,den,w)

nyquist(num,den)可以得到开环传递函数为时系统的nyquist曲线。

nyquist(num,den,w)可以根据指定的频率值ω绘制系统的nyquist曲线。

当带输出变量引用函数时,可以得到系统nyquist曲线的数据,而不直接绘出nyquist曲线。

(3)nichols函数

nichols函数可求出系统频率特性的nichols图线,格式为

[mag,phase,w]=nichols(num,den)

[mag,phase,w]=nichols(num,den,w)

nichols(num,den)可以得到开环传递函数为时系统的nichols图线。

nichols(num,den,w)可以根据指定的频率值ω绘制系统的nichols图线。

当带输出变量引用函数时,可以得到系统nichols图线的数据,而不直接绘出nichols图线。

(4)ngrid函数

ngrid函数的功能是绘制nichols图线上的网格。格式为

ngrid

ngrid(‘new’)

ngrid函数可在nichols图线上加网格线,ngrid(‘new’)可在绘制网格前清除原图,然后再设置成hold on,这样,后续的nichols函数可与网格绘制在一起

(5)margin函数

margin可求出开环系统的幅值裕度和相角裕度,其格式为

margin(num,den)

[gm,pm,wcg,wcp]=margin(mag,phase,w)

margin(num,den)可计算系统的相角裕度和幅值裕度,并绘制出Bode图。

margin(mag phase,w)可以由幅值裕度和相角裕度绘制出Bode图,其中,mag,phase和w是由bode得到的幅值裕度、相角裕度和频率。

当带输出变量引用函数时,仅计算幅值裕度、相角裕度及幅值穿越频率wcg和相角穿越频率wcp,不绘制Bode图。

例5-13 二阶振荡环节的传递函数为

绘制ζ取不同值时的Bode图。

解 取ωn=8,取[0.1∶0.2∶1.0],由bode函数得到Bode图,Matlab程序如下

%example 5-13

wn=8;

kosi=[0.1∶0.2∶1.0];

w=logspace(﹣1,1,100);

figure(1)

num=[ωn.2];

for kos=kosi

den=[12*kos*wn wn.2];

[mag,pha,w1]=bode(num,den,w);

subplot(2,1,1);hold on

semilogx(w1,mag);(www.xing528.com)

subplot(2,1,2);hold on

semilogx(w1,pha);

end

subplot(2,1,1);grid on

title(‘Bode Plot’);

xlabel(‘Frequency(rad/sec)’);

ylabel(‘Gain dB’);

subplot(2,1,2);grid on

xlabel(‘Frequency(rad/sec)’);

ylabel(‘Phase deg’);

hold off

程序执行后,得到二阶振荡环节的Bode图如图5-63所示。

例5-14 开环系统的传递函数为

①绘制系统的奈氏曲线,并用奈氏判据判断系统的稳定性;

②求闭环系统的单位脉冲响应

解 利用nyquist函数绘制奈氏曲线如图5-64所示。由图可知,奈氏曲线不围绕(﹣1,j0)点,N=0,开环传递函数有一个右半S平面的极点,P=1,由奈氏判据

Z=P-N=1

系统不稳定。又由系统的脉冲响应曲线图5-65,可知脉冲响应是发散的,也说明系统不稳定。

图5-63 二阶振荡环节的Bode图

图5-64 系统的奈氏曲线

图5-65 系统的单位脉冲响应

Matlab程序如下

%example 5-14

k=30;

z=[1];

p=[﹣2-32];

[num,den]=zp2tf(z,p,k);

figure(1)

nyquist(num,den)

title(‘Nyquist Plot’);

figure(2)

[numl,denl]=cloop(num,den);

impulse(num,den)

title(‘Impulse Response’)

例5-15 系统的开环传递函数为

绘制Nichols图。

解 Matlab程序如下

%example 5-15

k=16.7/0.0125;

z=[0];

p=[﹣1.25-4 -16];

[num,den]=zp2tf(z,p,k);

figure(1)

ngrid(‘new’)

nichols(num,den)

title(‘Nichols Plot’)

程序执行后,可得到系统的Nichols图如图5-66所示。

图5-66 系统的Nichols图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈