Форум Zentec

Программное обеспечение => Вопросы по zWorkbench => Тема начата: Max от 30 марта 2016, 09:05:25

Название: PI регулятор
Отправлено: Max от 30 марта 2016, 09:05:25
Небольшой вопрос.
У меня система работает на нагрев и на охлаждение. Соответственно 2 аналоговых выхода контроллера М100 используются один для клапана на тепло, второй для клапана на холод.
Датчик температуры по которому происходит регулирование - встроенный в панель Z033.
Реализовал проверку связи с панелью, и когда связи нет - отключаются оба PI-регулятора.
В случае с теплом все нормально - отключаю панель, регулятор обнуляется.
А вот в случае с холодом... я взял ПИ-регулятор. Из максимального значения (1023) я вычитаю значение управляющего воздействия (т.е. по сути инвертирую его). И вот в этой реализации небольшая проблемка. Когда я подключаю обратно панель то регулятор начинает "считать" с нуля. В итоге у меня на выходе появляется 10В которое постепенно уменьшается (заданная уставка выше, чем текущая температура измеряемая панелью = охлаждать не нужно). Т.е. при появлении связи с панелью в такой ситуации у меня клапан сначала откроется и будет медленно закрываться... как решить эту проблемку?
Название: Re: PI регулятор
Отправлено: mike от 30 марта 2016, 09:07:47
Цитата: Max от 30 марта 2016, 09:05:25
Небольшой вопрос.
У меня система работает на нагрев и на охлаждение. Соответственно 2 аналоговых выхода контроллера М100 используются один для клапана на тепло, второй для клапана на холод.
Датчик температуры по которому происходит регулирование - встроенный в панель Z033.
Реализовал проверку связи с панелью, и когда связи нет - отключаются оба PI-регулятора.
В случае с теплом все нормально - отключаю панель, регулятор обнуляется.
А вот в случае с холодом... я взял ПИ-регулятор. Из максимального значения (1023) я вычитаю значение управляющего воздействия (т.е. по сути инвертирую его). И вот в этой реализации небольшая проблемка. Когда я подключаю обратно панель то регулятор начинает "считать" с нуля. В итоге у меня на выходе появляется 10В которое постепенно уменьшается (заданная уставка выше, чем текущая температура измеряемая панелью = охлаждать не нужно). Т.е. при появлении связи с панелью в такой ситуации у меня клапан сначала откроется и будет медленно закрываться... как решить эту проблемку?

Поменять на входе регулятора сет и сенсор местами. И выкинуть на выходе блок сумматора.
Название: Re: PI регулятор
Отправлено: Max от 30 марта 2016, 09:13:41
Цитата: mike от 30 марта 2016, 09:07:47
Цитата: Max от 30 марта 2016, 09:05:25
Небольшой вопрос.
У меня система работает на нагрев и на охлаждение. Соответственно 2 аналоговых выхода контроллера М100 используются один для клапана на тепло, второй для клапана на холод.
Датчик температуры по которому происходит регулирование - встроенный в панель Z033.
Реализовал проверку связи с панелью, и когда связи нет - отключаются оба PI-регулятора.
В случае с теплом все нормально - отключаю панель, регулятор обнуляется.
А вот в случае с холодом... я взял ПИ-регулятор. Из максимального значения (1023) я вычитаю значение управляющего воздействия (т.е. по сути инвертирую его). И вот в этой реализации небольшая проблемка. Когда я подключаю обратно панель то регулятор начинает "считать" с нуля. В итоге у меня на выходе появляется 10В которое постепенно уменьшается (заданная уставка выше, чем текущая температура измеряемая панелью = охлаждать не нужно). Т.е. при появлении связи с панелью в такой ситуации у меня клапан сначала откроется и будет медленно закрываться... как решить эту проблемку?

Поменять на входе регулятора сет и сенсор местами. И выкинуть на выходе блок сумматора.
:(
Ладно.
Я о таком способе знаю, но почему-то не люблю. Почему сам не знаю.
Название: Re: PI регулятор
Отправлено: mike от 30 марта 2016, 09:15:40
При обрыве связи загрузить на вход min значение 1023
Название: Re: PI регулятор
Отправлено: Max от 30 марта 2016, 09:17:16
Цитата: mike от 30 марта 2016, 09:15:40
При обрыве связи загрузить на вход min значение 1023
Да, такой способ мне больше нравится :) Сейчас попробую.
Название: Re: PI регулятор
Отправлено: mike от 30 марта 2016, 09:20:31
Хотя первый самый правильный. Таким образом и происходит инверсия сигнала.
Название: Re: PI регулятор
Отправлено: serov от 30 марта 2016, 11:57:47
Будет ли когда-то ПИД- регулятор? Иногда всё-таки требуется дифференциальная составляющая. Могу конечно макрос написать, но блок оно как-то вроде лучше.
Название: Re: PI регулятор
Отправлено: Max от 30 марта 2016, 12:08:34
Цитата: serov от 30 марта 2016, 11:57:47
Будет ли когда-то ПИД- регулятор? Иногда всё-таки требуется дифференциальная составляющая. Могу конечно макрос написать, но блок оно как-то вроде лучше.
Мне на одном объекте в регулятор ГВС пришлось добавлять D составляющую...
Название: Re: PI регулятор
Отправлено: VoronovMaksim88 от 30 марта 2016, 13:05:10
Регуляторы всегда сам пишу, никому не доверяю ))
Название: Re: PI регулятор
Отправлено: ALexandr от 05 апреля 2016, 09:23:37
ПИ регулятор, как подключить?
Название: Re: PI регулятор
Отправлено: serge197a от 05 апреля 2016, 10:04:48
Вам лучше скачать рабочий пример и в нем посмотреть, что и как.
А так описание блока есть в справке.
Название: Re: PI регулятор
Отправлено: VoronovMaksim88 от 05 апреля 2016, 10:11:21
Для начала имена входов неплохо бы вывести. Выделить все входы, потом ПКМ на любом входе и поставить галку "вывод заголовка". А там глядишь всё понятно станет.
Название: Re: PI регулятор
Отправлено: angol855 от 02 января 2018, 23:54:29
Здравствуйте. Не получается корректно настроить работу PI регулятора, подскажите пожалуйста:
1) Какой функционал входа S, и в каких единицах  устанавливается время квантования, не нашел информацию в описание.
2)Нужно поддерживать температуру  в канале.  На входы регулятора подаю уставку и текущую температуру с множителем 10, устанавливаю  время квантования 1000, минимальное значение управляющего сигнала 0, максимальное 1000. Фактически независимо от задаваемого коэффициента пропорциональности на выходе регулятора скачет между максимальным  или минимальным значением при изменении сигнала относительно уставки на 1 ед.  Интегральную составляющую выставил в "0". Что-то работает неправильно, в чем причина?
Название: Re: PI регулятор
Отправлено: mike от 03 января 2018, 10:12:32
Добрый день. У вас абсолютно неправильные настройки регулятора. В качестве отправной точки предлагаю настройки: время квантования 5, dI 20, dP 30
Название: Re: PI регулятор
Отправлено: angol855 от 03 января 2018, 20:43:58
Понятно, спасибо, попробую. Касательно моего вопроса по входу регулятора S ответьте пожалуйста: какой функционал данного входа S? Как данный вход влияет на работу регулятора, для чего он предназначен?
Название: Re: PI регулятор
Отправлено: mike от 04 января 2018, 12:17:57
дайте скриншот, пожалуйста. Я не понимаю, про какой вход идет речь.
Название: Re: PI регулятор
Отправлено: angol855 от 06 января 2018, 15:35:58
Не совсем правильно видимо написал название входа. Задавал вопрос про вход PI регулятора под названием "Sync", который идет сверху первым, после него идет вход Enable и далее остальные входы.
Название: Re: PI регулятор
Отправлено: mike от 06 января 2018, 20:02:00
Это вход синхронизации.
На него нужно подавать синхроимпульсы, вырабатываемые блоком ТАЙМЕР
Название: Re: PI регулятор
Отправлено: angol855 от 23 января 2018, 10:48:02
Здравствуйте. Регулятор работает, но присутствует некоторая нестабильность в виде периодически возникающих колебаний,  которые не получается устранить.
У других производителей как правило подробно расписывается в руководстве какой алгорит реализуется программно и  как правильно настраивать регулятор. Как например: http://www.kb-agava.ru/nastroyka_pid_regulyatora_kontrollera_agava_6432_10
Напишите пожалуйста поподробнее про регулятор, и формулу по которой считает выходной сигнал регулятор для понимания как его поднастроить.
Также совсем непонятно для чего вход sync и как он влияет на регулятор. На него надо подавать синхроимпульсов с каким периодом?, как они влияют на регулятор?
Название: Re: PI регулятор
Отправлено: VoronovMaksim88 от 23 января 2018, 15:18:49
Попробуйте мой регулятор. Он простой как пень и понятный.
Если что отвечу на любой вопрос по нему.
Название: Re: PI регулятор
Отправлено: angol855 от 24 января 2018, 11:53:51
Спасибо большое, попробую. Уточните пожалуйста  по входам: "Загрузить И сост" и "фронт, 1 сек" что на них подавать?
По штатному регулятору описание dP, dI, Тqut попалось  в листе технических данных AN90118, который выложен в конференции  http://zentec.ru/forum/index.php/topic,319.15.html. Остался вопрос  по входу синхронизации на который в образцах программы подается тактовый сигнал от таймера 500 мс. Это константа или данный параметр можно менять и от этого будут меняться рабочие характеристики  регулятора?  И не понятно:  если есть уже готовые пояснения, почему их не выложить в общей справке по программе?   
Название: Re: PI регулятор
Отправлено: mike от 24 января 2018, 13:54:17
Цитата: angol855 от 24 января 2018, 11:53:51
Спасибо большое, попробую. Уточните пожалуйста  по входам: "Загрузить И сост" и "фронт, 1 сек" что на них подавать?
По штатному регулятору описание dP, dI, Тqut попалось  в листе технических данных AN90118, который выложен в конференции  http://zentec.ru/forum/index.php/topic,319.15.html. Остался вопрос  по входу синхронизации на который в образцах программы подается тактовый сигнал от таймера 500 мс. Это константа или данный параметр можно менять и от этого будут меняться рабочие характеристики  регулятора?  И не понятно:  если есть уже готовые пояснения, почему их не выложить в общей справке по программе?
Ответил по телефону
Название: Re: PI регулятор
Отправлено: VoronovMaksim88 от 24 января 2018, 15:08:53
Цитата: angol855 от 24 января 2018, 11:53:51
Спасибо большое, попробую. Уточните пожалуйста  по входам: "Загрузить И сост" и "фронт, 1 сек" что на них подавать?
По штатному регулятору описание dP, dI, Тqut попалось  в листе технических данных AN90118, который выложен в конференции  http://zentec.ru/forum/index.php/topic,319.15.html. Остался вопрос  по входу синхронизации на который в образцах программы подается тактовый сигнал от таймера 500 мс. Это константа или данный параметр можно менять и от этого будут меняться рабочие характеристики  регулятора?  И не понятно:  если есть уже готовые пояснения, почему их не выложить в общей справке по программе?
на "фронт, 1 сек" надо подавать импульсы ежесекундно.
на вход "Загрузить И сост" можно ничего не подавать.
Название: ПИ РЕГУЛЯТОР С НАЧАЛЬНЫМ ЗНАЧЕНИЕМ
Отправлено: Tyumentsev от 11 января 2023, 08:35:55
Здравствуйте. Можно ли в блок ПИ регулятора добавить вход НАЧАЛЬНОЕ ЗНАЧЕНИЕ.
Чтобы при запуске работы ПИ он не начинал поиск с нуля, а допустим с 30% или 50%.
При подаче сигнала на ENABLE в этот момент по переднему фронту записывалось значение со входа НАЧ.ЗНАЧ в интегральную переменную внутри блока.
Я сделал свой ПИД регулятор с таким входом, но думаю в штатный если добавить такой вход, то мне не нужно таскать из проекта в проект свой ПИД.
Уже не первый раз мне заказчики говорят, чтобы я сделал ПИ регулятор с начальным значением. При запуске системы, например с рекуператором, они хотят чтобы он начинал крутится с середины значения или более.
Если в уставка 24, а в канале 22, то при старте (без нач.знач) ПИ регулятор начинает с нуля, а поскольку значение рядом, то процесс очень медленный. Приходится либо делать по две уставки (быстрые и медленные) и переключать их в нужный момент либо ставить свой ПИД с начальным интегральным значением внутри.
Практика показывает для заказчика перерегулирование в морозы лучше, чем недо...
Когда они видят что регулятор крутит или кран или рекуператор, то их душа спокойна, иногда приходилось их обманывать (запускать рекуператор не смотря на низкое значение ПИ при старте, но это колхоз). В итоге сделал свой и закрыл тему для себя. Но хочется иметь штатный с таким входом.
Заказчик, часто просит дать начальное значение ПИ.
(Тем более думаю это вообще не сложно, просто по фронту записать в переменную значение и пусть с этой цифры и стартует далее).

В приложении как пример, что я имею ввиду накидал еще один ПИД с таким значением. Этот даже мне кажется лучше, там внутри стоит его собственный таймер и не нужно делать вход SYNC.
Название: Re: PI регулятор
Отправлено: mike от 23 января 2023, 13:24:50
для стандартного регулятора:
подать синхроимпульсы
подать необходимое значение на вход Umin
подать разрешающий сигнал на вход en
установить значение 0 или необходимое на входе Umin
Название: Re: PI регулятор
Отправлено: Tyumentsev от 24 января 2023, 00:18:20
Цитата: mike от 23 января 2023, 13:24:50
для стандартного регулятора:
подать синхроимпульсы
подать необходимое значение на вход Umin
подать разрешающий сигнал на вход en
установить значение 0 или необходимое на входе Umin

Да получилось. Единственное есть нюанс. Переключение с уставки на ноль (или что то там минимум) должно быть больше импульса синхронизации, иначе не успевает начать с этой уставки и начинает с нуля. Можно сделать макрос с внутренним таймером переключения и туда же в принципе и синхроимпульсы запихать. И либо счетчиком, либо триггером убедиться что импульсы пошли и затем переключать, тогда все работает.
Спасибо.
Название: Re: PI регулятор
Отправлено: Tyumentsev от 25 января 2023, 08:56:29
Вот что я имел ввиду. Внутри макроса если на счетчике поставить 1 то он начинает с нуля, если 2 и более тогда все работает как надо, начинает отсчет с заданного значения.
Все равно лучше сделать макрос конечно, но так по крайней мере этот ПИ регулятор всегда под рукой, даже если делаю что то на чужом компе, то сделать эту обвязку не проблема. Это проще чем искать как передать свой макрос. К тому же у своего ПИд свои настройки, у штатного свои. Поэтому удобнее пользоваться штатным, чтобы везде было одинаково.
Название: Re: PI регулятор
Отправлено: immer от 18 апреля 2023, 15:38:52
Можно ли добавить в стандартный ПИ регулятор мертвую зону ? У других производителей этот вход есть по умолчанию, странно что здесь его нет.
Название: Re: PI регулятор
Отправлено: mike от 21 апреля 2023, 08:47:06
Цитата: immer от 18 апреля 2023, 15:38:52
Можно ли добавить в стандартный ПИ регулятор мертвую зону ? У других производителей этот вход есть по умолчанию, странно что здесь его нет.
Используемый в ЗВБ регулятор - не является классическим ПИ
ему для корректной работы требуется непрерывная статистическая информация.
Если вам необходима зона нечувствительности, то свой собственный ПИ пишется за 30-40 минут.
Название: Re: PI регулятор
Отправлено: HvacZhukovsky от 06 декабря 2023, 17:23:18
Если у кого есть ПИД с мертвой зоной, поделитесь пожалуйста!
Я пока даже не понимаю, как это реализовать.
Попробовал со стандартным сделать так, что если значения в пределах мертвой зоны, то вместо входа текущего значения датчика ставить значение уставки. Но если уставка 20, датчик 19, а на выходе условно 30 и в этот момент поставить на вход датчика 20, то выход фиксируется на меньшем значение (в зависимости от значения П). Если потом поставить датчик 21, то выход будет больше.
Как сделать так, чтобы он встал на паузу, а после выхода за мертвую зону, начинал с этого же значения ?
Название: Re: PI регулятор
Отправлено: VladislavMorozov от 07 декабря 2023, 15:56:44
Попробуйте подойти к задаче с другой стороны — пусть регулятор удерживает значение расстояния от границ мертвой зоны с уставкой 0.
Второй вариант:
- Мертвая зона указывается в границах слева и справа от уставки (например +1 и -1)
- Значение обратной связи на вход в регулятор подавать со смещением -1 в зоне выше мертвой (например при 21.1 подавать 20.1)
- В мертвой зоне подавать значение уставки (от 19 до 21 подавать всегда 20)
- В зоне ниже мертвой подавать со смещением +1 (при 18,9 подавать 19,9)
Название: Re: PI регулятор
Отправлено: Tyumentsev от 16 марта 2024, 16:00:42
Цитата: HvacZhukovsky от 06 декабря 2023, 17:23:18Если у кого есть ПИД с мертвой зоной, поделитесь пожалуйста!
Я пока даже не понимаю, как это реализовать.
Попробовал со стандартным сделать так, что если значения в пределах мертвой зоны, то вместо входа текущего значения датчика ставить значение уставки. Но если уставка 20, датчик 19, а на выходе условно 30 и в этот момент поставить на вход датчика 20, то выход фиксируется на меньшем значение (в зависимости от значения П). Если потом поставить датчик 21, то выход будет больше.
Как сделать так, чтобы он встал на паузу, а после выхода за мертвую зону, начинал с этого же значения ?

ПИД регулятор с мертвой зоной (нечувствительности), без скачков при замирании значения в мертвой зоне. С установкой начального значения. С переключением режима из ручного в автоматический безударно, плавно начинает регулировку с установленного ручного режима. С сглаживающим фильтром выходного сигнала, чтобы не было скачков. С переключением режима нагрев-охлаждение (прямое регулирования или обратное).
На сглаживание фильтра лучше поставить значение 0.007
Параметр Д(дифференициальный) не должен быть 0. Хотя бы = 1.
Название: Re: PI регулятор
Отправлено: VladislavMorozov от 18 марта 2024, 12:10:21
А ловко вы из PI регулятора PID сделали! Что-то мне подсказывает, что Tqut "Этот параметр устанавливает скорость реакции регулятора около уставки. Чем больше значение, тем быстрее реакция регулятора при любых значениях коэффициентов dI и dP. С уменьшением значения этого параметра увеличивается общая стабилизация процесса регулирования, но ухудшается реакция на импульсное воздействие." что обсуждалось ранее в этой же теме с ссылкой на https://zentec.ru/forum/index.php?action=dlattach;attach=1436. Это немного не сходится с функцией, которую выполняет дифференциальный коэффициент в PID регуляторе.

Также не совсем понимаю логику применения фильтра на выходном сигнале регулятора. Зачем? Чтобы изменить скорость работы - используйте то же время квантования или изменяйте значение коэффициентов. Для избавления от резких рывков в процессе регулирования - фильтруйте значения сигналов с датчиков.

С самим апериодическим фильтром вы тоже намудрили: для чего вы умножаете величину изменения сигнала на само значение сигнала? А если входное значение упадет до 0, то на выходе получите значение Y, которое тоже обнулится - и никакого медленного падения выходного значения на выходе вы не получите. Где-то на просторах данного форума был прекрасный пример данного фильтра, который я в последствии "адаптировал" и себе, причем без ограничения Ain > 0.

В итоге все-таки представленный в zwb PI - это всего лишь регулятор, который начинает работать с значения 0, который получает уставку и значение обратной связи. Все что сейчас накручено вокруг него - это костыли. Наиболее грамотным решением было бы в данном случае реализовать свой простейший PI, чтобы получить возможность установить начальное значение интегральной составляющей, а мертвую зону учитывать на этапе вычисления значения ошибки.

P.S. Даже если все это работает у вас, является довольно сложным примером для новичка. Количество ссылок - мое почтение) как и большинство кода на форуме является плохим примером качественной обфускации FBD, враг не поймет.
P.P.S. Почему MUX а не IF? ¯\_(ツ)_/¯
Название: Re: PI регулятор
Отправлено: Tyumentsev от 18 марта 2024, 19:01:08
Да ранее я уже выкладывал свой ПИД регулятор с уставкой интегральной переменной, просил разработчиков Зентек добавить его в штатный, но мне показали, что можно используя штатный сделать тоже самое, что я делал в своем, типа вашего. Меня устраивает штатный регулятор. Добавил к нему немного обвеса и работает как нужно. Фильтр я взял в макросе обработки аналоговых сигналов, ничего не изобрел своего, единственное добавил ему ограничения около нуля, чтобы ерунду не выводил. Фильтр нужен чтобы выходной сигнал при быстрой реакции ПИДа не бросался кусками цифр то 500, то 490, то 520, при наличии фильтра он просто не успеет так кидаться. Если конечно настроить ПИД правильно то и без него все работает, но клиенты иногда крутят все что могут крутить и немного сгладить их ошибки считаю не лишним. Не обязательно же вникать всем как работает макрос. Если он работает хорошо, то я порой и не вникаю как он реализован.
Tqut если правильно настроить, то ведет себя хорошо. При быстром изменении сигнала датчика, он изменяет выходной сигнал в противоход, на величину уставки Tqut(Д), что в принципе в данном случае так и должно быть. Если скорость слишком большая, то и воздействие в противоход большое.
  У меня конечно есть свой классический ПИД, но в принципе и штатный хорошо работает. Поэтому и предложил еще один вариант.
Название: Re: PI регулятор
Отправлено: VladislavMorozov от 19 марта 2024, 17:29:44
Тогда и я предложу свой вариант - набросал на основе классической формулы PI.

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

Да, и блок я протестировал бегло на коленке, пока не окончательная версия!