В этом примере показано, как оптимизировать проект, чтобы достигнуть пользовательской цели с помощью Response Optimizer. Вы оптимизируете цилиндрические параметры, чтобы минимизировать цилиндрическую геометрию и удовлетворить конструктивным требованиям.
Модель гидроцилиндра основана на модели Simulink sldemo_hydcyl
. Модель включает:
Pump
и Cylinder Assembly
подсистемы. Для получения дополнительной информации о подсистемах смотрите Симуляцию одиночного гидравлического цилиндра.
Ступенчатое изменение применилось к цилиндрической площади постоянного отверстия распределительного клапана, которая заставляет положение поршня гидроцилиндра изменяться.
Вы настраиваете цилиндрическую площадь поперечного сечения и поршневой коэффициент упругости, чтобы соответствовать следующим конструктивным требованиям:
Убедитесь, что положение поршня имеет время нарастания переходного процесса меньше чем 0,04 секунд и времени установки меньше чем 0,05 секунд.
Ограничьте максимальные цилиндрические давления на 1.75e6 N/m.
Минимизируйте цилиндрическую площадь поперечного сечения.
Откройте Response Optimizer, чтобы сконфигурировать и запустить задачи оптимизации проекта в интерактивном режиме с помощью команды
sdotool('sdoHydraulicCylinder')
Задайте следующие параметры модели как переменные проекта для оптимизации:
Цилиндрическая площадь поперечного сечения Ac
Поршневой коэффициент упругости K
В Наборе Переменных Проекта выпадающий список выберите New. Диалоговое окно, чтобы выбрать параметры модели для оптимизации открывается.
Выберите Ac
и K
. Щелкните <-чтобы добавить выбранные параметры в набор переменных проекта.
Ограничьте цилиндрическую площадь поперечного сечения круговой областью с радиусом между 1 и 2 сантиметрами и поршневым коэффициентом упругости к области значений 1e4 к 10e4 N/m. Для этого задайте максимум и минимум для соответствующей переменной в Максимальных и Минимальных столбцах.
Поскольку значения переменных являются различными порядками величины, масштабируют Ac
1e-3 и K
1e5.
Нажмите Enter после того, как вы зададите значения.
Нажать ОК. Новая переменная DesignVars
появляется в браузере Response Optimizer.
Конструктивные требования требуют регистрируемых сигналов модели. Во время оптимизации модель симулирована с помощью текущего значения переменных проекта, и регистрируемый сигнал используется, чтобы оценить конструктивные требования.
Регистрируйте цилиндрические давления, который является первым выходным портом Cylinder Assembly
блок.
В Новом выпадающем списке выберите Signal. Диалоговое окно, чтобы выбрать сигналы модели регистрировать открывается.
Введите Pressures
как имя сигнала в поле набора Сигнала. Затем в модели Simulink кликните по первому выходному порту Cylinder Assembly
блокируйтесь назвал Pressure
. Диалоговое окно обновляется, чтобы отобразить выбранный сигнал.
Выберите сигнал в диалоговом окне и нажатии кнопки->, чтобы добавить его в набор сигнала.
Нажать ОК. Новая переменная Pressures появляется в браузере Response Optimizer.
Точно так же регистрируйте положение поршня, которое является вторым выходом Cylinder Assembly
блокируйтесь в переменной под названием PistonPosition
.
Задайте максимальное цилиндрическое требование к давлению меньше, чем 1.75e6 N/m.
В Новом выпадающем списке выберите Signal Bound. Диалоговое окно, чтобы создать связанное требование сигнала открывается.
Определяйте имя требования как MaxPressure
. В обоих Амплитудные столбцы начала и конца введите максимальное требование к давлению 1.75e6 N/m и установите Время окончания Ребра на 0,1 с. В области Select Signals to Bound выберите Pressures
, сигнал, на который применяется это требование.
Нажать ОК.
Новый MaxPressure
переменная появляется в браузере Response Optimizer.
Графическое представление максимального требования к давлению автоматически создается.
Задайте требование переходного процесса положения поршня времени нарастания меньше чем 0,04 секунд и времени урегулирования меньше чем 0,05 секунд.
В Новом выпадающем списке вкладки Response Optimization выберите Step Response Envelope. Диалоговое окно, чтобы создать требование переходного процесса открывается.
Задайте требование под названием PistonResponse
, и необходимое повышение и границы времени урегулирования. Выберите PistonPosition
как сигнал применить требование переходного процесса к.
Нажать ОК.
Пользовательская цель состоит в том, чтобы минимизировать цилиндрическую площадь поперечного сечения.
В Новом выпадающем списке выберите Custom Requirement. Диалоговое окно, чтобы создать пользовательское требование открывается.
Задайте функцию, чтобы вызвать во время оптимизации в поле Requirement Function. В каждой итерации оптимизации программное обеспечение вызывает функцию и передает текущие значения переменных проекта. Можно также опционально передать регистрируемые сигналы пользовательскому требованию. Здесь, вы используете sdoHydraulicCylinder_customObjective
как пользовательская функция требования, которая возвращает значение цилиндрической площади поперечного сечения.
В Типе Требования выпадающий список задайте, является ли требование целью минимизировать (min
), ограничение неравенства (<=
), или ограничение равенства (==
).
type sdoHydraulicCylinder_customObjective
function objective = sdoHydraulicCylinder_customObjective(data) %SDOHYDRAULICCYLINDER_CUSTOMOBJECTIVE % % The sdoHydraulicCylinder_customObjective function is used to define a % custom requirement that can be used in the graphical SDTOOL environment. % % The |data| input argument is a structure with fields containing the % design variable values chosen by the optimizer. % % The |objective| return argument is the objective value to be minimized by % the SDOTOOL optimization solver. % % Copyright 2011 The MathWorks, Inc. %For the cylinder design problem we want to minimize the cylinder %cross-sectional area so return the cylinder cross-sectional area as an %objective value. Ac = data.DesignVars(1); objective = Ac.Value; end
Нажмите Plot Model Response, чтобы симулировать модель и проверять, как хорошо первоначальный проект удовлетворяет конструктивным требованиям. Чтобы показать оба графика требования одновременно, используйте виджеты размещения графика во вкладке View.
Из графиков смотрите, что максимальному требованию к давлению удовлетворяют, но требованию переходного процесса положения поршня не удовлетворяют.
Создайте график отобразиться, как цилиндрическая площадь поперечного сечения и поршневой коэффициент упругости изменяются во время оптимизации.
В Данных, чтобы Построить выпадающий список, выберите DesignVars, который содержит переменные Ac
проекта оптимизации и
K
. В Добавить выпадающем Графике создайте новый график итерации показать траектории переменной проекта. Для этого нового графика нажмите, Show масштабировал значения во вкладке Iteration Plot, чтобы упростить просмотр этих двух траекторий на тех же осях.
Нажмите Optimize во вкладке Response Optimization.
Окно прогресса оптимизации обновляется в каждой итерации и показывает, что оптимизация сходилась после 4 итераций.
Pressures
и PistonPosition
графики показывают, что конструктивным требованиям удовлетворяют. MinimizeAC
постройте показывает что цилиндрическая площадь поперечного сечения Ac
минимизирован.
Чтобы просмотреть оптимизированные значения переменных проекта, кликните по имени переменной в браузере Response Optimizer. Оптимизированные значения переменных проекта автоматически обновляются в модели Simulink.
Изучить, как оптимизировать цилиндрический проект с помощью sdo.optimize
команда, смотрите Оптимизацию Проекта, чтобы Достигнуть Пользовательской Цели (Код).