- Get link
- Other Apps
- Get link
- Other Apps
Продолжение статьи про пивоварню из стиральной машины
После того как все собрано и запрограммировано, самое время настроить PID алгоритм.Здесь я напишу как это делается в общем и покажу как это делал я:
Как это делается
Надо подстроить коэффициенты Kp, Ki и Kd под конкретный объект (именно ваш нагреватель, котел, объем воды и т.д.). Самый простой способ настройки таков:- Объекты с медленно меняющимся контролируемым параметром (температурой в моем случае) обычно работают с большим Kp, малым или нулевым Ki и нулевым Kd. В итоге должен получиться именно такой результат.
- Начинаем с малого Kp, нулевого Ki и Kd. Насколько малый? В данный момент не скажешь точно, но можно взять минимальное значение при котором нагреватель будет всегда включен при разнице между заданной и текущей температурой в 10 градусов.
- Удваиваем Kp до тех пор, пока колебания не станут периодичными. Затем берем Kp в 2 раза меньше, чтобы колебания были либо стабильные, либо вообще отсутствовали.
- Устанавливаем небольшой Ki. Удваиваем его пока не начнутся колебания, затем берем его в 2 раза меньше, чтобы колебаний не было.
Как это делал я
- Заливаем код с режимом PLOT, подключаем Arduino к ПК и запускаем
Serial plotter в Arduino IDE. Включаем нагрев и видим ползущий
вверх график:
А также медленно нагревающуюся воду...
- Рано или поздно текущая температура подойдет к заданной и возможно начнет колебаться вокруг нее. Если уже есть колебания то снижаем Kp.
Setpoint = 40C
- Если же температура поддерживается, удваиваем Kp пока не график не станет колебаться. Затем ополовиваем Kp. У меня это получилось огромной цифрой - 16000
Первая попытка угадать Kp - 2000. Температура держится стабильно
Вторая попытка - 4к. То же.
Дальше пошел итеративный процесс повышения Kp
На Kp=16к мне стало скучно и я решил помешать воду рукой.
Оттуда и проседание.
На 16k уже видно небольние нестабильности.
На Kp=32k показания начали колебаться.
- Теперь подстраиваем Ki. Начнем со 100 и посмотрим как он будет влиять на процесс.
Если при чисто пропорциональном регулировании на одном Kp было четкое включение-отключение нагревателя вокруг установленной температуры, то теперь при проседании температуры ВОЗЛЕ установленной начинает потихоньку включаться обогрев. Например, при заданной темп. 50С и снижении показаний от 50.5С уже на 50.1С начинается небольшой обогрев. При чисто пропорциональном нагреве вода бы остывала до 50, и только потом начался бы нагрев.
На графике не видно, но чем больше Ki тем раньше начинает компенсироваться потеря температуры.
Теперь весь процесс настройки сведен к подстройке коэффициента Ki. Лично мне подошел 3000. - Мои поздравления, теперь PID регулятор полностью настроен и готов к работе!
Comments
Отличное разьеснение! На пальцах и с реальными примерами,очень понятно и прозрачно,спасибо!
ReplyDelete