没有合适的资源?快使用搜索试试~ 我知道了~
PID matlab 程序.txt
5星 · 超过95%的资源 需积分: 10 18 下载量 135 浏览量
2013-03-27
16:40:23
上传
评论
收藏 825B TXT 举报
温馨提示
试读
2页
PID matlab 程序 增量式PID的matlab仿真程序 测试可用的
资源推荐
资源详情
资源评论
ts = 0.001;
sys = tf (400,[1 ,50,0]);
dsys = c2d (sys,ts,'z');
[num,den] = tfdata(dsys,'v');
u_1 = 0.0 ;u_2 = 0.0; u_3 = 0.0 ;
y_1 = 0 ; y_2 = 0; y_3 = 0;
x = [0, 0 ,0];
error_1 = 0;
error_2 = 0;
for k=1:1:1000
time(k) = k*ts;
rin(k) = 1.0;
kp = 8;
ki = 0.10;
kd = 10;
du(k) = kp*x(1) + kd*x(2) + ki*x(3);
u(k) = u_1 + du(k);
if u(k) >= 10;
uk = 10;
end
if u(k) <= -10 ;
u(k) = -10;
end
yout(k) = -den(2)*y_1 - den(3)*y_2 + num(2)*u_1 +num(3)*u_2;
error = rin(k) - yout(k);
u_3 = u_2 ; u_2 = u_1; u_1 = u(k);
y_3 = y_2 ; y_2 = y_1; y_1 = yout(k);
x(1) = error - error_1;
x(2) = error - 2*error_1 + error_2 ;
x(3) = error;
sys = tf (400,[1 ,50,0]);
dsys = c2d (sys,ts,'z');
[num,den] = tfdata(dsys,'v');
u_1 = 0.0 ;u_2 = 0.0; u_3 = 0.0 ;
y_1 = 0 ; y_2 = 0; y_3 = 0;
x = [0, 0 ,0];
error_1 = 0;
error_2 = 0;
for k=1:1:1000
time(k) = k*ts;
rin(k) = 1.0;
kp = 8;
ki = 0.10;
kd = 10;
du(k) = kp*x(1) + kd*x(2) + ki*x(3);
u(k) = u_1 + du(k);
if u(k) >= 10;
uk = 10;
end
if u(k) <= -10 ;
u(k) = -10;
end
yout(k) = -den(2)*y_1 - den(3)*y_2 + num(2)*u_1 +num(3)*u_2;
error = rin(k) - yout(k);
u_3 = u_2 ; u_2 = u_1; u_1 = u(k);
y_3 = y_2 ; y_2 = y_1; y_1 = yout(k);
x(1) = error - error_1;
x(2) = error - 2*error_1 + error_2 ;
x(3) = error;
资源评论
- EastOsten2016-10-24我下下来试了一下,果真能仿真出来图,找了好久了。
夏菠
- 粉丝: 350
- 资源: 23
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功