В этом примере показано, как настроить параметры в ссылочных моделях, используя Response Optimizer.
Модель показывает управление угловым положением для двух двигателей. Откройте модель Simulink.
open_system('sdoMultipleMotors')
Модели-ссылки используются для двух контроллеров, которые являются образцами одной модели. Откройте контроллер.
open_system('sdoRateLimitedController')
Каждый контроллер имеет коэффициенты ПИД Kp
, Ki
, и Kd
, и скорость нарастания, Slew
. The Slew
значение ограничивает скорость, с которой изменяется сигнал управления, так что токи, вытянутые из источника степени, остаются в пределах источника степени. The Slew
значение является общим для обоих образцов контроллера. Напротив, коэффициенты ПИД должен быть различным для каждого образца контроллера, поскольку управляемые двигатели имеют различные характеристики. Поэтому коэффициенты ПИД заданы как аргументы модели в рабочем пространстве модели контроллера. Значения коэффициента ПИД устанавливаются на уровне sdoMultipleMotors
модель.
Управляющий опорный сигнал является шагом изменения положения, которое происходит через 1 секунду. Угловое положение каждого мотора должно следовать за опорным сигналом, но первый двигатель имеет меньший момент инерции и может быстрее реагировать на изменения в опорном сигнале. Мы хотим, чтобы угловое положение первого мотора удовлетворяло следующим требованиям:
Время нарастания: 2 секунд
Время урегулирования: 7 секунд
Второй двигатель имеет больший момент инерции, поэтому он не может реагировать так быстро. Мы хотим, чтобы угловое положение второго мотора удовлетворяло следующим требованиям:
Время нарастания: 8 секунд
Время урегулирования: 10 секунд
Кроме того, производная каждого сигнала контроллера должна быть в области значений от -5 до 5, так что токи, вытянутые из источника степени, остаются в пределах источника степени.
Все эти требования заданы с помощью блоков в модели Simulink.
В модели Simulink на вкладке Приложений щелкните Оптимизатор отклика в разделе Системы управления, чтобы запустить приложение Оптимизатор отклика С текущими настройками переменных контроллера заметьте, что ни одно из переходной характеристики требований не удовлетворено.
В списке Проекта Переменных Set выберите New. Диалоговое окно показывает настраиваемые переменные. The Slew
переменная указана как sdoRateLimitedController:Slew
, что указывает на то, что переменная установлена на уровне sdoRateLimitedController
модель. Двоеточие является разделителем между моделью и переменной. The Slew
переменная имеет то же значение для всех образцов моделей контроллеров. Напротив, производный коэффициент усиления для первого контроллера указан как sdoMultipleMotors/Control_1:Kd
, что указывает на то, что переменная установлена на уровне sdoMultipleMotors
модель, где она появляется в Control_1
блок. Прямая косая черта является разделителем для блокпутей Simulink.
Выберите общую Slew
переменная, а также Kd
, Ki
, и Kp
параметры для каждой модели. Добавьте эти переменные в набор конструктивных переменных. Задайте минимальное значение для Slew
переменная как 0.
Нажмите OK. Новая переменная, DesignVars
, появляется в браузере Response Optimizer. Создайте график конструктивных переменных, чтобы увидеть, как они развиваются во время оптимизации. В группе «Данные для построения графика» выберите DesignVars
. Щелкните Добавить график (Add Plot) и добавьте график итерации. Вы можете использовать вкладку Вид (View), чтобы расположить графики так, чтобы они все были видны.
Чтобы оптимизировать проект, нажмите кнопку «Оптимизировать». Графики обновляются во время оптимизации. Когда оптимизация завершена, обратите внимание, что все требования проекта удовлетворены. Эти переходные характеристики находятся в пределах предписанных границ, как и производные выходного сигнала контроллера.
Закройте модели.
bdclose('sdoMultipleMotors') bdclose('sdoRateLimitedController')