Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Автоматика

ПИ регулятор температуры

Автор: Callous
Опубликовано 16.09.2013.
Создано при помощи КотоРед.

Началось все с необходимости в создании сушилки для плат с нанесенным аэрозольным фоторезистом.

Для этих целей был собран вот такой нагреватель:

 

намотанный нихромовой нитью, при этом потребляемый ток от 12 В блока питания составляет 3,6 А.
Накрывается эта вся конструкция коробочкой, и температура внутри достигает через несколько минут до 70 градусов.
Поскольку такой нагреватель хоть и выполняет свои функции, но был довольно скучен, поэтому было решено собрать ПИД регулятор температуры для данного нагревателя.

После некоторых размышлений по поводу ПИД регулирования и взирая на текущую деятельность связаную с мощным и несовсем насосным оборудованием которое управляется частотниками, кстати все они настроены на ПИ регулирование. Собственно температура как и давление не может изменится мгновенно и поэтому Д составляющую было решено выкинуть из системы регулирования.
Мощность в нагрузке будет регулироваться ШИМом так что вообщем ничего особенного, силовой ключ IRFZ44N, управляющий контроллер Atmega8, 4 кнопки, UART для общения с ПК, ЖКИ дисплей 1602 для отображения, DS18B20 для измерения температуры.

Здесь роль нагрузки выпала на долю двигателя, в жизни там включен нагреватель.
Если со схемой все понятно, то с программой не все так гладко, как хотелось бы.
ПИД в пидивикии
Мы применяем рекуррентную формулу:

и для своего случая выбрасываем Д составляющую, получаем:

E(n)=X(n)-X0(n) - невязка;
X(n) - текущее значение параметра;
X0(n) - заданое значение, к которому стремится система;
Kp - коэффициент пропорционального регулятора, задается вручную;
Ki - коэффициент интегрального регулятора, задается вручную;
В грамотной реализации программы для регулятора очень помогло использование хабр
Кроме всех упомянутых по ссылке выше фич и багов, в регуляторе еще организовано ограничение управляющей переменной в пределах 0-255, при попадании текущей температуры в пределы +1/-1 градус, для более быстрого выхода температуры на заданное значение, фактически отбрасывается накопленое значение.

Хорошо написана программа должна реализовывать переходную характеристику 3 или 4, при правильно настроенных коэффициентах.

Управление осуществляется 4 кнопками ентер (En), ескейп (Es), плюс (+), минус (-). Подача питания при зажатой кнопке En это вход в меню, где можно настроить температуру уставки и коэффициенты Kp и Ki. Так же для ПК написана програма через которую можно смотреть уставку так и менять ее, а также каждые 2 с при запущенной программе текущая температура записывается в екселевский файл, при отсутствии связи с устройством записываются нули.

И так с программой и схемой все понятно, настала очередь печатной платы. Дисплей соединяется с основной платой шлейфом, кнопки размещаются на отдельной плате и подключаются к внешнему разъему как и датчик температуры, нагреватель. Так же на внешний разъем выведен UART для фозможности связи с ПК.

Печатная плата клавиатуры

Дисплей приклеен на термоклей к корпусу, кстати с прорезью под дисплей накосячил, должно закрыться фальшпанелью, кнопки размещены на верхней грани корпуса, плата приклеена термоклеем, под кнопки прорезаны отверстия, тоже закроются фальшпанелью, на нижней грани корпуса выведены клемники для подключения периферии. Здесь есть светодиод зеленый для индикации работы прибора. Шлейф клавиатуры припаян сразу к главной плате, клемник для подключения внешней клавиатуры остался, но не используется.
Нагреватель накрывается сверху коробкой с отверстием сверху где ставленый датчик температуры.

Картинка поясняющая настройки меню регулятора:

Я настраивал регулятор по методике которая описана здесь

График температуры нагрева от комнатной температуры до 40 градусов при коэфициентах П=40 и И=0,55

Поскольку система не имеет охладителя то переход по температуре вниз осуществляется за счет естественного остывания всмей системы и является весьма длительным.

При правильно настроеных коэфициентах стабильность температуры держится в пределах 0,1 градуса:

Регулирование температуры уставки можно осуществлять по средством программы на ПК, для этого необходим переходник USB-UART или COM-UART, программа стабильно работает с WinXP и WIN7, с остальными не проверял. Так же программа создает в текущей папке файл temperature.xls в который каждые 2 с пишется текущее значение температуры. 

При обрыве связи с устройством:

Новая уставка вводится в специальное поле и после нажатия кнопки "Установить" передается в прибор.

Все значения введеные с клавиатуры после нажатия кнопки En после выбора значения записываются в ЕЕПРОМ и при новом включении прибора остаются, значение уставки введеные с ПК после сброса питания устройства не сохраняются.

Недоработки по устройству которые при желании можно устранить:
- отсутсвует регулированое охлаждение;
- уставка введеная с ПК не сохраняется при сбросе устройства;
- нет возможности настраивать устройство с ПК.
- в файл с температурой не пишется время выборки.

Несколько фото того что получилось:

Старая версия:

Видео работы устройства:

 

График построенный по режиму снятому на видео:

Я прошивал через бутлоудер chip45boot2. Для загрузки прошивки на контроллер достаточно иметь переходник USB-UART или COM-UART, так же данный бутлоудер поддерживает загрузку прошивки по RS-485, но перед этим придется прошить контроллер обычным программатором. Бутлоудер позволит обновлять прошивку при выходе новой версии без дополнительных мучений. Вы можете использовать любой другой бутлоудер, который работает с UART или не пользоватся им вовсе.

Фьюзы:

Естественно применять ПИ регулятор для сушки фоторезиста это чересчур, но возможных применений для него весьма много.

Доп. ссылки на видео, если нормально не вставилось:

часть1

часть2


Файлы:












схема, проект для протеуса
прошивка бутлоадером для 8 меги
Печатные платы
Файлы прошивок
Описание бутлоадера


Все вопросы в Форум.


ID: 1775

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

10 1
1
Подробно