|
|
  |
регулирование температуры |
|
|
|
Sep 22 2006, 21:35
|
Группа: Новичок
Сообщений: 10
Регистрация: 25-12-05
Пользователь №: 12 641

|
Задача следующая: необходимо поддерживать температуру в районе 400 градусов с точностью плюс минус 2 градуса. Посоветуйте пожалуйста алгоритм который несложно реализовать на Ассемблере. Процесс вялотекущий никаких резких колебаний не бывает.
|
|
|
|
|
Sep 22 2006, 21:46
|
Местный
  
Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979

|
Цитата(mishutka @ Sep 23 2006, 01:35)  Задача следующая: необходимо поддерживать температуру в районе 400 градусов с точностью плюс минус 2 градуса. Посоветуйте пожалуйста алгоритм который несложно реализовать на Ассемблере. Процесс вялотекущий никаких резких колебаний не бывает. В этом случае я думаю лутче всего будет работать П или ПИ регулятор
|
|
|
|
|
Sep 23 2006, 05:19
|
Местный
  
Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979

|
Цитата(demaven @ Sep 23 2006, 08:55)  какой датчик измерения температуры? атмега16 в квадратном корпусе имеет на борту усилитель с переключаемым программно коэффициентом усиления на 10 и 200, встроенный ацп и исполнительный механизм на симмисторе через мос3063, вот вроде и все, что для этого нужно. нужно только постараться сделать так, чтобы при 450 градусвх на ацп приходило максимальное для него напряжение для увеличения точности в зоне измерения
лепим подобные регуляторы на атмега8, платиновые термопары прецезионный ОУ и ЖКИ. Уставка температуры от 200 до 500 градусов, дистанционное управление (инфракрасный ПДУ), точность поддерания температуры 1.5 градуса. Кривизна встроенных АЦП не позволит нормально мерять такие вещи, т.к. 10 бит это не реальное разрешение АЦП, а только лишь шаг дисктизации.ИМХО ними токо напряжение батареи на плате контроллера мерить  .Реально разрешение "без шума" может быть меньше 8 бит, поэтому для приемлемой точности надо внешний(лучше дельта-сигма) АЦП, да еще 50 герц хорошенько отфильтровать. Поддерживать температуру в 1,5 С не значит мерить с такой точностью.Как вариант можно использовать контроллер 8051F350 -8051F353 со встроенными дельта-сигима 24-16(реальных) бит+встроенный PGA(с автоколибровкой Ку) + цифровой фильтр с режекцией 50 и 60Гц.По цене такое решение будет дешевле чем внешний АЦП+МК.
|
|
|
|
|
Sep 23 2006, 13:29
|

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

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

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

|
Цитата(Nanobyte @ Sep 23 2006, 17:29)  Цитата(viael @ Sep 23 2006, 09:19)  Кривизна встроенных АЦП не позволит нормально мерять такие вещи, т.к. 10 бит это не реальное разрешение АЦП, а только лишь шаг дисктизации.ИМХО ними токо напряжение батареи на плате контроллера мерить  .Реально разрешение "без шума" может быть меньше 8 бит, поэтому для приемлемой точности надо внешний(лучше дельта-сигма) АЦП, да еще 50 герц хорошенько отфильтровать. Ну, это Вы зря так об встроенном АЦП. Прекрасно работает на Мегах, правда я использовал внешний ИОН типа REFxxx от AD. Младший разряд иногда прыгает, но при хорошей фильтрации сигнала стоит как вкопанный. Скорее всего, сильно ухудшает разрешение не "кривизна" АЦП, а неправильная разводка платы ("кривизна" рук  ). Мерял, кстати, именно температуру. Не в бровь, а в глаз! Сам в разовой работе использовал термопару от китайских мультиметров, плюс К140УД17, плюс АЦП Меги 10-ти разрядное. Вот только REF брал от VCC. "Скакало" +-2 младших бита. Так что Вы правильно заметили, что ненадо всё списывать на "кривизну" АЦП АВРок, а больше стоит уделить внимания на трасссировку платы и аналоговую схемотехнику. Еще раз Вам
|
|
|
|
|
Sep 23 2006, 15:24
|
Частый гость
 
Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821

|
Цитата(mishutka @ Sep 23 2006, 00:35)  Задача следующая: необходимо поддерживать температуру в районе 400 градусов с точностью плюс минус 2 градуса. Посоветуйте пожалуйста алгоритм который несложно реализовать на Ассемблере. Процесс вялотекущий никаких резких колебаний не бывает. Необходимо знать передаточную функцию объекта управления, насколько я понимаю. Точность приличная ИМХО для медленного процесса. А для оцифровки температуры точности встроенного АЦП точно хватает, на крайняк можно дополнительно сделать цифр. фильр.
Сообщение отредактировал Yura_K - Sep 23 2006, 15:26
--------------------
Чудес не бывает - бывает мало знаний и опыта!
|
|
|
|
|
Sep 23 2006, 17:26
|

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

|
Цитата(Yura_K @ Sep 23 2006, 19:24)  А для оцифровки температуры точности встроенного АЦП точно хватает, на крайняк можно дополнительно сделать цифр. фильр. Поскольку процесс вялотекущий, достаточно использовать обычное многократное усреднение. Да и инерционный аналоговый фильтр вполне подойдёт.
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Sep 23 2006, 20:56
|
Группа: Новичок
Сообщений: 10
Регистрация: 25-12-05
Пользователь №: 12 641

|
благодарю всех за ответы но господа Вы ушли не туда! мне необходим разложенный алгоритм управления иначе говоря алгоритм программы тоесть померял включил подождал померял и тд и тп прям такими можно словами, а аппаратки можно совсем не касаться - в свою очередь релиз с комментариями обещаю выложить на форум
|
|
|
|
|
Sep 24 2006, 12:27
|
Частый гость
 
Группа: Свой
Сообщений: 185
Регистрация: 5-05-06
Из: Ekaterinburg, Russia
Пользователь №: 16 821

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

Знающий
   
Группа: Свой
Сообщений: 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. Если регулятор будет неустойчивым и будет качать управление, "пролетая" мимо уставки - тогда будем увеличивать Кусиления, уменьшая тем самым скорость интегрирования. По сути Кусиления определяет пропорциональность между управлением и целевым параметром. Если она известна, то подбирать ничего не придётся.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|