温度PID控制时, 有多个温度测量点, 但最终采用一个温度控制点作为PID控制, 我们有时会采用平均值法, 计算所有温度的平均值来作为PID的设定值. 但在温度断线的情况下, 温度值为零, 这时平均值就会小很多.
像这种情况下中值法比较有效.
原理如下: 对于一组温度, 模拟量转换为数字量后, 对温度值进行排序, 取中间的那个值作为PID设定值. 如果是偶数, 取中间两个值除以2后作为设定值.
排序本来大算自己用选择排序的, 但发现西门子LGF的库中有希尔排序, 但它是FB的, 使用上还的带个DB块, 修改为FC, 功能上简化了一下, 修复一个小错误.
另外个一个取中值比较简单. 现一并分享给大家.





谢谢.