有一个方案,我自己觉得有问题,但是因为我是新员工周围人没耐心听我讲,发出来大家讨论下:
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参数,
但是大家也没耐心听我讲,所以分享出大家讨论下。也不知道我的分析是不是对的,希望有经验的前辈分析一下,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
试过了 多个模块用同一个PID参数不行的,举个我观察到的例子,我调试120度的加热模块达到想要的结果时候,发现60度的加热模块不适合这个参数,它根本不稳定,其他模块也类似。
我现在用一种比较笨的办法去解决,不用修改底层的PID接口。因为设置温度高的模块用的加热片功率比较大,设置温度低的加热模块用的加热片功率小。我就按照设置的温度作为界线设置不同的PID值,比如他们的放大比例系数不一样。还有就是按照温度界线设置不用的温度比较阈值,比如加热片功率大的模块,温度比较阈值就放小一点。功率小的模块设置60度时候,温度比较阈值就放大一点。这么一改,效果是比之前的好很多,基本上是可以认为之前的方案不合适了。
多个加热模块分别工作在自己的温度范围下,每个模块再根据自己的PID参数工作。思路是对的。
长知识长经验了
你是怎么得到时间温度曲线的?
一周热门 更多>