Arduino PID Автонастройка не настраивается
Я создаю код для управления нагревателем с выходом ШИМ, подключенным к SSR, используя https://github.com/br3ttb/Arduino-PID-AutoTune-Library. В настоящее время я сталкиваюсь с двумя проблемами, связанными с вышеуказанной библиотекой, при использовании обычного режима (не имитирующего, а использующего фактический аналоговый вход термопары) работы.
Температура выходит за рамки, когда я начинаю работу.
Я пробовал несколько значений для констант
- kp = 2, ki = 0.5, kd = 2
- kp = 1, ki = 0,8, kd=0,8
- kp = 1, ki = 0.5, kd = 0
- так далее
но все же температура значительно превышает.
Например, если заданное значение составляет 100°C, значение процесса возрастает до 130-140 ° C, прежде чем вернуться в стабильное состояние между 95 и 110°C.
Когда я использую функцию автонастройки, Arduino входит в режим настройки, но счетчик мощности ШИМ просто переключается между 50 и 150, и он никогда не выходит из режима автонастройки, и температура продолжает непрерывно увеличиваться даже выше 200°C, хотя заданное значение это 100 ° С.
1 ответ
Ваш Kp слишком высок, поэтому у вас есть выброс. Из того, что я помню, когда разрабатывал PID, пропорциональное усиление для меня обычно составляло менее 0,01 (это, как говорится, зависит от приложения). Я не знаю об автонастройке arduino, но вы можете настраивать свои переменные, используя matlab, Передаточная функция системы или использование сюжета Найквиста. Это довольно сложный процесс.
Начните с kp, добавляя 0,01 за раз, затем, когда вы приблизитесь к цели, начните регулировать ki на 0,01, а затем после этого kd.
точно так же, как в вики, но на этот раз увеличение должно быть существенно меньше, чтобы оно было точным
https://upload.wikimedia.org/wikipedia/commons/3/33/PID_Compensation_Animated.gif