Программный терморегулятор на ATmega8

Обсуждаем контроллеры компании Atmel.
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Программный терморегулятор на ATmega8

Сообщение tbogdan »

Всем Доброго дня!
Данная тема начиналась с viewtopic.php?p=1082830#p1082830, но так как там уже
невозможно что то найти продолжим в отдельной теме, а терморегулятор, благодаря Soir , получился отличный, за что еще раз огромное спасибо!
Сейчас терморегулятор стал трех позиционным, регулирование при помощи исполнительного механизма, который изменяет положение заслонки.
А теперь снова к Soirу
последняя прошивка viewtopic.php?p=1330779#p1330779, работает, только параметр F не изменяет своего значения, как установил в сервисном меню так и остается, регулирование проходит нормально, время выполнения программ соответствует реальному.
Вложения
Описание работы.doc
(49 КБ) 1164 скачивания
shem_3x..pdf
(81.83 КБ) 1563 скачивания
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Программный терморегулятор на ATmega8

Сообщение Soir »

tbogdan писал(а):А теперь снова к Soirу
последняя прошивка viewtopic.php?p=1330779#p1330779, работает, только параметр F не изменяет своего значения, как установил в сервисном меню так и остается...

Чтобы F менялся в автоматическом режиме, коэффициент n должен быть больше 0. Посмотрите формулу. Или все равно не работает?
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

Тогда все работает, изменяется только больше от заданного в сервисном меню правильно?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Программный терморегулятор на ATmega8

Сообщение Soir »

tbogdan писал(а):Тогда все работает, изменяется только больше от заданного в сервисном меню правильно?

Да, в сервисном меню задается минимальное значение. Максимум ограничен 100 (могу подвинуть в ту или другую сторону, можно сделать доступным для установки в сервисном режиме). Если n=0, то F всегда, как задано в настройках. Если n>0, то F автоматически меняется в зависимости от рассогласования по формуле.
Собственно, этот вариант управления мною был разработан "в темную", так как не имею возможности хоть сколь-либо проверить его работу в реальных условиях. Если такой способ не позволяет добиться нормального регулирования температуры, Вы пишите, будем вместе думать, как улучшить его работу.
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Программный терморегулятор на ATmega8

Сообщение da-nie »

Собственно, этот вариант управления мною был разработан "в темную", так как не имею возможности хоть сколь-либо проверить его работу в реальных условиях.


Этого мало. Я вам посоветую ПИД-регулятор запрограммировать. Дело в том, что П-регулятор (а у вас именно он, пропорциональный регулятор) не сводит ошибку рассогласования к нулю (и при наличии фазовых задержек обеспечит колебательный режим работы системы, что вам вряд ли надо). К нулю её может свести ПИ-регулятор (пропорционально-интегральный). В этому случае интеграл ошибки медленно вытянет ошибку в ноль. Но это замедляет реакцию системы на внешние события. Ускорить может производная ошибки. Так получается ПИД-регулятор (пропорционально-интегральный). Книжку Бесекерского "Теория систем автоматического управления" я вам советовать не буду, а вот методику настройки ПИД-регулятора прибора "Параграф" дам - там всё просто.

The_technique_of_tuning_a_digital_PID.rar
(362.58 КБ) 3331 скачивание
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Программный терморегулятор на ATmega8

Сообщение Soir »

da-nie писал(а):Этого мало. Я вам посоветую ПИД-регулятор запрограммировать...

Да, спасибо за замечание, полностью согласен. По просьбе tbogdan алгоритм работы предыдущего устройства не менялся. За время, что прошло с момента его разработки, в моем арсенале появились и ПИД-регуляторы, которые действительно себя оправдывают. Пусть tbogdan проведет полевые испытания, посмотрим, что получилось. А далее от результата...
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

Всем доброго дня!
Может кому еще пригодится, выкладываю два варианта программного терморегулятора, для небольшой муфельной печи (до 2 кВт.) который уже отработал отлично. Большое спасибо автору прошивки и схемы Soirу
И второй вариант , который только начинаем осваивать, для регулирования горелки ELCO EK3.45, на жидком топливе.
Во втором варианте пока использовал готовый регулятор от печи только изменил прошивку, которую переделал Soir, и добавил разъем для подключения трех каналов регулирования и управления горелкой, потом доделаем все на плате.
Пока все.
Вложения
foto.rar
(640.89 КБ) 727 скачиваний
Горелка ELCO EK3.45 .rar
(376.71 КБ) 555 скачиваний
муфельная печь 1.5 кВт.rar
(446.6 КБ) 957 скачиваний
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

Попробовал, и что могу сказать, регулятор работает с очень большими выходами за пределы регулирования,
инерционность камеры большая, горелка через несколько минут выходит на 100% мощность, идет разогрев.
При достижении установленной температуры работа горелки продолжается на полной мощности, соответственно температура увеличивается,
при достижении установленной температуры + гистерезис начинается уменьшение мощности горелки и снова большое отклонение, начинается колебательный процесс,
при установленной температуре 200 градусов отклонение достигает 50-70.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Программный терморегулятор на ATmega8

Сообщение Soir »

tbogdan писал(а):Попробовал, и что могу сказать, регулятор работает с очень большими выходами за пределы регулирования...

Предусмотренные настройки недостаточны?
Понедельник день тяжелый, во вторник посмотрю. По совету da-nie попробуем применить ПИД-регулятор... Только уже не получится:
tbogdan писал(а):...оставив алгоритм и программу прежней...

Работа программ останется без изменений, но настройки параметров регулирования будут другие.
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Программный терморегулятор на ATmega8

Сообщение da-nie »

начинается колебательный процесс


Попробуйте уменьшить коэффициент передачи пропорционального регулятора. Это повысит устойчивость, но увеличит статическую ошибку управления.

По совету da-nie попробуем применить ПИД-регулятор...


Непременно попробуйте. :) Только настройте его под изделие. :)
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

настроек недостаточно
Soir писал(а):Работа программ останется без изменений, но настройки параметров регулирования будут другие.
Думал будет для Вас проще переделать программу, но вышло не так.
Схему пока не изменять, но это так желательно, контролер можно заменить на ATmega168
ATmega328, если будет мало памяти.
А программ (не более 5), то нужно программирование времени разогрева и таймер, то есть, так как было. И еще, а нет ли какой то возможности выводить текущею температуры в файл чтоб сформировать график.
da-nie писал(а):Непременно попробуйте. Только настройте его под изделие.
Какие нужны параметры чтоб предварительно настроить или определить диапазоны изменения параметров ПИД
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Программный терморегулятор на ATmega8

Сообщение da-nie »

Какие нужны параметры чтоб предварительно настроить или определить диапазоны изменения параметров ПИД


А они все описаны вместе с методикой настройки в статье из моего поста выше: download/file.php?id=112938
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

da-nie писал(а):Попробуйте уменьшить коэффициент передачи пропорционального регулятора. Это повысит устойчивость, но увеличит статическую ошибку управления.
Спасибо, попробую
da-nie писал(а):А они все описаны вместе с методикой настройки в статье из моего поста выше: download/file.php?id=112938
пробую разобраться.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Программный терморегулятор на ATmega8

Сообщение Soir »

ПИД-регулятор, пробная версия. Работу программы не менял, только алгоритм управления клапаном. Принцип работы:

F – длительность управляющего импульса, подающегося на исполнительный механизм клапана. Может принимать значения от 1 до 100, цена одного деления 20 мс. Таким образом, длительность импульса может быть в пределах от 20 мс до 2 с.
Расчет F ведется по алгоритму:
error_new = SP - PV; – определение ошибки
error_summa = error_summa + error_new; – накопление ошибки. error_summa ограничивается не больше Er и не меньше -Er,
F = (error_new + (error_new - error_old)*di/ti + error_summa*ti/In)/ Pr;
error_old = error_new – запоминание ошибки.
Если текущая температура ниже текущего задания, то формируется импульс на открытие клапана. Если текущая температура выше текущего задания, то импульс на закрытие клапана.
Формула почти та же, что и в документе, выложенном da-nie. Обозначение коэффициентов другое, связано с ограниченными возможностями семисегментного индикатора. Я думаю, сопоставлением идентифицируете кто есть кто.

Попытки хоть как-то прогнать в Proteus успеха не имели, то есть регулятор реагирует, но насколько правильно трудно сказать. Надо на реальном объекте опробовать, тогда уже ясно будет какие коэффициенты куда тянуть, что добавить или убавить, может и ошибки выявятся...

Описание, прошивка, проект в Proteus (схема не менялась, ресурсов МК более, чем достаточно) во вложении.
Вложения
Termo_ATMEGA8_PID.zip
(37.86 КБ) 667 скачиваний
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

Soir спасибо! Еще раз спасибо!
попробовал, пока вроде все работает, сейчас немного задержка за доработкой самой камеры.
Сложно подобрать параметры, все очень долго.
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

Всем доброго дня!
Soir,все нормально, температура регулирования в пределах нормы (до +/- 10С),потом попробую снять графики
чтоб более наглядно.
Есть только одно замечание, при включении регулятора начальное задание SP для первой программы ( 0 ), принимается
за нуль, текущая температура выше ( например +24С ), и регулятор подает команды на уменьшение мощности, было бы
хорошо если начальная температура для первой программы принималась текущая ( PV ).
Аватара пользователя
da-nie
Говорящий с текстолитом
Сообщения: 1590
Зарегистрирован: Вс июн 24, 2012 16:07:00
Откуда: Лен.Обл.
Контактная информация:

Re: Программный терморегулятор на ATmega8

Сообщение da-nie »

температура регулирования в пределах нормы (до +/- 10С)


А что вы регулируете?
Я управлял с помощью разных регуляторов системой термостабилизации для одного занятного приборчика, с тепловыделением 25 Вт. К сожалению, охлаждение было возможно только по корпусу, поэтому наружная температура была около 15-25 C. Стабилизировалась температура 37 С с использованием 100 Вт нагревателя с возможностью задания (и поддержания) на обмотках нагревателя кожуха системы термостабилизации с помощью ШИМ температуры с точностью 0.1 С. Так вот, в статическом режиме ошибка температуры внутри прибора (не кожуха системы термостабилизации) составляла +-0.01 C. В переходных процессах она доходила до 0.5 C при изменении наружной температуры скачком на 10 C.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Программный терморегулятор на ATmega8

Сообщение Soir »

tbogdan писал(а):...температура регулирования в пределах нормы (до +/- 10С)...

Да, многовато. Это в статическом режиме или при разогреве? Конечно, сотых и десятых не будет, разрешающая способность 1 градус, но 10 это много. Конечно, во многом зависит от конструкции, но думаю 2-3 градуса было бы нормальным результатом. Со своей стороны готов доработать, пока правда не знаю что именно.
tbogdan писал(а):Есть только одно замечание, при включении регулятора начальное задание SP для первой программы ( 0 ), принимается за нуль, текущая температура выше ( например +24С ), и регулятор подает команды на уменьшение мощности, было бы хорошо если начальная температура для первой программы принималась текущая ( PV ).

А в прошивке так и есть... Просматривая прошивку выявил, что первая программа (P0) как-то неадекватно себя ведет, буду разбираться. И нужно кое-что подчистить от старой версии регулятора, в т.ч. и в алгоритме регулирования. Так что я поправлю прошивку, потом Вы снова проверите, а затем будем работать над более точным поддержанием температуры.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Программный терморегулятор на ATmega8

Сообщение Soir »

Доработал прошивку, кое-какие недочеты выявил, надеюсь стала лучше.
Из настроек убрал один лишний параметр (с). Поправил описание.
Чтобы добиться более точного поддержания температуры, наверно следует увеличить скорость работы регулятора (уменьшить параметр ti). Сейчас минимально возможный 1 сек. Я его специально делал большим, с учетом того, что управляется заслонка электродвигателем, чтобы слишком часто его не дергать. Если для каких-то настроек Вы видите, что предела недостаточно - пишите, я расширю в ту или другую сторону, или сделаю более тонкую настройку (например, с десятыми).
Вложения
Termo_ATMEGA8_PID_1.zip
(23.71 КБ) 581 скачивание
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Программный терморегулятор на ATmega8

Сообщение tbogdan »

Спасибо, попробую уже только в понедельник.
Ответить

Вернуться в «AVR»