1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

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

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

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

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

Сообщение Sergey_P »

Уважаемые коллеги.
Хочу прояснить для себя вопрос, как все-таки правильно должна быть реализована зона нечувствительности (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
эксперт
эксперт
Сообщения: 2085
Зарегистрирован: 15 авг 2011, 21:36
Имя: Пупков Сергей Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 101 раз
Поблагодарили: 132 раза

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

Сообщение Serex »

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

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

VADR
администратор
администратор
Сообщения: 4711
Зарегистрирован: 25 июл 2008, 07:12
Имя: Диев Александр Васильевич
Страна: Россия
город/регион: г. Сегежа, Карелия
Благодарил (а): 192 раза
Поблагодарили: 336 раз

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

Сообщение VADR »

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

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

Сообщение aranea »

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

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

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

Сообщение Sergey_P »

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
почётный участник форума
почётный участник форума
Сообщения: 5620
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

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

Сообщение Ryzhij »

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

aranea
знаток Eplan
знаток Eplan
Сообщения: 1136
Зарегистрирован: 21 сен 2012, 22:45
Имя: aranea
Благодарил (а): 27 раз
Поблагодарили: 155 раз

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

Сообщение aranea »

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

VaBo
частый гость
частый гость
Сообщения: 441
Зарегистрирован: 21 июл 2013, 19:32
Имя: Вадим
город/регион: Северодвинск
Благодарил (а): 12 раз
Поблагодарили: 38 раз

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

Сообщение VaBo »

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

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

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

Сообщение Ryzhij »

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

VaBo
частый гость
частый гость
Сообщения: 441
Зарегистрирован: 21 июл 2013, 19:32
Имя: Вадим
город/регион: Северодвинск
Благодарил (а): 12 раз
Поблагодарили: 38 раз

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

Сообщение VaBo »

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

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

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

Сообщение Ryzhij »

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

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

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

Сообщение Sergey_P »

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

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

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

Сообщение Looker »

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) и часто его называют скоростным, у Изермана это все красиво описано.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Ответить

Вернуться в «Средний уровень автоматизации (управляющий)»