Этот пример показов, как спроектировать ПИ-контроллер с помощью частотной характеристики, оцененной из модели Simulink. Это альтернативная конструкция ПИД, рабочего процесса, когда линеаризированная модель объекта управления является недопустимой для ПИД проекта (для примера, когда модель объекта управления нуля коэффициент усиления).
Откройте модель управления двигателем и займите несколько минут, чтобы исследовать ее.
mdl = 'scdenginectrlpidblock';
open_system(mdl)
ПИД цикла включает ПИ-контроллер в параллельной форме, которая управляет углом дросселя, чтобы управлять скоростью вращения двигателя. Коэффициент усиления по умолчанию ПИ-контроллер, который заставляет систему закрытого цикла колебаться. Мы хотим спроектировать контроллер с помощью PID Tuner, которая запускается из диалогового окна блока ПИД.
open_system([mdl '/Engine Speed (rpm)'])
sim(mdl)
Закройте возможности.
close_system([mdl '/Engine Speed (rpm)'])
В этом примере объект, видимый блоком PID, находится от угла дросселя до скорости вращения двигателя. Входы и выходные точки линеаризации уже заданы на выходе ПИД блока и скорости вращения двигателя измерении соответственно. Линеаризация в начальной рабочей точке дает модель объекта управления с нулевым коэффициентом усиления.
Чтобы проверить нулевую линеаризацию, сначала получите входную и выходные точки линеаризации из модели.
io = getlinio(mdl);
Затем линеаризируйте объект в его начальной рабочей точке.
linsys = linearize(mdl,io)
linsys = D = Throttle Ang EngineSpeed 0 Static gain.
Причина получения усиления нуля в том, что в пути линеаризации существует триггируемая подсистема (Compression), и аналитическая блочная линеаризация не поддерживает основанные на событиях подсистемы. Поскольку PID Tuner использует тот же подход для получения линейной модели объекта управления, PID Tuner также получает модель объекта с нулевым усилением и отклоняет его в процессе запуска.
Чтобы запустить PID Tuner, откройте диалоговое окно блока ПИД и нажмите кнопку Настройка. Откроется информационное диалоговое окно, показывающее, что модель объекта управления, линеаризированная в начальной рабочей точке нуля имеет коэффициент усиления и не может использоваться для разработки ПИД-регулятора.
Альтернативным способом получить линейную модель объекта управления является прямая оценка данных частотной характеристики из модели Simulink, создание frd
система в рабочем пространстве MATLAB и импортируйте ее обратно в PID Tuner, чтобы продолжить проект ПИД.
Входной сигнал синестрейма является наиболее надежным входным сигналом для оценки точной частотной характеристики модели Simulink с помощью frestimate
функция. Для получения дополнительной информации о том, как использовать frestimate
, см. Оценка частотной характеристики с использованием основанных на симуляции методов (Simulink Control Design).
В этом примере создайте синусоидальный поток, который протекает частоту от 0,1 до 10 рад/с с амплитудой 1e-3. Результаты оценки можно просмотреть с помощью диаграммы Боде.
Создайте сигнал синестриама.
in = frest.Sinestream('Frequency',logspace(-1,1,50),'Amplitude',1e-3);
Оцените частотную характеристику. Этот процесс может занять несколько минут.
sys = frestimate(mdl,io,in);
Отобразите предполагаемую частотную характеристику.
bode(sys)
sys
является frd
система, представляющая частотную характеристику объекта в начальной рабочей точке. Чтобы использовать его в PID Tuner, нам нужно импортировать его после запуска PID Tuner. Нажмите Объект и выберите Импортировать. Частота дискретизации импортированных frd
объект должен соответствовать частоте дискретизации блока ПИД-регулятор.
Щелкните Импорт системы LTI и в списке выберите sys. Затем нажмите «OK», чтобы импортировать frd
система в PID Tuner. Автоматический проект возвращает стабилизирующий контроллер. Нажмите Add Plot и выберите Open-Loop Bode plot. График показывает разумный запас по амплитуде и фазе. Щелкните Показом Параметров, чтобы увидеть запас по амплитуде и фазе значения. Временные интервалы отклика недоступны для frd
модели объекта управления.
Чтобы обновить блок ПИД P, и я получаю, нажмите Update Block.
Симуляция в Simulink показывает, что новое ПИ-контроллер обеспечивает хорошую эффективность при управлении нелинейной моделью.
Закройте модель.
bdclose(mdl)