Проектируйте оптимизацию, чтобы соответствовать пользовательской цели (GUI)

Этот пример показывает, как оптимизировать проект, чтобы соответствовать пользовательской цели с помощью Response Optimizer. Вы оптимизируете параметры цилиндра, чтобы минимизировать геометрию цилиндра и удовлетворить требования проекта.

Модель гидроцилиндра

Модель гидроцилиндра основана на модели Simulink sldemo_hydcyl. Модель включает в себя:

  • Изменение шага, приложенное к площади постоянного отверстия клапана, которое заставляет изменять положение поршня гидроцилиндра.

Проект Гидравлического Цилиндра

Вы настраиваете площадь поперечного сечения цилиндра и поршневые коэффициенты упругости так, чтобы они соответствовали следующим проектом требованиям:

  • Убедитесь, что положение поршня имеет переходную характеристику время нарастания менее 0,04 секунд и время установки менее 0,05 секунд.

  • Ограничьте максимальные давления в цилиндре 1.75e6 Н/м.

  • Минимизируйте площадь поперечного сечения цилиндра.

Откройте Response Optimizer

Откройте 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 команда, см. «Оптимизация проекта для достижения пользовательской цели (кода)».