matlab提取传递函数系数,温度控制传递函数_增量式PID系数_MATLAB仿真

clear all;

close all;

ts=0.1;

sys=tf([5],[8,1],'inputdelay',10);

dsys=c2d(sys,ts,'zoh');

[num,den]=tfdata(dsys,'v');

u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;

y_1=0;y_2=0;y_3=0;

error_1=0;error_2=0;

x=[0,0,0];

for k=1:1:200

time(k)=k*ts;

yout(k)=-den(2)*y_1+num(2)*u_5;

rin(k)=1;

error(k)=rin(k)-yout(k);

kp=1;

ki=0;

kd=0;

du(k)=kp*x(1)+kd*x(2)+ki*x(3);

u(k)=u_1+du(k);

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);

x(1)= error(k)-error_1;

x(2)= error(k)-2*error_1+error_2;

x(3)= error(k);

error_2=error_1;

error_1=error(k);

end

hold on

hold on

plot(time,rin,'g',time,yout,'r','linewidth',2)

xlabel('time(s)')

ylabel('rin,yout')

ts=0.1;

sys=tf([5],[8,1],'inputdelay',10);

dsys=c2d(sys,ts,'zoh');

[num,den]=tfdata(dsys,'v');

u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;

y_1=0;y_2=0;y_3=0;

error_1=0;error_2=0;

x=[0,0,0];

for k=1:1:200

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值