Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20

Поклонники продукции Microchip Technology Inc тусуются тут.
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Niks13 »

Soir писал(а): Постройте хотя бы какие-нибудь зависимости стабильности температуры от выставленных настроек, может не хватает пределов...

Завтра еще денек поиграюсь, будет более понятно.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Alexeyslav »

Коэфициенты надо считать по единичной переходной характеристике. Прочтите наконец, основы теории регуляторов...
Для нагревателей больше подходит ПИ, и ПИД регуляторы в зависимости от степени запаздывания сигналов управления и воздействия.
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Niks13 »

Alexeyslav писал(а):Коэфициенты надо считать по единичной переходной характеристике. Прочтите наконец, основы теории регуляторов...
Для нагревателей больше подходит ПИ, и ПИД регуляторы в зависимости от степени запаздывания сигналов управления и воздействия.

Скажите пожалуйста, Alexeyslav. Если Вы надумаете, посадить куст винограда, станете ли вы, изучать ампелографию? Человек, не может знать всего. Кто на что учился.
Что такое ПИ и ПИД, я читал и понимаю их достоинства, но сам я их не могу спроектировать, а в ИНЕТЕ схем доступных не нашел. Да и задачи у меня не те, чтоб городить серьезный регулятор.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Alexeyslav »

Регулятор не бывает серьезным или несерьезным - он либо выполняет свою функцию, либо нет. Если в цепи управления идет сильное запаздывание то как ни крути ПИ-регулятор ничего хорошего не получишь.

На самом деле не так все сложно, надо начать с теории - определить все характеристики объекта управления, расчитать характеристики регулятора и определить его устойчивость. Только после этого стоит приступать к реализации регулятора, собственно это заключается в расчете коэфициентов. После того как выполнишь все расчеты - он у тебя будет работать ровно так как ожидалось и не надо будет ничего подбирать.
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Niks13 »

Уважаемый, Soir!
Еще раз, хочу поблагодарить Вас за помощь!
При заданной- +26*С, времени-30сек и коэффициенте -2, у меня, колебания составляют от 25,8 до 26,6. Т.е.-0,8*С. Для меня, это вполне приемлемо. Через 2-3 дня вытащу черенки и тогда, поэкспериментирую более серьезно. Сейчас, просто боюсь их угробить. Единственное, что меня малость смущает, так это то, что температура не останавливается на месте, а постоянно изменяется от 25,8 до 26,6 и обратно. Просто не знаю, насколько это вредно или полезно для растений. Вот, за одно и выясню.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Niks13 писал(а):Единственное, что меня малость смущает, так это то, что температура не останавливается на месте, а постоянно изменяется от 25,8 до 26,6 и обратно.

Я под шумок убрал гистерезис. Сейчас я его вернул, попробуйте.
Вложения
Termometr_16F628_PWM_v4.0.zip
(11.25 КБ) 371 скачивание
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Alexeyslav »

Это у тебя удлинился переходный процесс, регулятор приблизился к границе устойчивости.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Alexeyslav писал(а):Это у тебя удлинился переходный процесс, регулятор приблизился к границе устойчивости.

Круто. Только не понял хорошо это или плохо, но звучит...
Я не силен в теории регулирования, алгоритмы прописываю "как понимаю". Если у Вас есть практические предложения как реализовать в данном случае регулятор, с удовольствием рассмотрю и попытаюсь прописать в управляющей программе.
Alexeyslav писал(а):надо начать с теории - определить все характеристики объекта управления, расчитать характеристики регулятора и определить его устойчивость. Только после этого стоит приступать к реализации регулятора, собственно это заключается в расчете коэфициентов. После того как выполнишь все расчеты - он у тебя будет работать ровно так как ожидалось и не надо будет ничего подбирать

Хороший совет. Самое главное его можно давать практически на любой заданный вопрос. Сказано красиво, верно. Правда реальной помощи никакой.
Если Вы так хорошо разбираетесь в теории, посоветуйте, какие параметры с реальной системы нужно снять, как их обрабатывать в программе и т.д. И мы сообща поможем Niks13.
Niks13 писал(а):Человек, не может знать всего

Действительно не может. Если бы я стал в красивую позу и отправил Niks13 изучать программирование, я бы сильно ему помог? Но подход был бы правильный - иди изучай теорию программирования, электротехнику, теорию регулирования ну и все сопутствующие науки. Тогда ты сам запросто создашь то, что тебе нужно.
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Niks13 »

Soir писал(а):Я под шумок убрал гистерезис. Сейчас я его вернул, попробуйте.

Спаисбо, большое! Я думал так и задумано. Сейчас перезалью, посмотрю.
Перезалил. Запустил. Сначала, были какие-то непонятки. При нажатии кнопки MODE, после t, шла опять t только без запятой. Если ставил 26,4 то при следующем нажатии MODE появлялось t-264, буквы А вообще небыло, а только Р. На кнопки + и - не реагировал. Потом, вдруг, все включилось и сейчас работает. Чтоб черенки не занянчить, поставил им пока старый регулятор, а этот снял чтоб поиграться. Положил на стол лампочку и в 5см от нее датчик. При установленной 27, держит 26,9-27,2. Сейчас, сгорожу что-то подобное своего кильчеватора и поиграюсь там. Не знаю, сколько займет время настройка, но уверен что точности в 0,5 градуса я добьюсь. А может и лучше.
Последний раз редактировалось Niks13 Сб фев 25, 2012 18:58:58, всего редактировалось 1 раз.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Alexeyslav »

Для этого достаточно немного углубится в интернет. Главное тут выбрать материал по своему уровню, поэхтому трудно что-то советовать. Можно конечно посоветовать сложные рассчеты с плотным применением математики, но для этого придется еще и подучить математику.

Вот например тут можно на примере регулятора температуры посмотреть расчет коэфициентов ПИ-регулятора. Может, найдете что-то полезное. Хоть там и рассматривается аналоговая схема, расчеты не становятся другими.

В кратце можно посмотреть по регуляторам вообще.

А тут рассматрвиается регулятор AVR221 - ПИД регулятор от ATMEL...

Если еще немного поискать, можно найти много полезного по теме.

п.с. ПИ-реулятор это частный случая ПИД-регулятора.
Если определить характеристики объекта регулирования, его переходную характеристику то коэфициенты регулятора можно подбирать в симуляторах, например MicroCap и ему подобных.
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Niks13 »

Alexeyslav писал(а):Для этого достаточно немного углубится в интернет. Главное тут выбрать материал по своему уровню, поэхтому трудно что-то советовать. Можно конечно посоветовать сложные рассчеты с плотным применением математики, но для этого придется еще и подучить математику.

Вот например тут можно на примере регулятора температуры посмотреть расчет коэфициентов ПИ-регулятора. Может, найдете что-то полезное. Хоть там и рассматривается аналоговая схема, расчеты не становятся другими.

В кратце можно посмотреть по регуляторам вообще.

А тут рассматрвиается регулятор AVR221 - ПИД регулятор от ATMEL...

Если еще немного поискать, можно найти много полезного по теме.

п.с. ПИ-реулятор это частный случая ПИД-регулятора.
Если определить характеристики объекта регулирования, его переходную характеристику то коэфициенты регулятора можно подбирать в симуляторах, например MicroCap и ему подобных.

Ну, коль Вы в этом сильны, может поможете реальными действиями. Я опять на своем примере. Представьте, что Вы, купили саженец. Он лежит и ждет посадки. Вы спрашиваете у человека, как его правильно посадить, а он дает Вам кучу книг и предлагает их прочесть.
Я, от этого, очень далек и мой возраст, не позволяет уже схватывать все на лету. Память увы не та. Soir не зарабатывает этим денег, а просто помогает по доброте душевной. Зачем ему, изучать кучу теории, если это разовый проект, и возможно терморегуляторы ему больше не понадобятся. Форумы тем и хороши, что можно общими усилиями создать что-то нормальное. Я могу поделиться знаниями по пчелам и винограду. На соответствующих форумах делюсь а не посылаю читать литературу
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Alexeyslav »

Увы, если нужен приемлемый результат приходится постигать. Хотябы, нужно представлять как работают регуляторы, в этом помогают интернет и книжки. Вместо того чтобы в сотый раз излагать одну и ту же теорию непосредственно в теме, проще почитать её по ссылке. А почитав теорию многие вещи становятся понятней и вопросы решаются сами собой. Не с первого раза конечно. Возраст и опыт тут не имеет значения, человек все равно не способен понять все сразу.
Начинать нужно с основ, чтобы потом говорить на одном языке и понимать друг друга.

Возьмем для начала терморегулятор с ПИ-законом регулирования.(А у Вас какой кстати реализован? Наверняка П-регулятор?)

Чтобы вообще начать настраивать регулятор необходимо выяснить характеристику объекта регулирования - если выйдет так что объект регулирования нелинеен или имеет в своем составе элементы задержки то мягко говоря вся теория регулирования тут неприменима и приходится строить регуляторы по индивидуальному образцу.

Одна из характеристик объекта регулирования это постоянная времени. Определяется она из графика переходной характеристики - на вход объекта подается единичное воздействие, с выхода снимается значение и строится график. Так вот из этого графика когда значение меняется на уровне 2/3 от максимального - это и есть момент "постоянной времени" для этого объекта.

В вашем случае, подключив нагреватель на фиксированную мощность(единичное воздействие) получаем изменение температуры на выходе - после того как изменение температуры будет происходить медленно и практически остановится - можно проанализировать снятые значения температуры например каждую минуту и по ним определить постоянную времени.
Вручную снимать показания как-то неинтересно, поэтому для этого легче привлечь компьютер, чтобы он сам записывал температуру в определенные промежутки времени.
solovey33
Родился
Сообщения: 11
Зарегистрирован: Чт фев 09, 2012 08:28:49

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение solovey33 »

Для Soir
Здраствуйте. Огромное спасибо за прошивку. Наконец собрал все в железе. В целом все работает отлично, но есть нюанс: в автоматическом режиме при установке параметра St = 1 с выходов контроллера сигнала нет, при остальных значениях все нормально.
По поводу ошибки датчика: Иногда (после того, как подключил датчик кабелем длиной метра два) проскакивает потеря связи датчика с МК. После подключения по трехпроводной схеме ошибок стало меньше, поставил подтягивающий резистор по даташиту 4к7 - вроде нормально, но иногда всеравно проскакивает ошибка. В связи с этим ошибку датчика или не делать вообще, или чтобы при потери связи с датчиком на время, допустим, 5 секунд и меньше контроллер на эту ошибку не реагировал, а если больше 5 секунд - то же, что и при ошибке "Высокая температура", тоесть команда на закрытие заслонки и загоряется светодиод.
Еще раз спасибо за помощь.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Alexeyslav »

Резистор меньше возьми, и конденсатором зашунтировать питание на стороне датчика.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

solovey33 писал(а):...есть нюанс: в автоматическом режиме при установке параметра St = 1 с выходов контроллера сигнала нет, при остальных значениях все нормально.

Поправил, проверьте.
solovey33 писал(а):Иногда (после того, как подключил датчик кабелем длиной метра два) проскакивает потеря связи датчика с МК.

Датчики нормально работают при гораздо большей длине кабеля. Данная прошивка проверена на длине кабеля 20 м по двухпроводной линии подключения. Правда, на другом МК, но это в данном случае не имеет значения.
В новой прошивке есть небольшие изменения в части работы с датчиком. По большей части косметика, но может и повлияют. Попробуйте, если ошибка все равно будет появляться - говорите, я еще посмотрю работу с датчиком, если не получится, тогда будем ошибку обрабатывать программно.
Попробуйте уменьшить сопротивление подтягивающего резистора до 1,5-2 кОм, как было в первоначальной схеме.
Вложения
Term_Motor.zip
(3.38 КБ) 217 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Niks13 писал(а): Сначала, были какие-то непонятки. При нажатии кнопки MODE, после t, шла опять t только без запятой.

Версия 4.0. Там был мой недосмотр, сейчас исправил. Должно быть все нормально. Кроме того сделал возможность установки гистерезиса 0,0, то есть фактически его можно отключить. И еще кое-что в мелочах изменил.
Версия 4.1. Еще один вариант прошивки, небольшая модернизация алгоритма регулирования версии 4.0. Отличие - отслеживает тенденцию изменения температуры. Если тенденция правильная, то мощность меняется на 1% через каждые St секунд до достижения заданной температуры. Если тенденция обратная, то все как в версии 4.0.
Соорудил все это на макете, регулирует, точность 0,2-0,3. Думаю с этим датчиком лучше не будет. В моих условиях получился разбег температуры 40,1 - 39,8 (при t 40,0; d 0,1; St 5; Pr0.1). Это при стабильном режиме. При включении температура выскочила до 42,0 затем снизилась до 38,5, сделала еще одну волну уже с меньшей амплитудой и регулятор вошел в стабильный режим. Колебания мощности в стабильном режиме 37-41%.
Вложения
Termometr_16F628_PWM_v4.1.zip
(4.33 КБ) 253 скачивания
Termometr_16F628_PWM_v4.0.zip
(4.22 КБ) 211 скачиваний
solovey33
Родился
Сообщения: 11
Зарегистрирован: Чт фев 09, 2012 08:28:49

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение solovey33 »

Для Soir
С датчиком все ОК. Поставил резистор 1,5к - глюки пропали, спасибо.
По поводу параметра St: прошил новой прошивкой, заработало St=1, но длительность импульса не 1 секунда, а 2, и соответственно при St=2 длительность 3 секунды и т.д. Если это можно исправить - исправте пожалуйста, нет - буду подбирать передаточное число редуктора под время импульса (пока механика не доделана). В любом случае программа работает, большое спасибо Вам за помощь.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

solovey33 писал(а):Если это можно исправить - исправте пожалуйста, нет - буду подбирать передаточное число редуктора под время импульса (пока механика не доделана).

Не для того же устройство на МК, чтоб потом подгонять механику. Это я че-то напутал.
Пробуйте. Что не так - пишите.
Вложения
Term_Motor.zip
(3.39 КБ) 197 скачиваний
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Niks13 »

Soir писал(а):Там был мой недосмотр, сейчас исправил. .

ОГРОМНОЕ СПАСИБО, Soir!!!!
Завтра приду с работы, сразу займусь проверкой. Точнее уже сегодня.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Niks13 писал(а):Завтра приду с работы, сразу займусь проверкой. Точнее уже сегодня.

Тогда проверьте еще и вот эту прошивку 4.2. Ничего кардинального, чуть поправил версию 4.1 и исправил один баг, который мог проявляться при некоторых стечениях обстоятельств.
Так как этот баг был и в предыдущий версиях, то выкладываю все.

Пн фев 27, 2012 18:37:42
Версия 4.2 в железе не захотела нормально работать, поэтому снята с повестки дня.
Вложения
Termometr_16F628_PWM_v4.0.zip
(4.06 КБ) 219 скачиваний
Termometr_16F628_PWM_v4.1.zip
(4.15 КБ) 239 скачиваний
Ответить

Вернуться в «PIC»