马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
子程序是这样的 (传递函数 4/[s*(s+5)] 静态误差K<=6,闭环主导极点阻尼比为0.407)
function[Gc,kc]=zhjz_root(G,zeta,wc,Tz);
G=tf(G);
[r,k]=rlocus(G);
za=zeta/sqrt(1-zeta^2);
ri=r(1,find(image(r(1,:))>0));
ra=image(ri)./real(ri);
kc=spline(ra,k(find(image(r(1,:))>0)),1/za);
syms x ng dg
ng=poly2sym(G.num{1}); dg=poly2sym(G.den{1});
ess=limit(ng*kc/dg*x); beta=round(100/sym2poly(ess)/wc);
Tp=Tz/beta;
Gc=tf([1,Tz],[1,Tp]);
主函数代码 (请问是不是要 在这个主函数这里+说明 定义下面的 b和r 怎么定义??我不会用matlab哪位高手指点一下 多谢了 要主函数这里完整 )
num=4; den=conv([1,0],[1,2.5]); G=tf(num,den);
zeta=0.407; wc=6; Tz=0.1;
[Gc,Kc]=zhjz_root(G,zeta,wc,Tz);
GGc=G*Gc*Kc;
Gy_close=feedback(G,1);
Gx_close=feedback(GGc,1);
figure(1); step(Gx_close,`b`); hold on; step(Gy_close,`r`); grid; gtext(`校正前的`); gtext(`校正后的`);
figure(2); impulse(Gx_close,`b`); hold on; impulse(Gy_close,`r`); grid; gtext(`校正前的`); gtext(`校正后的`);
figure(3); rlocus(G,GGc); grid; gtext(`校正前的`); gtext(`校正后的`);
知道 b和r的意思了
不过运行后 说G未定义怎么回事???
[ 本帖最后由 ChaChing 于 2010-3-15 15:43 编辑 ] |