Цитата Сообщение от FPavel Посмотреть сообщение
Температурой ГВС, которое после теплообменника сразу идёт к потребителю очень трудно управлять - сильные возмущения от потребителей приводят к резким открытиям и закрытиям регулирующего клапана и нестабильной температуре.

Если потребителю вода подаётся из накопителя (бойлера), а также вода из бойлера вместе с подпиткой циркулирует через теплообменники, то регулирование становится проще.
И тут подойдёт ПИД регулятор.

В ТРМ32 реализован какой-то регулятор, отдалённо напоминающий ПИД. В описании нет ответа на вопрос - длительность импульса D пересчитывается на каждом шаге или же суммируется со значением на предыдущем шаге (т.е. учитывается, что D было больше 6 с и разница переходит на следующий шаг).

Попробуйте мой, проверенный на отоплении с приводом на 60 секунд полного хода
https://owen.ru/forum/showthread.php...l=1#post430251
или его исправленную, но не проверенную на объекте версию
https://owen.ru/forum/showthread.php...l=1#post430297

Также в этой теме о ПИД регуляторах несколько версий превращения ПИД в ШИМ регулятор, т.е. в подобие ТРМ32. Они почти все основаны на макросе БУСП.

Могу попробовать воспроизвести в макросе ТРМ32, но без отладки на реальном объекте это пустая трата времени. Днём в рабочее время я не могу отвлекаться на посторонние задачи, а отладка по скринам по вечерам может излишне затянуться.


Добавляю регулятор A_La_TRM32_ в примере.
В названиях входов присутствуют соответствующие имена параметров из ТРМ32.
Думаю, что в ТРМ32 коэффициент Кп делится на 100, иначе по формуле получается полное заполнение времени пересчёта при рассогласовании всего 3 градуса и Кп=0001.
Поэтому внутри макроса разделил параметр на 100.
Может быть и дифференциальный коэффициент нужно разделить, но не стал с ним разбираться.
Проверил ваш регулятор, работает довольно неплохо, но нужно тщательно подбирать коэффициенты. Не совсем понял для чего там нужно указывать время полного хода, т.к. привязки к диапазону там нет. Но в целом настроить получилось и регулятор сейчас нормально функционирует на объекте. Спасибо. (использовал первый регулятор, не тот, который A_la_trm32. Его тоже попробую как-нибудь, но пока проблема решена). Спасибо.