beyondat2007 发表于 2010-12-11 13:26

PID控制器设计问题(求助)

我不懂matlab,是仿照书本上程序写的,那位大侠帮我弄下,谢谢了
ng0=;dg0=;
g0=tf(ng0,dg0);delta=0.02;Kc=-1;
for Kp1=1:0.1:50;
    gt=feedback(Kp1*g0,1);
    P=roots(gt.den{1});                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
    for i=1:1:length(P);
      if abs(real(P(i)))<=10*eps
            Kc=Kp1,Pc=2*pi/abs(imag(P(i))),
            break;
      end;
    end;
    if Kc>=0
      break;
    end
end
Kp=0.6*Kc,Ti=0.5*Pc,Td=0.125*Pc,
ngc=Kp*;dgc=;
gc=tf(ngc,dgc);zpk(gc),
g=feedback(gc*g0,1);
=stepchar(g,delta);pos,ts,
t=;step(g,t);grid on

yufeng 发表于 2010-12-13 08:59

什么问题?

beyondat2007 发表于 2010-12-13 10:29

回复 2 # yufeng 的帖子

Kp =

   -0.6000

??? Undefined function or variable 'Pc'.

Error in ==> kongzhi215 at 16
Kp=0.6*Kc,Ti=0.5*Pc,Td=0.125*Pc,
运行完错误提示,不知道咋调

remix 发表于 2010-12-13 10:58

abs(real(P(i)))<=10*eps所有Kp1取值情况下
P(i)的实部没有满足10*eps这一条件的情况存在
所以导致Pc没有被赋值

beyondat2007 发表于 2010-12-14 22:17

回复 4 # remix 的帖子

那更改kp范围也不行,是我所控制的系统模型本身的问题么,怎么改呢

Happy99 发表于 2010-12-15 20:34

个人以为LZ没交代原始问题, 要别人直接从代码给出建议, 可能较为困难些:@)
页: [1]
查看完整版本: PID控制器设计问题(求助)