在Matlab中绘制系统的根轨迹图
例如某系统的开环传递函数为:
通过上面的开环传递函数可以直接求出2个开环共轭复零点,以及5个开环极点,然后确定根轨迹分支数…自己画根轨迹图的话还是比较麻烦的,这么简单的事就交给计算机干吧!
下面就是在Matlab中进行编程来完成系统根轨迹的绘制:
num=[1,2,4]; %开环传函分子多项式系数
den=conv(conv([1,4,0],[1,6]),[1,1.4,1]); %开环传函分母多项式系数
sys=tf(num,den); %系统传递函数模型
rlocus(sys); %绘制系统的根轨迹图
axis([-8 2 -6 6]); %设定坐标范围为:实轴[-8,2],虚轴[-6,6]
注:上面的conv(A,B)函数是用来求两个向量A和B的卷积,如果两个向量是多项式的系数的话,结果就表示两个多项式的乘积;如果有多个多项式,则可以多层套用。
在执行完绘制根轨迹图的命令后就可以画出该系统的根轨迹图了,为了显示的效果更好一些,则可以根据实际情况设定合适的坐标系范围。绘制出的根轨迹图如下图所示。通过Matlab绘制出的根轨迹图我们可以直观的看到图中的5个开环极点和2个开环零点,以及开环根轨迹增益K* 对系统稳定性的影响,在本例中我们可以看到,只有在K* 满足一定条件的情况下系统才是稳定的。
在上图中可以利用游标工具直接在根轨迹图上获取分离点、会合点、根轨迹与虚轴的交点等任何一点的坐标,以及他们所对应的系统的根轨迹增益、阻尼比和超调量等信息,如下图所示。
在分析系统性能的时候,除了某一点所对应的根轨迹增益外,有时还需要知道该增益所对应的其他闭环极点的值,这时候则只需输入以下命令即可:
[K,p]=rlocfind(sys)
点击回车之后,会在绘图界面出现一个十字光标,移动鼠标将光标对准你所要分析的点后单击左键(在这里选的是分离点),在命令窗口就会返回被选极点的开环增益K和与之对应的所有其他5个闭环极点的值。返回值如下:
selected_point =
-2.3451 + 0.0000i
K =
9.4862
p =
-6.5521 + 0.0000i
-2.3662 + 0.0000i
-2.3451 + 0.0000i
-0.0683 + 1.0193i
-0.0683 - 1.0193i
也就是说,在根轨迹增益一定的情况下,满足这一增益的极点不止一个。