реклама на сайте
подробности

 
 
> Терморегулятор на AVR, алгоритмы работы
_Pasha
сообщение Sep 25 2008, 19:56
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Доброго времени!
История болезни: терморегулятор поддерживает температуру в вакуумной печи. Датчик DS18B20, работа в диапазоне 60..85 градусов. Никаких вопросов, кроме одного: очень большая инерционность печи. Без PID-регулятора заброс по температуре +50% (!) Прикручивается самонастройка PID, но, ввиду инерционности объекта, возникают сложности по начальному разогреву и выходу в зону регулирования. Особенно интересно получается, если разогрелись где-то до 70% от уставки, и кратковременно выключили сеть. Что делать контроллеру: греть? ждать и мерять? Если ждать, то сколько? Самонастройка откладываеццо... Упомянутый заброс достигает своего максимума где-то минут аж за 20, и если тупо ждать, ТТХ прибора оставляют желать лучшего...
Интересно, кто как решает подобную проблему.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zhevak
сообщение Sep 26 2008, 19:08
Сообщение #2


Знающий
****

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



Цитата(_Pasha @ Sep 26 2008, 01:56) *
Доброго времени!
История болезни: терморегулятор
...
Особенно интересно получается, если разогрелись где-то до 70% от уставки, и кратковременно выключили сеть.


И Вам доброго времени smile.gif

Задача достаточно сложная. На сколько я понял, у Вас в печи присутствует не только эквивалентный инерционный элемент, но и элемент запаздывания с нехилым временем -- 20 минут, о которых Вы говорили. Если бы в контуре регулирования отсутствовал элемент запаздывания, то Ваша задача бы легко решалась. Но поскольку он присутствует, Вам нужно либо знать будущее (ближайшие 20 минут), что очень сложно осуществить, либо делать инерционность системы регулирования соизмеримую с этим временем.

Мне в свое время повезло столкнуться с подобной задачей в сфере коммунального хозяйства. Мне нужно было сделать регулятор в контур ГВС (горячего водоснабжения). Там, на объекте (типа жилой дом) тоже присутствовал элемент запаздывания -- скорость протекания воды по трубе + скорость заполнения теплообменника кипятком. Это не эквиваленты инерционных элементов (индкутивности, конденсаторы), это -- элементы запаздывания (линии задержки). Задерка-то была по сравнеию с Вашей -- тьфу! Каких-то несколько десятков секунд! К своему стыду, я так и не смог решить эту задачу. Какие бы коэффициенты я бы ни ставил в своем ПИ-регуляторе, как бы я ни изменял алгоритмы регулирования -- ну не хотела система работать. Она либо генерила колебания (температуры воды от 40 до 90°С с периодом от 40 до 80 секунд), либо была тупая как скотина, и выходила на заданный режим в 60°С в течении 5-10 минут. Вот счастье-то было у жителей, либо пропускать воду минут 10, либо стоять под струей контрастного душа. Не говоря уже о том, что вода в кране свыше 70°С не должна быть в принципе. А может быть и сами жильцы своим водоразбором систему выводили из равновесия... Пропускали холодную воду, а кипяток, наоборот, -- прикрывали. Таким образом в системе менялось время запаздывания, и она дурила со страшной силой. Не знаю. Дело далекого прошлого.

Могу только добавить, что до того на объекте стояла тупая задвижка (кран), которая вообще ничего не регулировала, просто добавляла в контур ГВС постоянное количество теплоты от магистрали (теплоноситель магистрали 108°С 8 атм.) и ей было все по барабану. Люди жаловались, что при сильном водоразборе вода была холодная. Я же сделал еще интереснее! ... Что там сейчас стоит -- не знаю sad.gif Давно уже работаю в другом месте.

Вам же могу посоветовать только одно -- попробуйте составить эквивалентную схему регулирования и почитайте ТАР (Теория автоматического регулирования).

Искренне желаю чтобы у Вас что-нибудь получилось полезное, работающее.
Удачи!


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 26 2008, 22:24
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(zhevak @ Sep 26 2008, 22:08) *
у Вас в печи присутствует не только эквивалентный инерционный элемент, но и элемент запаздывания
.............................
Мне в свое время повезло столкнуться с подобной задачей в сфере коммунального хозяйства.


Нет, это все-таки разные задачи. Моя проще.
Физика такова: нагреватель прогревает муфель,
оттока тепла почти нет, так что Q=c*m*(T1-T0) smile.gif
за время прогрева мы сообщаем системе такое количество теплоты (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

Кстати, про ПИД -регулировку с переменной задержкой - добивался работы контура САР за счет сужения, насколько возможно, области регулирования и комбинирования медленного двухпозиционного регулятора. Но это совсем другая история...
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 29 2008, 09:01
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_Pasha @ Sep 27 2008, 02:24) *
Нет, это все-таки разные задачи. Моя проще.
Физика такова: нагреватель прогревает муфель,
оттока тепла почти нет, так что Q=c*m*(T1-T0) smile.gif

Все такие задачи одинаковые... Только масштаб времени разный.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 29 2008, 15:29
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Tanya @ Sep 29 2008, 13:01) *
Все такие задачи одинаковые... Только масштаб времени разный.

Спасибо, что посетили тему.
Меня смутило то, что в печке этой моей рассеяние тепла настолько маленькое. А там
, где вода - наоборот...
А Вы тоже за то, чтобы в начале работы просто медленно менять уставку в задатчике ?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 29 2008, 16:02
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_Pasha @ Sep 29 2008, 19:29) *
Спасибо, что посетили тему.
Меня смутило то, что в печке этой моей рассеяние тепла настолько маленькое. А там
, где вода - наоборот...
А Вы тоже за то, чтобы в начале работы просто медленно менять уставку в задатчике ?


Надо сначала правильно сформулировать цель(и) управления. Тут возможны разнообразные варианты -
скорость выхода, минимум переброса и т.д и т.п. и их комбинации с весами...
В Вашем случае, наверное, можно проще, чем Вы предлагаете. Вы же знаете теплоемкость.
Тогда подается импульс энергии для достижения почти... Потом, зная внешнюю температуру, подаем (оставляем) поддерживающую мощность, чуть позднее включаем П(И(Д)). Начальным значением И-компоненты берем поддерживающую мощность.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 29 2008, 16:14
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Tanya @ Sep 29 2008, 20:02) *
Надо сначала правильно сформулировать цель(и) управления.

минимум переброса

Цитата
Тогда подается импульс энергии для достижения почти...

... но тут откуда ни возьмись выясняется, что контроллер ужЕ пару минут назад такую операцию проделывал - не дали, гады-электрики, завершить. И теперь по включению питания контроллеру очень надо знать, где он находится, по возможности, имея на борту только датчик температуры, причем один, без часов реального времени, использования энергонезависимой памяти для протоколирования операций и т.п. (краткое содержание предыдущих серий biggrin.gif )
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 29 2008, 16:28
Сообщение #8


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(_Pasha @ Sep 29 2008, 20:14) *
... но тут откуда ни возьмись выясняется, что контроллер ужЕ пару минут назад такую операцию проделывал - не дали, гады-электрики, завершить. И теперь по включению питания контроллеру очень надо знать, где он находится

недавно решал такую задачу. сделал так: через определённые промежутки времени писал в флешь текущие значения температуры. При (ре)старте сравнивал измеренное значение с записанным с некоторым допуском. При совпадении считывал текущий (тёкший) режим и продолжал в том же духе.
При несовпадении - рестарт.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 29 2008, 16:51
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(MrYuran @ Sep 29 2008, 20:28) *
При (ре)старте сравнивал измеренное значение с записанным с некоторым допуском. При совпадении считывал текущий (тёкший) режим и продолжал в том же духе.
При несовпадении - рестарт.


Упрощаю для себя так:
При (ре)старте
Если текущая температура больше или равна последней записанной в еепром, то продолжать только измерять до появления максимума, вплоть до известного (20минут) таймаута, иначе - сразу включать нагрев и т.д. как раньше писАл
Спасибо! Имхо, то что надо.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 29 2008, 16:59
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_Pasha @ Sep 29 2008, 20:51) *
Упрощаю для себя так:
При (ре)старте
Если текущая температура больше или равна последней записанной в еепром, то продолжать только измерять до появления максимума, вплоть до известного (20минут) таймаута, иначе - сразу включать нагрев и т.д. как раньше писАл
Спасибо! Имхо, то что надо.

В Вашем случае НУЖНО измерять и учитывать реальную мощность (энергию), поданную на нагреватель. Еще лучше - еще и энергию, отданную в комнату. Ее (сумму) тоже можно (нужно) запоминать. Чем ниже Ваша температура, и чем хуже теплоотдача, тем хуже для Вас...
Кроме всего прочего, учет реальной мощности и теплоотдачи значительно заузит коридор.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 29 2008, 17:13
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Tanya @ Sep 29 2008, 20:59) *
Чем ниже Ваша температура, и чем хуже теплоотдача, тем хуже для Вас...

biggrin.gif 36.6 в свободное от работы время !
Спасибо.
З.Ы. А условия теплоотдачи, мощность и прочие неприличные сложности как раз хотел вынести в цель самонастройки контура управления. Как думаете - это реально ?
Go to the top of the page
 
+Quote Post
Tanya
сообщение Sep 30 2008, 05:06
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(_Pasha @ Sep 29 2008, 21:13) *
biggrin.gif 36.6 в свободное от работы время !
Спасибо.
З.Ы. А условия теплоотдачи, мощность и прочие неприличные сложности как раз хотел вынести в цель самонастройки контура управления. Как думаете - это реально ?

Я думаю, что этого не нужно. Тут никаких сложностей, тем более, - неприличных, нет. Это кажимость... Вам нужно ТОЧНО измерять подводимую и отводимую мощность. Первое - интеграл от квадрата напряжения (или ток на напряжение), второе - разность температур кожух - воздух при отсутствии вариаций в движении воздуха.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 30 2008, 05:45
Сообщение #13


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Tanya @ Sep 30 2008, 09:06) *
Вам нужно ТОЧНО измерять подводимую и отводимую мощность.

Мда... озадачили. Железо, однако, наращивать надо. crying.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _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


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.0155 секунд с 7
ELECTRONIX ©2004-2016