基于西门子PID程序的C程序代码(带自整定功能哦)

2019-12-08 14:19发布

本帖最后由 tyw996 于 2013-6-1 09:54 编辑

共享一个西门子PLC上所使用的软件PID程序(FB58),我已将其改为C语言代码,并已在关键地方附有中文注释,带自整定功能。经测试,自整定后的PID参数非常好用,这就解决了繁琐的参数整定问题了。不过就是占内存大些,基本都是浮点运算,如果使用stm32f3或f4那就更爽了。再上传一份西门子fb58的中文资料供参考。(后续补充说明在8楼。)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
98条回答
tyw996
1楼-- · 2019-12-13 13:08
tyw996 发表于 2013-5-31 18:47
我大略研究过,这个FB58的PID程序是经过优化的,即积分使用的是抗积分饱,微分属于不完全微分功能。整定后 ...
正在看源代码,能否大致说一下程序的思路?

单看原代码不好理解,当你看明白资料我想你也就会怎么使用了,至于PID算法,原程序我也看不明白的,只是别人在PLC论坛上通过公式验证了这是个递推算法。当然了,程序公开出来了嘛,大家也可以继续研究,探讨下它到底是什么积分和微分。
tyw996
2楼-- · 2019-12-13 15:15
本帖最后由 tyw996 于 2013-6-1 09:42 编辑
兄弟太给力了,不过你已经实测过了吗? 目前是测温度PID调整,温度0.5的精度有吗?

我测试的控温精度能达到0.1度(结果出来后,我自己都感到惊叹),当然这只是在我这个项目中的测试结果。以后也看大家测试效果了。这跟你使用的控温环境及控制策略等有很大关系。
ddqq
3楼-- · 2019-12-13 19:10
搞不清楚为何自整定失败, 楼主能否描述一下,自整定成功的必备条件?
tyw996
4楼-- · 2019-12-13 23:16
data/attach/1912/4c2sfnmim8ii3v9gysdu0jxg136me0tz.jpg 本帖最后由 tyw996 于 2013-6-1 10:14 编辑
ddqq 发表于 2013-6-1 10:05
搞不清楚为何自整定失败, 楼主能否描述一下,自整定成功的必备条件?


这个不太好说,还是先吃透资料吧,上面有告诉你整定失败的大致原因。提示下:看看STATUS_H和STATUS_D变量回的数据是多少,对照资料说明可查下原因。
谁非过客
5楼-- · 2019-12-14 04:10
 精彩回答 2  元偷偷看……
max-men
6楼-- · 2019-12-14 04:19
mark!!!!!!!!!!!!

一周热门 更多>