Этот пример показывает, как оптимизировать проект, чтобы соответствовать пользовательской цели с помощью Response Optimizer. Вы оптимизируете параметры цилиндра, чтобы минимизировать геометрию цилиндра и удовлетворить требования проекта.
Модель гидроцилиндра основана на модели Simulink sldemo_hydcyl
. Модель включает в себя:
Pump
и Cylinder Assembly
подсистемы. Для получения дополнительной информации о подсистемах см. Симуляцию одиночного гидравлического цилиндра.
Изменение шага, приложенное к площади постоянного отверстия клапана, которое заставляет изменять положение поршня гидроцилиндра.
Вы настраиваете площадь поперечного сечения цилиндра и поршневые коэффициенты упругости так, чтобы они соответствовали следующим проектом требованиям:
Убедитесь, что положение поршня имеет переходную характеристику время нарастания менее 0,04 секунд и время установки менее 0,05 секунд.
Ограничьте максимальные давления в цилиндре 1.75e6 Н/м.
Минимизируйте площадь поперечного сечения цилиндра.
Откройте Response Optimizer, чтобы сконфигурировать и запустить задачи оптимизации проектирования в интерактивном режиме с помощью команды
sdotool('sdoHydraulicCylinder')
Задайте следующие параметры модели как конструктивные переменные для оптимизации:
Площадь поперечного сечения Ac
Поршневые коэффициенты упругости K
В раскрывающемся списке Проекта Переменных Set выберите New. Откроется диалоговое окно для выбора параметров модели для оптимизации.
Выберите Ac
и K
. Нажмите < -, чтобы добавить выбранные параметры в набор конструктивных переменных.
Ограничьте площадь поперечного сечения цилиндра круговой площадью от 1 до 2 сантиметров, а коэффициент упругости поршня - областью значений от 1e4 до 10e4 Н/м. Для этого задайте максимальное и минимальное значение для соответствующей переменной в столбцах Maximum и Minimum.
Поскольку значения переменных являются различными порядками величины, шкалы Ac
1e-3 и K
по 1e5.
После задания значений нажмите клавишу Enter.
Нажмите OK. Новая переменная DesignVars
появляется в браузере Response Optimizer.
Требования проекта требуют зарегистрированных сигналов модели. Во время оптимизации модель моделируется с помощью текущего значения переменных проектов, и записанный сигнал используется для оценки требований проекта.
Логгирование давления в гидроцилиндре, которое является первым выходным портом Cylinder Assembly
блок.
В раскрывающемся списке New выберите Signal. Откроется диалоговое окно для выбора сигналов модели для регистрации.
Введите Pressures
как имя сигнала в поле Signal set. Затем в модели Simulink щелкните первый выходной порт Cylinder Assembly
блок с именем Pressure
. Диалоговое окно обновляется, чтобы отобразить выбранный сигнал.
Выберите сигнал в диалоговом окне и нажмите - >, чтобы добавить его к набору сигналов.
Нажмите OK. Новая переменная Pressures появится в браузере Response Optimizer.
Точно так же логарифмируйте положение поршня, которое является вторым выходом Cylinder Assembly
блок, в переменной с именем PistonPosition
.
Укажите максимальное давление в цилиндре менее 1,75e6 Н/м.
В раскрывающемся списке New выберите Signal Bound. Откроется диалоговое окно для создания требования к привязке сигнала.
Определите имя требования следующим MaxPressure
. В начальном и конечном столбцах Amplitude введите максимальное значение давления 1,75e6 Н/м и установите значение параметра Edge End Time равным 0,1 с. В области Select Signals to Bound выберите Pressures
, сигнал, на который распространяется это требование.
Нажмите кнопку ОК.
Новый MaxPressure
переменная появится в браузере Response Optimizer.
Автоматически создается графическое представление требований к максимальному давлению.
Задайте требования к переходной характеристике положения поршня для времени нарастания менее 0,04 секунд и времени урегулирования менее 0,05 секунд.
В раскрывающемся списке New на вкладке Response Optimization выберите Переходная Характеристика Envelope. Откроется диалоговое окно для создания требования к переходной характеристике.
Задайте требование с именем PistonResponse
, и необходимое время нарастания и время урегулирования границ. Выберите PistonPosition
как сигнал, к которому необходимо применить требование переходной характеристики.
Нажмите кнопку ОК.
Пользовательская цель состоит в том, чтобы минимизировать площадь поперечного сечения цилиндра.
В раскрывающемся списке Создать выберите Пользовательское требование. Откроется диалоговое окно для создания пользовательского требования.
Задайте функцию для вызова во время оптимизации в поле 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, чтобы симулировать модель и проверить, насколько хорошо исходный проект удовлетворяет требованиям проекта. Для одновременного отображения обоих графиков требований используйте виджеты размещения графика на вкладке Вид.
На графиках видно, что требования к максимальному давлению удовлетворяются, но не выполняются требования к переходной характеристике положения поршня.
Создайте график, чтобы отобразить изменение площади поперечного сечения цилиндра и коэффициента упругости поршня во время оптимизации.
В раскрывающемся списке «Данные для графика» выберите DesignVars, который содержит переменные проекта оптимизации Ac
и K
. В раскрывающемся списке «Добавить график» создайте новый график итерации, чтобы показать проекту переменные траектории. Для этого нового графика щелкните Показать масштабированные значения на вкладке Итерационный график (Iteration Plot), чтобы облегчить просмотр двух траекторий на тех же осях.
Щелкните Оптимизировать (Optimize) на вкладке Оптимизация отклика (Response Optim
Окно прогресса оптимизации обновляется при каждой итерации и показывает, что оптимизация сходилась после 4 итераций.
The Pressures
и PistonPosition
графики указывают, что проектные требования удовлетворены. The MinimizeAC
график показывает, что площадь поперечного сечения цилиндра Ac
минимизируется.
Чтобы просмотреть оптимизированный проект значений переменных, щелкните имя переменной в браузере Response Optimizer. Оптимизированные значения конструктивных переменных автоматически обновляются в модели Simulink.
Чтобы узнать, как оптимизировать проект цилиндра, используя sdo.optimize
команда, см. «Оптимизация проекта для достижения пользовательской цели (кода)».