MATLAB-根轨迹绘制

时间:2024-03-09 16:54:45

主要涉及rlocus等函数的使用,临界增益的求解和根轨迹图(root locus)的绘制

1.开环与闭环关系

  对于一个系统,其开环函数为  \(G=k \cdot G_0(s) \cdot H(s)\),则其闭环函数为 \(\frac{k \cdot G_0(s)}{1+k \cdot G_0(s) \cdot H(s)}\),闭环特征方程为 $$1+ k \cdot G_0(s) \cdot H(s)=0 \qquad (1)$$这说明了闭环极点可以由开环函数确定。

2.根轨迹

  系统的根轨迹是从0到 ∞ 连续取k,每取一个k,便在方程(1)中求出对应的闭环特征根,这样的根形成的闭环根轨迹被称为根轨迹图。

3.rlocus函数

  rlocus(sym)或rlocus(num,den)指令可以直接根据开环函数\(sys=G_0(s) \cdot H(s)\)(这里不含k,运算时会自动配置变化的增益k)绘制出系统的根轨迹图。

例如:求取开环传递函数\(G(s)=\frac{k \cdot (s+2)}{(s^2+4s+3)^2}\)对应系统的根轨迹

num=[1 2];
f=[1 4 3];
den=conv(f,f);
sys=tf(num,den);
figure(1);
rlocus(sys);

运行结果为

4.如何求解临界增益

 即求解虚轴上的极点的坐标值,及其所对应的临界增益k。主要原理是:将s=jw手动带入(因为落在虚轴上实部为0)方程(1),然后将带入后的方程分别分为实部和虚部放入matlab解一个二元二次方程就可以求解出w和k。
实现代码如下

//(承接前面的代码)
syms w k;
eqns=[w^4-22*w^2+9+2*k==0,-8*w^3+(24+k)*w==0];
vars=[w k];
[solw,solk]=solve(eqns,vars);
k1=double(vpa(solk(3),6));
sys2=tf(k1*num,den);
sys3=sys2/(1+sys2);
figure(2);
impulse(sys3);
xlim([0 20]);