有一个方案,我自己觉得有问题,但是因为我是新员工周围人没耐心听我讲,发出来大家讨论下:
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参数,
但是大家也没耐心听我讲,所以分享出大家讨论下。也不知道我的分析是不是对的,希望有经验的前辈分析一下,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
但是如果每个负载就是不一样,那就应该用不同的参数。实际上除了特殊的几种场合,大多数情况的负载特性都是不一样的。你们用的东西如果不确定是不是效果一样的,就找负责算法的人来仿真一下,或者搞几组参数测试一下把工作点的曲线打印出来看看。
2.就算你们多路负载用的都是一样的,从程序设计上来说,每一路的参数也应该做成可以分别配置的,你家10路用一样的不代表所有用户都这么 用,要是时间充足的话赶紧把这里给改了吧,我还没见过参数不能调整pid控制器。
并不好。。。现在他们让我去修复这个BUG,因为现在的方案控制的温度都是在设置的目标温度附近跳动1到2度,根本稳定不在0.5度范围,所以我现在才觉得用一块板子去控制这方案有问题,觉得应该是分开,因为不同加热片功率不一样,单位时间内温度变动值不一样。同一个参数几乎很难调试使得所有模块都适用这个参数。另外我已经排除是PT1000和AD芯片读取的问题了,因为我试过常温下读取温度是正常的,之前硬件小哥一直让我更新pt1000查询表,跟这个一点关系也没有哇。
一周热门 更多>