jh0309 发表于 2005-12-31 21:06

关于根轨迹法的滞后校正 MATLAB求助高手

子程序是这样的 (传递函数 4/ 静态误差K<=6,闭环主导极点阻尼比为0.407)
function=zhjz_root(G,zeta,wc,Tz);
G=tf(G);
=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(,);
主函数代码 (请问是不是要 在这个主函数这里+说明 定义下面的 b和r 怎么定义??我不会用matlab哪位高手指点一下 多谢了 要主函数这里完整 )
num=4; den=conv(,); G=tf(num,den);
zeta=0.407; wc=6; Tz=0.1;
=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 编辑 ]

suffer 发表于 2006-1-1 10:12

回复:(jh0309)知道 b和r的意思了 不过运行后 说G未...

<DIV class=quote><B>以下是引用<I>jh0309</I>在2005-12-31 22:18:45的发言:</B><BR>
<P>知道 b和r的意思了 <BR>不过运行后 说G未定义怎么回事???</P></DIV>
<P>
<P>请将你修改后的程序贴出来<BR><BR>我现在运行的结果是<BR>Error using ==&gt; image<BR>Image CData can not be complex.</P>
<P>Error in ==&gt; zhjz_root at 5<BR>ri=r(1,find(image(r(1,:))&gt;0));</P>
<P>Error in ==&gt; Untitled2 at 7<BR>=zhjz_root(G,zeta,wc,Tz);</P>
页: [1]
查看完整版本: 关于根轨迹法的滞后校正 MATLAB求助高手