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

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

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

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

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

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

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

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

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

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

Откройте Response Optimizer

Откройте 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 команда, смотрите Оптимизацию Проекта, чтобы Достигнуть Пользовательской Цели (Код).