На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

Зона нечувствительности (deadband) ПИД-регулятора

PLC, прочие контроллеры, промышленные компьютеры, операторские панели
Ответить

Автор темы
Sergey_P
здесь недавно
здесь недавно
Сообщения: 18
Зарегистрирован: 26 мар 2018, 13:36
Имя: Сергей Поминовский
Благодарил (а): 5 раз
Контактная информация:

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Sergey_P » 02 апр 2018, 12:09

Уважаемые коллеги.
Хочу прояснить для себя вопрос, как все-таки правильно должна быть реализована зона нечувствительности (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.

У кого какие мнения?
Кстати, аналогичный вопрос возникает, если применять зону НЧ к выходу регулятора.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя

Serex
эксперт
эксперт
Сообщения: 1190
Зарегистрирован: 15 авг 2011, 20:36
Имя: Пупков Сергей Викторович
Благодарил (а): 16 раз
Поблагодарили: 29 раз

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Serex » 03 апр 2018, 20:07

При наличии дифференциальной составляющей первый вариант будет давать скачки.
Во втором варианте на весь диапазон добавляется ошибка d.

Нужно что-то более элегантное. Хотя где-то достаточно зубила с молотком ))

Аватара пользователя

VADR
администратор
администратор
Сообщения: 2823
Зарегистрирован: 25 июл 2008, 06:12
Имя: Диев Александр Васильевич
Благодарил (а): 58 раз
Поблагодарили: 42 раза

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение VADR » 03 апр 2018, 22:05

А если гистерезис?
Повторное использование кода не отменяет повторного использования мозга при его повторном использовании.

Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 776
Зарегистрирован: 21 сен 2012, 21:45
Имя: Воробьев Александр
Благодарил (а): 6 раз
Поблагодарили: 65 раз
Контактная информация:

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение aranea » 03 апр 2018, 22:42

Sergey_P писал(а):
02 апр 2018, 12:09
второй вариант исключает "ступенчатость" управляющего воздействия при выходе рассоглазование из зоны НЧ, однако в этом случае мы будем держать PV не точно на задании, а со смещением, равным d.
на то она и зона нечувствительности, чтобы при нахождении PV внутри этого коридора ошибка (Е) была равна нулю и управление (OUT) не менялось
хотелось бы привести картинки из документации Шнайдера и Сименса, но не так сильно
Последний раз редактировалось aranea 04 апр 2018, 09:20, всего редактировалось 1 раз.
Изображение


Автор темы
Sergey_P
здесь недавно
здесь недавно
Сообщения: 18
Зарегистрирован: 26 мар 2018, 13:36
Имя: Сергей Поминовский
Благодарил (а): 5 раз
Контактная информация:

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Sergey_P » 04 апр 2018, 08:24

VADR писал(а):
03 апр 2018, 22:05
А если гистерезис?
Можно поподробнее, пожалуйста?
aranea писал(а):
03 апр 2018, 22:42
на то она и зона нечувствительности, чтобы при нахождении PV внутри этого коридора ошибка (Е) была равна нулю и управление (OUT) не менялось
А не может быть так, что при втором варианте регулятор будет пытаться "вывести" PV на значение SP+d или SP-d в зависимости от того, с какой стороны была PV до этого? Тогда опять возникает проблема с шумом, только уже с одной стороны от смещенной уставки. Т.е. PV будет уже "скакать" не около SP, а около SP+d (или SP-d).
aranea писал(а):
03 апр 2018, 22:42
хотелось бы привести картинки из документации Шнайлера и Сименса
Гугл сказал мне, что Siemens использует второй вариант. Подробнее - тут и в прикрепленных файлах.
По поводу Schneider ничего не нашел.
У вас нет необходимых прав для просмотра вложений в этом сообщении.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3708
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 113 раз
Поблагодарили: 197 раз

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Ryzhij » 04 апр 2018, 08:40

В зоне нечувствительности обнуляется ошибка, замирает выход на регулятор, обнуляется накопленная интегральная составляющая (т.е. для этих параметров работает кривая варианта 1), а для вычисления дифференциальной составляющей используется кривая варианта 2.
Для производной-то смещение роли не играет :ext_secret:
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр

Аватара пользователя

aranea
знаток Eplan
знаток Eplan
Сообщения: 776
Зарегистрирован: 21 сен 2012, 21:45
Имя: Воробьев Александр
Благодарил (а): 6 раз
Поблагодарили: 65 раз
Контактная информация:

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение aranea » 04 апр 2018, 08:49

PV в любом случае будет колебаться (уровень, расход и т.д.), только в случае с DB варианта №2 регулятор будет отдыхать внутри нее и не дергать регулирующий орган (РО) при допустимых минимальных отклонениях, которые то туда то сюда сами по себе, а при выходе из коридора чуть дернут и загонят PV обратно
у ШЭ в блоке PIDFF есть gain_kp - ослабление Kp внутри DB, для плавного подвода PV к SP с меньшим Kp
Изображение


VaBo
освоился
освоился
Сообщения: 269
Зарегистрирован: 21 июл 2013, 18:32
Имя: Вадим
Благодарил (а): 7 раз
Поблагодарили: 8 раз

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение VaBo » 04 апр 2018, 09:23

Ryzhij писал(а):
04 апр 2018, 08:40
В зоне нечувствительности обнуляется ошибка, замирает выход на регулятор, обнуляется накопленная интегральная составляющая...
Разве интеграл обнуляется? Ошибка обнуляется, интеграл при этом "замораживается".
Serex писал(а):
03 апр 2018, 20:07
При наличии дифференциальной составляющей первый вариант будет давать скачки.
Скачок-то будет в "правильном" направлении, м.б. и хорошо?


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3708
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 113 раз
Поблагодарили: 197 раз

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Ryzhij » 04 апр 2018, 09:40

VaBo писал(а):
04 апр 2018, 09:23
Разве интеграл обнуляется? Ошибка обнуляется, интеграл при этом "замораживается".
Если не обнулить интеграл, то возникнет эффект "прилипания" к зоне нечувствительности.
Поэтому "замораживают" выход, а интеграл обнуляют.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


VaBo
освоился
освоился
Сообщения: 269
Зарегистрирован: 21 июл 2013, 18:32
Имя: Вадим
Благодарил (а): 7 раз
Поблагодарили: 8 раз

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение VaBo » 04 апр 2018, 10:02

Получается, что при выходе из мертвой зоны придется свежеподсчитанный выход регулятора (с практически нулевой интегральной составляющей) суммировать с ранее "замороженным" выходом, и делать это до следующего входа в мертвую зону?
Если так, то лишнюю переменную надо в уме держать, с ограничением интеграла не так все просто будет.
Я не встречал такого решения.


Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 3708
Зарегистрирован: 07 окт 2011, 08:12
Имя: Гаско Вячеслав Эриевич
Откуда: Рязань, Россия
Благодарил (а): 113 раз
Поблагодарили: 197 раз

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Ryzhij » 04 апр 2018, 10:26

"В уме" ничего держать не надо - просто в в "мёртвой зоне" кагбэ включается треккинг. Это ж стандартный режим для любого регулятора.
Вы же не держите ничего "в уме" при переходе с автомата в ручной и обратно?
Тем не менее, вполне себе безударно переключаемся благодаря обнулению интеграла во время треккинга.
"Кагбэ включается" потому, что при реальном треккинге не только обнуляется интеграл, но и SP приравнивается к PV.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может». Жан-Поль Сартр


Автор темы
Sergey_P
здесь недавно
здесь недавно
Сообщения: 18
Зарегистрирован: 26 мар 2018, 13:36
Имя: Сергей Поминовский
Благодарил (а): 5 раз
Контактная информация:

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Sergey_P » 04 апр 2018, 15:24

Когда-то я реализовывал ПИ-регулятор на Си. Вместо того, чтобы накапливать интегральную сумму, я просто на каждом цикле вычислял приращение управляющего сигнала, которое прибавлялось к текущему значению.
Если рассогласование равно нулю, то приращение тоже равно нулю и, соответственно, выход регулятора не меняется.
Это позволяет избежать всех проблем, связанных с безударным переключением при переключении в ручной режим и обратно. При переходе из ручного режима, регулирование продолжается с того значения управляющего сигнала, которое было установлено вручную.
Тогда я не уделял внимания зоне нечувствительности.
В общем я пока больше склоняюсь к первому варианту зоны НЧ. Надо будет поэкспериментировать.

Аватара пользователя

Looker
не первый раз у нас
не первый раз у нас
Сообщения: 385
Зарегистрирован: 09 фев 2011, 11:32
Имя: Дитрих Евгений Линусович
Откуда: Донецк
Благодарил (а): 61 раз
Поблагодарили: 23 раза

Зона нечувствительности (deadband) ПИД-регулятора

Сообщение Looker » 04 апр 2018, 18:42

aranea писал(а):
03 апр 2018, 22:42
хотелось бы привести картинки из документации Шнайдера и Сименса, но не так сильно
Не картинка, и не из Шнайдера и Сименса, от 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
VaBo писал(а):
04 апр 2018, 09:23
Разве интеграл обнуляется? Ошибка обнуляется, интеграл при этом "замораживается".
Добавлю к:
Ryzhij писал(а):
04 апр 2018, 09:40
Если не обнулить интеграл, то возникнет эффект "прилипания" к зоне нечувствительности.Поэтому "замораживают" выход, а интеграл обнуляют.
Первична ошибка, интегральная часть следствие и при ошибке "0" => интегральная часть тоже "0". Deadband как бы расширяет этот "0" ошибки на заданные границы. Чистый "0", может быть только у математиков. А, мы работаем в реальном мире (шумы, помехи, погрешности...).

Отправлено спустя 5 минут 49 секунд:
Sergey_P писал(а):
04 апр 2018, 15:24
Когда-то я реализовывал ПИ-регулятор на Си. Вместо того, чтобы накапливать интегральную сумму, я просто на каждом цикле вычислял приращение управляющего сигнала, которое прибавлялось к текущему значению.
Это просто метод реализации, позволяет не хранить много прошлых отсчетов (для I) и часто его называют скоростным, у Изермана это все красиво описано.
__________________________
Не надо сравнивать стоимость технических средств - сравнивайте стоимость решения.

Ответить

Вернуться в «Средний уровень автоматизации»