自动控制系统的设计--基于根轨迹的串联校正设计
经迟后—超前校正后,系统的开环传递函数为
校正后系统的根轨迹如图6-24中的虚线所示。由图可见,校正后系统的主导极点由 点移动到 点,相应的增益 ,静态速度误差系数为
图6-24 |
利用Matlab进行串联校正设计步骤,以例6-9为例,要求校正后具有下列的性能指标:阻尼比 ;无阻尼自然频率 ,但对静态误差系统没有要求。可按如下步骤进行:
(1) 写出系统传递函数G,并画出其根轨迹。
G0=tf(1,conv([1,1],[1,4]),0);
Rlocus(G0);hold on;[x,y]=rloc_asymp(G0);plot(x,y,’:’)
(1)根据设计要求,画出其等ξ线和等ωn线,并由图确定其主导极点。
Zet=[0.5];wn=[2];sgrid(zet,wn)
由图可得到sd=-1±1.732j
(2)确定超前装置的补偿角φc,利用自编函数angle_c计算。
Fi_c=angle_c(G0,sd)
(3)确定校正器的零极点。可先选定校正器的零点zc=-1.2,然后由已知的γ、ωn、θ、φc计算极点。
Pc=find_pc(wn,zc,theta,fi_c)
(4)得到校正装置Gc,并画出Gc*G0的根轨迹图。
Hold on; Rlocus(Gc*G0)
(5)从图中交互确定在sd处对象的K值,并进而得出系统的闭环极点及阶跃响应。检验设计效果。
[K,P]=rloc_find(Gc*G0)。
图6-25 |
此例完整程序见下面,设计效果见图6-25。
G0=tf(1,[conv([1,1],[1,4]),0])
Transfer function:
1
-----------------
s^3 + 5 s^2 + 4 s
Rlocus(G0);hold on;[x,y]=rloc_asymp(G0);plot(x,y,':')
zet=[0.5];wn=[2];sgrid(zet,wn)
sd=-1+1.732j;
Fi_c=angle_c(G0,sd)
Fi_c =
60.0000
Fi_c=Fi_c*pi/180;
zc=-1.2;theta=acos(0.5);
pc=find_pc(wn,zc,theta,Fi_c);
pc =
5.0000
Gc=tf([1,-zc],[1,pc])
Transfer function:
s + 1.2
-------
s + 5
Hold on; Rlocus(Gc*G0)
[K,P]=rlocfind(Gc*G0)
Select a point in the graphics window
selected_point =
-1.0001 + 1.7315i
K =
29.9894
P =
-6.6454
-1.0001 + 1.7315i
-1.0001 - 1.7315i
-1.3543
function ang=angle_c(g,sd)
[p,z]=pzmap(g);
theta_z=0;theta_p=0;
for i=[1:1:length(z)]
theta_z=theta_z+angle(sd-z(i));
end
for i=[1:1:length(p)]
theta_p=theta_p+angle(sd-p(i));
end
ang=(-pi+theta_p-theta_z)*180/pi;end
function pc=find_pc(wn,zc,theta,fc)
gama=atan(sin(theta)/(wn/abs(zc)-cos(theta)));
pc=wn*sin(gama+fc)/sin(pi-theta-fc-gama)
6.4.4基于根轨迹的串联校正Matlab设计
在采用根轨迹法对控制系统进行校正时,常用的函数有:
1.Rlocus: 根轨迹作图命令;
2.Sgrid: 等ξ线和等ωn线;
3.Tf、Zpk: 求传递函数命令;
4.Rlocfind: 求取根轨迹上某点对应的增益K及闭环极点;
5.Rloc_asymp: 作轨迹渐近线;
6.Rltool: 由Matlab提供的根轨迹设计工具;
7.Pzmap,pole,zer 求取系统的零极点。
利用Matlab进行串联校正设计有两种方法:一种是利用书中介绍的步骤进行设计,另外也可以用Matlab提供的rltool可视化工具进行交互式设计。
评论