Завтра еще денек поиграюсь, будет более понятно.Soir писал(а): Постройте хотя бы какие-нибудь зависимости стабильности температуры от выставленных настроек, может не хватает пределов...
Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
- Реклама
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Коэфициенты надо считать по единичной переходной характеристике. Прочтите наконец, основы теории регуляторов...
Для нагревателей больше подходит ПИ, и ПИД регуляторы в зависимости от степени запаздывания сигналов управления и воздействия.
Для нагревателей больше подходит ПИ, и ПИД регуляторы в зависимости от степени запаздывания сигналов управления и воздействия.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Скажите пожалуйста, Alexeyslav. Если Вы надумаете, посадить куст винограда, станете ли вы, изучать ампелографию? Человек, не может знать всего. Кто на что учился.Alexeyslav писал(а):Коэфициенты надо считать по единичной переходной характеристике. Прочтите наконец, основы теории регуляторов...
Для нагревателей больше подходит ПИ, и ПИД регуляторы в зависимости от степени запаздывания сигналов управления и воздействия.
Что такое ПИ и ПИД, я читал и понимаю их достоинства, но сам я их не могу спроектировать, а в ИНЕТЕ схем доступных не нашел. Да и задачи у меня не те, чтоб городить серьезный регулятор.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Регулятор не бывает серьезным или несерьезным - он либо выполняет свою функцию, либо нет. Если в цепи управления идет сильное запаздывание то как ни крути ПИ-регулятор ничего хорошего не получишь.
На самом деле не так все сложно, надо начать с теории - определить все характеристики объекта управления, расчитать характеристики регулятора и определить его устойчивость. Только после этого стоит приступать к реализации регулятора, собственно это заключается в расчете коэфициентов. После того как выполнишь все расчеты - он у тебя будет работать ровно так как ожидалось и не надо будет ничего подбирать.
На самом деле не так все сложно, надо начать с теории - определить все характеристики объекта управления, расчитать характеристики регулятора и определить его устойчивость. Только после этого стоит приступать к реализации регулятора, собственно это заключается в расчете коэфициентов. После того как выполнишь все расчеты - он у тебя будет работать ровно так как ожидалось и не надо будет ничего подбирать.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Уважаемый, Soir!
Еще раз, хочу поблагодарить Вас за помощь!
При заданной- +26*С, времени-30сек и коэффициенте -2, у меня, колебания составляют от 25,8 до 26,6. Т.е.-0,8*С. Для меня, это вполне приемлемо. Через 2-3 дня вытащу черенки и тогда, поэкспериментирую более серьезно. Сейчас, просто боюсь их угробить. Единственное, что меня малость смущает, так это то, что температура не останавливается на месте, а постоянно изменяется от 25,8 до 26,6 и обратно. Просто не знаю, насколько это вредно или полезно для растений. Вот, за одно и выясню.
Еще раз, хочу поблагодарить Вас за помощь!
При заданной- +26*С, времени-30сек и коэффициенте -2, у меня, колебания составляют от 25,8 до 26,6. Т.е.-0,8*С. Для меня, это вполне приемлемо. Через 2-3 дня вытащу черенки и тогда, поэкспериментирую более серьезно. Сейчас, просто боюсь их угробить. Единственное, что меня малость смущает, так это то, что температура не останавливается на месте, а постоянно изменяется от 25,8 до 26,6 и обратно. Просто не знаю, насколько это вредно или полезно для растений. Вот, за одно и выясню.
- Реклама
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Я под шумок убрал гистерезис. Сейчас я его вернул, попробуйте.Niks13 писал(а):Единственное, что меня малость смущает, так это то, что температура не останавливается на месте, а постоянно изменяется от 25,8 до 26,6 и обратно.
- Вложения
-
- Termometr_16F628_PWM_v4.0.zip
- (11.25 КБ) 372 скачивания
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Это у тебя удлинился переходный процесс, регулятор приблизился к границе устойчивости.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Круто. Только не понял хорошо это или плохо, но звучит...Alexeyslav писал(а):Это у тебя удлинился переходный процесс, регулятор приблизился к границе устойчивости.
Я не силен в теории регулирования, алгоритмы прописываю "как понимаю". Если у Вас есть практические предложения как реализовать в данном случае регулятор, с удовольствием рассмотрю и попытаюсь прописать в управляющей программе.
Хороший совет. Самое главное его можно давать практически на любой заданный вопрос. Сказано красиво, верно. Правда реальной помощи никакой.Alexeyslav писал(а):надо начать с теории - определить все характеристики объекта управления, расчитать характеристики регулятора и определить его устойчивость. Только после этого стоит приступать к реализации регулятора, собственно это заключается в расчете коэфициентов. После того как выполнишь все расчеты - он у тебя будет работать ровно так как ожидалось и не надо будет ничего подбирать
Если Вы так хорошо разбираетесь в теории, посоветуйте, какие параметры с реальной системы нужно снять, как их обрабатывать в программе и т.д. И мы сообща поможем Niks13.
Действительно не может. Если бы я стал в красивую позу и отправил Niks13 изучать программирование, я бы сильно ему помог? Но подход был бы правильный - иди изучай теорию программирования, электротехнику, теорию регулирования ну и все сопутствующие науки. Тогда ты сам запросто создашь то, что тебе нужно.Niks13 писал(а):Человек, не может знать всего
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Спаисбо, большое! Я думал так и задумано. Сейчас перезалью, посмотрю.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
Для этого достаточно немного углубится в интернет. Главное тут выбрать материал по своему уровню, поэхтому трудно что-то советовать. Можно конечно посоветовать сложные рассчеты с плотным применением математики, но для этого придется еще и подучить математику.
Вот например тут можно на примере регулятора температуры посмотреть расчет коэфициентов ПИ-регулятора. Может, найдете что-то полезное. Хоть там и рассматривается аналоговая схема, расчеты не становятся другими.
В кратце можно посмотреть по регуляторам вообще.
А тут рассматрвиается регулятор AVR221 - ПИД регулятор от ATMEL...
Если еще немного поискать, можно найти много полезного по теме.
п.с. ПИ-реулятор это частный случая ПИД-регулятора.
Если определить характеристики объекта регулирования, его переходную характеристику то коэфициенты регулятора можно подбирать в симуляторах, например MicroCap и ему подобных.
Вот например тут можно на примере регулятора температуры посмотреть расчет коэфициентов ПИ-регулятора. Может, найдете что-то полезное. Хоть там и рассматривается аналоговая схема, расчеты не становятся другими.
В кратце можно посмотреть по регуляторам вообще.
А тут рассматрвиается регулятор AVR221 - ПИД регулятор от ATMEL...
Если еще немного поискать, можно найти много полезного по теме.
п.с. ПИ-реулятор это частный случая ПИД-регулятора.
Если определить характеристики объекта регулирования, его переходную характеристику то коэфициенты регулятора можно подбирать в симуляторах, например MicroCap и ему подобных.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Ну, коль Вы в этом сильны, может поможете реальными действиями. Я опять на своем примере. Представьте, что Вы, купили саженец. Он лежит и ждет посадки. Вы спрашиваете у человека, как его правильно посадить, а он дает Вам кучу книг и предлагает их прочесть.Alexeyslav писал(а):Для этого достаточно немного углубится в интернет. Главное тут выбрать материал по своему уровню, поэхтому трудно что-то советовать. Можно конечно посоветовать сложные рассчеты с плотным применением математики, но для этого придется еще и подучить математику.
Вот например тут можно на примере регулятора температуры посмотреть расчет коэфициентов ПИ-регулятора. Может, найдете что-то полезное. Хоть там и рассматривается аналоговая схема, расчеты не становятся другими.
В кратце можно посмотреть по регуляторам вообще.
А тут рассматрвиается регулятор AVR221 - ПИД регулятор от ATMEL...
Если еще немного поискать, можно найти много полезного по теме.
п.с. ПИ-реулятор это частный случая ПИД-регулятора.
Если определить характеристики объекта регулирования, его переходную характеристику то коэфициенты регулятора можно подбирать в симуляторах, например MicroCap и ему подобных.
Я, от этого, очень далек и мой возраст, не позволяет уже схватывать все на лету. Память увы не та. Soir не зарабатывает этим денег, а просто помогает по доброте душевной. Зачем ему, изучать кучу теории, если это разовый проект, и возможно терморегуляторы ему больше не понадобятся. Форумы тем и хороши, что можно общими усилиями создать что-то нормальное. Я могу поделиться знаниями по пчелам и винограду. На соответствующих форумах делюсь а не посылаю читать литературу
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Увы, если нужен приемлемый результат приходится постигать. Хотябы, нужно представлять как работают регуляторы, в этом помогают интернет и книжки. Вместо того чтобы в сотый раз излагать одну и ту же теорию непосредственно в теме, проще почитать её по ссылке. А почитав теорию многие вещи становятся понятней и вопросы решаются сами собой. Не с первого раза конечно. Возраст и опыт тут не имеет значения, человек все равно не способен понять все сразу.
Начинать нужно с основ, чтобы потом говорить на одном языке и понимать друг друга.
Возьмем для начала терморегулятор с ПИ-законом регулирования.(А у Вас какой кстати реализован? Наверняка П-регулятор?)
Чтобы вообще начать настраивать регулятор необходимо выяснить характеристику объекта регулирования - если выйдет так что объект регулирования нелинеен или имеет в своем составе элементы задержки то мягко говоря вся теория регулирования тут неприменима и приходится строить регуляторы по индивидуальному образцу.
Одна из характеристик объекта регулирования это постоянная времени. Определяется она из графика переходной характеристики - на вход объекта подается единичное воздействие, с выхода снимается значение и строится график. Так вот из этого графика когда значение меняется на уровне 2/3 от максимального - это и есть момент "постоянной времени" для этого объекта.
В вашем случае, подключив нагреватель на фиксированную мощность(единичное воздействие) получаем изменение температуры на выходе - после того как изменение температуры будет происходить медленно и практически остановится - можно проанализировать снятые значения температуры например каждую минуту и по ним определить постоянную времени.
Вручную снимать показания как-то неинтересно, поэтому для этого легче привлечь компьютер, чтобы он сам записывал температуру в определенные промежутки времени.
Начинать нужно с основ, чтобы потом говорить на одном языке и понимать друг друга.
Возьмем для начала терморегулятор с ПИ-законом регулирования.(А у Вас какой кстати реализован? Наверняка П-регулятор?)
Чтобы вообще начать настраивать регулятор необходимо выяснить характеристику объекта регулирования - если выйдет так что объект регулирования нелинеен или имеет в своем составе элементы задержки то мягко говоря вся теория регулирования тут неприменима и приходится строить регуляторы по индивидуальному образцу.
Одна из характеристик объекта регулирования это постоянная времени. Определяется она из графика переходной характеристики - на вход объекта подается единичное воздействие, с выхода снимается значение и строится график. Так вот из этого графика когда значение меняется на уровне 2/3 от максимального - это и есть момент "постоянной времени" для этого объекта.
В вашем случае, подключив нагреватель на фиксированную мощность(единичное воздействие) получаем изменение температуры на выходе - после того как изменение температуры будет происходить медленно и практически остановится - можно проанализировать снятые значения температуры например каждую минуту и по ним определить постоянную времени.
Вручную снимать показания как-то неинтересно, поэтому для этого легче привлечь компьютер, чтобы он сам записывал температуру в определенные промежутки времени.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Для Soir
Здраствуйте. Огромное спасибо за прошивку. Наконец собрал все в железе. В целом все работает отлично, но есть нюанс: в автоматическом режиме при установке параметра St = 1 с выходов контроллера сигнала нет, при остальных значениях все нормально.
По поводу ошибки датчика: Иногда (после того, как подключил датчик кабелем длиной метра два) проскакивает потеря связи датчика с МК. После подключения по трехпроводной схеме ошибок стало меньше, поставил подтягивающий резистор по даташиту 4к7 - вроде нормально, но иногда всеравно проскакивает ошибка. В связи с этим ошибку датчика или не делать вообще, или чтобы при потери связи с датчиком на время, допустим, 5 секунд и меньше контроллер на эту ошибку не реагировал, а если больше 5 секунд - то же, что и при ошибке "Высокая температура", тоесть команда на закрытие заслонки и загоряется светодиод.
Еще раз спасибо за помощь.
Здраствуйте. Огромное спасибо за прошивку. Наконец собрал все в железе. В целом все работает отлично, но есть нюанс: в автоматическом режиме при установке параметра St = 1 с выходов контроллера сигнала нет, при остальных значениях все нормально.
По поводу ошибки датчика: Иногда (после того, как подключил датчик кабелем длиной метра два) проскакивает потеря связи датчика с МК. После подключения по трехпроводной схеме ошибок стало меньше, поставил подтягивающий резистор по даташиту 4к7 - вроде нормально, но иногда всеравно проскакивает ошибка. В связи с этим ошибку датчика или не делать вообще, или чтобы при потери связи с датчиком на время, допустим, 5 секунд и меньше контроллер на эту ошибку не реагировал, а если больше 5 секунд - то же, что и при ошибке "Высокая температура", тоесть команда на закрытие заслонки и загоряется светодиод.
Еще раз спасибо за помощь.
-
Alexeyslav
- Друг Кота
- Сообщения: 4550
- Зарегистрирован: Чт май 05, 2011 21:26:34
- Откуда: Украина, Славутич
- Контактная информация:
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Резистор меньше возьми, и конденсатором зашунтировать питание на стороне датчика.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Поправил, проверьте.solovey33 писал(а):...есть нюанс: в автоматическом режиме при установке параметра St = 1 с выходов контроллера сигнала нет, при остальных значениях все нормально.
Датчики нормально работают при гораздо большей длине кабеля. Данная прошивка проверена на длине кабеля 20 м по двухпроводной линии подключения. Правда, на другом МК, но это в данном случае не имеет значения.solovey33 писал(а):Иногда (после того, как подключил датчик кабелем длиной метра два) проскакивает потеря связи датчика с МК.
В новой прошивке есть небольшие изменения в части работы с датчиком. По большей части косметика, но может и повлияют. Попробуйте, если ошибка все равно будет появляться - говорите, я еще посмотрю работу с датчиком, если не получится, тогда будем ошибку обрабатывать программно.
Попробуйте уменьшить сопротивление подтягивающего резистора до 1,5-2 кОм, как было в первоначальной схеме.
- Вложения
-
- Term_Motor.zip
- (3.38 КБ) 218 скачиваний
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Версия 4.0. Там был мой недосмотр, сейчас исправил. Должно быть все нормально. Кроме того сделал возможность установки гистерезиса 0,0, то есть фактически его можно отключить. И еще кое-что в мелочах изменил.Niks13 писал(а): Сначала, были какие-то непонятки. При нажатии кнопки MODE, после t, шла опять t только без запятой.
Версия 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 КБ) 255 скачиваний
-
- Termometr_16F628_PWM_v4.0.zip
- (4.22 КБ) 213 скачиваний
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Для Soir
С датчиком все ОК. Поставил резистор 1,5к - глюки пропали, спасибо.
По поводу параметра St: прошил новой прошивкой, заработало St=1, но длительность импульса не 1 секунда, а 2, и соответственно при St=2 длительность 3 секунды и т.д. Если это можно исправить - исправте пожалуйста, нет - буду подбирать передаточное число редуктора под время импульса (пока механика не доделана). В любом случае программа работает, большое спасибо Вам за помощь.
С датчиком все ОК. Поставил резистор 1,5к - глюки пропали, спасибо.
По поводу параметра St: прошил новой прошивкой, заработало St=1, но длительность импульса не 1 секунда, а 2, и соответственно при St=2 длительность 3 секунды и т.д. Если это можно исправить - исправте пожалуйста, нет - буду подбирать передаточное число редуктора под время импульса (пока механика не доделана). В любом случае программа работает, большое спасибо Вам за помощь.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Не для того же устройство на МК, чтоб потом подгонять механику. Это я че-то напутал.solovey33 писал(а):Если это можно исправить - исправте пожалуйста, нет - буду подбирать передаточное число редуктора под время импульса (пока механика не доделана).
Пробуйте. Что не так - пишите.
- Вложения
-
- Term_Motor.zip
- (3.39 КБ) 198 скачиваний
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
ОГРОМНОЕ СПАСИБО, Soir!!!!Soir писал(а):Там был мой недосмотр, сейчас исправил. .
Завтра приду с работы, сразу займусь проверкой. Точнее уже сегодня.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Тогда проверьте еще и вот эту прошивку 4.2. Ничего кардинального, чуть поправил версию 4.1 и исправил один баг, который мог проявляться при некоторых стечениях обстоятельств.Niks13 писал(а):Завтра приду с работы, сразу займусь проверкой. Точнее уже сегодня.
Так как этот баг был и в предыдущий версиях, то выкладываю все.
Пн фев 27, 2012 18:37:42
Версия 4.2 в железе не захотела нормально работать, поэтому снята с повестки дня.
- Вложения
-
- Termometr_16F628_PWM_v4.0.zip
- (4.06 КБ) 220 скачиваний
-
- Termometr_16F628_PWM_v4.1.zip
- (4.15 КБ) 241 скачивание


