В этом примере показано, как автоматически сгенерировать функцию 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.
Закройте модель