|
Терморегулятор на AVR, алгоритмы работы |
|
|
|
Sep 25 2008, 19:56
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Доброго времени! История болезни: терморегулятор поддерживает температуру в вакуумной печи. Датчик DS18B20, работа в диапазоне 60..85 градусов. Никаких вопросов, кроме одного: очень большая инерционность печи. Без PID-регулятора заброс по температуре +50% (!) Прикручивается самонастройка PID, но, ввиду инерционности объекта, возникают сложности по начальному разогреву и выходу в зону регулирования. Особенно интересно получается, если разогрелись где-то до 70% от уставки, и кратковременно выключили сеть. Что делать контроллеру: греть? ждать и мерять? Если ждать, то сколько? Самонастройка откладываеццо... Упомянутый заброс достигает своего максимума где-то минут аж за 20, и если тупо ждать, ТТХ прибора оставляют желать лучшего... Интересно, кто как решает подобную проблему.
|
|
|
|
|
 |
Ответов
|
Sep 26 2008, 19:08
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(_Pasha @ Sep 26 2008, 01:56)  Доброго времени! История болезни: терморегулятор ... Особенно интересно получается, если разогрелись где-то до 70% от уставки, и кратковременно выключили сеть. И Вам доброго времени  Задача достаточно сложная. На сколько я понял, у Вас в печи присутствует не только эквивалентный инерционный элемент, но и элемент запаздывания с нехилым временем -- 20 минут, о которых Вы говорили. Если бы в контуре регулирования отсутствовал элемент запаздывания, то Ваша задача бы легко решалась. Но поскольку он присутствует, Вам нужно либо знать будущее (ближайшие 20 минут), что очень сложно осуществить, либо делать инерционность системы регулирования соизмеримую с этим временем. Мне в свое время повезло столкнуться с подобной задачей в сфере коммунального хозяйства. Мне нужно было сделать регулятор в контур ГВС (горячего водоснабжения). Там, на объекте (типа жилой дом) тоже присутствовал элемент запаздывания -- скорость протекания воды по трубе + скорость заполнения теплообменника кипятком. Это не эквиваленты инерционных элементов (индкутивности, конденсаторы), это -- элементы запаздывания (линии задержки). Задерка-то была по сравнеию с Вашей -- тьфу! Каких-то несколько десятков секунд! К своему стыду, я так и не смог решить эту задачу. Какие бы коэффициенты я бы ни ставил в своем ПИ-регуляторе, как бы я ни изменял алгоритмы регулирования -- ну не хотела система работать. Она либо генерила колебания (температуры воды от 40 до 90°С с периодом от 40 до 80 секунд), либо была тупая как скотина, и выходила на заданный режим в 60°С в течении 5-10 минут. Вот счастье-то было у жителей, либо пропускать воду минут 10, либо стоять под струей контрастного душа. Не говоря уже о том, что вода в кране свыше 70°С не должна быть в принципе. А может быть и сами жильцы своим водоразбором систему выводили из равновесия... Пропускали холодную воду, а кипяток, наоборот, -- прикрывали. Таким образом в системе менялось время запаздывания, и она дурила со страшной силой. Не знаю. Дело далекого прошлого. Могу только добавить, что до того на объекте стояла тупая задвижка (кран), которая вообще ничего не регулировала, просто добавляла в контур ГВС постоянное количество теплоты от магистрали (теплоноситель магистрали 108°С 8 атм.) и ей было все по барабану. Люди жаловались, что при сильном водоразборе вода была холодная. Я же сделал еще интереснее! ... Что там сейчас стоит -- не знаю  Давно уже работаю в другом месте. Вам же могу посоветовать только одно -- попробуйте составить эквивалентную схему регулирования и почитайте ТАР (Теория автоматического регулирования). Искренне желаю чтобы у Вас что-нибудь получилось полезное, работающее. Удачи!
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Sep 26 2008, 22:24
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(zhevak @ Sep 26 2008, 22:08)  у Вас в печи присутствует не только эквивалентный инерционный элемент, но и элемент запаздывания ............................. Мне в свое время повезло столкнуться с подобной задачей в сфере коммунального хозяйства. Нет, это все-таки разные задачи. Моя проще. Физика такова: нагреватель прогревает муфель, оттока тепла почти нет, так что Q=c*m*(T1-T0)  за время прогрева мы сообщаем системе такое количество теплоты (4МДж), что это до ху очень много, и оно никуда не девается. Поскольку имеет место достаточно хорошая теплоизоляция (температура наружной поверхности при внутренней 80..100 градусов не возрастает более, чем на 10 градусов - рукой трогаю - чуть теплая), то это не элемент задержки в чистом виде. По мере "пробивания" теплом муфеля время задержки уменьшается. Второй датчик, о котором говорилось в теме, - это хорошо, но конструктивно сложновато. В общем, я решил плюнуть на скорость выхода на режим - это от лукавого, т.к. время сушки изделий - не менее суток. Алгоритм будет примерно такой: Пусть Tset - это уставка 1. Сообщаем системе некоторое кол-во теплоты Q[n]. Заряжаем тайм-аут на 20 минут. 2. Ожидаем максимум температуры T[n]. Запоминаем его. 3. kf = (Tset - T[n])/(T[n]-T[n-1]); if (kf > 2) kf=2; // ограничили коэффициент 4. Если n >= 3, то kf вычисляем сплайном по 3..5 точкам 5. Q[n+1] = kf*Q[n] и перешли к п.1 Кстати, про ПИД -регулировку с переменной задержкой - добивался работы контура САР за счет сужения, насколько возможно, области регулирования и комбинирования медленного двухпозиционного регулятора. Но это совсем другая история...
|
|
|
|
|
Sep 29 2008, 15:29
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Tanya @ Sep 29 2008, 13:01)  Все такие задачи одинаковые... Только масштаб времени разный. Спасибо, что посетили тему. Меня смутило то, что в печке этой моей рассеяние тепла настолько маленькое. А там , где вода - наоборот... А Вы тоже за то, чтобы в начале работы просто медленно менять уставку в задатчике ?
|
|
|
|
|
Sep 29 2008, 16:02
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(_Pasha @ Sep 29 2008, 19:29)  Спасибо, что посетили тему. Меня смутило то, что в печке этой моей рассеяние тепла настолько маленькое. А там , где вода - наоборот... А Вы тоже за то, чтобы в начале работы просто медленно менять уставку в задатчике ? Надо сначала правильно сформулировать цель(и) управления. Тут возможны разнообразные варианты - скорость выхода, минимум переброса и т.д и т.п. и их комбинации с весами... В Вашем случае, наверное, можно проще, чем Вы предлагаете. Вы же знаете теплоемкость. Тогда подается импульс энергии для достижения почти... Потом, зная внешнюю температуру, подаем (оставляем) поддерживающую мощность, чуть позднее включаем П(И(Д)). Начальным значением И-компоненты берем поддерживающую мощность.
|
|
|
|
|
Sep 29 2008, 16:14
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Tanya @ Sep 29 2008, 20:02)  Надо сначала правильно сформулировать цель(и) управления. минимум переброса Цитата Тогда подается импульс энергии для достижения почти... ... но тут откуда ни возьмись выясняется, что контроллер ужЕ пару минут назад такую операцию проделывал - не дали, гады-электрики, завершить. И теперь по включению питания контроллеру очень надо знать, где он находится, по возможности, имея на борту только датчик температуры, причем один, без часов реального времени, использования энергонезависимой памяти для протоколирования операций и т.п. (краткое содержание предыдущих серий  )
|
|
|
|
|
Sep 29 2008, 16:51
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(MrYuran @ Sep 29 2008, 20:28)  При (ре)старте сравнивал измеренное значение с записанным с некоторым допуском. При совпадении считывал текущий (тёкший) режим и продолжал в том же духе. При несовпадении - рестарт. Упрощаю для себя так: При (ре)старте Если текущая температура больше или равна последней записанной в еепром, то продолжать только измерять до появления максимума, вплоть до известного (20минут) таймаута, иначе - сразу включать нагрев и т.д. как раньше писАл Спасибо! Имхо, то что надо.
|
|
|
|
|
Sep 29 2008, 16:59
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

|
Цитата(_Pasha @ Sep 29 2008, 20:51)  Упрощаю для себя так: При (ре)старте Если текущая температура больше или равна последней записанной в еепром, то продолжать только измерять до появления максимума, вплоть до известного (20минут) таймаута, иначе - сразу включать нагрев и т.д. как раньше писАл Спасибо! Имхо, то что надо. В Вашем случае НУЖНО измерять и учитывать реальную мощность (энергию), поданную на нагреватель. Еще лучше - еще и энергию, отданную в комнату. Ее (сумму) тоже можно (нужно) запоминать. Чем ниже Ваша температура, и чем хуже теплоотдача, тем хуже для Вас... Кроме всего прочего, учет реальной мощности и теплоотдачи значительно заузит коридор.
|
|
|
|
Сообщений в этой теме
_Pasha Терморегулятор на AVR Sep 25 2008, 19:56 vvs157 Цитата(_Pasha @ Sep 25 2008, 23:56) но, в... Sep 25 2008, 21:10 Огурцов При условии, что инерционность мало зависит от пол... Sep 25 2008, 21:54 domowoj Что имеется ввиду под словом "самонастройка... Sep 26 2008, 03:33 MrYuran Я вот не совсем понял, что за инерционность. Если ... Sep 26 2008, 05:06 Огурцов Термодатчик может стоять внутри печи, а нагревател... Sep 26 2008, 06:33  MrYuran Цитата(Огурцов @ Sep 26 2008, 10:33)
Ясн... Sep 26 2008, 06:48  Dog Pawlowa Дополнительные датчики помогут получить информацию... Sep 26 2008, 06:54   VladimirYU Цитата(Dog Pawlowa @ Sep 26 2008, 10:54) ... Sep 26 2008, 07:10    Dog Pawlowa Цитата(VladimirYU @ Sep 26 2008, 10:10) .... Sep 26 2008, 07:43 VladimirYU Цитата(_Pasha @ Sep 25 2008, 23:56) Добро... Sep 26 2008, 06:45 MrYuran Цитата(VladimirYU @ Sep 26 2008, 10:45) И... Sep 26 2008, 06:54 IJAR Цитата(_Pasha @ Sep 25 2008, 22:56) Добро... Sep 26 2008, 07:10 mempfis_ Цитата(_Pasha @ Sep 25 2008, 23:56) Добро... Sep 26 2008, 07:38 mempfis_ Чтото файл не могу приатачить
Извиняюсь
файл наз... Sep 26 2008, 07:45 smk А если на начальном этапе нагрева измерить теплоем... Sep 26 2008, 07:47 VladimirYU [quote name='smk' date='Sep 26 2008, 1... Sep 26 2008, 08:11 smk Цитатаодин термодатчик ставили на нагреватель (пря... Sep 26 2008, 08:19 _Pasha Цитата(Огурцов @ Sep 26 2008, 01:54) При ... Sep 26 2008, 08:23 smk ЦитатаСлишком просто.
Это единственная причина?
Ци... Sep 26 2008, 08:34          zhevak Помечтаем. Может это наведет Вас на нужные мысли.
... Sep 29 2008, 18:31           _Pasha Цитата(zhevak @ Sep 29 2008, 22:31) Ну чт... Sep 29 2008, 18:40        VladimirYU Цитата(_Pasha @ Sep 29 2008, 20:51) Упрощ... Sep 30 2008, 07:46         Tanya Цитата(VladimirYU @ Sep 30 2008, 11:46) П... Sep 30 2008, 08:58          VladimirYU Цитата(Tanya @ Sep 30 2008, 12:58) Управл... Sep 30 2008, 09:29           Tanya Цитата(VladimirYU @ Sep 30 2008, 13:29) Е... Sep 30 2008, 11:06            VladimirYU Цитата(Tanya @ Sep 30 2008, 15:06) Прошу ... Sep 30 2008, 11:10             Tanya Цитата(VladimirYU @ Sep 30 2008, 15:10) М... Sep 30 2008, 11:22              Огурцов Девочки-мальчики, так может резюме какое, а ? Коль... Sep 30 2008, 13:56      Tanya Цитата(_Pasha @ Sep 29 2008, 20:14) миним... Sep 29 2008, 16:32 rudy_b Термопечь - сложная задача. В ней, кроме элементов... Sep 30 2008, 14:46
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|