В этом примере показано, как автоматически сгенерировать функцию MATLAB, чтобы решить задачу оптимизации проекта. Вы используете Response Optimizer, чтобы задать задачу оптимизации для проекта гидравлического цилиндра и сгенерировать код MATLAB, чтобы решить эту задачу оптимизации.
Пример «Оптимизация проекта для соответствия пользовательскому объекту» (GUI) показывает, как использовать Response Optimizer для оптимизации конструкции цилиндра. В этом примере мы загружаем предварительно сконфигурированный сеанс Response Optimizer на основе этого примера.
load sdoHydraulicCylinder_sdosession
Используйте следующую команду, чтобы открыть Response Optimizer
sdotool(SDOSessionData)
В списке Optimize выберите Generate MATLAB Code.
Сгенерированный код добавляется в редактор MATLAB как несохраненная функция MATLAB.
Исследуйте сгенерированный код. Значимыми фрагментами кода являются:
Specify Design Variables
- Определение оптимизируемых параметров модели.
Specify Design Requirements
- Определение проектных требований.
Create Optimization Objective Function
- Создание анонимной функции, которая вызывает подфункцию sdoHydraulicCylinder_optFcn
, который оценивает проект цилиндра. sdo.optimize
вызывает анонимную функцию при каждой итерации.
Evaluate custom parameter requirement functions
- Оценивает пользовательское требование, MinimizeAC
, который использует sdoHydraulicCylinder_customObjective
функция.
Optimize the Design
- Оптимизация с использованием sdo.optimize
команда.
Выберите Save из редактора MATLAB, чтобы сохранить сгенерированную функцию.
Запустите сгенерированную функцию.
Первый выходной аргумент, pOpt
, содержит оптимизированные значения параметров и второй выходной аргумент, optInfo
, содержит информацию об оптимизации.
Вы можете:
Измените сгенерированные sdo_sdoHydraulicCylinder
функция, чтобы включить или исключить новые требования проекта или изменить опции оптимизации.
Вызовите сгенерированный sdo_sdoHydraulicCylinder
функция с другим набором параметров для оптимизации.
Для получения дополнительной информации о том, как написать функцию objective/constraint для использования со sdo.optimize
команда, введите help sdoExampleCostFunction
в командной строке MATLAB.
Закройте модель