PDA

Просмотр полной версии : ПИД регулятор и управление типа открыто/закрыто



JohnV
05.03.2018, 16:06
Здравствуйте всем. Собрал программку для пр200. На управление клапаном 0-10В. Но тут неожиданно заказчик приносит привод открыто/закрыто или трёхпозиционное регулирование 230В. Как можно настроить регулятор под данный тип?
Я пока вижу вариант на каждый измененный процент мощности посылать команды со сбросом допустим на таймер. Задав в таймере время выдержки каждого процента. Зная чётко полное время открывания/закрывания привода.
п.с. ой кажется я поспешил. Уже ж есть готовый макрос))

ASo
05.03.2018, 16:14
Как будете устранять накапливающуюся погрешность привода?

JohnV
05.03.2018, 16:20
Как будете устранять накапливающуюся погрешность привода?
с таким не сталкивался так как обычно использовал готовые контроллеры для данных задач.
А что это такое можете объяснить?

ASo
05.03.2018, 16:22
То, что после некоторого количества движений туда-сюда реальное положение привода будет отличаться от значения на выходе ПИД.

JohnV
05.03.2018, 16:24
То, что после некоторого количества движений туда-сюда реальное положение привода будет отличаться от значения на выходе ПИД.
это вы про мой метод решения? я да понял что не правильный.
А если готовый макрос взять Двухпозиционный регулятор в онлайн базе...

melky
05.03.2018, 16:25
после каждого полного закрытия/открытия отсчитывать проценты заново, вот если полных открытий/закрытий нет или очень редки тогда их надо создать, например суточные.

JohnV
05.03.2018, 16:36
Я вот немного не пойму на счет готового регулятора с онлайн базы. Почему выставив на текущей и установочной температуре одинаковые значения он все равно пытается открыть или закрыть?
Допустим у меня сравнялась уставка с реальным значением..

Ревака Юрий
05.03.2018, 17:37
Я вот немного не пойму на счет готового регулятора с онлайн базы. Почему выставив на текущей и установочной температуре одинаковые значения он все равно пытается открыть или закрыть?
Допустим у меня сравнялась уставка с реальным значением..

О каком готовом идет речь? Посмотрите в этой теме http://www.owen.ru/forum/showthread.php?t=25068&page=11

Keldish
05.03.2018, 18:30
Извините, можно я сюда влезу?

в плане общего развития
а если так - выход с PID регулятора от 0 до 10 при значении более 6 открываем, при значении менее 4 закрываем, в пределах этих значений привод не трогаем
чем это грозит и что с этим не так.

мне кажется он стабилизируется

RX9COZ
05.03.2018, 18:32
У меня была подобная потребность в ПИД-регуляторе клапаном КЗР для горячего водоснабжения, система очень динамичная. Использовал ДВА PID-регулятора, на каждый канал на открыть и закрыть свой.

RX9COZ
05.03.2018, 18:40
Извините, можно я сюда влезу?

в плане общего развития
а если так - выход с PID регулятора от 0 до 10 при значении более 6 открываем, при значении менее 4 закрываем, в пределах этих значений привод не трогаем
чем это грозит и что с этим не так.

мне кажется он стабилизируется

Так тоже не получится. Представим, у вас рассогласование небольшое будет, что привод будет делать ? Я уже всякие разные способы перепробовал. Для просто отопления есть макрос fiu_kzr вроде, кто-то из форумчан делал, но для ГВС он не очень подходит.

Keldish
05.03.2018, 18:47
небольшие рассогласования оставляем без внимания пока не накопятся

JohnV
05.03.2018, 19:35
У меня была подобная потребность в ПИД-регуляторе клапаном КЗР для горячего водоснабжения, система очень динамичная. Использовал ДВА PID-регулятора, на каждый канал на открыть и закрыть свой.
а на каком проценте клапан открывался закрывался? или как это было реализовано?

RX9COZ
05.03.2018, 19:49
а на каком проценте клапан открывался закрывался? или как это было реализовано?

Нинакаком. ПИД-регуляторы работали совместно с макросом от rovki "Вектор изменения величины (Vip)", есть в онлайн базе, но слегка модифицированный, т.к. не дружил с ПИД-регулятором, у которого выход изменялся не линейно. Но суть будет понятна. Если начала расти мощность другого ПИД-регулятора, а предыдущего падала, то переключаемся на работу на тот ПИД регулятор, который "растёт", как-то так. Ну с проходом через ШИМ конечно-же.

JohnV
05.03.2018, 19:52
Нинакаком. ПИД-регуляторы работали совместно с макросом от rovki "Вектор изменения величины (Vip)", есть в онлайн базе, но слегка модифицированный, т.к. не дружил с ПИД-регулятором, у которого выход изменялся не линейно. Но суть будет понятна. Если начала расти мощность другого ПИД-регулятора, а предыдущего падала, то переключаемся на работу на тот ПИД регулятор, который "растёт", как-то так. Ну с проходом через ШИМ конечно-же.
сложно всё сразу понять)) щас буду пробовать имитировать. а готового нет решения?
Сейчас попробовал и понял зачем вам два комплекта на открытие и закрытие)
а что нужно сделать чтобы Vip начал дружить с ПИД при резком изменении величины?

RX9COZ
05.03.2018, 20:41
Для начала надо определиться, чем клапан будет управлять, это отопление, пар, ГВС, ещё там что ? Может ПИД-регулятор вовсе ненужен.

JohnV
05.03.2018, 20:51
Для начала надо определиться, чем клапан будет управлять, это отопление, пар, ГВС, ещё там что ? Может ПИД-регулятор вовсе ненужен.

задача следующая, есть контур отопления. Нужно поддерживать между подачей и обраткой дельту в 20 градусов. Всё просто)

JohnV
05.03.2018, 20:53
кажется я нашёл то что искал спасибо авторам. Сейчас проверяю вроде что надо.

RX9COZ
05.03.2018, 21:09
Я не стал использовать ПИД для отопления, это как из пушки по воробьям. Взял за основу имеющийся на форуме макрос FIU_KZR и чутка дополнил его.

SP - уставка
PV - измереное
dT - зона нечувствительности, градусы допустим
pause - время паузы, в мс, между сигналами на открытие/закрытие, у меня лучше всего работало при тех значениях, что в проекте, при 180-секундном КЗР
EN - разрешение работы.

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

JohnV
05.03.2018, 21:12
Я не стал использовать ПИД для отопления, это как из пушки по воробьям. Взял за основу имеющийся на форуме макрос FIU_KZR и чутка дополнил его.

SP - уставка
PV - измереное
dT - зона нечувствительности, градусы допустим
pause - время паузы, в мс, между сигналами на открытие/закрытие, у меня лучше всего работало при тех значениях, что в проекте, при 180-секундном КЗР
EN - разрешение работы.

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

спасиб большое! сейчас проверю. А на днях на объекте))
Ещё раз спасибо!!)

Dallas
04.04.2018, 21:41
Хочу реализовать следующий алгоритм управления трехточечным ИМ для отопления или охлаждения.
Будет работать, как думаете?

Какой регулятор при этом получается в теории?

Входы:

E - разрешение на работу блока
Ts - заданная температура
Ti - измеренная температура
Kp - коэффициент пропорциональности
Ta - время дискретизации (период расчета управляющего воздействия)
Tm - время полного открытия исполнительного механизма (120 с по умолчанию)
Te- зона нечувствительности С, 2 С по умолчанию, 1 С вверх от зад значения и 1 С вниз от задания

Выходы блока
Y - виртуальное положение исполнительного механизма (0-100%)
Up - команда на открытие ИМ, сек
Down команда на закрытие ИМ, сек


Алгоритм

1. Если Разрешение на работу =1, то включаем регулятор, иначе все выходы 0
Если регулятор работал, и пришла команда на отключение то ИМ должен закрыться с импульсом Tm +20 c


2. Закрытие ИМ (для определения положения ИМ). Подача сигнала на выход Down длинной Tm +20 c (для гарантированного закрытия)


3. Вычисление сигнала рассогласования e=Ts-Ti

4. Если Ts больше Ti, то Флаг открытия = 1, иначе 0

5. Если е меньше зоны нечувствительности, то ничего не делаем,, т.е. Y= Y на пред шаге Иначе

6. Вычисляем прирост управляющего воздействия dy =Kp*e

7. Y=Y на пред. шаге + dy

8. Вычисление длительности импульса ИМ Ty=dy*Tm/100 , минимальная длина импульса 1 с

9. Если Флаг открытия =1 то подача импульса на выход Up длительностью Ty
иначе подача импульса на выход Down длительностью Ty

10. Выполнение следующего воздействия в п.3 через Ta, c по умолчанию 60 с

m_kazancev@mail.ru
05.04.2018, 08:28
кажется я нашёл то что искал спасибо авторам. Сейчас проверяю вроде что надо.

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

Игорюня
05.04.2018, 10:27
может это понравится?36453

anthrwpos
07.04.2018, 20:38
Пару раз видел тут выкладывали макрос "Клапан" для этой цели.
Вот мой на ту-же тему. На вход подается прям выход ПИД, на выходе - управляющие воздействия на клапан.
Сам макрос (https://github.com/anthrwpos1/macros/raw/master/VLV%5BfLIMIT%5D.tpl)
Макрос VLV
Управление клапанами.
Входы
STP - шаг управления в секундах
PER - период управления в секундах
T_F - время полного хода клапана
TGT - требуемая позиция клапана (от 0 до 1)
Выходы
Q+ - выход открытия
Q- - выход закрытия
CUR - текущее положение (счетчик)
если входящее значение TGT ниже нуля или выше единицы - на клапан подается дополнительное воздействие для доводки его до крайнего положения (концевика).
Для работы этой фичи, не следует ограничивать подаваемое воздействие интервалом [0...1]

m_kazancev@mail.ru
12.04.2018, 10:59
Пару раз видел тут выкладывали макрос "Клапан" для этой цели.
Вот мой на ту-же тему. На вход подается прям выход ПИД, на выходе - управляющие воздействия на клапан.
Сам макрос (https://github.com/anthrwpos1/macros/raw/master/VLV%5BfLIMIT%5D.tpl)
Макрос VLV
Управление клапанами.
Входы
STP - шаг управления в секундах
PER - период управления в секундах
T_F - время полного хода клапана
TGT - требуемая позиция клапана (от 0 до 1)
Выходы
Q+ - выход открытия
Q- - выход закрытия
CUR - текущее положение (счетчик)
если входящее значение TGT ниже нуля или выше единицы - на клапан подается дополнительное воздействие для доводки его до крайнего положения (концевика).
Для работы этой фичи, не следует ограничивать подаваемое воздействие интервалом [0...1]
1. т.е. выход стандартного PID (PWR) из библиотеки ОЛ, подаем на вход STP?
2. что значит требуемая позиция клапана? она при настройки объекта задается вручную (один раз)?
3. кто-нибудь может подробно описать что такое выход PWR-выходная мощность?

anthrwpos
23.04.2018, 10:23
1. т.е. выход стандартного PID (PWR) из библиотеки ОЛ, подаем на вход STP?
2. что значит требуемая позиция клапана? она при настройки объекта задается вручную (один раз)?
3. кто-нибудь может подробно описать что такое выход PWR-выходная мощность?
Выход с ПИД подается как раз на TGT.
STP - это квант времени включения клапана. Алгоритм двигает клапаном пропорционально этому времени.

Sp[ai]der
22.10.2018, 20:05
Здравствуйте!
Делаю на ПР200 регуляторы контуров в ИТП. Клапана трёхпозиционные (команды открыть, закрыть)
Использую макрос KZR (управление дискретной задвижкой версия 1, из работы с выходами) вместе с ПИД-регулятором из библиотеки. Всё более менее нормально, но когда температура выше задания клапан просто выдаёт постоянную команду на закрывание, не щелчками постепенно, а постоянно, пока температура не опустится ниже задания. В сторону увеличения он открывает клапан как положено щелчками... В чём может быть дело? Почему так по разному ведёт себя на открытие и закрытие?
Или взять не обрезанный полный макрос управления KZR_DO_Sel из вентиляции?

Сергей0308
22.10.2018, 22:22
der;290498']Здравствуйте!
Делаю на ПР200 регуляторы контуров в ИТП. Клапана трёхпозиционные (команды открыть, закрыть)
Использую макрос KZR (управление дискретной задвижкой версия 1, из работы с выходами) вместе с ПИД-регулятором из библиотеки. Всё более менее нормально, но когда температура выше задания клапан просто выдаёт постоянную команду на закрывание, не щелчками постепенно, а постоянно, пока температура не опустится ниже задания. В сторону увеличения он открывает клапан как положено щелчками... В чём может быть дело? Почему так по разному ведёт себя на открытие и закрытие?
Или взять не обрезанный полный макрос управления KZR_DO_Sel из вентиляции?

Вот если интересно регулятор делал для поддержания уровня воды! У Вас, если правильно понял, главная проблема в перерегулировании, так вот мой регулятор как раз не даёт сильно перерегулировать, пусть, в случае резкого сильного возмущения, значение дольше будет до уставки добираться, зато без большого перерегулирования, ну и ресурс клапанов бережётся!

39400

Без датчика положения, команды: открыть, закрыть.

Да совсем забыл сказать, там ещё при изменении направления вращения электропривода(направления хода регулятора) добавляется в длительность первого импульса время выборки люфта, если он есть, что компенсирует люфт исполнительного механизма!

liga_blunt
22.10.2018, 23:17
Файлик во вложении не открывается

Сергей0308
22.10.2018, 23:31
Файлик во вложении не открывается

Если это на мой счёт: обновите ОЛ до последней версии на данный момент!


39401

liga_blunt
22.10.2018, 23:41
У меня вот что стоит39402
Да с последней работает

Сергей0308
22.10.2018, 23:49
У меня вот что стоит39402

Ну не знаю, тогда, наверно, откатите до последней актуальной версии, у Вас наверно какая-то бета версия стоит?! Та версия ОЛ, что у меня всё прекрасно открывает!

liga_blunt
22.10.2018, 23:50
Спасибо откатил

Sp[ai]der
23.10.2018, 06:45
Вот если интересно регулятор делал для поддержания уровня воды! У Вас, если правильно понял, главная проблема в перерегулировании, так вот мой регулятор как раз не даёт сильно перерегулировать, пусть, в случае резкого сильного возмущения, значение дольше будет до уставки добираться, зато без большого перерегулирования, ну и ресурс клапанов бережётся!

39400

Без датчика положения, команды: открыть, закрыть.

Да совсем забыл сказать, там ещё при изменении направления вращения электропривода(направления хода регулятора) добавляется в длительность первого импульса время выборки люфта, если он есть, что компенсирует люфт исполнительного механизма!

Проблема, да, в перерегулировании вниз. Вверх то как раз все нормально.

amandra
25.10.2018, 11:23
выход регулятора подаем на ШИМ, у которого два выхода: больше, меньше

Sp[ai]der
13.11.2018, 19:54
Я же говорю про конкретный макрос. И он так регулирует странно - вопрос почему?

Alevlaka
27.07.2023, 10:06
кажется я нашёл то что искал спасибо авторам. Сейчас проверяю вроде что надо.

Здравствуйте. Извиняюсь. Где вы это нашли? Где взять описание работы и что в каких диапазонах и единицах задается?

bayk
30.07.2023, 23:01
Вот если интересно регулятор делал для поддержания уровня воды! У Вас, если правильно понял, главная проблема в перерегулировании, так вот мой регулятор как раз не даёт сильно перерегулировать, пусть, в случае резкого сильного возмущения, значение дольше будет до уставки добираться, зато без большого перерегулирования, ну и ресурс клапанов бережётся!

39400

Без датчика положения, команды: открыть, закрыть.

Да совсем забыл сказать, там ещё при изменении направления вращения электропривода(направления хода регулятора) добавляется в длительность первого импульса время выборки люфта, если он есть, что компенсирует люфт исполнительного механизма!

О! Я смотрю из закромов чудесный регулятор ты достал!!! Как он меня тогда выручил.

Keldish
04.08.2023, 14:21
почитайте всю тему там как раз про отопление

https://owen.ru/forum/showthread.php?t=34012