kitten 发表于 2010-2-1 19:27

求助关于简单的PID控制问题

PID的Matlab仿真我仿真出来,跟踪不出来。
不知道为什么。
希望能解答下,谢谢
我是看的一篇硕士论文上的
可能也有人说因为ts不同
所以离散对象不是这个
但是问题是我那样改了也是错的
而且这论文下面仿真的是单神经元PID
下面说是采样时间为0.001了,但是离散对象用的还是采样时间为1时候的对象
这样出来的结果是和论文上一样的
现在问题是这个怎么仿真不出来。

%PID Controler with intergration sturation
clear all;
close all;
ts=0.001;
u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;u_5=0.0;
y_1=0;y_2=0;y_3=0;
x=';
error_1=0;
kp=0.08;ki=0.001;kd=0.10;   
         %Step Signal
for k=1:1:2000
time(k)=k*ts;
rin(k)=1;
   
u(k)=kp*x(1)+kd*x(2)+ki*x(3);   % PID Controller
if u(k)>=10
   u(k)=10;
end
if u(k)<=-10
   u(k)=-10;
end
%Linear model
   yout(k)=1.26*y_1-0.3963*y_2+0.1179*u_4+0.086*u_5;
error(k)=rin(k)-yout(k);

%Return of PID parameters
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);   
y_3=y_2;y_2=y_1;y_1=yout(k);
error_1=error(k);
   
x(1)=error(k);                % Calculating P
x(2)=(error(k)-error_1)/ts;   % Calculating D
x(3)=x(3)+error(k)*ts;% Calculating I
xi(k)=x(3);
end
figure(1);
plot(time,rin,'k',time,yout,'k');
页: [1]
查看完整版本: 求助关于简单的PID控制问题