ПИ регулятор отопления

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Регулятор был задуман как замена штатного в электроконвектор на дачу, потому что встроенный не обеспечивал необходимой точности поддержания температуры и при перебоях в питании самостоятельно не включался в работу, что могло нехорошо отразится на заполненом водопроводе.

Данный регулятор обеспечивает поддержание заданной температуры. Проект начинался тут.

Проработал зиму на даче, никаких замечаний к работе регулятора нет, температуру держет точно.

В качестве датчика температуры используется терморезистор NTC 10кОм при 20С, выходным устройством являеться реле (в дальнейшем планирую поставить симистор) (организован медленный ШИМ частотой 2Гц).

Схема включения терморезистора стандартная, кнопки (аналоговые). Изскетча должно быть понятно что куда цеплять. У меня девайс выполнен на своей плате, использован микроконтроллер ATMega8, тактирование от встроенного генератора 8МГц. Собрано всё в монтажной коробке 100х100х40.

Схема устройства, LCD экран не показан.

vde69
Offline
Зарегистрирован: 10.01.2016

2 герца на реле...

2*60*60*24*365 = 63 ляма в год... реле столько не ходят, обычно от 200 до 500 тыс, я когда печку делал себе посчитал 1 переклюяение в 20 секунд и то вышло всего на 5 лет 8 часовой работы...

Штирлиц
Штирлиц аватар
Offline
Зарегистрирован: 13.06.2015

vde69 пишет:

2 герца на реле...

 

Вместо реле ставим SSR на нужную мощность и все.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Штирлиц пишет:

vde69 пишет:

2 герца на реле...

 

Вместо реле ставим SSR на нужную мощность и все.

Согласен, я выше написал что планируется замена на симистор и подача напряжения по алгоритму Брезенхема. Опыт уже есть - видео.

axill
Offline
Зарегистрирован: 05.09.2011

Такую же задачу решал недавно. Реализовал алгоритм "мячик на двух резинках" с поиском равновесной мощности под заданную температуру итеративным перебором. Регулирование мощности на моем преобразователе ШИМ в ФИМ

зима показала очень высокую точность поддержания температуры. Разве что помех много от симистора но у меня это никак не проявляется, знаю, что должны быть)

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

axill пишет:

Такую же задачу решал недавно. Реализовал алгоритм "мячик на двух резинках" с поиском равновесной мощности под заданную температуру итеративным перебором.

Ссылочку не дадите для ознакомления

axill
Offline
Зарегистрирован: 05.09.2011

Не публиковал, но если что конкретно интересует поделюсь

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Интересуемся.

axill
Offline
Зарегистрирован: 05.09.2011

yul-i-an пишет:

Согласен, я выше написал что планируется замена на симистор и подача напряжения по алгоритму Брезенхема. Опыт уже есть - видео.

спасибо за информацию, не знал, что такая простая вещь как пропуски полупериодов так круто называются)

логика програмная пропусков почти ничем не отличается от ФИМ. 

По мне управление мощностью дело совсем не сложное. Алгорит расчета %необходимой мощности вот это куда более сложная и интересная задача. ПИД ориентирован на релейное управление. А здесь как? Я использовал алгоритм резинки. В стабильных условиях это отлично работает, а вот при резко меняющихся условий резинка входит в колебательный процесс

axill
Offline
Зарегистрирован: 05.09.2011

yul-i-an пишет:

Интересуемся.

что именно? Схема, алгоритм?

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

vde69 пишет:

2 герца на реле...

2*60*60*24*365 = 63 ляма в год... реле столько не ходят, обычно от 200 до 500 тыс, я когда печку делал себе посчитал 1 переклюяение в 20 секунд и то вышло всего на 5 лет 8 часовой работы...

Я прикидывал 600000-800000 переключений за отопительный сезон 210 дней.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

axill пишет:

yul-i-an пишет:

Интересуемся.

что именно? Схема, алгоритм?

Алгоритм.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Штирлиц пишет:

vde69 пишет:

2 герца на реле...

 

Вместо реле ставим SSR на нужную мощность и все.

Если точно то 1% - 0,6с. (100% за 60с.). Если нужна мощность 15% то реле включаеться на 9с. а остальные 51с. отключено. И так каждые 60с.

axill
Offline
Зарегистрирован: 05.09.2011

yul-i-an пишет:

Алгоритм.

хорошо. С компа пришлю примеры кода, а на словах примерно так:

- по таймеру беру равные интервалы времени, это шаг итерации

- на каждой итерации считаю три дельты - 1. Дельта между текущей и целевой температурой 2. Дельта между целевой температурой как прогноз на следующий период 3. Дельта как ошибка прогноза на текущий период на предыдущем цикле

- все три цифры суммирую с коэффициентами и получаю корректировку на этой итеррации для мощности в плюс или минус. Коэффициенты подбираются при отладке

- кроме того есть крайние условия 1. Если разница между текущей тем и целевой больше заданной константы (кажется у меня там 10 градусов) включаю полную мощность 2. Если разница меньше (у меня 0.5 градуса) то в эту итерацию мощность не меняется

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

а целом алгоритм показал очень хороший результат для меня. Его минус в необходимости подбора параметров под конкретную задачу

vde69
Offline
Зарегистрирован: 10.01.2016

может кому интересено управление мощностью, оставлю тут http://arduino.ru/forum/proekty/kontroller-mufelnoi-pechi для меня нормальным было попадание в плюс минус 5 градусов на высоких температурах, алгоритм вполне рабочий... по ссылке реальный график работы, виден колебательный процесс, обусловлен он изменением температуры теплоизоляции (и следовательно изменением характеристик теплообмена), на испытаниях характеристики требуемой мощности менялись примерно на 30% за 1 час, что равнозначно резким калебаниям температуры на улице для плохоутепленого домика, тем не менее алгоритм оказался вполне рабочим.

По моим прикидкам имея датчик с точностью 0.25с (тот-же даллас) вполне можно попадать в диапазон воздуха плюс минус 1.5...2 градуса...

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

vde69 пишет:

может кому интересено управление мощностью, оставлю тут http://arduino.ru/forum/proekty/kontroller-mufelnoi-pechi для меня нормальным было попадание в плюс минус 5 градусов на высоких температурах, алгоритм вполне рабочий... по ссылке реальный график работы, виден колебательный процесс, обусловлен он изменением температуры теплоизоляции (и следовательно изменением характеристик теплообмена), на испытаниях характеристики требуемой мощности менялись примерно на 30% за 1 час, что равнозначно резким калебаниям температуры на улице для плохоутепленого домика, тем не менее алгоритм оказался вполне рабочим.

По моим прикидкам имея датчик с точностью 0.25с (тот-же даллас) вполне можно попадать в диапазон воздуха плюс минус 1.5...2 градуса...

Читал вашу тему, даже комент оставил.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Переписал функцию управления реле. Написал библиотеку для терморезистора и преминил её в этом проекте.

Теперь код выглядит так.

 

artemka_patriot
Offline
Зарегистрирован: 10.04.2016

Приветствую можешь помоч у меня датчик температуры дс 18б20 на основе его построить код и lcd икран с кнобками

faeton
faeton аватар
Offline
Зарегистрирован: 21.03.2016

axill пишет:

зима показала очень высокую точность поддержания температуры. Разве что помех много от симистора но у меня это никак не проявляется, знаю, что должны быть)

Озадачили как ФИМ можно мощность регулировать... ФИМ - это же фазо-импульсная?

А для инерционных систем с активной нагрузкой, чтобы не шуметь симистором в сеть, лучше полупериоды вырезать с коммутацией в нуле - этакая АМ синхронизированная с  пропаданием несущей. :)

 

SergeB
Offline
Зарегистрирован: 03.09.2021

Добрый день. Не могли бы вы повторно выложить библиотеку для терморезистора? Ссылка больше не работает :-(

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012