Управление отоплением 0-10в / ПИД регулятор


#1

Добрый день!

Если взять вот такое устройство вывода - 6 каналов 0-10в, и подключить к нему вот такую элекротермическую головку - управление 0-10в для 3х ходовых клапанов, тепмературу мерить по 1-wire … то встает вопрос, как правильно реализовывать на wiren board ПИД регулятор? насколько я понял rules engine stateless, где хранить прошлые значения тепературы? где (как) правильно его реализовывать? или правильно взять готовый ПИД регулятор и просто туда отправлять целевую температуру?

схема классическая - 5 контуров отопления с 3х ходовыми клапанами, на подаче теплоаккумулятор - надо управлять трёхходовыми в зависиомости от множетсва факторов - температура на улице, температура воздуха, наличия людей, фазы луны и тд


#2

Неторопливо присматриваюсь к Danfoss’овскому термостату с Z-Wave. Мне кажется, что он должен решать эту задачу полностью (но могу ошибаться).

Если идти по Вашему пути, то есть несколько вариантов:

  • Найти готовый ПИД регулятор (тогда зачем на вообще WB, RS-485 etc ?)
  • Написать свой скрипт для движка правил. Движок не совсем stateless. Все глобальные переменные скрипта живут постоянно, плюс есть история mqtt. Я бы хранил последние показания тупо в массиве скрипта. Ну и для того, чтобы при перезапуске скрипта, движка правил не потерять историю - при старте поднимал её из базы…
  • Третий, более сложный, но более надежный путь - написать отдельный сервис, который реализует ПИД регулятор, хранит сколько-то истории и т.п. Плюс в том, что можно найти готовую проверенную реализацию ПИД. Мне кажется написать самому на JS будет не очень просто, а уж тестировать и отлаживать его работу…

#3

Оно не stateless, там можно хранить состояния. Там есть обычные глобальные переменные, которые сохраняются между выполнениями правил.

Так что можно реализовать и там.


#4

Добрый день!
Тоже хочу сделать погодозависимую автоматику. лучше http://www.salus-controls.ru/ пока не нашел. есть какие идеи? Если кто -то решил - прошу отозваться. У меня регулирование на коллекторе. Руками уже устал регулировать.


#5

Определитесь с требованиями к системе, потом смотрите что подходит, потом компромиссы и срезание углов
Я вот решил есть кактус :slight_smile:


#6

у меня все просто - 2 коллектора по 8 и 4 выхода. нужно управлять ими по датчикам в комнате от wiren’a.
а как это сделать по какому алгоритму я не знаю. чем регулировать 8 и 4 выхода 0-10в?


#7

Я этой задачей занимаюсь как раз сейчас. Котёл в сцепке с уличным датчиком регулирует температуру теплоносителя. В доме три контура отопления на каждый этаж. Стоят балансировочные клапаны Ballorex с сервоприводом 0-10в, которые управляются контроллером wb5. На каждом этаже выведены датчики температуры. Остаётся только управлять выходом 0-10в «условно пропорционально» в зависимости от считываемых показаний температурных датчиков.
Я написал алгоритм управления клапанами с вычислением оптимального положения сервоприводов с тонкой подстройкой при подходе к заданной температуре ( отклонение < 0.8 гр) и грубой, если отклонения больше чем на градус. Вообщем есть расчетные значения пропускной способности клапана Q (л/ч), которые программа корректирует и ищет равновесное положение. Здесь важно было изначально правильно подобрать клапаны с нужными характеристиками.
Теперь я отлаживаю свой алгоритм. Если интересно, то спрашивайте. Могу позже поделиться результатами.


#8

Добрый день!

Правильно ли я понимаю, что вам нужно Modbus-устройство с четырьмя выходами 0-10В?
У нас есть https://contactless.ru/wiki/index.php/WB-MAO4_Modbus_Dimmer , но оно пока не в свободной продаже - образцы отдали нескольким клиентам, ждём отзывов.


#9

Добрый день!

Очень интересно. А какие именно модели клапанов у вас установлены, и почему их выбрали?


#10

Очень интересно!!! я все думал что нужно какой либо пид регулятор поставить которым нужно управлять по кы485,но он работает напрямую с датчиками. А мне нужна информация с датчиков в WB, поэтому и регулировать нужно по алгоритму и давать команды уже непосредтсвенно из WB. если будет управление от wiren - возьмем его.


#11

BROEN Ballorex Dynamic с сероприводами 24В АС 0-10В
У приводов нет механической части, они работают по принципу термоголовок у радиаторов (с мембраной). Да, реагируют 2-3 минуты на изменение управляющего сигнала, зато долговечные, тихие и стоили сравнительно недорого. Тут не надо управлять подмешиванием воды с обратки. Тут идет регулирование потока (литров/час) на подаче.


#12

Евгений, все-таки глюк с отображением положения ползунка (MOD) в интерфейсе подтверждается. Ставлю, к примеру значение 10000. Захожу в скрипт, правлю, открываю раздел Devices/Analog Outputs и вижу, что значение сохраняется (еще и не входит целиком в окно), а ползунок стоит в нулевой точке. Исправьте, плиз


#13

добрый день!
как я понимаю BROEN Ballorex Dynamic регулируют температуру пропускной способностью - расходом, это не всегда подходит. Например когда котел работает на теплый пол и батарею, на теплый пол надо 35 градусов, на батарею - 50. может я не верно представил всю схему, но таким клапаном в теплый пол все равно поступит 50 градусов, просто с меньшей скоростью, формально количество тепла будет правильное, но неравномерность прогрева и т.д.

А не выложите ваш алгоритм условно пропорционального регулирования? интересно посмотреть. я выкладывал свой тут


#14

На теплый пол предусмотрен свой контур со своей обвязкой и насосом без Ballorex.

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


#15

Если позволяют правила - вот товарищ (обращение) сделал контроллер на ардуино. но это не главное - он запихнул туда программный pid регулятор на node.js. пока не разбрался, но выглядит красиво.


#16

Господа разработчики, скажите, если я выставляю значение ПИД регулятора, то на выходе напряжение всегда будет неизменным пока я не поменяю его на новое и не может быть так, что оно падает до нуля? Вопрос возник потому, что мои тестируемые приводы по какой-то пока не установленной причине произвольно закрываются, хотя управляющий сигнал выше 0В.