Настройка ПИД-регуляторов: так ли страшен черт, как его малюют? Часть 1. Одноконтурная система
Эта статья открывает цикл статей, посвященных автоматизированным способам настройки ПИД-регуляторов в среде Simulink. Сегодня разберемся, как работать с приложением PID Tuner.
Введение
Наиболее популярным типом применяемых в промышленности регуляторов в системах управления замкнутыми системами можно считать ПИД-регуляторы. И если структуру и принцип действия контроллера инженеры помнят еще со студенческой скамьи, то его настройка, т.е. расчет коэффициентов регулятора, до сих пор является проблемой. Существует огромное количество литературы, как зарубежной (например, [1, 2]), так и отечественной (например, [3, 4]), где настройка регуляторов объясняется на достаточно непростом языке теории автоматического управления.
В этой серии статей будут описываться автоматизированные способы настройки ПИД-регуляторов с помощью инструментов среды Simulink, таких как:
- PID Tuner,
- Response Optimizer,
- Control System Tuner,
- Frequency Response Based PID Tuner,
- Closed-Loop PID Autotuner.
В качестве объекта системы управления будет выступать электропривод на базе двигателя постоянного тока с возбуждением от постоянных магнитов, работающий совместно с редуктором на инерционную нагрузку, со следующими параметрами:
- напряжение питания двигателя, Uпит = 24 В;
- активное сопротивление обмотки якоря двигателя, R = 4.8 Ом;
- индуктивное сопротивление обмотки якоря двигателя, L = 0.0016 Гн;
- коэффициент момента двигателя, ce = 0.066 Н·м/А;
- момент инерции ротора двигателя, Jдв = 2.5·10-5 кг·м2;
Параметры нагрузки и редуктора:
- момент инерции нагрузки, Jн = 0.01 кг·м2;
- передаточное число редуктора, q = 5.
Статьи практически не содержат математических формул, однако желательно, чтобы читатель обладал базовыми знаниями в теории автоматического управления, а также имел опыт моделирования в среде Simulink для понимания предлагаемого материала.
Модель системы
Рассмотрим линейную систему управления угловой скоростью следящего электропривода, упрощенная структурная схема которой представлена ниже.
В соответствии с приведенной структурой в среде Simulink была построена модель такой системы.
Модели электропривода (подсистема Electric actuator) и инерционной нагрузки (подсистема Load) созданы с помощью блоков библиотеки физического моделирования Simscape:
- модель электропривода,
- модель инерционной нагрузки.
Модели электропривода и нагрузки также включают подсистемы датчиков различных физических величин:
- тока, протекающего в обмотке якоря двигателя (подсистема А),
- напряжения на его обмотке (подсистема V),
- угловой скорости объекта управления (подсистема Ω).
Перед настройкой параметров ПИД-регулятора запустим модель на расчет, приняв передаточную функцию регулятора Wр(s) = 1. Результаты моделирования при отработке входного сигнала 150 об/мин показаны ниже.
Из анализа приведенных графиков видно, что:
- Выходная координата системы управления не достигает заданного значения, т.е. в системе присутствует статическая ошибка.
- Напряжение на обмотках двигателя достигает значения 150 В в начале моделирования, что повлечет за собой выход его из строя вследствие подачи на его обмотку напряжения больше номинального (24 В).
Пусть реакция системы на единичный импульс должна соответствовать следующим требованиям:
- перерегулирование (Overshoot) не более 10%,
- время нарастания (Rise time) менее чем 0.8 с,
- время переходного процесса (Settling time) менее чем 2 с.
Кроме того, регулятор должен ограничивать напряжение, подаваемое на обмотку двигателя, до значения напряжения питания.
Настраиваем контроллер
Настройка параметров регулятора осуществляется с помощью инструмента PID Tuner, который доступен непосредственно в окне параметров блока PID Controller.
Приложение запускается нажатием на кнопку Tune…, расположенную на панели Automated tuning. Стоит отметить, что до выполнения этапа настройки параметров контроллера необходимо выбрать его вид (П, ПИ, ПД и др.), а также его тип (аналоговый или дискретный).
Поскольку одним из требований является ограничение его выходной координаты (напряжения на обмотке двигателя), то следует задать допустимый диапазон напряжений. Для этого:
-
Переходим во вкладку Output Saturation.
-
Нажимаем на флаговую кнопку Limit output, в результате чего активируются поля для задания верхней (Upper limit) и нижней (Lower limit) границы диапазона выходной величины.
-
Устанавливаем границы диапазона.
Корректная работа блока регулятора в составе системы предполагает использования методов, направленных на борьбу с интегральным насыщением. В блоке реализованы два метода: back-calculation и clamping. Подробная информация о данных методах располагается здесь. Выпадающее меню выбора метода расположено на панели Anti-windup.
В рассматриваемом случае запишем значения 24 и -24 в поля Upper limit и Lower limit соответственно, а также используем метод clamping для исключения интегрального насыщения.
Можно заметить, что внешний вид блока регулятора изменился: появился знак насыщения рядом с выходным портом блока.
Далее, приняв все изменения нажатием кнопки Apply, возвращаемся во вкладку Main и нажимаем кнопку Tune…, в результате чего откроется новое окно приложения PIDTuner.
В графической области окна отображаются два переходных процесса: при текущих параметрах регулятора, т.е. для ненастроенного регулятора, и при значениях, подобранных автоматически. Новые значения параметров можно посмотреть, нажав на кнопку Show Parameters, расположенную на панели инструментов. При нажатии на кнопку появятся две таблицы: подобранные параметры регулятора (Controller Parameters) и произведенные оценки характеристик переходного процесса при подобранных параметрах (Performance and Robustness).
Как видно из значений второй таблицы, автоматически рассчитанные коэффициенты регулятора удовлетворяют всем требованиям.
Настройка регулятора завершается нажатием на кнопку с зеленым треугольником, расположенной справа от кнопки Show Parameters, после чего новые значения параметров автоматически изменятся в соответствующих полях в окне настройки параметров блока PID Controller.
Результаты моделирования системы с настроенным регулятором для нескольких входных сигналов показаны ниже. При больших уровнях входных сигналов (голубая линия) система будет работать в режиме с насыщением по напряжению.
Отметим, что инструмент PID Tuner подбирает коэффициенты регулятора по линеаризованной модели, поэтому при переходе к нелинейной модели требуется уточнять его параметры. В этом случае можно воспользоваться приложением Response Optimizer.
Комментарии
Некорректно написана инструкция и может ввести в заблуждение неопытных пользователей!
"Как видно из значений второй таблицы, автоматически рассчитанные коэффициенты регулятора удовлетворяют всем требованиям."
Это не так, поскольку нелинейные уставки ПИД регулятора (Saturation и Anti-windup) не учитываются при настройке! Хоть выставляй их, хоть не выставляй.
Поэтому, полученные настройки надо отдельно проверять с нелинейными уставками, а вот если там окажется все плохо, то и весь тюнинг бесполезен. Единственное, можно поиграть с "ползунками", про которые ничего не было сказано. А ведь это инструмент, а не настройка с помощью нажатия на одну кнопку.
Для линеаризованных моделей наилучший инструмент настройки регуляторов - это Control System Tuner.
Там можно настроить любой регулятор, а не только ПИД, причем при любом количестве входов и выходов, да еще и по комбинации из любых критериев, которые можно разделять на две группы - жесткие(обязательно д.б. выполнены) и мягкие(желательно д.б. выполнены). Критерии могут быть как во временной области, так и в частотной, т.е. их можно комбинировать одновременно, ЧЕГО НИКОГДА НЕ БЫЛО В ТАУ!
Здравствуйте. Спасибо за ценный комментарий.
Вы правы, PID Tuner не подходит для настройки нелинеаризуемых систем. В этой статье я хотел показать на примере простой системы на что этот инструмент способен.
Надеюсь, Вы прочитаете следующие статьи из цикла, я рассматриваю другие инструменты, включая Control System Tuner, и выскажете свои замечения.
Рекомендую ознакомиться с таким методом синтеза, которой называется "плоские системы", "Flat systems", "differentially flat systems"
https://en.wikipedia.org/wiki/Flatness_(systems_theory)
Здесь вот наглядная презентация:
https://www.youtube.com/watch?v=KYdZQBVxYf0
Там, в частности, показывается, как плохо настроенный ПИД регулятор можно сделать "идеальным", просто иначе задав входной сигнал(используя плоские выходы).