В этом примере показано, как оптимизировать конструкцию в соответствии с требованиями пользовательских сигналов. Вы оптимизируете параметры контроллера, чтобы минимизировать энергию сигнала срабатывания установки, удовлетворяя требованиям к ступенчатой реакции.
Загрузите сохраненный сеанс оптимизатора ответов.
load sldo_model1_custom_signal_session sdotool(SDOSessionData);
Откроется следующая модель Simulink ®.

Также открывается оптимизатор ответа, настроенный со следующими настройками:
Характеристики ответа на шаг, указанные на выходе Plant блок, который должен удовлетворять выводу модели:
Максимальное превышение 5%
Максимальное время подъема - 10 секунд
Максимальное время установки 30 секунд
Набор конструктивных переменных с параметрами контроллера Kp, Ki и Kd. Эти параметры имеют минимальное значение 0.
Переменные для требований шага (PlantResponse), зарегистрированный сигнал (PlantOutput) и конструктивных переменных (DesignVars), которые появляются в области данных.

Укажите сигнал для регистрации. К этому зарегистрированному сигналу применяется пользовательское требование.
Выберите «Создать» > «Сигнал».
Откроется окно, в котором можно выбрать сигнал для регистрации.
В окне Модель симулятора (Simulink model) щелкните вывод Controller блок.
Окно обновляется для отображения выбранного сигнала.
Выберите сигнал и щелкните
, чтобы добавить его в набор сигналов.
В поле Signal set (Набор сигналов) введите PlantActuator.
Нажмите кнопку ОК. Новая переменная PlantActuator появляется в области Данные.
Укажите пользовательское требование для применения к сигналу.
Пользовательское требование вызывает целевую функцию. sldo_model1_minimize_energy которая возвращает энергию в PlantActuator сигнал. Энергия сигнала минимизирована. Эта функция принимает:
Входной аргумент data которая представляет собой структуру с полями для конструктивных переменных в области Данные. Сигналы регистрируются для номинальных и неопределенных значений параметров при их наличии.
Возвращает целевое значение, которое должно быть свернуто.
Совет
Для просмотра содержимого этой функции введите edit sldo_model1_minimize_energy .
Выберите «Создать» > «Пользовательское требование».
Откроется окно, в котором можно указать пользовательское требование.
Определить MinimizeEnergy в качестве имени.
Определить @sldo_model1_minimize_energy в качестве функции.
Выбрать Minimize the function output в качестве типа.

В области «Выбор сигналов и систем для ограничения» выберите PlantActuator , чтобы связать пользовательское требование с этим сигналом.

Нажмите кнопку OK. В области Data приложения появится новая переменная. Окно также обновляется для графического отображения требования к пользовательскому сигналу.
Щелкните Оптимизировать (Optimize).

После нескольких итераций оптимизация сходится для удовлетворения требований как к пользовательскому сигналу, так и к отклику шага.

Закройте модель.
setOption(sdotool('sldo_model1'),'NoPromptClose',true)
bdclose('sldo_model1')