Профиль должен быть заполнен на русском языке кириллицей. Заполнение профиля заведомо ложными или некорректными данными - причина возможного отказа в регистрации на форуме.

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

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

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

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

Сообщение Frol » 27 ноя 2015, 15:52

Добрый день!
Работаем с контроллером ПЛК-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;
У вас нет необходимых прав для просмотра вложений в этом сообщении.


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

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

Сообщение Михайло » 27 ноя 2015, 16:27

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


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

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

Сообщение Михайло » 27 ноя 2015, 16:39

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

Автоколебания отличаются от вынужденных колебаний тем, что последние вызваны периодическим внешним воздействием и происходят с частотой этого воздействия, в то время как возникновение автоколебаний и их частота определяются внутренними свойствами самой автоколебательной системы.


Попробуйте расширить диапазон ограничений до 200 %, введите возможность регулирования ограничения.


rwg
частый гость
частый гость
Сообщения: 494
Зарегистрирован: 29 апр 2014, 08:57
Ф.И.О.: Рыбкин Владимир Геннадьевич
Благодарил (а): 10 раз
Поблагодарили: 19 раз

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

Сообщение rwg » 27 ноя 2015, 16:55

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


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

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

Сообщение Frol » 30 ноя 2015, 12:05

Михайло писал(а):Похоже что-то связано с автоколебаниями в системе с нелинейными элементами. 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 явно запаздывают моменты включения и выключения, импульсы позже и длиннее.

Да, похоже на то. Это зависит от зоны нечувствительности, если ее сделать меньше, ПЛК начнет отрабатывать плавнее, но вместе с тем увеличится частота регулирования. Но, интересно что у обоих контроллеров зона нечувствительности одинакова. Как будто и правда у ПЛК большее запаздывание.

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7908
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение TEB » 30 ноя 2015, 16:43

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

Я бы попробовал интегральную составляющую чуть увеличить, дифференциальную - уменьшить. Ну и про зону нечувствительности уже написали.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


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

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

Сообщение Михайло » 01 дек 2015, 05:12

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 » 01 дек 2015, 07:16

TEB писал(а):Я бы попробовал интегральную составляющую чуть увеличить, дифференциальную - уменьшить. Ну и про зону нечувствительности уже написали.

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

Да, И-составляющая и правда ограничена. Попробуем расширить диапазон. Правда, коллеги сегодня нет, у него стенд развернут. Завтра сделаем, сообщу результаты. Спасибо!

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7908
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение TEB » 01 дек 2015, 10:02

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

А Вы ручками попробуйте. :)
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


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

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

Сообщение Михайло » 09 дек 2015, 20:20

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

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


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

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

Сообщение Frol » 18 дек 2015, 07:04

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


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

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

Сообщение MaOtdel23 » 23 мар 2016, 11:47

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

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7908
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение TEB » 23 мар 2016, 11:55

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

Таким образом статическая ошибка никуда не денется, а может даже увеличится, а регулирование станет более плавным и инерционным. Только и всего.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


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

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

Сообщение MaOtdel23 » 23 мар 2016, 12:00

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

Человеку ведь и нужно более плавное регулирование. Или я что-то неправильно понял?

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7908
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение TEB » 23 мар 2016, 12:18

MaOtdel23 писал(а):Источник цитаты Как раз статическая ошибка с уменьшением коэффициэнта прапорциональности должна уменьшаться.

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

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

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

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

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


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

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

Сообщение MaOtdel23 » 23 мар 2016, 12:34

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

То есть И-часть близка к нулю, а пропорциональная наоборот велика, что и даёт основания считать этот регулятор близким к пропорциональному (П-регулятору). ПИ-регулятор, по теории, подтверждённой практикой, вообще не имеет статической ошибки. То есть эта ошибка по модулю не выходит за зону нечувствительности.

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7908
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение TEB » 23 мар 2016, 12:57

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

Вы знаете, а я в курсе. :coolest:

И согласно нее
MaOtdel23 писал(а):Источник цитаты ПИ-регулятор, по теории, подтверждённой практикой, вообще не имеет статической ошибки.

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

MaOtdel23 писал(а):Источник цитаты Ошибка (статическая), по теории, тем больше, чем больше коэффициент пропорциональности.

Это по голой теории и без учёта конкретного закона регулирования.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


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

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

Сообщение MaOtdel23 » 23 мар 2016, 13:14

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

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7908
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение TEB » 23 мар 2016, 13:43

Нет, спор теряет смысл поскольку возразить либо не хочется либо нечего, и этому найдено обоснование.
[+] а так почти всегда и бывает
"Главное в споре - вовремя перейти на личности" (с) М.Жванецкий

Спор теряет смысл поскольку кое-кто слишком много себе на уме:
MaOtdel23 писал(а):Источник цитаты на разных языках в силу разницы в образовании

А Вы в курсе какое у меня образование? Я не помню чтобы кому-то тут это сообщал за все 15 лет жизни форума во всех его реинкарнациях (а может и больше). А выдумывать то чего не знаешь - это хорошо только если фантастику пишешь, а не техническую документацию и не исполняемый код.

MaOtdel23 писал(а):Источник цитаты Пусть Frol, пробует.

Да, я ж это сразу же и подчеркнул - более толкового совета дать невозможно.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


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

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

Сообщение MaOtdel23 » 23 мар 2016, 14:01

TEB писал(а):Источник цитаты "Главное в споре - вовремя перейти на личности" (с) М.Жванецкий

Я так понял, что Вы решили воспользоваться советом.
TEB писал(а):Источник цитаты А Вы в курсе какое у меня образование?

В любом случае оно у нас разное.
TEB писал(а):Источник цитаты возразить либо не хочется либо нечего, и этому найдено обоснование

Обоснования есть, но Вы, в силу предыдущего, его не поймёте.
Если хочется по-говорить давайте в личку! Зачем здесь засорять?

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

TEB
специалист по DEIF
специалист по DEIF
Сообщения: 7908
Зарегистрирован: 17 июн 2008, 15:01
Ф.И.О.: Евгений свет Брониславович
Благодарил (а): 38 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение TEB » 24 мар 2016, 10:33

MaOtdel23 писал(а):Источник цитаты В любом случае оно у нас разное.

И откуда Вам знать... Ну как хотите.
MaOtdel23 писал(а):Источник цитаты Я так понял, что Вы решили воспользоваться советом.

Нет, Вы поняли неправильно. Это Вы это сделали.
MaOtdel23 писал(а):Источник цитаты Если хочется по-говорить давайте в личку! Зачем здесь засорять?

Да уже всё.
По вопросам работы Форума можно обратиться ко мне, или по этим контактам.


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



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей