Настройка ПИД-регуляторов: так ли страшен черт, как его малюют? Часть 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
Там, в частности, показывается, как плохо настроенный ПИД регулятор можно сделать "идеальным", просто иначе задав входной сигнал(используя плоские выходы).