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

Реализация ПИД-алгоритма на ПЛК

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

Автор темы
Frol
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 27 ноя 2015, 13:45
Имя: Кривелев Фрол Сергеевич
Страна: Россия
город/регион: Пермь

Реализация ПИД-алгоритма на ПЛК

Сообщение Frol »

Добрый день!
Работаем с контроллером ПЛК-84.М2. Прикладное ПО разрабатывается в среде IsaGRAF. Потребовалось реализовать ПИД-регулирование на данном контроллере. Готовой библиотеки ПИД-регулирования для данного ПЛК нет.
В IsaGRAF существует блок PIDA, который воспринимается контроллером SCADAPack (SP), но ПЛК-84.М2 его не поддерживает. Мы написали алгоритм ПИ-регулятора для ПЛК-84.М2 и сравниваем его работу с блоком PIDA на SP. Пока что пытаемся правильно реализовать только ПИ-регулятор.
Объект управления (ОУ) представлен в виде мат. модели (инерционное звено первого порядка+звено запаздывания) в среде MatLab Simulink. Через OPC-сервер Matlab подтягивает с обоих контроллеров управляющее воздействие (в нашем случае - % открытия клапана) и возвращает на контроллеры текущее значение физ. величины.
Мат. модель ОУ взята с реального объекта (поддержание давления в кПа). Коэффициенты Кп=14,5 и Ки=0,22 (Ti=4,5) подобраны методом Ротача и введены в оба контроллера. Помимо коэффициентов, выбрано время интегрирования 1 сек, зона нечувствительности 0,2 кПа. Результат работы регуляторов представлен на рисунке.
Первый график - отклик ОУ, второй - % открытия РО. Примерно до 115 сек. задание 30 кПа, после - 35.
Из графика видно, что в установившемся режиме алгоритм SP отрабатывает плавнее, нежели чем алгоритм ПЛК (отсутствует пилообразное дерганье РО). Необходимо устранить данное дерганье. Не можем раскрыть тайну блока PIDA :ges_help: . При этом, мы заливали алгоритм для ПЛК-84.М2 в SP, работа обоих контроллеров идентична. Соответственно, делаем вывод что проблема в алгоритме.
Помогите пожалуйста усовершенствовать алгоритм на этапе ПИ-регулятора, устранить эту пилу. Подскажите, что не так в алгоритме, что изменить, что добавить :). Может, у кого-то есть потроха блока PIDA? Вообще, любой информации будем рады! Готов ответить на доп. вопросы. :thankyou:
Вот и сам алгоритм написанный нами (комментарии прямо в тексте алгоритма):

E:=SP-PV; (*вычисление значения ошибки регулирования (ОР))
if abs(E) > DB then (*Если ОР больше зоны нечувствительности*)
if IntegrT=t#0ms then
tstart(IntegrT);
end_if;
IF IntegrT > TMR(time_reg) then (*Если таймер равен секунде, тогда выполняем...*)
P:= (E); (*П-составляющая. Далее будет умножение на Кп*)
T:=real(time_reg); (*Перевод времени интегрирования в Real*)
I:= (I + (E+E_)/2.0*T/1000.0); (*Вычисление И-составляющей методом трапеции*)

if I < 0.0 then (*Условия ограничения И-составляющей. Сделано для того, что бы значение не переваливало за огромные числа*)
I:= 0.0;
else
if I > 100.0 then
I:= 100.0;
end_if;
end_if;

tstop(IntegrT); (*останавливаем таймер до след. цикла*)
IntegrT:=t#0s;
end_if;


PID_out:= KP*(P + KI*I); (*Расчет выхода регулятора (% открытия РО)*)

if PID_out < 0.0 then (*Ограничение выхода регулятора*)
PID_out:= 0.0;
else
if PID_out > 100.0 then
PID_out:= 100.0;
end_if;
end_if;
end_if;

E_:=E;
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Михайло »

Ууу! Щас начнем разбираться.... (Потирает руки)

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Михайло »

Похоже что-то связано с автоколебаниями в системе с нелинейными элементами. https://ru.wikipedia.org/wiki/Автоколебания
Нелинейный элемент - ограничение И-составляющей и ограничение выхода.
Автоколебания отличаются от вынужденных колебаний тем, что последние вызваны периодическим внешним воздействием и происходят с частотой этого воздействия, в то время как возникновение автоколебаний и их частота определяются внутренними свойствами самой автоколебательной системы.
Попробуйте расширить диапазон ограничений до 200 %, введите возможность регулирования ограничения.

rwg
почётный участник форума
почётный участник форума
Сообщения: 1041
Зарегистрирован: 29 апр 2014, 09:57
Имя: Рыбкин Владимир Геннадьевич
Страна: Россия
город/регион: Тверь
Благодарил (а): 55 раз
Поблагодарили: 134 раза

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение rwg »

[quote="Frol"]Непонятно, как связаны между собой выход ПИ-регулятора и %открытия РО. Такое впечатление, что Ваш РО управляется от МЭО импульсами "Меньше" и "Больше", и схемы формирования управляющих импульсов работают совершенно по-разному. У ПЛК относительно SP явно запаздывают моменты включения и выключения, импульсы позже и длиннее.

Автор темы
Frol
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 27 ноя 2015, 13:45
Имя: Кривелев Фрол Сергеевич
Страна: Россия
город/регион: Пермь

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Frol »

Михайло писал(а):Похоже что-то связано с автоколебаниями в системе с нелинейными элементами. https://ru.wikipedia.org/wiki/Автоколебания
Нелинейный элемент - ограничение И-составляющей и ограничение выхода.
Автоколебания отличаются от вынужденных колебаний тем, что последние вызваны периодическим внешним воздействием и происходят с частотой этого воздействия, в то время как возникновение автоколебаний и их частота определяются внутренними свойствами самой автоколебательной системы.
Попробуйте расширить диапазон ограничений до 200 %, введите возможность регулирования ограничения.
Автоколебания в установившемся режиме присутствуют как у ПЛК-84.М2, так и у SP. Разница в том, что у SP они значительно меньше, так как алгоритм блока PIDA подбирает более точное значение задания на регулирующий орган (совершает более плавное регулирование). У SP можно добиться регулирования без автоколебаний, если немного скорректировать коэффициенты. Но с ПЛК-84.М2 дело обстоит иначе. При абсолютно равных условиях для обоих контроллеров, в установившемся режиме регулирования, алгоритм выдает слишком резкое задание на РО (может варьироваться примерно 0-10%).
До 200% диапазон расширить нельзя, так как выход регулятора 0-100% открытия клапана (4-20 мА). К тому же, расширять диапазон нет смысла, так как проблема регулирования заключается в появлении пилы в установившемся режиме.
rwg писал(а):Непонятно, как связаны между собой выход ПИ-регулятора и %открытия РО. Такое впечатление, что Ваш РО управляется от МЭО импульсами "Меньше" и "Больше", и схемы формирования управляющих импульсов работают совершенно по-разному.

Ну, я не совсем корректно выразился. Регулятор дает задание (в виде сигнала 4-20 мА) на блок управления клапаном, в свою очередь, БУ уже сам перемещает клапан согласно заданию.
rwg писал(а):У ПЛК относительно SP явно запаздывают моменты включения и выключения, импульсы позже и длиннее.
Да, похоже на то. Это зависит от зоны нечувствительности, если ее сделать меньше, ПЛК начнет отрабатывать плавнее, но вместе с тем увеличится частота регулирования. Но, интересно что у обоих контроллеров зона нечувствительности одинакова. Как будто и правда у ПЛК большее запаздывание.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Jackson »

Frol писал(а):При абсолютно равных условиях для обоих контроллеров, в установившемся режиме регулирования, алгоритм выдает слишком резкое задание на РО (может варьироваться примерно 0-10%).
Я бы попробовал интегральную составляющую чуть увеличить, дифференциальную - уменьшить. Ну и про зону нечувствительности уже написали.
По вопросам работы Форума можно обратиться по этим контактам.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Михайло »

Frol писал(а):До 200% диапазон расширить нельзя, так как выход регулятора 0-100% открытия клапана (4-20 мА). К тому же, расширять диапазон нет смысла, так как проблема регулирования заключается в появлении пилы в установившемся режиме.
Я не стал говорить, т.к. сообразил чуть позже: нужно расширить диапазон ограничения только для И-составляющей, для выхода ПИД пусть остается 0-100%. При этом ограничение для И-составляющей должно регулироваться в диапазоне от -100% до 200 %, возможна такая вполне рабочая ситуация, когда И=-30%, а П=+80% и тогда выход=50%, то есть норма. Расшифровываем эту ситуацию: в настоящий момент имеется ошибка регулирования со знаком плюс (П=80%), перед этим некоторое время ошибка регулирования была со знаком минус (И=-30%). Ограничивая в этой ситуации И=0, мы открываем кран слишком сильно (выход=80%), вызывая перерегулирование. То есть нулевая нижняя граница И-составляющей не дает адекватно обрабатывать достаточно быстрые колебания ошибки регулирования вокруг нуля, то есть мешает затуханию процесса.
Наверное хватит даже ограничения от -50 до 150 %.

Автор темы
Frol
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 27 ноя 2015, 13:45
Имя: Кривелев Фрол Сергеевич
Страна: Россия
город/регион: Пермь

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Frol »

TEB писал(а): Я бы попробовал интегральную составляющую чуть увеличить, дифференциальную - уменьшить. Ну и про зону нечувствительности уже написали.
Да, мы уже пробовали разные вариации :). Изменения есть. Например, если задание 30 кПа и Кп=6.5, Ки=0.08, регулятор отрабатывает идеально. Но, если изменить задание, например 35 кПа, уже появляется статическая ошибка. Коэффициенты рассчитаны математически и объект пока что виртуальный, поэтому коэффициенты подобраны более-менее точно для всего диапазона регулирования.
Михайло писал(а): Я не стал говорить, т.к. сообразил чуть позже: нужно расширить диапазон ограничения только для И-составляющей, для выхода ПИД пусть остается 0-100%. При этом ограничение для И-составляющей должно регулироваться в диапазоне от -100% до 200 %, возможна такая вполне рабочая ситуация, когда И=-30%, а П=+80% и тогда выход=50%, то есть норма. Расшифровываем эту ситуацию: в настоящий момент имеется ошибка регулирования со знаком плюс (П=80%), перед этим некоторое время ошибка регулирования была со знаком минус (И=-30%). Ограничивая в этой ситуации И=0, мы открываем кран слишком сильно (выход=80%), вызывая перерегулирование. То есть нулевая нижняя граница И-составляющей не дает адекватно обрабатывать достаточно быстрые колебания ошибки регулирования вокруг нуля, то есть мешает затуханию процесса.
Наверное хватит даже ограничения от -50 до 150 %.
Да, И-составляющая и правда ограничена. Попробуем расширить диапазон. Правда, коллеги сегодня нет, у него стенд развернут. Завтра сделаем, сообщу результаты. Спасибо!
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Jackson »

Frol писал(а):Коэффициенты рассчитаны математически и объект пока что виртуальный, поэтому коэффициенты подобраны более-менее точно для всего диапазона регулирования.
А Вы ручками попробуйте. :)
По вопросам работы Форума можно обратиться по этим контактам.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3576
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 271 раз

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Михайло »

Frol писал(а):Да, И-составляющая и правда ограничена. Попробуем расширить диапазон. Правда, коллеги сегодня нет, у него стенд развернут. Завтра сделаем, сообщу результаты. Спасибо!
И что? Прошло уже 10 дней. (Видимо в результате незатухающий колебательный переходный процесс вызвал обширный взрыв... :crazy0to: )

Автор темы
Frol
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 27 ноя 2015, 13:45
Имя: Кривелев Фрол Сергеевич
Страна: Россия
город/регион: Пермь

Re: Реализация ПИД-алгоритма на ПЛК

Сообщение Frol »

Да, прошу прощения, в командировке был. :)) Ограничение не помогло. Все по прежнему. Вообще, значение И-составляющей держится на уровне 3-4%. То есть, для данной мат. модели объекта управления, расширение ограничения И-составляющей не оказывает влияние на регулирование.
У меня пока две версии: 1. У ПЛК-84.М1 цикл выполнения программного кода существенно медленней чем у SP (примерно 1000 мс, против 180 мс у SP). Если у SP увеличить цикл выполнения программы, начинает появляться подобная пила; 2. В ПИД-блоке SP есть дополнительный код, который устраняет данную пилу.

MaOtdel23
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 23 мар 2016, 11:33
Имя: Демидович Николай Олегович
Страна: Украина
город/регион: Днепропетровск

Реализация ПИД-алгоритма на ПЛК

Сообщение MaOtdel23 »

Добрый день! Как мне кажется, у Вас получился почти П-регулятор. П-регуляторам свойственна статическая ошибка - такой принцип действия. Попробуйте уменьшить Kп раз в 10 и одновременно увеличить Ки, тоже раз в 10. :ges_hmm:
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Реализация ПИД-алгоритма на ПЛК

Сообщение Jackson »

MaOtdel23 писал(а): Попробуйте уменьшить Kп раз в 10 и одновременно увеличить Ки, тоже раз в 10.
Таким образом статическая ошибка никуда не денется, а может даже увеличится, а регулирование станет более плавным и инерционным. Только и всего.
По вопросам работы Форума можно обратиться по этим контактам.

MaOtdel23
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 23 мар 2016, 11:33
Имя: Демидович Николай Олегович
Страна: Украина
город/регион: Днепропетровск

Реализация ПИД-алгоритма на ПЛК

Сообщение MaOtdel23 »

TEB писал(а): статическая ошибка никуда не денется, а может даже увеличится
Как раз статическая ошибка с уменьшением коэффициэнта прапорциональности должна уменьшаться.
TEB писал(а): а регулирование станет более плавным и инерционным.
Человеку ведь и нужно более плавное регулирование. Или я что-то неправильно понял?
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Реализация ПИД-алгоритма на ПЛК

Сообщение Jackson »

MaOtdel23 писал(а): Как раз статическая ошибка с уменьшением коэффициэнта прапорциональности должна уменьшаться.
Ничего она никому не должна.
Снизите Кп -регулятор станет хуже реагировать на отклонение и значит отклонение растёт, вдобавок добавляете Ки чем делаете реакцию на отклонение ещё медленнее: пока регулятор "думает" - отклонение продолжает расти.

Короче, тут экспериментировать надо - это единственное что ясно однозначно.

А статическая ошибка никому ничего не должна.

Код: Выделить всё

- Вы можете не помнить как Вы ехали в такси, как пришли в Аэропорт, как открыли дверь, но как Вы сели в самолёт и вышли из него Вы же должны помнить!
- Да, безусловно! Помнить должен! Но я не помню.
(с) кино
По вопросам работы Форума можно обратиться по этим контактам.

MaOtdel23
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 23 мар 2016, 11:33
Имя: Демидович Николай Олегович
Страна: Украина
город/регион: Днепропетровск

Реализация ПИД-алгоритма на ПЛК

Сообщение MaOtdel23 »

Существует такая наука как "Теория автоматического регулирования". Так вот согласно ей статическая ошибка присуща П-регуляторам. Это регуляторы у которых нет интегральной составляющей. Ошибка (статическая), по теории, тем больше, чем больше коэффициент пропорциональности.
Как было сказано:
Frol писал(а): Кп=6.5, Ки=0.08
То есть И-часть близка к нулю, а пропорциональная наоборот велика, что и даёт основания считать этот регулятор близким к пропорциональному (П-регулятору). ПИ-регулятор, по теории, подтверждённой практикой, вообще не имеет статической ошибки. То есть эта ошибка по модулю не выходит за зону нечувствительности.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Реализация ПИД-алгоритма на ПЛК

Сообщение Jackson »

MaOtdel23 писал(а): Существует такая наука как "Теория автоматического регулирования".
Вы знаете, а я в курсе. :coolest:

И согласно нее
MaOtdel23 писал(а): ПИ-регулятор, по теории, подтверждённой практикой, вообще не имеет статической ошибки.
это в общем случае невозможно физически. Возможно только в частном случае когда отклонение и/или закон регулирования носит колебательный характер: можно так выбрать Ки что заторможенный ей П-регулятор просто не будет успевать в полной мере реагировать на отклонение, которое и без него (или при минимальном его участии) прекрасно сведётся к нулю естественным путём. Особенно эффективно при применении правильно подобранной мёртвой зоны регулирования, потому что без неё регулятор вообще не должен работать согласно Вашему прочтению теории - П-регулятор работает только по отклонению, Ки его тормозит, а если нет отклонения то регулятор должен - согласно теории - молчать как партизан на допросе.
MaOtdel23 писал(а): Ошибка (статическая), по теории, тем больше, чем больше коэффициент пропорциональности.
Это по голой теории и без учёта конкретного закона регулирования.
По вопросам работы Форума можно обратиться по этим контактам.

MaOtdel23
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 23 мар 2016, 11:33
Имя: Демидович Николай Олегович
Страна: Украина
город/регион: Днепропетровск

Реализация ПИД-алгоритма на ПЛК

Сообщение MaOtdel23 »

Мне кажется, что спор теряет смысл. :) Мы с Вами говорим на разных языках в силу разницы в образовании и полученном опыте. ;)
Пусть Frol, пробует.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Реализация ПИД-алгоритма на ПЛК

Сообщение Jackson »

Нет, спор теряет смысл поскольку возразить либо не хочется либо нечего, и этому найдено обоснование.
[+] а так почти всегда и бывает
"Главное в споре - вовремя перейти на личности" (с) М.Жванецкий
Спор теряет смысл поскольку кое-кто слишком много себе на уме:
MaOtdel23 писал(а): на разных языках в силу разницы в образовании
А Вы в курсе какое у меня образование? Я не помню чтобы кому-то тут это сообщал за все 15 лет жизни форума во всех его реинкарнациях (а может и больше). А выдумывать то чего не знаешь - это хорошо только если фантастику пишешь, а не техническую документацию и не исполняемый код.
MaOtdel23 писал(а): Пусть Frol, пробует.
Да, я ж это сразу же и подчеркнул - более толкового совета дать невозможно.
По вопросам работы Форума можно обратиться по этим контактам.

MaOtdel23
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 23 мар 2016, 11:33
Имя: Демидович Николай Олегович
Страна: Украина
город/регион: Днепропетровск

Реализация ПИД-алгоритма на ПЛК

Сообщение MaOtdel23 »

TEB писал(а): "Главное в споре - вовремя перейти на личности" (с) М.Жванецкий
Я так понял, что Вы решили воспользоваться советом.
TEB писал(а): А Вы в курсе какое у меня образование?
В любом случае оно у нас разное.
TEB писал(а): возразить либо не хочется либо нечего, и этому найдено обоснование
Обоснования есть, но Вы, в силу предыдущего, его не поймёте.
Если хочется по-говорить давайте в личку! Зачем здесь засорять?
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17579
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 824 раза
Поблагодарили: 1652 раза

Реализация ПИД-алгоритма на ПЛК

Сообщение Jackson »

MaOtdel23 писал(а): В любом случае оно у нас разное.
И откуда Вам знать... Ну как хотите.
MaOtdel23 писал(а): Я так понял, что Вы решили воспользоваться советом.
Нет, Вы поняли неправильно. Это Вы это сделали.
MaOtdel23 писал(а): Если хочется по-говорить давайте в личку! Зачем здесь засорять?
Да уже всё.
По вопросам работы Форума можно обратиться по этим контактам.
Ответить

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