- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Зона нечувствительности (deadband) ПИД-регулятора
-
- здесь недавно
- Сообщения: 63
- Зарегистрирован: 26 мар 2018, 13:36
- Имя: Сергей Поминовский
- Страна: Украина
- город/регион: Киев
- Благодарил (а): 13 раз
- Поблагодарили: 17 раз
Зона нечувствительности (deadband) ПИД-регулятора
Уважаемые коллеги.
Хочу прояснить для себя вопрос, как все-таки правильно должна быть реализована зона нечувствительности (deadband) в ПИД-регуляторе.
В данном случае имеется в виду вход регулятора, т.е. сигнал рассогласования.
Насколько я понимаю, возможны два варианта (см. рисунок):
1) Если |SP-PV| < d, то e = 0, иначе e = SP-PV
2) Если |SP-PV| < d, то e = 0,
если (SP-PV) < 0, то e = SP-PV+d,
если (SP-PV) > 0, то e = SP-PV-d.
d - половина зоны нечувствительности
e - вход регулятора
SP - задание
PV - измеренное значение
Вроде-бы второй вариант исключает "ступенчатость" управляющего воздействия при выходе рассоглазование из зоны НЧ, однако в этом случае мы будем держать PV не точно на задании, а со смещением, равным d.
У кого какие мнения?
Кстати, аналогичный вопрос возникает, если применять зону НЧ к выходу регулятора.
Хочу прояснить для себя вопрос, как все-таки правильно должна быть реализована зона нечувствительности (deadband) в ПИД-регуляторе.
В данном случае имеется в виду вход регулятора, т.е. сигнал рассогласования.
Насколько я понимаю, возможны два варианта (см. рисунок):
1) Если |SP-PV| < d, то e = 0, иначе e = SP-PV
2) Если |SP-PV| < d, то e = 0,
если (SP-PV) < 0, то e = SP-PV+d,
если (SP-PV) > 0, то e = SP-PV-d.
d - половина зоны нечувствительности
e - вход регулятора
SP - задание
PV - измеренное значение
Вроде-бы второй вариант исключает "ступенчатость" управляющего воздействия при выходе рассоглазование из зоны НЧ, однако в этом случае мы будем держать PV не точно на задании, а со смещением, равным d.
У кого какие мнения?
Кстати, аналогичный вопрос возникает, если применять зону НЧ к выходу регулятора.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- эксперт
- Сообщения: 2085
- Зарегистрирован: 15 авг 2011, 21:36
- Имя: Пупков Сергей Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 134 раза
- Поблагодарили: 174 раза
Зона нечувствительности (deadband) ПИД-регулятора
При наличии дифференциальной составляющей первый вариант будет давать скачки.
Во втором варианте на весь диапазон добавляется ошибка d.
Нужно что-то более элегантное. Хотя где-то достаточно зубила с молотком ))
Во втором варианте на весь диапазон добавляется ошибка d.
Нужно что-то более элегантное. Хотя где-то достаточно зубила с молотком ))
-
- администратор
- Сообщения: 4727
- Зарегистрирован: 25 июл 2008, 07:12
- Имя: Диев Александр Васильевич
- Страна: Россия
- город/регион: г. Сегежа, Карелия
- Благодарил (а): 225 раз
- Поблагодарили: 392 раза
Зона нечувствительности (deadband) ПИД-регулятора
А если гистерезис?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
Зона нечувствительности (deadband) ПИД-регулятора
на то она и зона нечувствительности, чтобы при нахождении PV внутри этого коридора ошибка (Е) была равна нулю и управление (OUT) не менялось
хотелось бы привести картинки из документации Шнайдера и Сименса, но не так сильно
Последний раз редактировалось aranea 04 апр 2018, 09:20, всего редактировалось 1 раз.
-
- здесь недавно
- Сообщения: 63
- Зарегистрирован: 26 мар 2018, 13:36
- Имя: Сергей Поминовский
- Страна: Украина
- город/регион: Киев
- Благодарил (а): 13 раз
- Поблагодарили: 17 раз
Зона нечувствительности (deadband) ПИД-регулятора
Можно поподробнее, пожалуйста?
А не может быть так, что при втором варианте регулятор будет пытаться "вывести" PV на значение SP+d или SP-d в зависимости от того, с какой стороны была PV до этого? Тогда опять возникает проблема с шумом, только уже с одной стороны от смещенной уставки. Т.е. PV будет уже "скакать" не около SP, а около SP+d (или SP-d).
Гугл сказал мне, что Siemens использует второй вариант. Подробнее - тут и в прикрепленных файлах.
По поводу Schneider ничего не нашел.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- почётный участник форума
- Сообщения: 5632
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 600 раз
- Поблагодарили: 756 раз
Зона нечувствительности (deadband) ПИД-регулятора
В зоне нечувствительности обнуляется ошибка, замирает выход на регулятор, обнуляется накопленная интегральная составляющая (т.е. для этих параметров работает кривая варианта 1), а для вычисления дифференциальной составляющей используется кривая варианта 2.
Для производной-то смещение роли не играет
Для производной-то смещение роли не играет
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
Зона нечувствительности (deadband) ПИД-регулятора
PV в любом случае будет колебаться (уровень, расход и т.д.), только в случае с DB варианта №2 регулятор будет отдыхать внутри нее и не дергать регулирующий орган (РО) при допустимых минимальных отклонениях, которые то туда то сюда сами по себе, а при выходе из коридора чуть дернут и загонят PV обратно
у ШЭ в блоке PIDFF есть gain_kp - ослабление Kp внутри DB, для плавного подвода PV к SP с меньшим Kp
у ШЭ в блоке PIDFF есть gain_kp - ослабление Kp внутри DB, для плавного подвода PV к SP с меньшим Kp
-
- частый гость
- Сообщения: 441
- Зарегистрирован: 21 июл 2013, 19:32
- Имя: Вадим
- город/регион: Северодвинск
- Благодарил (а): 15 раз
- Поблагодарили: 39 раз
Зона нечувствительности (deadband) ПИД-регулятора
Разве интеграл обнуляется? Ошибка обнуляется, интеграл при этом "замораживается".
Скачок-то будет в "правильном" направлении, м.б. и хорошо?
-
- почётный участник форума
- Сообщения: 5632
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 600 раз
- Поблагодарили: 756 раз
Зона нечувствительности (deadband) ПИД-регулятора
Если не обнулить интеграл, то возникнет эффект "прилипания" к зоне нечувствительности.
Поэтому "замораживают" выход, а интеграл обнуляют.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- частый гость
- Сообщения: 441
- Зарегистрирован: 21 июл 2013, 19:32
- Имя: Вадим
- город/регион: Северодвинск
- Благодарил (а): 15 раз
- Поблагодарили: 39 раз
Зона нечувствительности (deadband) ПИД-регулятора
Получается, что при выходе из мертвой зоны придется свежеподсчитанный выход регулятора (с практически нулевой интегральной составляющей) суммировать с ранее "замороженным" выходом, и делать это до следующего входа в мертвую зону?
Если так, то лишнюю переменную надо в уме держать, с ограничением интеграла не так все просто будет.
Я не встречал такого решения.
Если так, то лишнюю переменную надо в уме держать, с ограничением интеграла не так все просто будет.
Я не встречал такого решения.
-
- почётный участник форума
- Сообщения: 5632
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 600 раз
- Поблагодарили: 756 раз
Зона нечувствительности (deadband) ПИД-регулятора
"В уме" ничего держать не надо - просто в в "мёртвой зоне" кагбэ включается треккинг. Это ж стандартный режим для любого регулятора.
Вы же не держите ничего "в уме" при переходе с автомата в ручной и обратно?
Тем не менее, вполне себе безударно переключаемся благодаря обнулению интеграла во время треккинга.
"Кагбэ включается" потому, что при реальном треккинге не только обнуляется интеграл, но и SP приравнивается к PV.
Вы же не держите ничего "в уме" при переходе с автомата в ручной и обратно?
Тем не менее, вполне себе безударно переключаемся благодаря обнулению интеграла во время треккинга.
"Кагбэ включается" потому, что при реальном треккинге не только обнуляется интеграл, но и SP приравнивается к PV.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- здесь недавно
- Сообщения: 63
- Зарегистрирован: 26 мар 2018, 13:36
- Имя: Сергей Поминовский
- Страна: Украина
- город/регион: Киев
- Благодарил (а): 13 раз
- Поблагодарили: 17 раз
Зона нечувствительности (deadband) ПИД-регулятора
Когда-то я реализовывал ПИ-регулятор на Си. Вместо того, чтобы накапливать интегральную сумму, я просто на каждом цикле вычислял приращение управляющего сигнала, которое прибавлялось к текущему значению.
Если рассогласование равно нулю, то приращение тоже равно нулю и, соответственно, выход регулятора не меняется.
Это позволяет избежать всех проблем, связанных с безударным переключением при переключении в ручной режим и обратно. При переходе из ручного режима, регулирование продолжается с того значения управляющего сигнала, которое было установлено вручную.
Тогда я не уделял внимания зоне нечувствительности.
В общем я пока больше склоняюсь к первому варианту зоны НЧ. Надо будет поэкспериментировать.
Если рассогласование равно нулю, то приращение тоже равно нулю и, соответственно, выход регулятора не меняется.
Это позволяет избежать всех проблем, связанных с безударным переключением при переключении в ручной режим и обратно. При переходе из ручного режима, регулирование продолжается с того значения управляющего сигнала, которое было установлено вручную.
Тогда я не уделял внимания зоне нечувствительности.
В общем я пока больше склоняюсь к первому варианту зоны НЧ. Надо будет поэкспериментировать.
-
- эксперт
- Сообщения: 1109
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 321 раз
- Поблагодарили: 218 раз
Зона нечувствительности (deadband) ПИД-регулятора
Не картинка, и не из Шнайдера и Сименса, от Rockwell:
Help RSLogix 5K (PIDE) писал(а):Входы:
- ZCDeadband REAL Zero crossing deadband range, scaled in PV units. Defines the zero crossing deadband range. Enter 0 to disable the zero crossing deadband checking. If ZCDeadband < 0, the instruction sets the appropriate bit in Status and disables zero crossing deadband checking.
Выход:
- ZCOff BOOL Zero crossing disable request. Set to disable zero crossing for the deadband calculation
- ZCDeadbandOn BOOL Zero crossing deadband indicator. When set the value of CV does not change. If ZCOff is set, then ZCDeadbandOn is set when | E | is within the ZCDeadband range. If ZCOff is cleared, then ZCDeadbandOn is set when | E | crosses zero and remains within the ZCDeadband range. ZCDeadbandOn is cleared when | E | exceeds the deadband range or when ZCDeadband = 0
Добавлю к:
Первична ошибка, интегральная часть следствие и при ошибке "0" => интегральная часть тоже "0". Deadband как бы расширяет этот "0" ошибки на заданные границы. Чистый "0", может быть только у математиков. А, мы работаем в реальном мире (шумы, помехи, погрешности...).
Отправлено спустя 5 минут 49 секунд:
Это просто метод реализации, позволяет не хранить много прошлых отсчетов (для I) и часто его называют скоростным, у Изермана это все красиво описано.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу