0

我正在构建一个代码来控制一个加热器,它使用Arduino-PID-AutoTune-Library连接到一个 SSR 的 PWM 输出。在使用正常模式(不是模拟,而是使用热电偶的实际模拟输入)操作时,我目前在使用上述库时面临两个问题。

  1. 开始操作时温度过冲。

    我为常量尝试了几个值

    • kp=2, ki=0.5, kd=2
    • kp=1, ki=0.8, kd=0.8
    • kp=1, ki=0.5, kd=0
    • ETC

    但温度仍然大幅过冲。

    例如,如果设定点为 100°C,则过程值上升到 130-140;°C,然后回到 95 到 110°C 之间的稳定状态。

  2. 当我使用自动调谐功能时,Arduino 进入调谐模式,但 PWM 输出计数只是在 50 和 150 之间切换,它永远不会退出自动调谐模式,即使设定点超过 200°C,温度也会持续升高为 100°C。

4

2 回答 2

1

你的Kp太高了,这就是你有超调的原因。根据我在设计 PID 时的记忆,对我来说,比例增益通常小于 0.01。(也就是说,这取决于应用程序)我不了解 arduino 自动调整,但您可以使用 matlab 调整变量,系统的传递函数或使用奈奎斯特图。这是一个相当复杂的过程。

于 2018-02-16T12:23:53.423 回答
0

从 kp 开始,每次添加 0.01,然后当您接近目标时,开始将 ki 调整 0.01,然后在该 kd 之后。

就像在 wiki 中一样,但这次增加应该大大降低以使其准确

https://upload.wikimedia.org/wikipedia/commons/3/33/PID_Compensation_Animated.gif

于 2019-07-01T02:23:01.510 回答