|
Данная система управления состоит из пропорционально-интегрально-дифференциального (ПИД) регулятора и самодельного температурного преобразователя термосопротивления Pt100. Она предназначена для контроля температуры подогревателей, имеющих в качестве регулирующего органа клапан с электроприводом, который управляет подачей теплоносителя (например, термомасла) в подогреватель. Этот клапан должен иметь управление от двух контактов : один на закрытие, другой на открытие. Также на нем должны быть установлены конечные выключатели, останавливающие привод в крайних положениях.
Температурный ПИД-регулятор
Что может данная система управления. Осуществлять автоматический процесс регулирования температуры. Выдавать сигнализацию по высокой и низкой температуре. Все события выводятся на LCD-дисплей. Система позволяет настраивать все необходимые параметры и записывать их в память Arduino. В системе есть полностью ручной режим управления клапаном.
СОСТАВ СИСТЕМЫ
PLC Arduino UNO с шилдом Sensor Shield v5.0 (питание 7-12 В постоянного тока), LCD-дисплей с шиной I2C, DC-DC конвертер для питания реле и дисплея, 2 реле управления электромагнитными клапанами и 1 реле сигнализации, кнопочный пост с пятью кнопками и самодельный температурный преобразователь термосопротивления Pt100. Клапан и датчик Pt100 используются штатные, установленые на системе подогрева.
КАК РАБОТАЕТ
При подаче питания на Arduino контроллер замерит текущую температуру объекта, далее в зависимости от заданной температуры рассчитает направление (открыть/закрыть) движения клапана, продолжительность движения и подаст необходимые команды на реле управления. Процесс будет идти непрерывно, достигая максимального равенства текущей температуры и заданной. В случае, если текущая температура уйдет за пределы заданной минимальной или максимальной уставки, сработает сигнализация и будет подано питание на реле сигнализации. При необходимости вы можете перейти на полностью ручной режим управления клапаном, открывая или закрывая его кнопками ВВЕРХ / ВНИЗ.
Температурный ПИД-регулятор
КНОПКИ УПРАВЛЕНИЯ
Управлять системой можно с помощью пяти кнопок : НАСТРОЙКИ, ВВЕРХ, ВНИЗ, ВЫХОД и РУЧНОЙ РЕЖИМ (MANUAL). Рассмотрим их функции подробно :
Кнопка НАСТРОЙКИ
При нажатии этой кнопки вы попадете в меню настроек. Продолжая нажимать эту кнопку, вы будете циклично переходить по пунктам меню. Чтобы выйти из настроек, нажмите кнопку ВЫХОД. Изменение параметров осуществляется кнопками ВВЕРХ и ВНИЗ. Все цифровые параметры имеют верхнюю и нижнюю границы, за которые вы выйти не сможете. Изменение цифровых параметров сразу принимается системой, подтверждение не нужно. Обратите внимание, верхнюю и нижнюю границы, а также значение по умолчанию вы можете сами изменять в скетче.
Пройдемся по пунктам меню Настройки.
- 1 Setpoint (SV) заданная температура в ºC. Значение по умолчанию +45ºC. Нижняя граница 0ºC, верхняя +1000ºC.
- 2 P-factor (proportional band) : коэффициент пропорциональности в %. Значение по умолчанию 100%. Нижняя граница 0%, верхняя 10000%.
- 3 I-factor (integral time) : время интегрирования в сек. Значение по умолчанию 70 сек. Нижняя граница 1 сек., верхняя 10000 сек.
- 4 D-factor (derivative time) : время дифференцирования в сек. Значение по умолчанию 15 сек. Нижняя граница 1 сек., верхняя 10000 сек. Обычно D_FACTOR=I_FACTOR/4...5.
- 5 Temp Correct. (temperature correction) : поправка температуры в ºC. Значение по умолчанию 0ºC. Нижняя граница -100ºC, верхняя +100ºC. Эта поправка добавляется к замеренной температуре (PV). Если поправка отличается от нуля, в верхней строчке LCD-дисплея появится восклицательный знак.
- 6 Alarm Max Temp (alarm maximum temperature) : уставка сигнализации по максимальной температуре в ºC. Значение по умолчанию +60ºC. Нижняя граница +1ºC, верхняя +1000ºC.
- 7 Alarm Min Temp (alarm minimum temperature) : уставка сигнализации по минимальной температуре в ºC. Значение по умолчанию +20ºC. Нижняя граница +1ºC, верхняя +1000ºC.
- 8 Alarm Dif Temp (alarm temperature differential) : дифференциал сигнализации в ºC. Значение по умолчанию 1ºC. Нижняя граница 0ºC, верхняя 100ºC.
- 9 Alarm ON/OFF включение или выключение сигнализации по температуре. Значение по умолчанию - ON (сигнализация включена). При включенной сигнализации подается питание на реле сигнализации, а на LCD выводится буква А. При отключенной сигнализации реле отключено, но буква А выводится все равно.
- 10 Sensor Time интервал опроса датчика температуры в мс. Значение по умолчанию 2000 мс. Нижняя граница 100 мс., верхняя 10000 мс.
- 11 Valve Time время открытия клапана в секундах от 0 до полного. Замеряем секундомером или берем из мануала. Значение по умолчанию 43 сек. Нижняя граница 1 сек., верхняя 6000 сек.
- 12 Total Span диапазон регулирования в ºC, т.е. максимальное изменение температуры от закрытого клапана до полностью открытого. Замеряем или задаем на глаз Значение по умолчанию 55ºC. Нижняя граница 1ºC, верхняя 1000ºC.
- 13 Min_Volt нижняя граница вольтажа с аналогового порта датчика Pt100, переведенная в цифровой вид. Значение по умолчанию - 39. Нижняя граница 0, верхняя 1023. Эта величина и далее необходимы для калибровки самодельного преобразователя термосопротивления Pt100.
- 14 MinPt соответствующая нижней границе температура в ºC. Значение по умолчанию - 0ºC. Нижняя граница 0ºC, верхняя +1000ºC.
- 15 Max_Volt верхняя граница вольтажа с аналогового порта датчика Pt100, переведенная в цифровой вид. Значение по умолчанию - 546. Нижняя граница 0, верхняя 1023.
- 16 MaxPt соответствующая верхней границе температура в ºC. Значение по умолчанию +100ºC. Нижняя граница 0ºC, верхняя +1000ºC.
- 17 Read Settings : чтение настроек из энергонезависимой памяти Arduino. При нажатии кнопки ВВЕРХ настройки из памяти PLC перейдут в оперативную.
- 18 Save Settings : запись настроек в энергонезависимую память Arduino. При нажатии кнопки ВВЕРХ текущие параметры запишутся в постоянную память PLC. При перезагрузке контроллера (выключение - включение) именно эти настройки загрузятся в программу.
- 19 Load Default : загрузка значений по умолчанию. При нажатии кнопки ВВЕРХ параметры, определенные в начале скетча, загрузятся в оперативную память PLC (в текущие настройки). Эта функция может быть полезна, когда вы запутались в регулировках и хотите все вернуть в исходное положение. Но есть и еще одна причина ее использования. Если вы на одну и ту же плату Arduino постоянно записываете скетчи разных проектов, возможна ситуация, когда параметры одного проекта запишутся в настройки другого. Конечно, это можно исправить, но представьте, что в параметре, где должно быть, например, число 10, стоит 32000. Вручную кнопками ВВЕРХ или ВНИЗ корректировать это очень долго, проще сбросить настройки к заводским, а уже затем их подправить.
Кнопки ВВЕРХ-ВНИЗ
В автоматическом режиме этими кнопками можно менять уставку температуры (SV), не заходя в настройки. В режиме настроек ими меняются значения параметров. В ручном режиме эти кнопки открывают или закрывают клапан управления.
Кнопка ВЫХОД
Нажимая эту кнопку в автоматическом режиме, вы можете циклично вывести во второй строчке экрана следующие параметры :
- SV=XXºC - уставка температуры
- Output=XXX% - выходной сигнал в %
- P_part=XX% - пропорциональная составляющая выходного сигнала в %
- I_part=XX% - интегральная составляющая выходного сигнала в %
- D_part=XX% - дифференциальная составляющая выходного сигнала в %
Будучи в режиме настроек вы можете выйти из него с помощью этой кнопки.
Кнопка РУЧНОЙ РЕЖИМ (MANUAL)
Нажав эту кнопку, вы попадете в ручной режим, где сможете управлять клапаном кнопками ВВЕРХ-ВНИЗ. Выйти из ручного режима можно еще раз нажав на кнопку MANUAL.
ИНДИКАЦИЯ LCD
- В автоматическом режиме :
- верхняя строчка "PV=XXXºC" - текущая температура в ºC. "A" - сработала сигнализация (выводится даже при отключенной сигнализации), "!" - введена поправка температуры (отличается от 0).
- нижняя строчка "SV=XXºC" - уставка температуры в ºC. Нажимая кнопку ВЫХОД, вы можете увидеть следующие параметры (они отображаются циклично) : "Output=XXX%" - выходной сигнал в %, "P_part=XX%" - пропорциональная составляющая выходного сигнала в %, "I_part=XX%" - интегральная составляющая выходного сигнала в %, "D_part=XX%" - дифференциальная составляющая выходного сигнала в %. Вы можете наблюдать за изменениями этих параметров в реальном времени, чтобы затем настроить параметры ПИД-регулятора.
- В режиме настроек (нажата кнопка НАСТРОЙКИ) :
- верхняя строчка - название параметра.
- нижняя строчка - значение параметра, изменить которое можно кнопками ВВЕРХ-ВНИЗ.
- В ручном режиме (нажата кнопка MANUAL) :
- верхняя строчка - "PV=XXXºC" - текущая температура в ºC. "A" - сработала сигнализация (выводится даже при отключенной сигнализации), "!" - введена поправка температуры (отличается от 0). При нажатии на кнопки ВВЕРХ-ВНИЗ появятся стрелки (вверх, вниз соответственно).
- нижняя строчка - "Manual Mode".
ПОДКЛЮЧЕНИЕ
Здесь приведено соединение всех элементов системы управления, Arduino (через шилд) и самого ПИД-регулятора. В виде схемы подключение представлено ниже.
Подключение системы
Плата Arduino и Sensor-shield
- питание Arduino : от адаптера 7-12 В постоянного тока (2A)
- питание шилда (перемычка убрана) : 5 В постоянного тока. Можно от того же адаптера 7-12 В через понижающий DC-DC преобразователь типа LM2596 (не менее 2А)
- LCD-дисплей 1602 + модуль I2C : питание от шилда (подсоединяем GND и VCC к любым свободным пинам G и V цифровых входов), SDA (I2C) - A4 (шилд), SCL (I2C) - A5 (шилд)
- реле открытия клапана : сигнал от Arduino - цифровой пин 5, питание от шилда (подсоединяем GND и VCC реле к пинам G и V пина 5)
- реле закрытия клапана : сигнал от Arduino - цифровой пин 6, питание от шилда (подсоединяем GND и VCC реле к пинам G и V пина 6)
- реле сигнализации : сигнал от Arduino - цифровой пин 12, питание от шилда (подсоединяем GND и VCC реле к пинам G и V пина 12). Контакты реле вы можете подключить к общесудовой сигнализации или сделать местную.
- сигнал от кнопки НАСТРОЙКИ : вход в Arduino - цифровой пин 7. Пины + и - кнопочного поста, общие для всех кнопок НАСТРОЙКИ, ВВЕРХ, ВНИЗ, ВЫХОД, MANUAL подсоединяем к любым свободным пинам V и G цифровых входов. Линию сигнала и земли шунтируем резистором 10кОм
- сигнал от кнопки ВНИЗ : вход в Arduino - цифровой пин 8. Линию сигнала и земли шунтируем резистором 10кОм
- сигнал от кнопки ВВЕРХ : вход в Arduino - цифровой пин 9. Линию сигнала и земли шунтируем резистором 10кОм
- сигнал от кнопки ВЫХОД : вход в Arduino - цифровой пин 10. Линию сигнала и земли шунтируем резистором 10кОм
- сигнал от кнопки MANUAL : вход в Arduino - цифровой пин 11. Линию сигнала и земли шунтируем резистором 10кОм
- сигнал от контроллера Pt100 к Arduino - аналоговый пин A0. Питание к любым свободным пинам G и V цифровых входов
- входы от термодатчика Pt100 - к клеммам на самодельном термопреобразователе
Клапан
- реле открытия клапана : COM - источник питания с напряжением аналогичным приводу клапана, NO - клемма привода открытия клапана
- реле закрытия клапана : COM - источник питания с напряжением аналогичным приводу клапана, NO - клемма привода закрытия клапана
Минусовой или нулевой провод привода можно оставить штатный. Лучшим вариантом будет использовать провода от штатного неисправного терморегулятора, чем подключать Arduino непосредственно к приводу клапана, тогда все защиты (предохранители и автоматы) останутся в работе. Внимание! Если катушки клапанов питаются током других параметров, переделайте схему под них
Схема подключения.
Схема подключения ПИД-регулятора
ЧТО НУЖНО ДЛЯ ПРОЕКТА
- PLC Arduino UNO - 1 шт
- Sensor Shield v 5.0 - 1 шт
- понижающий DC-DC преобразователь типа LM2596 (не менее 2А) - 1 шт
- LCD-дисплей 1602 + модуль I2C - 1 шт
- самодельный температурный преобразователь термосопротивления Pt100 - 1 шт
- реле одноканальное (катушка 5VDC) - 3 шт
- кнопка тактовая с колпачком - 5 шт
- резистор 10 кОм (0,25 Вт) - 5 шт
- макетная плата под пайку 90х30 - 1 шт (для монтажа кнопок)
- стойка мама-мама М3х15 - 8 шт (для монтажа LCD-дисплея и самодельного термопреобразователя)
- гайка М3 - 50 шт и более в зависимости от способа крепления вышеуказанных элементов
- болт М3х15, М3х10 - 20 шт и более
- провод Dupont мама-мама или папа-мама (20 см) - 30 шт и более в зависимости от типа пинов соединяемых элементов
- провод типа AWG - 50 см (соединение штекер - DC-DC преобразователь - Sensor Shield)
- штыревой соединитель 40pin - 1 шт
- штекер питания DC 2.1 мм с клеммной колодкой папа и мама - 1 пара (для подключения шилда)
- кусок оргстекла или т.п. - 20х30 см (для монтажа всех элементов)
- болт М6х15 и гайка - 4 шт (ножки оргстекла)
ВОЗМОЖНЫЕ ПРОБЛЕМЫ
Главная проблема, возникшая при полевых испытаниях, большая чувствительность Arduino к электромагнитным полям (плата зависает). Это явление возникает при коммутации через реле токов переменного напряжения 220 В и более. В этом случае вынесите реле К1, К2 на расстояние не менее полуметра от платы.
|