Разработайте ПИД-регулятор Используя предполагаемую частотную характеристику

Этот пример показывает, как разработать контроллер PI, использующий частотную характеристику, оцененную из модели Simulink. Это - альтернативный рабочий процесс проекта ПИДа, когда линеаризовавшая модель объекта управления недопустима для проекта ПИДа (например, когда модель объекта управления имеет нулевое усиление).

Откройте модель

Откройте модель управления двигателем и займите некоторое время, чтобы исследовать ее.

mdl = 'scdenginectrlpidblock';
open_system(mdl)

Цикл ПИДа включает контроллер PI в параллельную форму, которая управляет углом дросселя, чтобы управлять скоростью вращения двигателя. У контроллера PI есть усиления по умолчанию, который заставляет систему замкнутого цикла колебаться. Мы хотим разработать контроллер, использующий PID Tuner, который запускается от диалогового окна блока PID.

open_system([mdl '/Engine Speed (rpm)'])
sim(mdl)

Закройте осциллограф.

close_system([mdl '/Engine Speed (rpm)'])

PID Tuner получая модель объекта управления с нулевым усилением от линеаризации

В этом примере объект, замеченный блоком PID, от угла дросселя до скорости вращения двигателя. Точки ввода и вывода линеаризации уже заданы в блоке PID вывод и измерение скорости вращения двигателя соответственно. Линеаризация в начальной рабочей точке дает модель объекта управления с нулевым усилением.

Чтобы проверить нулевую линеаризацию, сначала получите точки ввода и вывода линеаризации из модели.

io = getlinio(mdl);

Затем линеаризуйте объект в его начальной рабочей точке.

linsys = linearize(mdl,io)
linsys =
 
  D = 
                Throttle Ang
   EngineSpeed             0
 
Static gain.

Причина получения нулевого усиления состоит в том, что существует инициированная подсистема (Сжатие) в пути к линеаризации, и аналитическая линеаризация блока блоком не поддерживает основанные на событии подсистемы. Поскольку PID Tuner использует тот же подход, чтобы получить линейную модель объекта управления, *PID Tuner также получает модель объекта управления с нулевым усилением и отклоняет его во время процесса запуска.

Чтобы запустить PID Tuner, откройте диалоговое окно блока PID и нажмите Tune. Информационное диалоговое окно открывает и указывает, что модель объекта управления, линеаризовавшая в начальной рабочей точке, имеет нулевое усиление и не может использоваться, чтобы разработать ПИД-регулятор.

Альтернативный способ получить линейную модель объекта управления состоит в том, чтобы непосредственно оценить данные о частотной характеристике из модели Simulink, создать систему frd в рабочем пространстве MATLAB и импортировать его назад к PID Tuner, чтобы продолжить проект ПИДа.

Получите предполагаемые данные о частотной характеристике Используя сигналы Sinestream

sinestream входной сигнал является самым надежным входным сигналом для оценки точной частотной характеристики модели Simulink с помощью функции frestimate. Для получения дополнительной информации о том, как использовать frestimate, смотрите, что Оценка Частотной характеристики Использует Основанные на симуляции Методы (Simulink Control Design).

В этом примере создайте поток синуса, который развертывает частоту от 0,1 до 10 радов/секунда с амплитудой 1e-3. Можно осмотреть результаты оценки с помощью диаграммы Боде.

Создайте сигнал sinestream.

in = frest.Sinestream('Frequency',logspace(-1,1,50),'Amplitude',1e-3);

Оцените частотную характеристику. Этот процесс может занять несколько минут.

sys = frestimate(mdl,io,in);

Отобразите предполагаемую частотную характеристику.

bode(sys)

Разработайте контроллер PI

sys является системой frd, которая представляет частотную характеристику объекта в начальной рабочей точке. Чтобы использовать его в PID Tuner, мы должны импортировать его после того, как PID Tuner будет запущен. Нажмите Plant и выберите Import.

Нажмите систему Importing an LTI, и в списке, выберите sys. Затем нажмите "OK", чтобы импортировать систему frd в PID Tuner. Автоматизированное проектирование возвращает стабилизировавшийся контроллер. Нажмите Add Plot и выберите Open-Loop Bode plot. График показывает разумный запас по амплитуде и фазе. Нажмите Show Parameters, чтобы видеть значения запаса по амплитуде и фазе. Графики ответа области времени не доступны для моделей объекта управления frd.

Чтобы обновить блок P PID и я получаю, нажмите Update Block.

Моделируйте производительность с обратной связью в модели Simulink

Симуляция в Simulink показывает, что новый контроллер PI обеспечивает хорошую производительность при управлении нелинейной моделью.

Закройте модель.

bdclose(mdl)