Термостат.

В данном рассказе пойдёт речь о повторении мной много где клонированной конструкции термостата на тину 2313 и DC12B20.
Это не пример для повторения. Просто я хочу показать некоторым сомневающимся что я таки что-то делаю.

Поскольку я последнее время не вылезаю из командировок тут будет показан процесс создания не материальной части прибора.

Перед изготовлением чего либо я сначала выясняю можно ли это купить в готовом исполнении.
В данном случае не получилось. Нашёл готовую конструкцию:
electronics-lab.ru/blog/mcu/60.html

И так задача:
Контролировать нагрев двух вот таких вот тенов www.42unita.ru/catalog/nagrevateli/Nagrevatel_100Vt_HG_14007_0_00_18d
На них устанавливается ванна для травления плат. До этого я использовал часть утюга, зажатую в тисах — не очень удобно.
Корпус пока не придумал, но уже есть идеи.
Изменения касательно оригинальной схемы такие:
на индикаторе всего 2 цифры (поскольку целевая температура 45 градусов плюс минус 1).
Плата индикатора контроллера и кнопок отдельная от блока питания и силовой коммутации.

Логика работы прибора такая: при помощи кнопок + — и «режим» выставляем температурную дельту. для переключения режимов настройки применяется короткое нажатие на кнопку «режим». При перезаключении режимов настройки настраиваемого режима сохраняются. После того как верхнее и нижнее значение дельты установлено нужно нажать и удерживать кнопку «режим» в течении минимум 5сек. после этого значения дельты термостата записываются в еепром, а термостат выводит нагреватели на режим.

Возможно стоит поставить настройку времени в секундах за которое нагреватель должен выйти на режим. и если этого не произошло то отключит нагрузку.

При работе нагревателя термостат показывает реальную температуру на нагревателях. Короткое нажатие на «режим» приводит к переключению последовательно настройки пределов дельты кнопками + и -. Значения при таких настройках после отключения не сохраняются.
Нажатие и удержание кнопки «режим» приводит к отключению нагревателей и переходу в режим остывания.
При остывании экран мигает и показывает текущую температуру нагревателей.
Этот режим является стартовым после включения питания.

Схема будет делаться по плате.
Первичная версия платы индикатора выглядит так:


Блок питания будет из платы блока питания от медиаконвертера выдраной из родного корпуса.
Силовая часть будет на основе симистора с небольшим радиатором.
Корпус предполагается из фанеры 10мм нижняя часть и 3мм кожух электроники.

Как доберусь до дому попробую воплотить устройство в реальности.
Вторая версия будет использована в качестве контроллера плитки для приготовления хим растворов.
В общем я надеюсь что таки смогу что-то сделать за 2 недели дома.

Прочитав коменты и интернеты нашёл такое решение:

#define INTERVAL 0.1
#define MAX      100
#define MIN      30 
signed int Kp=2,Ki=1,Kd=0;
static signed int last_error;

signed int pid_control(signed char setpoint, signed char currentpoint)
{
signed int P;
signed int D;
static signed int I;
signed int PID;
P = (setpoint - currentpoint);
I = (I + (setpoint - currentpoint) * INTERVAL);
D = (((setpoint - currentpoint) - last_error) / INTERVAL);
last_error = setpoint - currentpoint;
PID = (Kp * P) + (Ki * I) + (Kd * D);
//нормирование
if(PID>MAX) PID=MAX;
else if(PID<MIN) PID=MIN;
return (PID);
}

Систему автоподстройки коэфициэнтов пока не раскурил :(

Датчик с цифровым выходом решил использовать для другого устройства. В этом решил использовать LM35 валяющийся без дела ибо он при однополярном питании имеет предел >0 и приемлимую линейность.
Контроллер заменю на мегу8 или что-то подобное с ацп.
Вот как-то так поменялась мысль пока я был за полярным кругом.
  • 0
  • 26 июля 2014, 14:27
  • skelet

Комментарии (40)

RSS свернуть / развернуть
У тебя, кстати, грелка — PTC, так что термостатировать можно прямо по ней, без дополнительного термодатчика. Алсо, для такой задачи я бы оторвал от нее радиаторы.
нажать и удерживать кнопку «режим» в течении минимум 5сек.

Зачем так долго? Вечно ругаюсь на китайцев за их склонность к выдержкам «долгого нажатия» по 4-8 секунд. Только один раз видел случай, где такая оправдана — принудительно отключение планшета (при очень долгом нажатии на кнопку питания контроллер питания самостоятельно отрубается, без участия проца). Там действительно нужно ждать долго, чтобы не отрубить питание при обрабатываемом операционкой «долгом нажатии».
А для подобных задач выдержки в 1с хватит.
Возможно стоит поставить настройку времени в секундах за которое нагреватель должен выйти на режим
Это надо встроить в программу как обработку аварийной ситуации. Настройка не нужна, только прописать в исходнике таймаут для конкретной грелки.
Аналогично надо обрабатывать другие ситуации, когда система ведет себе не так, как ожидается (скажем, не остывает при отключении грелки). Это то, о чем любители практически никогда не вспоминают…
0
  • avatar
  • Vga
  • 26 июля 2014, 22:00
Нет. Ты не прав. Выход на режим должен быть настраиваемый может я ведро на печку поставил и оно пол часа греться будет.
А как такую грелку без термодатчика использовать?
При подаче питания 220 она разогревается примерно до 80 — 100 градусов.
Про остывание. Отключили печки и что ещё можно сделать, если не остывает? Максимум помигать индикатором что печки ещё горячие.
0
А, ну если печка с переменной нагрузкой — то да.
Максимум помигать индикатором что печки ещё горячие.
Ну, еще попищать можно)
А как такую грелку без термодатчика использовать?
По сопротивлению грелки определять ее температуру.
0
Дай, пожалуйста, ссылку на почитать про такое управление печками.
У меня печки питаются переменкой 220.
Я про такой способ ничего не знаю.
0
Я где-то видел схему паяльника с ОС по сопротивлению керамического нагревателя, но где — не помню.
Принцип работы в том, чтобы измерять сопротивление нагревателя когда в сети нулевое напряжение.
0
Даже температуру медных обмоток определяют путём измерения их сопротивления без отключения от сети.
ГОСТ 27222-91 Машины электрические вращающиеся. Измерение сопротивления обмоток машин переменного тока без отключения от сети.
0
Походу реализация опять откладывается. Придётся ехать в тазовский ;(
0
Насколько я смог понять из описания, ПИДа тут нет, а тупое релейное (П) регулирование.
Для печки это просто эпикфейл — перерегулирование будет около 10-20 градусов, что в некоторых (очень многих, на самом деле) применениях просто смертельно.
0
Поясни подробнее в чём я ошибся. И как это должно быть сделано?
0
Печка, да и практически любой нагреватель — инерционное звено первого порядка.
Попробую на пальцах.
Вот смотри, есть у нас утюг, на подошву закреплена термопара.
При П-регуляторе (aka релейное) у нас происходит следующее:
* если температура на термопаре ниже уставки, нагреватель жарит на полную
* если температура на термопаре равна или выше уставки, выключаем нагреватель.
(повторять)
Что мы имеем в итоге? Все вытекающее из инерционности объекта регулирования:
При нагреве: температура на подошве достигла уставки. Но нагреватель уже вкачал тепла в подошву, и несмотря на то, что нагреватель уже отключен, температура продолжает расти.
При остывании: температура на подошве упала ниже уставки. Нагреватель включается. Но т.к. мгновеннно прогреть подошву не получится, при работающем нагревателе продолжает падать. В определенный момент подошва начнет нагреваться. И см.п.1.
Если любопытно понаблюдать этот эффект — возьмите любой утюг (лучше старый совковый с массивной подошвой — будет более наглядно), к нему термопару, и наблюдать за колебаниями температуры.
ПИД регулятор работает несколько иначе. В зависимости от объекта регулирования при приближении к уставке снижается сила управляющего воздействия (мощность нагревателя). Это если упрощенно. А вообще, гуглить по ключевому слову ТАУ.
0
При П-регуляторе (aka релейное)
Щито?!
0
Понятно, что упрощенно. Или вы предлагаете провести начальный курс ТАУ в одном комменте? Это первое. И второе. В первом приближении релейное регулирование таки близко к П.
Ну и до кучи линк, где более-менее приемлемо рассказано про разные варианты.
0
В первом приближении релейное регулирование таки близко к П.
0
Вы не смайликами и «ЩИТО» выражайтесь, а попробуйте более развернуто. Это способствует взаимопониманию.
0
При П-регуляторе (aka релейное)
AKA означает, что имеется два названия для обозначения одного предмета (или понятия, или явления).
Можно сказать, что релейный регулятор является вырожденным случаем П-регулятора. Но так же релейный регулятор может получиться и из ПИ-регулятора.
Можно сказать, что прямая и точка — вырожденные случаи окружности, с бесконечно большим и бесконечно малым радиусом. Но эти частные случаи не дадут понятия окружности. Из П-регулятора легко получить релейный, но исходя из релейного затруднительно объяснить, что есть П-регулятор. Уж тем более, AKA здесь неуместно.

Я бы предложил не пытаться объяснить ПИДР ;-) и ТАУ в одном комментарии, а отослать интересующихся к кратким шпаргалкам наподобие приведенной вами ссылки или следующих:
ru.wikipedia.org/wiki/ПИД-регулятор
www.chipmaker.ru/topic/100711/
logic-bratsk.ru/radio/pid/irt/main1_10.htm
robot-develop.org/archives/2833
roboforum.ru/wiki/Перевод_статьи_%22Просто_о_ПИД-алгоритмах%22
0
В общем да, согласен с замечанием про ака.
А про линки… Для старта на пальцах — пойдет.
Вот только ТСу от линков толку не будет.
0
А еще релейное управление бывает очень разное. Можно как говорили ниже измерять температуру не только объекта но и нагревателя. В пространстве этих двух измеренных переменных задать кривую и переключать нагреватель в зависимость от того с какой стороны от кривой находится точка текущих измерений датчиков. Получится, что если объект холодный то регулятору будет позволено прогреть нагреватель значительно выше уставки, но если объект уже близок к целевой температуре то нагреватель будет выключаться уже при малом превышении уставки.
+1
treasure говорил про ПИД vs П-регулятор(Пропорциональный регулятор), в том смысле, что П — плохой regulator, а ПИД — пиздатый кошерный one.

Вот здесь перечислены все основные комбинации регуляторов (П, ПИ, ПД, ПИД) на основе П-регулятора.

И вообще, не паримся и не меряемся толщиной мозга, а покупаем в Китае уже готовый недорогой ПИД-регулятор для печки с блекджеком и шлюхами PC410.
0
Что мы имеем в итоге? Все вытекающее из инерционности объекта регулирования:
А что будет, если сделать связь по сопротивлению нагревателя и поддерживать on-off регулятором температуру непосредственно нагревателя?
0
температура будет болтаться всегда ниже целевой. т.е. для достижения целевой — нужно вводить поправку на инерционность объекта.
0
И это получается уже ПИ.
0
нужно вводить поправку на инерционность объекта.
Скорее на тепловое сопротивление нагреватель-объект.
И это получается уже ПИ.
Почему это?
0
Скорее на тепловое сопротивление нагреватель-объект.
А это ПИ и получается.
0
Почему это?
Потому что… нет, не гладилус, а пропорционально-интегральный регулятор.
Вообще, в П-, ПИ-регуляторах в любительском сегменте граница сильно размыта. И камрад EW1UA совершенно правильно возмутился на мое сильно упрощенное объяснение. Но для более правильного объяснения нужно много букв, которые писать лениво с одной стороны, а с другой — гуглится с полпинка.
0
На замену интегральной составляющей часто встречается feedforward слагаемое, а его еще можно адаптивно настраивать. Получается, что переходный процесс будет только один раз, а после смена уствки идет по каким-то оптимальным (в зависимости от заданной ff составляющей) траекториям.

Например, регулятор тока через резистор (сопротивление которого меняется очень медленно) может быть ПИ, тогда неизбежны переходные процессы в интегральной части, которые вызывают перерегулирование. А можно определить то сопротивление, измерить прямо или адаптивным регулятором, и формировать управление как u = i_уст / R / U_пит; а адаптацию R = R + e * k1; где e = i_изм — i_уст; а k1 число задающее скорость адаптации. Это самый простой вариант, на самом деле возможно лучше будет перейти к обратной величине 1/R и определять ее, включить в уравнение адаптации саму 1/R и питающее напряжение, чтобы регулятор был инвариантен к этим параметрам и не нужно было подбирать k1 для каждой отдельной системы.
+1
Так для тупых ещё раз.

Сейчас у меня применён для цели подогрева ванны кусок утюга 40 летней давности.
Нагревательный элемент в виде стальной подошвы утюга закреплён на уголке (прямо за подошву)в тисах, но большого теплоотвода там нет.
Регулировка температуры осуществляется биметаллическим регулятором (родным)
Реальная точность регулировки (максимально достижимая) +-1С измерения проводились термопарой мультиметра на подошве нагревателя.

Биметаллический термостат есть реле. Понятно что у него есть определённая дельта из-за инерционности, однако в реальности она оказалась в приемлемом пределе. Так что вот.
0
Реальная точность регулировки (максимально достижимая)
Смешались в кучу кони, люди…
Вы уж определитесь: точность поддержания температуры или максимально достижимая. или (_________ вписать своё.)
-1
В чем проблема написать простенький ПИД стыренный из HVAC DDC? там по сути нет вышки, П — вычитаем и умножаем, И — складываем и делим и не забываем ограничивать, Д — вычитаем разницу и умножаем, все складываем и ограничиваем куда уж проще?
Вся магия сведется к подбору коэффицентов ну и счмтаться он должен быстрее процесса.
В чем батхерт столько копий ни очем…
0
С недавнего времени он вытащил из чулана своей памяти старые, пыльные академические учебники, оторвал от них обложки и потрясает ими везде, как крестоносским знаменем.
0
этого в учебниках к сожалению не писали…
0
Вы совершенно правы насчет запыленности некоторых областей знания.
0
Ребят, не понимаю, почему вы накинулись на ТС с этим самым ПИД. Нет, все правильно, ПИД — универсальный регулятор, его программная реализация проста, а коэффициенты (в данном случае) можно вычислить имперически, не вдаваясь в синтез и ТАУ. Такой регулятор (при правильных коэффициентах) даст быстрый и эффективный выход на температуру, высокую точность удержания. Но на выходе такого регулятора «аналоговая» функция u(t), и нужно еще задуматься о том, как эффективно реализовать (аппаратно) управление нагревательным элементом.

Но нужно ли это ТС? Если его устраивает точность двухпозиционного регулятора — почему его и не использовать?
+1
treasure вещал об инерционности процесса теплопередачи. Кстати, говоря об инерционности процесса, в данном случае видимо его причиной является не св-во объекта сохранять энергию движения, т.е. индуктивность(L) в электротехнике или масса(m) в механике, а св-во объекта накапливать энергию, т.е. аналог электрической емкости(C). Аналогом сопротивления(R) видимо является величина обратная теплопроводности. Интересно каков аналог системы нагреватель и нагреваемый объект в виде эл.схемы? Эт чтобы элементарно прикинуть и рассчитать переходный процесс в этой системе.
0
Для того чтобы оценить ее иннерционность можно вручную включить и засечь время по секундомеру.
0
Интересно каков аналог системы нагреватель и нагреваемый объект в виде эл.схемы?
Обычно представляется в виде RC-цепочки или каскада цепочек, например, для системы кристалл-кристаллодержатель-корпус-радиатор.
0
0
Я так и предполагал, что расчет простой RC-цепи.
0
treasure вещал об инерционности процесса теплопередачи.
Он все правильно говорил. На входе у ТС будет «пила» с перерегулированием. Но если ТС это устраивает почему бы и нет?
0
Насколько я понял то на выходе оригинальной схемы получается волновое колебание температуры в пределах дельты её изменения. В нагревателе в виду его инерционности такое приемлимо ибо инерционность даст усреднение температуры во времени и чем дольше работает система тем точнее получается температура.

Тут так много написали о ПИД регуляторах что я засомневался, и поскольку я опять уезжаю в командировку, то попробую про этот метод почитать и поискать готовые реализации таких алгоритмов для того чтобы переделать под свою надобность.
0
Немного поменял концепцию. Будет время попробую сделать в железе.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.