Этот пример показывает, как оценить физические параметры - массу (m), коэффициент упругости (k) и демпфирование (b) простой модели масса-пружина-демпфер. Этот пример иллюстрирует значимость начальной оценки состояния.
Модель Simulink для системы масса-пружина-демпфер, msd_system
, показано ниже.
Выходом модели является реакция перемещения (положение) массы в системе масса-пружина-демпфер, подверженная постоянной силе (F), и начальное перемещение (x0). x0 является начальным условием блока интегратора положения. Запустите симуляцию один раз, чтобы наблюдать реакцию модели на номинальный набор значений параметров.
Для оценки параметров модели (m
, b
и k
), используются два набора экспериментальных данных. Эти наборы данных были получены с использованием двух различных начальных положений (0,1 и 0,3) и содержат аддитивный шум. График этих наборов данных показан ниже (оранжевые и голубые кривые), наряду с моделируемой характеристикой (желтая кривая) модели Simulink для x0 = -0,1 и номинальным набором значений параметров (m
=8, k
=500, b
=100).
Модель имеет три параметра (k
, b
, m
), которые появляются в блоках Gain msd_system модели Simulink. Мы оцениваем эти параметры с помощью Parameter Estimation.
Дважды кликните Parameter Estimation GUI with preloaded data
блокируйте в модели, чтобы открыть предварительно сконфигурированный сеанс графический интерфейс пользователя оценки. Экспериментальные наборы данных уже загружены в проект (data_exp1
и data_exp2
). Щелкните вкладку View, чтобы разметить графики так, чтобы Experiment plot:data_exp1
и Experiment plot:data_exp2
оба видны. Нажмите Plot Model Response, чтобы симулировать модель для двух экспериментов. Графики показывают, что симуляция модели не соответствует данным эксперимента.
Оценка параметра без оценки состояния
Приложение было сконфигурировано, чтобы оценить параметры модели с помощью обоих data_exp1
и data_exp2
эксперименты, нажмите Select Parameters, чтобы увидеть выбранные параметры и Select Experiments, чтобы увидеть эксперименты, выбранные для оценки.
Нажмите Estimate, чтобы начать оценку. Можно изменить опции оценки, установив комбокс Cost Function и нажав More Options....
В то время как оценка запускает обновление графиков и появляется диалоговое окно, показывающее прогресс оценки. Диалоговое окно прогресса показывает итерации оценки, количество раз, когда модель была оценена (количество F), и стоимость оценки в каждой итерации.
После ряда итераций оценка сходится и прекращается. Модель обновляется оценочными параметрами, и результаты оценки сохраняются в браузере данных.
The data_exp1
и data_exp2
экспериментальные графики показывают, что параметры модели были настроены так, чтобы максимально точно соответствовать измеренным данным эксперимента. Моделируемые измеренные сигналы хорошо совпадают с 2-секундной отметкой и далее, но не совпадают до 2 секунд. Результаты симуляции для обоих экспериментов начинаются с -0.1. Это начальное условие модели, которое не было оценено; эти графики показывают, что начальное условие также должно быть оценено.
Оценка параметра с начальной оценкой состояния
The data_exp1
и data_exp2
эксперименты определяют измеренные выходные данные, но, как видно выше, должны также определять начальное состояние модели. Теперь мы добавляем начальные состояния к экспериментам и оцениваем их.
Щелкните правой нажатие кнопки data_exp1
и выберите Edit... чтобы открыть диалоговое окно для настройки эксперимента.
Щелкните Выбрать начальные состояния (Select Initial States) и выберите положение. Нажмите OK, чтобы закрыть селектор состояния и добавить выбранное состояние к эксперименту.
Щелкните правой нажатие кнопки data_exp2
и выберите Edit.. и добавьте состояние положения к эксперименту.
Эксперименты теперь сконфигурированы, чтобы включать начальные состояния, которые могут быть оценены. Щелкните Выбрать параметры (Select Parameters).
В верхнем фрагменте диалогового окна параметров выбора имеется раздел для параметров, которые настраиваются с помощью всех экспериментов, выбранных для оценки. В нижней части диалогового окна есть выпадающий список для выбора эксперимента и виджеты для определения начальных состояний и параметров, которые настраиваются только с помощью выбранного эксперимента. Для этой задачи data_exp1
и data_exp2
эксперименты оценивают начальное состояние модели для каждого эксперимента.
Теперь мы готовы начать оценку, но сначала создадим графики для мониторинга прогресса оценки. Щелкните Добавить график (Add Plot) и выберите Траектория параметра (Parameter Trajectory), щелкните правой кнопкой мыши график и выберите Показать масштабированные значения (Show scaled values). Это создает график, который показывает, как предполагаемые значения параметров изменяются во время оценки. Щелкните вкладку View, чтобы разметить графики так, чтобы Experiment plot:data_exp1
, Experiment plot:data_exp2
, и Iteration plot 1
оба видны.
Нажмите кнопку Оценка, чтобы начать оценку.
После ряда итераций оценка сходится и прекращается. The data_exp1
и data_exp2
экспериментальные графики показывают, как оценка начального значения улучшает подгонку оценки. The EstimatedParams
график показывает предполагаемое начальное состояние для двух экспериментов, график также показывает, что предполагаемое k
значение не изменилось во время b
и m
слегка изменился. Подтвердить это можно нажав кнопку EstimatedParams
и просмотр панели предварительного просмотра, а затем щелчок мыши EstimatedParams1
и просмотр панели предварительного просмотра. Другой способ - щелкнуть правой нажатие кнопки EstimatedParams
и выберите Открыть... чтобы открыть диалоговое окно для просмотра результатов.
Этот пример показывает, что важно независимо оценить начальные состояния для каждого эксперимента в порядок, чтобы получить правильные оценки параметров модели.
Чтобы узнать, как оценить параметры модели и начальные состояния, используя sdo.optimize
команда, см. Оценка параметров модели и начальных состояний (Code).
Закройте модель