Этот пример показывает, как оптимизировать проект, чтобы удовлетворить пользовательское требование сигнала. Вы оптимизируете параметры контроллера, чтобы минимизировать энергию сигнала приведения в действие объекта при удовлетворении требований переходного процесса.
Загрузите сохраненный сеанс инструмента Response Optimization.
load sldo_model1_custom_signal_session sdotool(SDOSessionData);
Следующая модель Simulink® открывается.
Инструмент Response Optimization, сконфигурированный со следующими настройками, также открывается:
Характеристики переходного процесса, заданные на выводе блока Plant
, что образцовый вывод должен удовлетворить:
Максимальное перерегулирование 5%
Максимальное время нарастания 10 секунд
Максимальное время установления 30 секунд
Разработайте переменный набор с параметрами контроллера Kp
, Ki
и Kd
. Эти параметры имеют минимальное значение 0.
Переменные для требований шага (PlantResponse
), регистрируемый сигнал (PlantOutput
) и переменные проекта (DesignVars
), которые появляются в области Data.
Задайте сигнал регистрировать. Вы применяете пользовательское требование к этому регистрируемому сигналу.
Выберите New> Signal.
Окно открывается, где вы выбираете сигнал регистрировать.
В окне модели Simulink кликните по выводу блока Controller
.
Окно обновляет, чтобы отобразить выбранный сигнал.
Выберите сигнал и нажатие кнопки, чтобы добавить его в набор сигнала.
В Signal set введите PlantActuator
.
Нажмите OK. Новая переменная PlantActuator
появляется в области Data.
Задайте пользовательское требование, чтобы примениться к сигналу.
Пользовательское требование вызывает целевую функцию sldo_model1_minimize_energy
, который возвращает энергию в сигнале PlantActuator
. Энергия сигнала минимизирована. Эта функция принимает:
data
входного параметра, который является структурой с полями для переменных проекта в области Data. Сигналы регистрируются для номинальных и неопределенных значений параметров, если существует кто-либо.
Возвращает объективное значение, которое будет минимизировано.
Чтобы видеть содержимое этой функции, введите edit sldo_model1_minimize_energy
.
Выберите New> Custom Requirement.
Окно открывается, где вы задаете пользовательское требование.
Задайте MinimizeEnergy
как Name.
Задайте @sldo_model1_minimize_energy
как Function.
Выберите Minimize the function output
как Type.
В области Select Signals and Systems to Bound установите флажок PlantActuator
, чтобы сопоставить пользовательское требование с тем сигналом.
Нажмите OK. Новая переменная появляется в области Data инструмента. Окно также обновляет, чтобы графически отобразить пользовательское требование сигнала.
Нажмите Optimize.
После нескольких итераций оптимизация сходится, чтобы удовлетворить и пользовательские требования и переходного процесса сигнала.
Закройте модель.
setOption(sdotool('sldo_model1'),'NoPromptClose',true) bdclose('sldo_model1')