В этом примере показано, как оптимизировать проект, чтобы удовлетворить пользовательское требование сигнала. Вы оптимизируете параметры контроллера, чтобы минимизировать энергию сигнала приведения в действие объекта при удовлетворении требованиям переходного процесса.
Загрузите сохраненный сеанс инструмента 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')