Сгенерируйте код MATLAB для задач оценки параметра (GUI)

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

Задача оценки массы-пружины-демпфера

Пример Estimate Model Parameters and Initial States (GUI) показывает, как использовать Parameter Estimator для оценки параметров модели масса-пружина-демпфер. В этом примере мы загружаем предварительно сконфигурированный сеанс Parameter Estimator на основе этого примера.

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

load sdoMassSpringDamper_sdosession
spetool(SDOSessionData)

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

В списке Оценка выберите Сгенерировать КОД MATLAB.

Сгенерированный код добавляется в редактор 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 функция с другим набором параметров для оценки.

Для получения дополнительной информации о том, как написать функцию objective/constraint для использования со sdo.optimize команда, введите help sdoExampleCostFunction в командной строке MATLAB.

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