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。