Например TDA7294

Форум РадиоКот :: Просмотр темы - Программный терморегулятор на ATmega8
Форум РадиоКот
https://radiokot.ru/forum/

Программный терморегулятор на ATmega8
https://radiokot.ru/forum/viewtopic.php?f=57&t=75240
Страница 1 из 10

Автор:  tbogdan [ Чт июл 05, 2012 16:54:10 ]
Заголовок сообщения:  Программный терморегулятор на ATmega8

Всем Доброго дня!
Данная тема начиналась с viewtopic.php?p=1082830#p1082830, но так как там уже
невозможно что то найти продолжим в отдельной теме, а терморегулятор, благодаря Soir , получился отличный, за что еще раз огромное спасибо!
Сейчас терморегулятор стал трех позиционным, регулирование при помощи исполнительного механизма, который изменяет положение заслонки.
А теперь снова к Soirу
последняя прошивка viewtopic.php?p=1330779#p1330779, работает, только параметр F не изменяет своего значения, как установил в сервисном меню так и остается, регулирование проходит нормально, время выполнения программ соответствует реальному.

Вложения:
Описание работы.doc [49 KiB]
Скачиваний: 1155
shem_3x..pdf [81.83 KiB]
Скачиваний: 1556

Автор:  Soir [ Чт июл 05, 2012 17:50:54 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

Чтобы F менялся в автоматическом режиме, коэффициент n должен быть больше 0. Посмотрите формулу. Или все равно не работает?

Автор:  tbogdan [ Чт июл 05, 2012 18:13:38 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

Автор:  Soir [ Чт июл 05, 2012 18:29:13 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

Да, в сервисном меню задается минимальное значение. Максимум ограничен 100 (могу подвинуть в ту или другую сторону, можно сделать доступным для установки в сервисном режиме). Если n=0, то F всегда, как задано в настройках. Если n>0, то F автоматически меняется в зависимости от рассогласования по формуле.
Собственно, этот вариант управления мною был разработан "в темную", так как не имею возможности хоть сколь-либо проверить его работу в реальных условиях. Если такой способ не позволяет добиться нормального регулирования температуры, Вы пишите, будем вместе думать, как улучшить его работу.

Автор:  da-nie [ Пт июл 06, 2012 18:12:29 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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


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

Вложение:
The_technique_of_tuning_a_digital_PID.rar [362.58 KiB]
Скачиваний: 3313

Автор:  Soir [ Пт июл 06, 2012 19:49:42 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

Да, спасибо за замечание, полностью согласен. По просьбе tbogdan алгоритм работы предыдущего устройства не менялся. За время, что прошло с момента его разработки, в моем арсенале появились и ПИД-регуляторы, которые действительно себя оправдывают. Пусть tbogdan проведет полевые испытания, посмотрим, что получилось. А далее от результата...

Автор:  tbogdan [ Вс июл 08, 2012 21:10:21 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

Всем доброго дня!
Может кому еще пригодится, выкладываю два варианта программного терморегулятора, для небольшой муфельной печи (до 2 кВт.) который уже отработал отлично. Большое спасибо автору прошивки и схемы Soirу
И второй вариант , который только начинаем осваивать, для регулирования горелки ELCO EK3.45, на жидком топливе.
Во втором варианте пока использовал готовый регулятор от печи только изменил прошивку, которую переделал Soir, и добавил разъем для подключения трех каналов регулирования и управления горелкой, потом доделаем все на плате.
Пока все.

Вложения:
foto.rar [640.89 KiB]
Скачиваний: 719
Горелка ELCO EK3.45 .rar [376.71 KiB]
Скачиваний: 552
муфельная печь 1.5 кВт.rar [446.6 KiB]
Скачиваний: 952

Автор:  tbogdan [ Вс июл 15, 2012 18:35:21 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

Попробовал, и что могу сказать, регулятор работает с очень большими выходами за пределы регулирования,
инерционность камеры большая, горелка через несколько минут выходит на 100% мощность, идет разогрев.
При достижении установленной температуры работа горелки продолжается на полной мощности, соответственно температура увеличивается,
при достижении установленной температуры + гистерезис начинается уменьшение мощности горелки и снова большое отклонение, начинается колебательный процесс,
при установленной температуре 200 градусов отклонение достигает 50-70.

Автор:  Soir [ Вс июл 15, 2012 20:17:42 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

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

Работа программ останется без изменений, но настройки параметров регулирования будут другие.

Автор:  da-nie [ Вс июл 15, 2012 21:09:20 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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


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

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


Непременно попробуйте. :) Только настройте его под изделие. :)

Автор:  tbogdan [ Вс июл 15, 2012 21:40:52 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

Автор:  da-nie [ Вс июл 15, 2012 21:46:35 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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


А они все описаны вместе с методикой настройки в статье из моего поста выше: download/file.php?id=112938

Автор:  tbogdan [ Вс июл 15, 2012 21:53:42 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

da-nie писал(а):
Попробуйте уменьшить коэффициент передачи пропорционального регулятора. Это повысит устойчивость, но увеличит статическую ошибку управления.
Спасибо, попробую
da-nie писал(а):
А они все описаны вместе с методикой настройки в статье из моего поста выше: download/file.php?id=112938
пробую разобраться.

Автор:  Soir [ Вт июл 17, 2012 11:10:22 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

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 KiB]
Скачиваний: 662

Автор:  tbogdan [ Ср июл 18, 2012 10:38:55 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

Soir спасибо! Еще раз спасибо!
попробовал, пока вроде все работает, сейчас немного задержка за доработкой самой камеры.
Сложно подобрать параметры, все очень долго.

Автор:  tbogdan [ Пт июл 20, 2012 10:19:25 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

Всем доброго дня!
Soir,все нормально, температура регулирования в пределах нормы (до +/- 10С),потом попробую снять графики
чтоб более наглядно.
Есть только одно замечание, при включении регулятора начальное задание SP для первой программы ( 0 ), принимается
за нуль, текущая температура выше ( например +24С ), и регулятор подает команды на уменьшение мощности, было бы
хорошо если начальная температура для первой программы принималась текущая ( PV ).

Автор:  da-nie [ Пт июл 20, 2012 15:04:35 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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


А что вы регулируете?
Я управлял с помощью разных регуляторов системой термостабилизации для одного занятного приборчика, с тепловыделением 25 Вт. К сожалению, охлаждение было возможно только по корпусу, поэтому наружная температура была около 15-25 C. Стабилизировалась температура 37 С с использованием 100 Вт нагревателя с возможностью задания (и поддержания) на обмотках нагревателя кожуха системы термостабилизации с помощью ШИМ температуры с точностью 0.1 С. Так вот, в статическом режиме ошибка температуры внутри прибора (не кожуха системы термостабилизации) составляла +-0.01 C. В переходных процессах она доходила до 0.5 C при изменении наружной температуры скачком на 10 C.

Автор:  Soir [ Пт июл 20, 2012 17:01:35 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

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

А в прошивке так и есть... Просматривая прошивку выявил, что первая программа (P0) как-то неадекватно себя ведет, буду разбираться. И нужно кое-что подчистить от старой версии регулятора, в т.ч. и в алгоритме регулирования. Так что я поправлю прошивку, потом Вы снова проверите, а затем будем работать над более точным поддержанием температуры.

Автор:  Soir [ Пт июл 20, 2012 20:41:59 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

Доработал прошивку, кое-какие недочеты выявил, надеюсь стала лучше.
Из настроек убрал один лишний параметр (с). Поправил описание.
Чтобы добиться более точного поддержания температуры, наверно следует увеличить скорость работы регулятора (уменьшить параметр ti). Сейчас минимально возможный 1 сек. Я его специально делал большим, с учетом того, что управляется заслонка электродвигателем, чтобы слишком часто его не дергать. Если для каких-то настроек Вы видите, что предела недостаточно - пишите, я расширю в ту или другую сторону, или сделаю более тонкую настройку (например, с десятыми).

Вложения:
Termo_ATMEGA8_PID_1.zip [23.71 KiB]
Скачиваний: 576

Автор:  tbogdan [ Сб июл 21, 2012 23:41:20 ]
Заголовок сообщения:  Re: Программный терморегулятор на ATmega8

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

Страница 1 из 10 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/