声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2158|回复: 1

[编程技巧] 关于根轨迹法的滞后校正 MATLAB求助高手

[复制链接]
发表于 2005-12-31 21:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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 编辑 ]
回复
分享到:

使用道具 举报

发表于 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>[Gc,Kc]=zhjz_root(G,zeta,wc,Tz);</P>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-12 18:25 , Processed in 0.108400 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表