Разработайте оптимизацию, чтобы достигнуть пользовательской цели (графический интерфейс пользователя)

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

Гидравлическая цилиндрическая модель

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

  • Pump и подсистемы Cylinder Assembly. Для получения дополнительной информации о подсистемах см. "Симуляцию одиночного гидравлического цилиндра".

  • Ступенчатое изменение применилось к цилиндрической области отверстия распределительного клапана, которая заставляет цилиндрическое поршневое положение изменяться.

Гидравлическая цилиндрическая проблема проектирования

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

  • Гарантируйте, что поршневое положение имеет время нарастания переходного процесса меньше чем 0,04 секунд и времени установки меньше чем 0,05 секунд.

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

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

Откройте Response Optimization Tool

Откройте инструмент Response Optimization, чтобы сконфигурировать и запустить задачи оптимизации проекта в интерактивном режиме с помощью команды

sdotool('sdoHydraulicCylinder')

Задайте переменные проекта

Задайте следующие параметры модели как переменные проекта для оптимизации:

  • Цилиндрическая площадь поперечного сечения Ac

  • Поршневой коэффициент упругости K

В Наборе Переменных Проекта выпадающий список выберите New. Диалоговое окно, чтобы выбрать параметры модели для оптимизации открывается.

Выберите Ac и K. Щелкните <-чтобы добавить выбранные параметры в набор переменных проекта.

Ограничьте цилиндрическую площадь поперечного сечения круговой областью с радиусом между 1 и 2 сантиметрами и поршневым коэффициентом упругости к области значений 1e4 к 10e4 N/m. Для этого задайте максимум и минимум для соответствующей переменной в Максимальных и Минимальных столбцах.

Поскольку значения переменных являются различными порядками величины, масштабируют Ac 1e-3 и K 1e5.

Нажмите Enter после того, как вы зададите значения.

Нажать ОК. Новая переменная DesignVars появляется в Response Optimization Tool Workspace.

Задайте конструктивные требования

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

Регистрируйте цилиндрические давления, который является первым выходным портом блока Cylinder Assembly.

В Новом выпадающем списке выберите Signal. Диалоговое окно, чтобы выбрать образцовые сигналы регистрировать открывается.

Введите Pressures как имя сигнала в поле набора Сигнала. Затем в модели Simulink кликните по первому выходному порту блока Cylinder Assembly под названием Pressure. Диалоговое окно обновляет, чтобы отобразить выбранный сигнал.

Выберите сигнал в диалоговом окне и нажатии кнопки->, чтобы добавить его в набор сигнала.

Нажать ОК. Новая переменная Pressures появляется в Response Optimization Tool Workspace.

Точно так же регистрируйте поршневое положение, которое является вторым выводом блока Cylinder Assembly в переменной под названием PistonPosition.

Задайте максимальное цилиндрическое требование к давлению меньше, чем 1.75e6 N/m.

В Новом выпадающем списке выберите Signal Bound. Диалоговое окно, чтобы создать связанное требование сигнала открывается.

Определяйте Имя Требования как MaxPressure. В обоих запуск и Амплитудные столбцы конца, введите максимальное требование к давлению 1.75e6 N/m и установите Время окончания Ребра на 0,1 с. В области Select Signals to Bound выберите Pressures, сигнал, на который применяется это требование.

Нажать ОК.

  • Новая переменная MaxPressure появляется в Response Optimization Tool Workspace.

  • Графическое представление максимального требования к давлению автоматически создается.

Задайте поршневое требование переходного процесса положения времени нарастания меньше чем 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 Optimization Tool Workspace. Оптимизированные значения переменных проекта автоматически обновляются в модели Simulink.

Связанные примеры

Чтобы изучить, как оптимизировать цилиндрический проект с помощью команды sdo.optimize, см. "Оптимизацию проекта, чтобы Достигнуть Пользовательской Цели (Код)".