В этом примере показано, как использовать несколько экспериментов для оценки комбинации значений параметров модели; некоторые из них оцениваются с использованием всех экспериментов, а другие - с использованием отдельных экспериментов. В примере также показано, как настроить эксперименты оценки с зависимыми от эксперимента значениями параметров.
Вы оцениваете параметры перезаряжаемой батареи на основе данных, собранных в экспериментах, которые разряжают и заряжают батарею.
В этом примере оцениваются параметры простой модели аккумуляторной батареи, sdoBattery. Входной сигнал модели представляет собой ток батареи, а выходной сигнал модели, напряжение на клемме батареи, вычисляется на основе состояния заряда батареи.
open_system('sdoBattery')
Модель основана на уравнении
V-KQmax1-ss
В уравнении:
- напряжение на клемме батареи в вольтах.
- постоянное напряжение батареи в вольтах.
- сопротивление поляризации батареи в Омах.
- максимальная емкость аккумулятора в ампер-часах.
- состояние заряда батареи, при этом 1 заряжается полностью, а 0 разряжается. Состояние заряда батареи вычисляется из интеграла тока батареи с положительным током, указывающим разряд, и отрицательным током, указывающим заряд. Начальное состояние заряда батареи определяется в ампер-часах.
- это падение напряжения при зарядке, выраженное как доля постоянного напряжения батареи. Когда батарея разряжается, это значение равно нулю.
V, K, Qmax, Q0, и Loss - переменные, определенные в рабочей области модели.
Батарею 1.2V (6500mAh) подвергали разрядке и эксперименту по зарядке. Эти экспериментальные данные загружены в предварительно сконфигурированный сеанс оценки.
Для загрузки предварительно сконфигурированного сеанса оценки используйте следующие команды.
load sdoBattery_spesession
spetool(SDOSessionData)
Данные эксперимента по измеренным зарядам и разрядам загружают и строят график. Перейдите на вкладку Вид (View), чтобы разместить графики таким образом, чтобы Experiment plot:Charge_Exp и Experiment plot:DCharge_Exp являются видимыми. Щелкните График (Plot) Реакция модели (Model Response), чтобы увидеть, насколько хорошо моделирование модели соответствует данным измеренного эксперимента.

Графики показывают, что первоначальный заряд батареи Q0 неправильно установлен для Charge_Exp эксперимент и что модель V, K, и Loss необходимо оценить параметры.
Предыдущий график показывает, что Charge_Exp начальный заряд батареи, Q0, установлен неправильно. Добавьте начальный заряд к обоим экспериментам. Щелкните правой кнопкой мыши Charge_Exp и выберите Изменить. Откроется диалоговое окно для редактирования эксперимента.

Щелкните Выбрать параметры (Select Parameters), чтобы открыть диалоговое окно для добавления параметров модели в эксперимент. Выбрать Loss и Q0 чтобы добавить к эксперименту. Выбрать Loss поскольку мы должны оценить этот параметр, используя только Charge_Exp эксперимент. Нажмите кнопку ОК, чтобы добавить Q0 и Loss параметры для эксперимента.

Установить начальный заряд батареи Q0 в Charge_Exp до 0, т.е. начальная зарядка отсутствует.

Аналогично добавьте начальный заряд батареи Q0 в DCharge_Exp экспериментировать и установить начальный заряд на 6,5., то есть для этого эксперимента имеется начальный заряд.

Теперь, когда эксперименты обновлены с правильным начальным зарядом батареи, щелкните График отклика модели (Plot Model Response), чтобы смоделировать модель и сравнить измеренные и смоделированные данные.

Графики эксперимента показывают, что исходные условия эксперимента совпадают, но реакция батареи не соответствует. Следующим шагом является оценка K и V параметры модели.
Предыдущий график показал, что отклик модели не соответствует измеренным данным, и нам нужно оценить модель V и K параметры.
Щелкните Выбрать параметры (Select Parameters), чтобы открыть диалоговое окно для выбора параметров модели.

В верхней части диалогового окна выбора параметров имеется раздел для параметров, настроенных с помощью всех экспериментов. Щелкните Выбрать параметры (Select Parameters) и добавьте V и K параметры модели к расчетным параметрам. Установите V минимум до 0 и максимум до 2, аналогично установите K минимум до 1е-6 и максимум до 0,1.

В нижней части диалогового окна имеется раздел для начальных состояний и параметров, настроенных с помощью отдельных экспериментов.
Для Charge_Exp настраиваем Loss и установить его минимум 0 максимум 0,5. Начальный заряд батареи Q0 имеет значение 0 и не должен оцениваться; снимите флажок «Оценка».

Выбрать DCharge_Exp из выпадающего списка Experiment для просмотра настроек параметров DCharge_Exp эксперимент. Начальный заряд батареи Q0 фиксирована до 6,5 и не должна оцениваться; снимите флажок «Оценка».

Эксперименты и оценочные параметры настроены, и мы готовы выполнить оценку. Сначала создайте график для мониторинга хода выполнения оценки. Щелкните Добавить график (Add Plot) и выберите Параметр (Parameter) Траектория (Trajectory). При этом создается график, показывающий, как значения расчетных параметров изменяются во время оценки. Перейдите на вкладку Вид (View), чтобы разместить графики так, чтобы все графики эксперимента и траектории параметров были видны.

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


После ряда итераций оценка сходится и заканчивается. Графики эксперимента показывают хорошо совпадающие данные измерений и моделирования. EstimatedParams график показывает V, K, и Loss изменение параметров при оценке; масштаб V, K, и Loss отличаются, щелкните правой кнопкой мыши на графике и выберите Показать масштабированные значения (Show scaled values), чтобы увидеть, как все параметры изменились по сравнению с их исходными значениями.
Чтобы узнать, как оценить параметры для эксперимента с помощью sdo.optimize см. раздел Оценка параметров модели в эксперименте (код).
Закрыть модель
bdclose('sdoBattery')