【分享】增量式PID的stm32实现,整定过程

2019-12-11 18:19发布

本帖最后由 tim4146 于 2014-4-6 08:32 编辑

感谢大家最近的帮忙,让我顺利做完增量PID功能,虽然PID不是什么牛逼的东西,但是真心希望以后刚刚接触这块的人能尽快进入状态。
也下面我分享一下近期的这些工作吧。欢迎大家批评指点~

首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异。
资料上比较多的是:
A0006DS_副本.jpg (30.87 KB, 下载次数: 37) 下载附件 2014-4-6 00:27 上传
最后欢迎大家拍砖,有批评才会让我更加进步!
最后把PID文件放上来
pid.zip (2.88 KB, 下载次数: 1587) 2014-4-6 08:28 上传 点击文件名下载附件
.C .H


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
tim4146
1楼-- · 2019-12-14 06:47
 精彩回答 2  元偷偷看……
aming2046
2楼-- · 2019-12-14 10:18
大哥辛苦了,多谢分享,我要慢慢体会,我最近在用PID做温控方面的
aming2046
3楼-- · 2019-12-14 11:16
大哥,看了你的帖子收益很多 啊,我现在对pid的理解写给你看看,不知道对不对啊,假设我2v的电压---对应1000的占空量也就是100%,3v电压对应------0的占空量也就是0%,2v和3v是我的最大和最小温度时对应的电压,采集到的温度的电压与占空比成反比,那我根据你的方法计算,占空量=1000/(3-2)*Vpid,我的设定值也是以电压为单位的,假设设定的温度对应的电压值为2.5v,采集到的电压为2.3v,那么把2.5v和2.3v带入pid计算也就是Vpid=pid(2.5,2.3);那么最终的pwm值=(1000/(3-2))*pid(2.5,2.3);请大哥帮忙分析一下啊,多谢了
tim4146
4楼-- · 2019-12-14 14:25
aming2046 发表于 2014-4-7 16:38
大哥,看了你的帖子收益很多 啊,我现在对pid的理解写给你看看,不知道对不对啊,假设我2v的电压---对应100 ...

“2v的电压---对应1000的占空量也就是100%,3v电压对应------0的占空量也就是0%,2v和3v是我的最大和最小温度时对应的电压”光是这句话,你下面的式子就貌似有问题了。电压以mV为单位,1000对应2000mV,0对应3000mV,那么占空量a和电压u的关系就是:3000-u=a
tim4146
5楼-- · 2019-12-14 18:46
aming2046 发表于 2014-4-7 16:38
大哥,看了你的帖子收益很多 啊,我现在对pid的理解写给你看看,不知道对不对啊,假设我2v的电压---对应100 ...

个人认为,我这个思路对于线性系统或者近似线性系统应该问题不大,传统PID对于线性系统是比较适用的,你这里一定要把握好各个物理量之间的变换关系。
tragedy
6楼-- · 2019-12-14 22:37
 精彩回答 2  元偷偷看……

一周热门 更多>