Терморегулятор нагрева непрерывного действия (далее - «терморегулятор») предназначен для применения в системах регулирования температуры, использующих электрические нагреватели с питанием от однофазной сети переменного тока ~ 220-230В, 50Гц, таких как: дистилляторы, инкубаторы, системы электроотопления, и т.д. Регулирующим элементом терморегулятора является симистор с управляемой фазой отпирания, что обеспечивает плавное и непрерывное (в отличие от регуляторов с релейным выходом) изменение мощности подключенного нагревательного элемента как в автоматическом, так и в ручном режиме.
Схема фазового управления симистором реализована на китайском клоне arduino LGT8F328P-LQFP32 MiniEVB. Можно применить модуль Arduino NANO. Вместо оптопары РС817 можно использовать РС814, тогда диодный мост VD2 можно заменить перемычками. В авторском варианте схема запитана от импульсного маломощного блока питания 12V, 1,25A (MN15-12).
Для кулера симистора мной использован радиатор от УНЧ бобинного магнитофона "Юпитер 203". Разводка платы выполнена для него. Можно использовать другой алюминиевый радиатор с размерами 45*45 мм., сделав в нем соответствующие крепежные отверстия. При управлении нагрузкой до 1 кВт радиатор практически холодный, для бОльших нагрузок применен вентилятор 12V 45*45 или 40*40, закрепленный на радиаторе.
Датчик температуры использован цифровой DS18S20, в герметичной гильзе, длина кабеля 1 м.
При правильной сборке и заливке соответствующей прошивки, схема в наладке не нуждается.
Испытания проводил нагреванием воды в старой кастрюле на электрической плитке:
Корпус использовал фабричный, NM9, плата разведена под него.
Основные технические характеристики терморегулятора:
- диапазон температур регулируемой среды: 0-120 ºC;
- сеть питания: однофазная, ~ 220-230В, 50Гц;
- максимальная мощность подключаемого нагревательного элемента 3 кВт;
- точность измерения температуры датчиком +/- 0,5ºC;
- точность поддержания температуры в автоматическом режиме - +/- 0,1ºC.
Описание работы устройства.
Терморегулятор имеет два режима работы - ручной и автоматический.
В ручном режиме оператор может регулировать мощность нагревательного элемента (OP - " output point") вращением ручки энкодера в направлении по часовой стрелке (увеличение) или против часовой стрелки (уменьшение мощности). Диапазон регулирования мощности - 0-100% с шагом в ручном режиме 1%.
В автоматическом режиме оператор может задавать уставку по температуре (SP - "set point ") в градусах Цельсия с помощью энкодера. Установленное задание будет поддерживаться автоматически регулятором, который реализован программно на микроконтроллере. В зависимости от отклонения текущей, измеренной датчиком, температуры среды (PV - " point value") от задания SP регулятор, по специальному алгоритму, увеличивает или уменьшает мощность нагревательного элемента OP для устранения отклонения.
Органы управления и отображения.
Дисплей терморегулятора - жидкокристаллический, с светодиодной подсветкой. Имеет две строки по 16 символов. В рабочих режимах на дисплей выводятся текущие значения измеренной температуры (PV ) и задания по температуре (SP) в градусах Цельсия, а также выходная мощность (OP) в процентах от максимума. В ручном режиме у отметки OP подсвечивается символ "*". В режиме инженерного меню на дисплей выводятся наименования и текущие значения параметров настройки ПИД регулятора с возможностью их изменения.
Энкодер предназначен для изменения параметров путем вращения ручки по часовой стрелке (увеличение) или против часовой стрелки (уменьшение значения). В ручном режиме оператору предоставляется возможность изменять выходную мощность (OP), в автоматическом - задание по температуре (SP). Нажатием на вал энкодера вниз в осевом направлении сохраняется в память микроконтроллера значение SP. В режиме инженерного меню есть возможность выбирать , изменять и сохранять в память параметры настройки ПИД регулятора: Kr, Ti, Td, OP0, OPmax.
Переключатель режимов представляет собой тумблер с двумя положениями «РУЧ» и «АВТ», который переводит регулятор в ручной или автоматический режим соответственно.
Блокатор энкодера представляет собой тумблер с двумя положениями, который в положении «LOCK» блокирует реакцию регулятора на вращение ручки энкодера. Это является средством защиты от случайного изменения параметров.
Кнопка "RES" - сброс микроконтроллера. Ее нажатие инициирует перезагрузку и перезапуск вычислительной системы.
Инженерное меню.
Переход в инженерное меню обеспечивается нажатием и удержанием в нажатом состоянии вала (кнопки) энкодера при перезагрузке программы микроконтроллера до появления надписи «SETUP» в верхней строке дисплея . Вращением ручки выбирается параметр (Kr, Ti, Td, OP0, OPmax), значение которого нужно изменить. Однократное нажатие кнопки энкодера на выбранном параметре переводит его в режим изменения. Далее, вращением ручки по часовой стрелке (увеличение) или против часовой стрелки (уменьшение) выставляется необходимое значение параметра и нажатием на кнопку энкодера сохраняется в память.
Порядок работы.
Для начала работы , подключите термодатчик к регулятору. Обеспечьте надежный контакт корпуса датчика со средой, температура которой регулируется. В ручном режиме возможна работа без подключения датчика.
Подключите вилку нагревательного элемента к розетке терморегулятора.
Включите вилку терморегулятора в розетку сети переменного тока 220 -230 В, 50Гц.
С помощью переключателя режимов выберите желаемый режим работы (ручной или автоматический). С помощью ручки энкодера выставьте необходимое значение OP или SP. При необходимости, включите блокировку энкодера и сохраните текущее значение SP в память.
Рекомендуемый алгоритм работы следующий:
- Включите регулятор в ручном режиме.
- Регулируя выходную мощность OP, достигните желаемой температуры Вашего процесса.
- Переключите режим в «АВТ».
- При необходимости, скорректируйте значение SP.
- Включите блокатор энкодера.
- Нажатием на кнопку энкодера, сохраните текущее значение SP в память микроконтроллера.
Настройка параметров ПИД регулятора
Регулировка мощности нагрева в автоматическом режиме выполняется по следующей формуле (формула обще - принципиальная, не учитывает особенности программной числовой реализации):
где:
Ek = SP - Tk,
Tk - текущая температура среды, измеренная датчиком,
t - текущее время,
k - номер итерации.
По умолчанию параметры имеют следующие значения:
Kr = 20;
Ti = 10000;
Td = 0;
OP0 = 10;
OPmax = 100.
Установка Ti=0 или Td=0 выключает интегральную или дифференциальную составляющую расчета соответственно.
Kr - общий коэффициент передачи регулятора. Его увеличение приводит к уменьшению статической ошибки регулирования, то есть усиливает реакцию регулятора на отклонение температуры от уставки. Kr отвечает за мгновенную реакцию регулятора на изменение регулируемого параметра. Слишком большое значение Kr может привести к неустойчивой работе регулятора, возникновению автоколебаний.
Ti - время интегрирования. Использование интегральной составляющей позволяет сделать статическую ошибку нулевой, то есть повысить точность регулирования. Если Kr определяет мгновенную реакцию регулятора на параметр регулирования, то отношение Kr/Ti - определяет инерционность регулятора. Чем больше значение Ti, тем медленнее регулятор «дотягивает» параметр до значения уставки SP. Для отсутствии колебаний параметра при регулировании инерционность регулятора (Ti) не должна быть меньше инерционности объекта регулирования. Малое значение Ti может привести к неустойчивой работе регулятора, возникновению автоколебаний.
Td - время дифференцирования. Дифференциальная составляющая обеспечивает мгновенную реакцию регулятора на изменение отклонения Ek. Дифференциальное регулирование еще называют «упреждающим». Эта составляющая усиливает отработку регулятором быстрых коротких бросков параметра. Слишком большое значение Td может привести к неустойчивой работе регулятора, возникновению автоколебаний.
OP0 - начальная точка регулятора. Это значение мощности выставляется сразу после включения или перезагрузки.
OPmax – ограничение выходной мощности регулятора в автоматическом режиме, в процентах от максимума.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
BR1 | Модуль энкодера | KY-040 5 pin | 1 | Поиск в магазине Отрон | ||
С2 | Конденсатор | 100п | 1 | Поиск в магазине Отрон | ||
С1, С3 | Конденсатор | 100Н | 2 | Поиск в магазине Отрон | ||
Display | LCD | 1602A | 1 | Поиск в магазине Отрон | ||
MC board | LGT8F328P-LQFP32 | MiniEVB | 1 | Поиск в магазине Отрон | ||
Sensor | QT18B20 | QT18B20 | 1 | Поиск в магазине Отрон | ||
R1 | Резистор | 20Ом, 1Вт | 1 | Поиск в магазине Отрон | ||
R2 | Резистор | 1 кОм | 1 | Поиск в магазине Отрон | ||
R3 | Резистор | 300 Ом | 1 | Поиск в магазине Отрон | ||
R6 | Резистор | 100 кОм | 1 | Поиск в магазине Отрон | ||
R7 | Резистор | 4.7 кОм | 1 | Поиск в магазине Отрон | ||
R8 | Резистор | 240 Ом | 1 | Поиск в магазине Отрон | ||
R10 | Резистор | 470Ом, 1Вт | 1 | Поиск в магазине Отрон | ||
R11, R12 | Резистор | 15к, 2Вт | 2 | Поиск в магазине Отрон | ||
R4, R5, R9 | Резистор | 10 кОм | 3 | Поиск в магазине Отрон | ||
T1 | Симистор | BT139-600E | 1 | Поиск в магазине Отрон | ||
U1 | Оптопара | MOC3052M | 1 | Поиск в магазине Отрон | ||
U2 | Оптопара | PC817 | 1 | Поиск в магазине Отрон | ||
VD1 | Выпрямительный диод | FR102 | 1 | Поиск в магазине Отрон | ||
VD2 | Диодный мост | DB104 | 1 | Поиск в магазине Отрон | ||
VT1 | Биполярный транзистор | BC546C | 1 | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Прикрепленные файлы:
- ThermoReg_mod.lay (66 Кб)
- eeprom_defaults.bin (1 Кб)
- ThermoReg_mod_4_7.ino (19 Кб)
- ThermoReg_mod_4_7.ino_lgt8fx8p.hex (25 Кб)
- ThermoReg_mod_4_7.ino_nano328.hex (25 Кб)
Комментарии (80) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
This error indicates you need to take some drastic action. Be aware this is somewhat advanced and will remove any boards you have installed via Boards Manager:
In the Arduino IDE, click the link on the line following File > Preferences > More preferences can be edited directly in the file. This will open the Arduino15 (or similar name depending on OS) folder.
Delete all files and folders under the Arduino15 folder except for preferences.txt. Please be very careful when deleting things from your computer. When in doubt, back up!
Restart the Arduino IDE...
В двух словах - надо из папки, где находится файл preferences.txt удалить все, кроме этого файла. OneWire и Larduino HSP надо будет переустановить.
И еще вопрос - на дистилляторе температуру держит стабильно? Датчик Т ставите где? У меня на REX стоит в перевальной точке - плавает +-0,5грС
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
И не путайте погрешность с дискретностью. Дискретность АЦП датчика 0.067 градуса. Алгоритм реагирует на изменение в 67 тысячных градуса.
[Автор]
На плате нет контактов D0 и D1 для соединения 4 RS-ic1 и 6 E-ic0 пина дисплея. Пины D2 или по схеме ic2 ниже нет. Они есть на АТ нано.
Фото прилагаю
[Автор]
[Автор]
[Автор]
[Автор]
Ну и чтоб настроить, надо быть немного программистом
[Автор]
[Автор]
[Автор]
[Автор]
REX https://aliexpress.ru/item/4000829983846.html
Реле https://aliexpress.ru/item/10000351025597.html
Вот тут отличный пид , с автоматической настройкой под нагрузку. Плюс полная оптронная развязка.
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
P = (100/(M_PI/2))*(M_PI/2 - (i*M_PI)/20000 + (sin(2*(i*M_PI/10000)))/4);
P -мощность в процентах от 0% до 100 % , i - задержка вкл симистора в микросекундах.
Т.е. 1% мощности - это 8841микросекунд, 2% - 8531 и т.д.. Зачем плясать возле нуля, если phase_us все равно int?
[Автор]
Но ПИД - он же ПРОПОРЦИОНОЛЬНЫЙ!
Например, даже в ручном режиме, когда отображается мощность 10%, на самом деле выдается меньше 1%..
[Автор]
[Автор]
Тут, считаю, приходится решать три задачи:
- стабильный детектор нуля (не обязательно сложный, главное - стабильный).
- шумоподавление (помехи в сети)
- компенсация ошибки детектор нуля дополнительной задержкой в программе.
Ну или пропуском полупериодов управляь..
[Автор]
[Автор]
[Автор]
[Автор]