📄 ralag.m
字号:
function [Gc,kc]=ralag(G,zeta,wn,err)
% 基于根轨迹的滞后校正解析设计法根据所需闭环性能计算校正器的传递函数
% 对象为G,可采用传递函数、零极点和状态空间模型
% zeta是阻尼比,wn是自然频率,err是误差
% Gc是校正器传递函数,kc是校正器增益
% Copyright 2000-2001 ECUST.
% $Revision: 1.1 $ $Date: 2001/08/03 16:48:42 $
if nargin<4,ew=4;end;if nargin<3,wn=1.5;end;if nargin<2,zeta=0.707;end;
G=tf(G);[r,k]=rlocus(G);[num,den]=ord2(wn,zeta);s=roots(den);s1=s(1);
za=zeta/sqrt(1-zeta^2);ri=r(1,find(imag(r(1,:))>0));
ra=imag(ri)./real(ri);KK=spline(ra,k(find(imag(r(1,:))>0)),1/za);
syms x Gn Gd;Gn=poly2sym(G.num{1});Gd=poly2sym(G.den{1});ess=limit(Gn*KK/Gd*x);
kc=round(100/sym2poly(ess)/err);ng=G.num{1};dg=G.den{1};
ngv=polyval(ng,s1);dgv=polyval(dg,s1);g=ngv/dgv;
theta_G=angle(g);theta_s=angle(s1);MG=abs(g);Ms=abs(s1);
Tz=(sin(theta_s)-kc*MG*sin(theta_G-theta_s))/(kc*MG*Ms*sin(theta_G));
Tp=-(kc*MG*sin(theta_s)+sin(theta_G+theta_s))/(Ms*sin(theta_G));
Gc=tf([Tz 1],[Tp 1]);GGc=G*Gc*kc;
step(feedback(GGc,1));hold on;step(feedback(G*kc,1));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -