马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
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=[0,0,0]';
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'); |