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

В этом примере показано, как оценить физические параметры - масса (m), коэффициент упругости (k) и ослабляющий (b) простой модели массового пружинного демпфера. Этот пример иллюстрирует значение оценки начального состояния.

Массовая системная модель демпфера Spring

Откройте модель Simulink®.

open_system('msd_system')

Выход модели является ответом смещения (положение) массы в системе массового пружинного демпфера согласно постоянной силе (F), и начальное смещение (x0x0 начальное условие блока интегратора Положения. Запустите симуляцию однажды, чтобы наблюдать ответ модели к номинальному набору значений параметров.

Наборы экспериментальных данных

Для оценки параметров модели (mB, и k), используются два набора экспериментальных данных. Эти наборы данных были получены с помощью двух различных исходных положений (0.1 и 0.3) и содержат аддитивный шум. Следующее является графиком этих наборов данных (оранжевые и голубые кривые), наряду с симулированным откликом (желтая кривая) модели Simulink для x0 =-0.1 и номинального набора значений параметров (m=8, k=500, b=100).

Оценка параметров модели

Модель имеет три параметра (kBM) это появляется в блоках Усиления модели Simulink msd_system. Мы оцениваем эти параметры с помощью Оценки Параметра.

Дважды кликните графический интерфейс пользователя Оценки Параметра с предварительно загруженным блоком данных в модели, чтобы открыть предварительно сконфигурированный сеанс графический интерфейса пользователя оценки. Наборы экспериментальных данных уже загружаются в проекте (data_exp1 и data_exp2). Кликните по вкладке View, чтобы разметить графики так, чтобы Эксперимент plot:data_exp1 и Эксперимент plot:data_exp2 были оба видимы. Нажмите Plot Model Response, чтобы симулировать модель для двух экспериментов. Графики показывают, что симуляция модели не совпадает с данными об эксперименте.

Оценка параметра без оценки состояния

Приложение сконфигурировано, чтобы оценить параметры модели с помощью обоих data_exp1 и data_exp2 эксперименты; нажмите Select Parameters, чтобы видеть выбранные параметры и Выбрать Experiments, чтобы видеть эксперименты, выбранные для оценки.

Нажмите Estimate, чтобы запустить оценку. Можно изменить опции оценки путем установки поля комбинированного списка Cost Function и нажатия на More Options.

В то время как оценка запускается, обновление графиков и диалоговое окно, показывающее, что прогресс оценки появляется. Диалоговое окно прогресса показывает итерации оценки, число раз, модель была оценена (F-количество) и стоимость оценки в каждой итерации.

После многих итераций оценка сходится и завершает работу. Модель обновляется предполагаемыми параметрами, и результаты оценки сохранены в браузере данных.

data_exp1 и data_exp2 экспериментируйте графики показывают, что параметры модели были настроены, чтобы совпадать с измеренными данными об эксперименте максимально тесно. Симулированные измеренные сигналы соответствуют хорошо от 2-секундной метки вперед, но не соответствуют задолго до 2 секунд. Результаты симуляции для обоих экспериментов запускаются в –0.1. Это - начальное условие модели, которая не была оценена; эти графики показывают, что начальное условие должно также быть оценено.

Оценка параметра с оценкой начального состояния

data_exp1 и data_exp2 эксперименты указывают, что измеренные выходные данные, но, как замечено выше должны также задать начальное состояние модели. Добавьте начальные состояния в эксперименты и оцените их.

Щелкните правой кнопкой по data_exp1 и выберите Edit, чтобы открыть диалоговое окно, чтобы сконфигурировать эксперимент.

Нажмите Select Initial States и выберите состояние положения. Нажмите ОК, чтобы закрыть селектор состояния и добавить выбранное состояние в эксперимент.

Щелкните правой кнопкой по data_exp2 и выберите Edit и добавьте состояние положения в эксперимент.

Эксперименты теперь сконфигурированы, чтобы включать начальные состояния, которые могут быть оценены. Нажмите Select Parameters.

Верхний фрагмент избранного диалогового окна параметров имеет раздел для параметров, которые настраиваются с помощью всех экспериментов, выбранных для оценки. Более низкий раздел диалогового окна имеет поле комбинированного списка, чтобы выбрать эксперимент и виджеты, чтобы задать начальные состояния и параметры, которые настраиваются с помощью только выбранный эксперимент. Для этой проблемы, data_exp1 и data_exp2 эксперименты оценивают начальное состояние модели для каждого эксперимента.

Можно теперь запустить оценку, но сначала создать графики контролировать прогресс оценки. Нажмите Add Plot и выберите Parameter Trajectory, щелкните правой кнопкой мыши по графику и выберите масштабируемые значения Show. Это создает график, который показывает, как предполагаемые значения параметров изменяются во время оценки. Кликните по вкладке View, чтобы разметить графики так, чтобы Эксперимент plot:data_exp1, Эксперимент plot:data_exp2 и Итерация построили 1, оба видимы.

Нажмите кнопку Estimate, чтобы запустить оценку.

После многих итераций оценка сходится и завершает работу. data_exp1 и data_exp2 экспериментируйте графики показывают, как оценка начального значения улучшает подгонку оценки. EstimatedParams постройте показывает предполагаемое начальное состояние для двух экспериментов, график также показывает что предполагаемый k значение не изменилось в то время как b и m измененный немного. Можно подтвердить это путем нажатия на EstimatedParams и исследование панели предварительного просмотра и затем нажатие на EstimatedParams1 и исследование панели предварительного просмотра. Щелчок правой кнопкой Alternatively EstimatedParams и выберите Open, чтобы открыть диалоговое окно, чтобы просмотреть результаты.

Этот пример показывает, что важно независимо оценить начальные состояния для каждого эксперимента для того, чтобы получить правильные оценки параметров модели.

Связанные примеры

Изучить, как оценить параметры модели и начальные состояния с помощью sdo.optimize команда, смотрите Оценочные Параметры модели и начальные состояния (Код).

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

bdclose('msd_system')