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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> регулирование температуры
mishutka
сообщение Sep 22 2006, 21:35
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 25-12-05
Пользователь №: 12 641



Задача следующая:
необходимо поддерживать температуру в районе 400 градусов с точностью плюс минус 2 градуса. Посоветуйте пожалуйста алгоритм который несложно реализовать на Ассемблере. Процесс вялотекущий никаких резких колебаний не бывает.
Go to the top of the page
 
+Quote Post
viael
сообщение Sep 22 2006, 21:46
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Цитата(mishutka @ Sep 23 2006, 01:35) *
Задача следующая:
необходимо поддерживать температуру в районе 400 градусов с точностью плюс минус 2 градуса. Посоветуйте пожалуйста алгоритм который несложно реализовать на Ассемблере. Процесс вялотекущий никаких резких колебаний не бывает.


В этом случае я думаю лутче всего будет работать П или ПИ регулятор
Go to the top of the page
 
+Quote Post
demaven
сообщение Sep 23 2006, 04:55
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



какой датчик измерения температуры? атмега16 в квадратном корпусе имеет на борту усилитель с переключаемым программно коэффициентом усиления на 10 и 200, встроенный ацп и исполнительный механизм на симмисторе через мос3063, вот вроде и все, что для этого нужно. нужно только постараться сделать так, чтобы при 450 градусвх на ацп приходило максимальное для него напряжение для увеличения точности в зоне измерения

лепим подобные регуляторы на атмега8, платиновые термопары прецезионный ОУ и ЖКИ. Уставка температуры от 200 до 500 градусов, дистанционное управление (инфракрасный ПДУ), точность поддерания температуры 1.5 градуса.
Go to the top of the page
 
+Quote Post
viael
сообщение Sep 23 2006, 05:19
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Цитата(demaven @ Sep 23 2006, 08:55) *
какой датчик измерения температуры? атмега16 в квадратном корпусе имеет на борту усилитель с переключаемым программно коэффициентом усиления на 10 и 200, встроенный ацп и исполнительный механизм на симмисторе через мос3063, вот вроде и все, что для этого нужно. нужно только постараться сделать так, чтобы при 450 градусвх на ацп приходило максимальное для него напряжение для увеличения точности в зоне измерения

лепим подобные регуляторы на атмега8, платиновые термопары прецезионный ОУ и ЖКИ. Уставка температуры от 200 до 500 градусов, дистанционное управление (инфракрасный ПДУ), точность поддерания температуры 1.5 градуса.


Кривизна встроенных АЦП не позволит нормально мерять такие вещи, т.к. 10 бит это не реальное разрешение АЦП, а только лишь шаг дисктизации.ИМХО ними токо напряжение батареи на плате контроллера мерить sad.gif .Реально разрешение "без шума" может быть меньше 8 бит, поэтому для приемлемой точности надо внешний(лучше дельта-сигма) АЦП, да еще 50 герц хорошенько отфильтровать.
Поддерживать температуру в 1,5 С не значит мерить с такой точностью.Как вариант можно использовать контроллер 8051F350 -8051F353 со встроенными дельта-сигима 24-16(реальных) бит+встроенный PGA(с автоколибровкой Ку) + цифровой фильтр с режекцией 50 и 60Гц.По цене такое решение будет дешевле чем внешний АЦП+МК.
Go to the top of the page
 
+Quote Post
demaven
сообщение Sep 23 2006, 06:20
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



8 бит - это и есть полпроцента, контроллер во время измерения спит и не шумит, ставить внешний ацп 14-16 и более разрядов конечно можно, но нужно ли? ведь точность задана - полпроцента. можно использовать адуску со встроенным сигмадельта-ацп на 14 бит, а зачем? получить сомнительную точность 14 бит? а выдаст ли датчик такую точность? и сколько будет стоить такой датчик?
борьба с шумами и помехами - это второй вопрос, хотя он в состоянии попортить много крови на этапе изготовления и настройки, но этот вопрос не основной из заданных
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Sep 23 2006, 13:29
Сообщение #6


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(viael @ Sep 23 2006, 09:19) *
Кривизна встроенных АЦП не позволит нормально мерять такие вещи, т.к. 10 бит это не реальное разрешение АЦП, а только лишь шаг дисктизации.ИМХО ними токо напряжение батареи на плате контроллера мерить sad.gif .Реально разрешение "без шума" может быть меньше 8 бит, поэтому для приемлемой точности надо внешний(лучше дельта-сигма) АЦП, да еще 50 герц хорошенько отфильтровать.

Ну, это Вы зря так об встроенном АЦП. Прекрасно работает на Мегах, правда я использовал внешний ИОН типа REFxxx от AD. Младший разряд иногда прыгает, но при хорошей фильтрации сигнала стоит как вкопанный. Скорее всего, сильно ухудшает разрешение не "кривизна" АЦП, а неправильная разводка платы ("кривизна" рук smile.gif ). Мерял, кстати, именно температуру.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
Igor26
сообщение Sep 23 2006, 14:49
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата(Nanobyte @ Sep 23 2006, 17:29) *
Цитата(viael @ Sep 23 2006, 09:19) *

Кривизна встроенных АЦП не позволит нормально мерять такие вещи, т.к. 10 бит это не реальное разрешение АЦП, а только лишь шаг дисктизации.ИМХО ними токо напряжение батареи на плате контроллера мерить sad.gif .Реально разрешение "без шума" может быть меньше 8 бит, поэтому для приемлемой точности надо внешний(лучше дельта-сигма) АЦП, да еще 50 герц хорошенько отфильтровать.

Ну, это Вы зря так об встроенном АЦП. Прекрасно работает на Мегах, правда я использовал внешний ИОН типа REFxxx от AD. Младший разряд иногда прыгает, но при хорошей фильтрации сигнала стоит как вкопанный. Скорее всего, сильно ухудшает разрешение не "кривизна" АЦП, а неправильная разводка платы ("кривизна" рук smile.gif ). Мерял, кстати, именно температуру.

Не в бровь, а в глаз! Сам в разовой работе использовал термопару от китайских мультиметров, плюс К140УД17, плюс АЦП Меги 10-ти разрядное. Вот только REF брал от VCC. "Скакало" +-2 младших бита.
Так что Вы правильно заметили, что ненадо всё списывать на "кривизну" АЦП АВРок, а больше стоит уделить внимания на трасссировку платы и аналоговую схемотехнику. Еще раз Вам a14.gif
Go to the top of the page
 
+Quote Post
Yura_K
сообщение Sep 23 2006, 15:24
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



Цитата(mishutka @ Sep 23 2006, 00:35) *
Задача следующая:
необходимо поддерживать температуру в районе 400 градусов с точностью плюс минус 2 градуса. Посоветуйте пожалуйста алгоритм который несложно реализовать на Ассемблере. Процесс вялотекущий никаких резких колебаний не бывает.

Необходимо знать передаточную функцию объекта управления, насколько я понимаю. Точность приличная ИМХО для медленного процесса. А для оцифровки температуры точности встроенного АЦП точно хватает, на крайняк можно дополнительно сделать цифр. фильр.

Сообщение отредактировал Yura_K - Sep 23 2006, 15:26


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Sep 23 2006, 17:26
Сообщение #9


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(Yura_K @ Sep 23 2006, 19:24) *
А для оцифровки температуры точности встроенного АЦП точно хватает, на крайняк можно дополнительно сделать цифр. фильр.

Поскольку процесс вялотекущий, достаточно использовать обычное многократное усреднение. Да и инерционный аналоговый фильтр вполне подойдёт.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
mishutka
сообщение Sep 23 2006, 20:56
Сообщение #10





Группа: Новичок
Сообщений: 10
Регистрация: 25-12-05
Пользователь №: 12 641



благодарю всех за ответы но господа Вы ушли не туда! мне необходим разложенный алгоритм управления иначе говоря алгоритм программы тоесть померял включил подождал померял и тд и тп прям такими можно словами, а аппаратки можно совсем не касаться - в свою очередь релиз с комментариями обещаю выложить на форум
Go to the top of the page
 
+Quote Post
vvs157
сообщение Sep 24 2006, 11:49
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(mishutka @ Sep 24 2006, 00:56) *
благодарю всех за ответы но господа Вы ушли не туда! мне необходим разложенный алгоритм управления иначе говоря алгоритм программы тоесть померял включил подождал померял и тд и тп прям такими можно словами, а аппаратки можно совсем не касаться - в свою очередь релиз с комментариями обещаю выложить на форум


Поищите по форуму, тут ПИД разбирался не раз в том числе с реализациями на С
Например http://electronix.ru/forum/index.php?showt...=17631&st=0
Go to the top of the page
 
+Quote Post
Yura_K
сообщение Sep 24 2006, 12:27
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821



Пример простого алгортма (используем гистерезис по температуре):
1) измерил температуру
2) сравнил с заданной (вычислил ошибку)
3) если ошибка больше Pup (верхняя температура), то отключаем подогрев
4) если ошибка меньше Pdown (нижняя температура), то включаем подогрев
Алгоритм ОЧЕНЬ простой, у меня он работал с гистерезисом 20 градусов С. Если нужно лучше, то давай характеристику объекта управления, обычно с этого начинают расчет системы авт. управления.


--------------------
Чудес не бывает - бывает мало знаний и опыта!
Go to the top of the page
 
+Quote Post
demaven
сообщение Sep 25 2006, 03:48
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



Для поддержания температуры с высокой точностью применяется ступенчатая регулировка мощности для компенсации инерционности нагревателя. А так - мало информации о проекте: мощность нагревателя, максимальная температура нагревателя, его теплоемкость, и так далее. Сделать управляющий автомат, зная характеристики нагревателя, не есть трудная задача. Параметры проекта - в студию, как говорит Леонид Аркадьевич.
Go to the top of the page
 
+Quote Post
demaven
сообщение Sep 25 2006, 03:50
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



Для поддержания температуры с высокой точностью применяется ступенчатая регулировка мощности для компенсации инерционности нагревателя. А так - мало информации о проекте: мощность нагревателя, максимальная температура нагревателя, его теплоемкость, и так далее. Сделать управляющий автомат, зная характеристики нагревателя, не есть трудная задача. Параметры проекта - в студию, как говорит Леонид Аркадьевич.
Go to the top of the page
 
+Quote Post
Demeny
сообщение Sep 25 2006, 05:46
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Как правило, для систем управления обычный нагреватель можно представлять себе апериодическим (проще говоря, инерционным) звеном первого порядка, переходной процесс от температуры T0 до T0+deltaT имеет вид функции T(t) = T0 + deltaT*(1-exp(-t/Tnagr)), где Tнагр - постоянная времени нагревателя, зависящая от его массы, теплоемкости, мощности, материала и т п Чем больше Тнагр - тем медленнее нагреватель выходит на стационарную установившуюся температуру.
Сначала нужно определить эту постоянную Тнагр. Для этого включаем нагреватель и засекаем время. Когда нагреватель выходит на 95% предельной температуры - останавливаем секундомер, полученное время делим на 3 - это и будет Тнагр.
Далее строим простой ПИ регулятор.
1) Каждую секунду вычисляем ошибку errT = Тзаданная - Ттекущая;
2) Делим ошибку на коэффициент усиления errT = errT / Kусиления;
3) К текущему управлению (напряжению на нагревателе) прибавляем errT, делённый на постоянную времени нагревателя Тнагр, полученную на начальном этапе (это и есть интегратор).
Вам останется подобрать коэффициент усиления. Сначала положим его равным 1. Если регулятор будет неустойчивым и будет качать управление, "пролетая" мимо уставки - тогда будем увеличивать Кусиления, уменьшая тем самым скорость интегрирования. По сути Кусиления определяет пропорциональность между управлением и целевым параметром. Если она известна, то подбирать ничего не придётся.


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post

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

 


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


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