【Matlab】使用Simulink实现PID仿真

PID?PID重要吗?毫无疑问,PID在控制方法中至关重要,博主每每被老师问到,无不哑口无言,虽然在大小项目中使用过PID,但也好像没有理解到它的本质,因此希望通过写下此篇,通过数学公式原理上的分析,再通过Simulink对其理论仿真,最后通过Proteus+keil例子仿真,从而自己能够对PID有一定的总结和给读者们一点点微不足道的帮助。在此篇中,希望自己写文章不要只是Ctrl C/V,希望自己能够真正理解和尽量写的简单易懂,希望读者能有耐心阅读和无私指正。

BOM表:
  • Matlab R2017a(博主的)
  • Proteus 8.0
  • Keil 5

目录:

  1. PID数学原理分析
  2. PID Simulink 仿真

1. PID数学原理分析

PID控制器,由比例调节(Proportion)、积分调节(Integral)、微分调节(Differential)组成。作用为使用比例、积分、微分这三种调节算法对输入的误差进行处理后,继而输出。
平行式PID公式上表达为:
u(t)=Kpe(t)+Ki0te(τ)dτ+Kdddte(t)u(t)=K_{p}e(t)+ K_{i}\int_{0}^{t} e(\tau ) d\tau + K_{d}\frac{d}{dt} e(t)
u(t)u(t): 控制输出
e(t)e(t): 误差, 即设定值 - 现在值
KpK_{p}: 比例增益
KiK_{i}: 积分增益
KdK_{d}: 微分增益

PID控制器示意图:
在这里插入图片描述
工业上常看到PID控制器为标准形, 标准形PID公式上表达为:
u(t)=Kp(e(t)+0te(t)Tidt+Tdde(t)dt)u(t) = K_p(e(t) + \int_0^t\frac{e(t)}{T_i}dt + T_d\frac{de(t)}{dt})
TiT_i:积分时间
TdT_d:微分时间
标准形和平行式PID参数的公式为: Ki=KpTiK_i =\frac{K_p}{T_i},Kd=KpTdK_d =\frac{K_p}{T_d}.
其传递函数为: G(s)=Kp(1+1Tis+Tds)G_{(s)}=K_p(1 + \frac{1}{T_is} + T_ds)

2. PID Simulink 仿真

3.Proteus+keil例子仿真

参考文献;
http://mc.dfrobot.com.cn/thread-14783-1-1.html
https://www.diangon.com/thread-19992-1-1.html
https://blog.csdn.net/qq_25352981/article/details/81007075
https://blog.csdn.net/u011031257/article/details/80953285

发布了95 篇原创文章 · 获赞 183 · 访问量 25万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览