Этот пример показывает, как создать эксперимент оценки из измеренных данных, сохраненных в файле, и как обработать предварительно измеренные данные. Импортированные данные используются для оценки параметров простой схемы RC.
Этот пример требует Simscape ®.
Модель Simulink, sdoRCCircuit
, моделирует простую схему резистор-конденсатор (RC).
open_system('sdoRCCircuit');
Вы используете измеренные данные для оценки параметра модели RC и значений состояния.
Измеренные выходные данные:
Напряжение конденсатора, выход PS-Simulink Converter
блок
Параметр:
Емкость, C1
, используемый в C1
блок
Состояние:
Начальное напряжение конденсатора, C1
В этом примере мы загружаем измеренные данные из сохраненного файла MATLAB, данные также хранятся в текстовом файле переменной, разделенной запятыми (csv), и мы также будем импортировать оттуда.
Сначала загружайте измеренные данные из файла MATLAB, файл задает две переменные, time
и data
который задает измеренное напряжение конденсатора.
load sdoRCCircuit_ExperimentData
На вкладке Apps нажмите Parameter Estimator в разделе Control Systems, чтобы запустить приложение Parameter Estimator.
Нажмите New Experiment, чтобы создать эксперимент по оценке, который содержит измеренные данные. A Exp
переменная создается в Parameter Estimator, и открывается диалоговое окно для редактирования эксперимента.
Редактор экспериментов содержит разделы для задания измеренных выходных данных и разделы для опционального определения начальных состояний и параметров эксперимента.
Редактор эксперимента автоматически добавляет измеренные выходные сигналы для портов корневого уровня модели и зарегистрированных сигналов модели. Нажмите Select Measured Output Signals, чтобы добавить дополнительные измеренные выходы, если это необходимо. В данном примере сигнал напряжения конденсатора регистрируется в модели и уже добавляется к эксперименту.
Задайте измеренное напряжение конденсатора путем ввода [time, data]
в поле редактирования. Здесь используются переменный MATLAB time
и data
загружен из файла ранее, чтобы задать измеренное напряжение конденсатора. Измеренные данные задаются как матрица, где 1-й столбец является данными о времени и последующих столбцах.
Также можно задать напряжение измеренной емкости, используя Переменный MATLAB, можно загрузить измеренные данные непосредственно из текста или файлов Excel. Нажмите кнопку импорта, чтобы открыть средство выбора файлов и перейти к $matlabroot$\toolbox\sldo\sldodemos\estim
и откройте sdoRCCircuit_ExperimentData.xlsx
файл.
Откроется инструмент для импорта данных столбца из файла. 1-й столбец, выбранный для импорта, используется для определения времени сигнала, последующие столбцы, выбранные для импорта, используются для определения данных сигнала. Выберите time
и data
столбцы и нажмите Импортировать
В редакторе экспериментов нажмите Plot & Simulate, чтобы построить график измеренных данных эксперимента и моделируемой реакции модели.
График эксперимента показывает, что моделируемые данные не совпадают с измеренными данными. График также показывает, что начальное состояние модели не верно и должно быть оценено (измеренные и моделируемые напряжения во времени 0 значительно отличаются). В редакторе экспериментов нажмите Select Initial States, чтобы открыть диалоговое окно для выбора начальных состояний модели; выберите sdoRCCircuit.C1.vc
и нажмите Ok, чтобы добавить состояние к эксперименту.
Измеренные данные содержат высокую частоту шум, который мы удаляем с помощью lowpass фильтра. Щелкните вкладку Графика эксперимента и выберите Low Pass Filter.
Откроется инструмент «Lowpass». Верхняя ось показывает сигнал БПФ, нижняя ось - сигналы. Исходный сигнал показан синим цветом, а отфильтрованный - красным. Отрегулируйте полосу пропускания фильтра путем ввода значения в поле Normalized crefoff frequency edit или нажатия и перетаскивания жёлтого ребра закрашенной фигуры. Перетащите срез фильтра в 0,4. Щелкните Опциями и выберите Фильтр сдвига нулевой фазы, чтобы избежать введения сдвига фазы фильтра в измеренные данные.
Нажмите Apply и Close Low-Pass Filter, чтобы завершить низкочастотную фильтрацию данных. Эксперимент обновляется фильтрованным сигналом. Можно использовать другие инструменты предварительной обработки, такие как, удалите смещение, масштаб, повторный образец и т.д., чтобы дополнительно обработать измеренные данные. Для этого примера фильтрация lowpass является достаточной.
С сконфигурированными и предварительно обработанными данными эксперимента мы готовы запустить оценку. Сначала выбираем параметры для оценки. Щелкните вкладку Оценка параметра и выберите Select Parameters. Откроется диалоговое окно для задания параметров модели для оценки. Нажмите Select Parameters и выберите, C1
, значение конденсатора схемы. Установите минимальное значение конденсатора равное 0, и начальное предположение равным 460e-6.
Нажмите Estimate, чтобы начать оценку. Можно изменить опции оценки, установив комбокс Cost Function и нажав More Options....
В то время как оценка запускает обновление графиков и появляется диалоговое окно, показывающее прогресс оценки. Диалоговое окно прогресса показывает итерации оценки, количество раз, когда модель была оценена (количество F), и стоимость оценки в каждой итерации.
После ряда итераций оценка сходится и прекращается. Модель обновляется оценочными параметрами, и результаты оценки сохраняются в браузере данных.
Чтобы узнать, как оценить параметры модели с помощью sdo.optimize
команда, см. Оценка параметров модели и начальных состояний (Code).
Закройте модель
bdclose('sdoRCCircuit')