В этом примере показано, как автоматически сгенерировать функцию MATLAB ®, чтобы решить задачу оценки параметра. Вы используете Parameter Estimator, чтобы задать задачу оценки для массово-пружинного демпфера и сгенерировать код MATLAB, чтобы решить эту задачу оценки.
Пример Estimate Model Parameters and Initial States (GUI) показывает, как использовать Parameter Estimator для оценки параметров модели масса-пружина-демпфер. В этом примере мы загружаем предварительно сконфигурированный сеанс Parameter Estimator на основе этого примера.
Используйте следующие команды для загрузки предварительно сконфигурированного сеанса оценки
load sdoMassSpringDamper_sdosession spetool(SDOSessionData)
В списке Оценка выберите Сгенерировать КОД 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.
Закройте модель