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

Этот пример показывает, как автоматически сгенерировать функцию MATLAB, чтобы решить проблему Оценки Параметра. Вы используете инструмент Parameter Estimation, чтобы задать проблему оценки для массового пружинного демпфера и сгенерировать код MATLAB, чтобы решить эту проблему оценки.

Проблема оценки массового демпфера Spring

"Оценочные Параметры модели и начальные состояния" пример показывают, как использовать инструмент Parameter Estimation, чтобы оценить параметры модели массового пружинного демпфера. В этом примере мы загружаем предварительно сконфигурированный сеанс инструмента Parameter Estimation на основе того примера.

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

load sdoMassSpringDamper_sdosession
spetool(SDOSessionData)

Сгенерируйте код MATLAB

Из списка Оценок выберите 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.

Закройте модель