Этот пример показывает, как автоматически сгенерировать функцию MATLAB, чтобы решить проблему Оценки Параметра. Вы используете инструмент Parameter Estimation, чтобы задать проблему оценки для массового пружинного демпфера и сгенерировать код MATLAB, чтобы решить эту проблему оценки.
"Оценочные Параметры модели и начальные состояния" пример показывают, как использовать инструмент Parameter Estimation, чтобы оценить параметры модели массового пружинного демпфера. В этом примере мы загружаем предварительно сконфигурированный сеанс инструмента Parameter Estimation на основе того примера.
Используйте следующие команды, чтобы загрузить предварительно сконфигурированный сеанс оценки
load sdoMassSpringDamper_sdosession spetool(SDOSessionData)
Из списка Оценок выберите Generate MATLAB Code.
Сгенерированный код добавляется к редактору MATLAB как несохраненная функция MATLAB.
Исследуйте сгенерированный код. Значительные фрагменты кода:
Specify Model Parameters to Estimate
- Определение параметров модели оценивается.
Define the Estimation Experiments
- Определение измеренных и ожидаемых данных сигнала, чтобы использовать для оценки.
Create Estimation Objective Function
- Создание анонимной функции, которая вызывает подфункциональный msd_system_optFcn
, который оценивает модель с помощью каждого эксперимента и сравнивает симуляцию и измеренный эксперимент выходные параметры. Эта анонимная функция вызвана sdo.optimize
в каждой итерации задачи оптимизации, чтобы решить проблему оценки.
Estimate the Parameters
- Решите проблему оценки с помощью команды sdo.optimize
.
Выберите Save из редактора MATLAB, чтобы сохранить сгенерированную функцию.
Запустите сгенерированную функцию.
Первый выходной аргумент, pOpt
, содержит оптимизированные значения параметров, и второй выходной аргумент, optInfo
, содержит информацию об оптимизации.
Вы можете:
Измените сгенерированную функцию spe_msd_system
, чтобы включать или исключить новые эксперименты или опции оценки изменения.
Вызовите сгенерированную функцию spe_msd_system
с различным набором параметров, чтобы оценить.
Для получения дополнительной информации о том, как записать функцию цели/ограничения, чтобы использовать с командой sdo.optimize
, введите help sdoExampleCostFunction
в подсказке команды MATLAB.
Закройте модель