使用F103系列,PID算法做温控,方案讨论

2019-07-20 22:25发布

有一个方案,我自己觉得有问题,但是因为我是新员工周围人没耐心听我讲,发出来大家讨论下:
1.描述:
我们最近移植了别人的一套温控代码,用到我们自己的设备上,温控用的是PID算法控制。
设备一共有10路加热模块,需求是通过PID控制温度稳定在设定的温度值。
比如设定模块1为50度,模块2为80度、模块3为120度,其他模块类似,那么加热器
使温度稳定在50度、80度、120度,误差为正负0.5度。温度探头为pt1000,ADC芯片型号为AD7793,通过SPI方式做数据通信。
这10路加热模块采用的加热片功率并不是一样的,总共有3种不同功率,分别为16W、60W、100W。
但是控制这10路加热器的PID算法参数都是同一份工程里面的同一套参数值,
控制逻辑也都是一样的,我在看过代码还有了解了一下PID算法控制后,
就觉得这方案不太合适,不能这10路温控模块都用同一套PID参数值,应该是不同的加热器用不同的PID参数,
但是大家也没耐心听我讲,所以分享出大家讨论下。也不知道我的分析是不是对的,希望有经验的前辈分析一下,谢谢!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
49条回答
xianshasaman
1楼-- · 2019-07-21 03:49
1. pid的参数确实和工作温度、加热器的满载功率关系不大,而是由负载的特性决定的。比如导热率,体积,结构,加热端到测温点的路径等等,这些不随时间变化的量是真正影响pid的参数的,至于温度和加热功率,他们只是pid系统的输入和输出,本来就是变化的东西。
但是如果每个负载就是不一样,那就应该用不同的参数。实际上除了特殊的几种场合,大多数情况的负载特性都是不一样的。你们用的东西如果不确定是不是效果一样的,就找负责算法的人来仿真一下,或者搞几组参数测试一下把工作点的曲线打印出来看看。

2.就算你们多路负载用的都是一样的,从程序设计上来说,每一路的参数也应该做成可以分别配置的,你家10路用一样的不代表所有用户都这么 用,要是时间充足的话赶紧把这里给改了吧,我还没见过参数不能调整pid控制器。
美丽的时光机器
2楼-- · 2019-07-21 05:16
为什么我发帖要减掉我两个积分。。。
nieyong
3楼-- · 2019-07-21 09:35
 精彩回答 2  元偷偷看……
huangyanga
4楼-- · 2019-07-21 15:20
你的想法是对的
szczyb1314
5楼-- · 2019-07-21 18:14
 精彩回答 2  元偷偷看……
美丽的时光机器
6楼-- · 2019-07-21 21:25
szczyb1314 发表于 2018-6-25 11:36
你的队友是对的,一套参数足够了,不同的目标温度,假设用同一个加热器,只是相当于你设置的目标值不同罢了 ...

并不好。。。现在他们让我去修复这个BUG,因为现在的方案控制的温度都是在设置的目标温度附近跳动1到2度,根本稳定不在0.5度范围,所以我现在才觉得用一块板子去控制这方案有问题,觉得应该是分开,因为不同加热片功率不一样,单位时间内温度变动值不一样。同一个参数几乎很难调试使得所有模块都适用这个参数。另外我已经排除是PT1000和AD芯片读取的问题了,因为我试过常温下读取温度是正常的,之前硬件小哥一直让我更新pt1000查询表,跟这个一点关系也没有哇。

一周热门 更多>