MATLAB系统根轨迹和频域分析实验
发布时间:2024-10-12
发布时间:2024-10-12
MATLAB系统根轨迹和频域分析实验
实验三 MATLAB系统根轨迹和频域分析实验
实验目的∶
1.学习使用MATLAB求特征多项式的根,分析系统稳定性; 2.学习使用MATLAB由传递函数求零点和极点; 3.学习使用MATLAB绘制根轨迹; 4.掌握由根轨迹分析系统性能的方法;
5.学习使用MATLAB绘制Bode图和Nyquist图;
6.掌握使用Bode图和Nyquist图分析系统性能的方法。 实验仪器∶
计算机
实验原理及内容∶
3.1 特征多项式求解
3.1.1直接求特征多项式的根
设P为特征多项式的系数矢量,用MATLAB函数roots( )可直接求出方程P=0在复数范围内的解,该函数的调用格式为: v=roots(p)
例二十三
已知系统的特征多项式为:
特征方程的解可由下面的MATLAB命令得出: >> p=[1,0,3,2,1,1]; v=roots(p) 结果显示: v =
0.3202+1.7042i 0.3202-1.7042i -0.7209 0.0402+0.6780i 0.0402-0.6780i
利用多项式求根函数roots( ),可方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其他性能。
MATLAB系统根轨迹和频域分析实验
3.1.2 由根创建多项式
如果已知多项式的因式分解式或特征根,可由MATLAB函数poly( )直接得出特征多项式系数矢量,其调用格式为:p=poly(v)。 如上题中:
v =[0.3202+1.7042i;0.3202-1.7042i;-0.7209;0.0402+0.6780i;0.0402-0.6780i]; 》p=poly(v) 结果显示: p=
1.0000 -0.0000 3.0000 2.0000 1.0000 1.0000 由此可见,函数roots( )与函数poly( )互为逆运算。 3.1.3 多项式求值
在MALAB中通过函数polyval( )可求得多项式在给定点的值,该函数的调用格式为:polyval(p,v )。
对于上题中的p值,求取多项式在x点的值,可输入如下命令: 》p=[1,0,3,2,1,1]; x=1 polyval(p,x) 结果显示: ans= 8
3.1.5 由传递函数求零点和极点
在MATLAB控制系统工具箱中,给出了由传递函数对象G求系统零点和极点的函数,其调用格式分别为: Z=tzero(G) P=pole(G)
MATLAB系统根轨迹和频域分析实验
注意:上式中要求的G必须是零极点模型对象。
例二十四 已知传递函数为输入如下命令: num=[6.8,61.2,95.2]; den=[1,7.5,22,19.5,0]; G=tf(num,den); G1=zpk(G); Z=tzero(G); P= pole(G); 结果为: Z = -7 -2
P = 0 -3.0000 + 2.0000i -3.0000 - 2.0000i -1.5000 3.1.6 零极点分布图
在MATLAB中,可利用pzmap( )函数绘制连续系统的零、极点图,从而分析系统的稳定性,该函数调用格式为: pzmap(num,den)。
例二十五 给定传递函数:
利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图。用鼠标点击图中零、极点可自动显示其坐标值。 》 num=[3,2,5,4,6];
MATLAB系统根轨迹和频域分析实验
den=[1,3,4,2,7,2]; pzmap(num,den)
title(‘Pole-Zero Map’) % 图形标题
Pole-Zero Map
1.5
1
0.5
Imaginary Axis
-0.5
-1
-1.5-2
-1.5-1
Real Axis
-0.500.5
3.2 根轨迹法
控制系统的稳定性,由其闭环极点唯一确定,而系统过渡过程的基本特性,则与闭环零极点在s平面的位置有关。根轨迹法就是在已知控制系统开环传递函数零极点分部的基础上,研究某些参数变化时控制系统闭环传递函数零极点分布影响的一种图解方法。利用根轨迹法,能够分析系统的瞬态响应特性以及参数变化对瞬态响应特性的影响。也可以根据对瞬态响应的要求去确定可变参数或调整零极点的位置和个数。因此,根轨迹法可以用于解决线性系统的分析和综合问题。
3.2.1 求系统根轨迹
rlocus 命令可求得系统的根轨迹 格式:
[ r,k ] = rlocus(num,den) [ r,k ] = rlocus(num,den,k)
不带输出变量时则绘出系统的根轨迹图,带输出变量时给出一组r,k的对应数据。
若给定了k的取值范围,则该命令将按要求绘出图形或数组或者输出指定增益k所对应的r值。每条根轨迹都以不同的颜色区别。
MATLAB系统根轨迹和频域分析实验
例二十六 某系统开环传递函数为:
2k
G(s) 3 2
s 3s 2s
要绘制系统的根轨迹,则输入: n = 2;
d = [ 1 3 2 0 ]; rlocus(n,d)
执行后得到下面图形。
Root Locus
4
3
2
1
Imaginary Axis
-1
-2
-3
-4-6
-5-4-3-2Real Axis
-1012
若要得到指定增益k值对应的r值则输入:
n = 2;
d = [ 1 3 2 0 ];
[ r,k] = rlocus(n,d,5)
结果如下:
r = -3.3089 0.1545 + 1.7316i 0.1545 - 1.7316i
k = 5 3.2.2 求根轨迹增益
rlocfind命令可求得给定根的根轨迹增益。 格式:
[ k,poles ] = rlocfind(n,d)
[ k,poles ] = rlocfind(num,den,p)
MATLAB系统根轨迹和频域分析实验
当代有输出变量时,可得到所有极点的座标数据和增益值。不带输出时只得到所选点的座标和增益值。
注意:在执行这条命令前最好先执行一次根轨迹的绘图命令,这样就可直接在根轨迹图上选取我们感兴趣的点。
其中的p是系统的根,由此可得到对应的增益值。 3.2.3 绘制ξ和wn格
sgrid命令是在图形中绘制出阻尼系数和自然频率栅格,其阻尼系数从0~1,步长为0.1。
命令格式: sgrid
sgrid(z,wn)
例二十七 绘制系统带栅格的根轨迹图
s 1
G(s) 2
s 2s 3
则执行: n = [ 1 1 ]; d = [ 1 2 3 ]; rlocus(n,d)
sgrid %加入栅格
Root Locus
1.5
1
0.5
Imaginary Axis
-0.5
-1
-3
-2.5
-2Real Axis
-1.5
-1
-1.5-4
-3.5-0.5
当该命令带有指定的z(ξ),w( n)时,则将按指定的参数绘制有关图形。 例二十八 在上题中绘制 ξ= 0.8, n = 2的根轨迹图
执行:n = [ 1,1 ];
d = [ 1,2,3 ];
MATLAB系统根轨迹和频域分析实验
rlocus(n,d) z = 0.8;
w = 2; % 加入指定的栅格 sgrid(z,w) 得到所需图形。
Root Locus
1.5
1
0.5
Imaginary Axis
-0.5
-1
-1.5-4
-3.5
-3
-2.5
-2Real Axis
-1.5
-1
-0.5
3.3 频域法
频域分析法是利用频率特性研究控制系统的一种方法。频率特性是指系统或环节在正弦信号作用下,稳态输出与输入之比对于频率的关系。
在控制系统的频域分析法中常用到的坐标系统是极坐标系和对数坐标系。在分析方法中常用的有三种:Bode图、Nyquist曲线和Nichols图。 3.3.1 波特图法
bode命令可获得连续系统的波特图或有关数据组。 命令格式:
[ mag,phase,w ] = bode(num,den) [ mag,phase,w ] = bode(num,den,w)
当不带输出变量时则直接绘出图形。而带有输出变量时则得到一组相关数据。其中的w是频率的取值范围,若缺省则该项由函数自动确定。
绘图时的横坐标是以对数分度的。为了指定频率的范围,可采用以下命令格式:
logspace(d1,d2) ①
或 logspace(d1,d2,n) ②
MATLAB系统根轨迹和频域分析实验
①式是在指定频率范围内按对数距离分成50等份的,即在两个十进制数w1=10d1和w2=10d2之间产生一个由50个点组成的分量,矢量中的点数50是一个默认值。
例如要在w1=0.1rad/s与w2=100rad/s之间的频区画伯德图,则输入命令时,d1=log10(w1),d2=log10(w2), 在此频区按对数距离等分成50个频率点,返回到工作空间中,即:
w=logspace(-1,2)
要对计算点数进行人工设定,则采用公式②。
例如要在w1=1与w2=1000之间产生100个对数等分点,可输入以下命令: w=logspace(0,3,100)
利用波特图我们可以分析系统的幅、相裕度、带宽、稳定性、扰动抑制能力等问题。利用波特图分析系统稳定性的方法如下:
a:相角裕量r>0,幅值裕量k>0,系统是稳定的。 b:r = 0;k = 0,系统为临界稳定。
c:r<0;k<0,系统不稳定。 例二十九 绘制系统
s 1
G(s) 3
4s 3s2 2s
的bode图并判断系统闭环后是否稳定? 则执行: n = [ 1,1 ];
d = [ 4,3,2,0 ]; bode(n,d),grid (绘制波特图并加栅格)
Bode Diagram
6040
Magnitude (dB
)Phase (deg)
200-20-40-60
-90
-135
-180
-225
10
-2
10
-1
10
Frequency (rad/sec)
10
1
绘图时的频率范围是自动确定的,从0.01rad/s-1000rad/s,且幅值取分贝值,w轴取对数,图形分成两个子图,均是自动完成的。执行后可以在上图中观察得到
MATLAB系统根轨迹和频域分析实验
r>0,k>0,因此闭环后系统是稳定的。 3.3.2 求增益和相位裕度
从前面的例题中可以看出要求系统的相位和增益裕度的准确值直接调用bode命令是不太容易的。而使用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图。
例三十: 求例二十九中系统开环传递函数的相对稳定裕度。
执行:
n = [ 1 1 ];
d = [ 4 3 2 0 ]; margin(n,d)
执行后得到相应图形和有关数据 k = 15.6db r = 46.4°
Bode Diagram
Gm = 15.6 dB (at 1.41 rad/sec) , Pm = 46.4 deg (at 0.615 rad/sec)
6040
Magnitude (dB)Phase (deg)
200-20-40-60-90
-135
-180
-225
10
-2
10
-1
10
Frequency (rad/sec)
10
1
MATLAB系统根轨迹和频域分析实验
3.3.3 奈奎斯特法
奈奎斯特法是利极坐标图对系统进行分析的一种方法。频率特性的极坐标图是当w由零变化到无穷大时,表示在极坐标上的幅与相角的关系图,采用极坐标图,可以在一张图纸上描绘出整个频域的频率响应。
奈奎斯特稳定数据如下:
(1)开环系统稳定时,如果曲线不包围( 1,j0)点,则闭环系统是稳定的,否则为不稳定的。
(2)开环系统不稳定时,如果曲线反时针方向环绕( 1,j0)点的次数N等于右半平面内的极点数p,那么闭环系统是稳定的,否则是不稳定的。
nyquist命令可以求得连续系统的奈奎斯特曲线。 命令格式:
[ re,im,w ] = nyquist(num,den) [ re,im,w ] = nyquist(num,den,w)
当带有输出变量时,可得到相应的一组数据,不带输出变量时,则绘出奈奎斯特曲线。也可用指定频率向量w指定所要绘制的曲线范围。 例三十一: 系统开环传递函数为
1
G(s)H(s) 3
2
s 2s s 0.5
绘出系统的奈奎斯特图并判断系统闭环后是否稳定。
输入: n = 1;
d = [ 1 2 1 0.5 ]; nyquist(n,d)
执行后可得到所需图形。
Nyquist Diagram
3
2
1
Imaginary Axis
-1
-2
-3-1.5
-1-0.50
Real Axis
0.511.52
MATLAB系统根轨迹和频域分析实验
从图形上可以看出由于曲线不包围( 1,j0)点,因此闭环后系统是稳定的。
在某些场合我们需要在奈奎斯特曲线上加上单位圆帮助我们了解相位,幅值裕量的粗值。下面的方法可以使我们获得带单位圆的奈奎斯特图,同时还可获得不同增益下的奈奎斯特图。
例三十二: 系统开环传递函数为
k
G(s) 2
(s 2)(s 2s 5)
绘制k = 10,26,50时的带单位圆的奈奎斯特图,并估算系统的增僧裕量。
单位圆的绘制是通过绘tjw的实部与虚部的轨迹而获得。 输入:
n = 10; %取k = 10时的值 d = conv([1 2],[1 2 5]);
w = [ 0:0.01:10 ]; %确定频率范围 e = exp(j*w); %给出指数函数ejw
r = real(e); %求指数函数的实部,结果不显示 i = imag(e); %求函数ejw的虚部,结果不显示
[ a,b ] = nyquist(n,d,w); %求指定频率范围内的奈氏值,不显示结果 n1 = 26; %取k = 26
d1 = d; %保留原分母矢量
[ a1,b1 ] = nyquist(n1,d1,w); %求k = 0.5时的奈氏值,结果不显示 n2 = 50; %取k = 50 d2 = d; %分母保留 [ a2,b2 ] = nyquist(n2,d2,w);
plot(r,i,a,b,a1,b1,a2,b2),grid %绘出:r,i;a,b;a1,b1;a2,b2;的对
应图形并加上栅格。
执行以上程序后可在上图上得k = 10,26,50并加有单位圆的奈奎斯特图。一般来说由于此列的关系显示的图形不是一个正规的圆。从图形上我们可以看出开环增益K对闭环系统稳定性的影响。当K值变化时,幅频特性成比例变化,而相频特性不受影响。因此取K 26时,曲线恰好通过( 1,j0)点,这是临界稳定状态;当K 26时,幅相曲线G(j )将从( 1,j0)点的右方穿过负实轴,不再包围( 1,j0)点,这时闭环系统是稳定的;而K 26时,开环频率特性G(j )随着 从0变化到 时,顺时针方向围绕( 1,j0)点一圈,即N 1,可求得闭环系统在右半s平面的极点数为:Z P 2N 0 2 ( 1) 2,所以闭环系统不稳定。
MATLAB系统根轨迹和频域分析实验
1
-1
-2
-3
-4
-5-3
-2-1012345
实验方法及步骤:
1、运行Matlab软件;
2、在其命令窗口中输入响应的命令或程序; 3、观察并记录。 实验习题: 实验习题一
已知系统如下
2k
32
s 3s 2s
绘制其根轨迹,并根据根轨迹图求若要使系统稳定,k的最大值。
实验习题二
bode图法判断系统稳定性:
已知两个单位负反馈系统的开环传递函数分别为:
2.72.7
G(s) 3G(s) , 232
s 5s 4ss 5s 4s
用bode图法判断系统闭环的稳定性。
实验习题三
已知系统的开环传递函数为:
K(s 3)
G(s)H(s)
s(s 1)
G(s)
用Nyquist图法判断系统相对稳定性(对参数K分段讨论)。
MATLAB系统根轨迹和频域分析实验
12
上一篇:服装裙装结构设计及原理
下一篇:公司人事管理制度3