声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 977|回复: 0

[综合讨论] 求助关于简单的PID控制问题

[复制链接]
发表于 2010-2-1 19:27 | 显示全部楼层 |阅读模式

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

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

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');
1.jpg
2.jpg
3.jpg
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-29 20:01 , Processed in 0.055834 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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