我正在构建一个代码来控制加热器,其PWM输出使用Arduino-PID-AutoTune-Library连接到SSR。在使用正常模式(不模拟但使用热电偶的实际模拟输入)操作时,我目前面对上述库存在两个问题。
开始操作时温度过高。
我为常量尝试了几个值
但温度过高仍然过度。
例如如果设定值为100°C,则过程值会升至130-140;°C,然后再回到95到110°C之间的稳定状态。
当我使用自动调谐功能时,Arduino进入调谐模式,但PWM输出计数只在50到150之间切换,它永远不会出现在自动调谐模式下,温度会持续增加,甚至超过200 °C虽然设定点为100°C。
答案 0 :(得分:0)
你的Kp太高,这就是你有过冲的原因。从我记忆中设计PID时,对我来说,比例增益通常小于0.01。(据说这取决于应用) 我不知道arduino自动调整,但您可以使用matlab,系统的传递函数或使用奈奎斯特图来调整变量。这是一个非常复杂的过程。
答案 1 :(得分:0)
从kp每次添加0.01开始,然后当您接近目标时 开始将ki调整0.01,然后再调整kd。
就像在Wiki中一样,但是这次增加应该大大降低以使其准确
https://upload.wikimedia.org/wikipedia/commons/3/33/PID_Compensation_Animated.gif