Развернутое применение оценки параметра

Этот пример показывает, как контролировать условие батареи электромобиля в поле с развернутой версией оценки параметра в Simulink ® Design Optimization™, вместе с Compiler™ Simulink.

Мониторинг батареи

Батареи в электрических транспортных средствах являются дорогими для замены и нуждаются в тщательном контроле и обслуживании, чтобы убедиться, что они хорошо функционируют в течение предполагаемого срока службы. В этом примере электромобиль ездит на работу и обратно по ежедневной поездке. Дома автомобиль подключается к умному зарядному устройству, которое контролирует как ток, так и напряжение аккумулятора. Зарядное устройство анализирует данные батареи, чтобы оценить параметры батареи, используя развернутую версию оценки параметра в Simulink Design Optimization, совместно с Simulink Compiler. Зарядное устройство передает эти параметры производителю автомобиля через соединение Интернета вещей (IoT), чтобы производитель мог контролировать состояние батареи с течением времени.

Модель батареи

Этот пример оценивает параметры простой, перезаряжаемой модели батареи, sdoBattery. Вход в sdoBattery является током батареи, и выход модели является напряжением на клемме батареи, которое вычисляется из состояния заряда батареи.

Модель батареи основана на уравнении:

E=(1-Loss)V-KQmax1-ss

где:

  • E - напряжение на клемме батареи в вольтах.

  • V - постоянное напряжение батареи в вольтах.

  • K - сопротивление поляризации батареи в Омсе.

  • Qmax - максимальная емкость батареи в ампер-часах. Q0 - начальное состояние заряда батареи в ампер-часах.

  • s - состояние заряда батареи, причем 1 полностью заряжен и 0 разряжен. Состояние заряда батареи вычисляется из интеграла тока батареи с положительным током, указывающим на разряд и отрицательным током, указывающим на зарядку.

  • Loss - падение напряжения при зарядке, выраженное в виде части постоянного напряжения батареи.

Используйте следующую команду, чтобы открыть модель.

open_system('sdoBattery')

Характеристики батареи

Известны следующие характеристики батареи:

  • Напряжение,V= 400 В

  • Коэффициент потерь, Loss = 0.012

  • Сопротивление, K= 0,32 Ом.

Qmax известно, что 250 Ampere-часы (100 кВтч), когда батарея новая. Когда батарея стареет, Qmax ожидается уменьшение, и это контролируется, чтобы отслеживать состояние батареи. Начальное состояние заряда Q0 и новые емкости батареи Qmax необходимо оценить.

Шаги для оценки развернутого параметра

Существует два основных шага для запуска оценки параметра в развернутом режиме:

  1. Составьте файл настройки, чтобы настроить объекты оценки параметров для использования в развернутом режиме

  2. Создайте файл запуска, который является функцией MATLAB для оценки параметра, которая может быть скомпилирована и запущена в развернутом режиме

Рекомендуется создать настройку и запустить файлы, начав с кода MATLAB, сгенерированного из Parameter Estimator. Скопируйте, разделите и измените сгенерированный код, чтобы создать файлы настройки и запуска, как показано в следующем разделе.

Оценка параметра в неразвернутом режиме

Сначала сгенерируйте код MATLAB для оценки Q0 и Qmax в неразвернутом режиме. Используйте следующие команды для загрузки предварительно сконфигурированного сеанса оценки:

load sdoBattery_spesession_forDeployment
spetool(SDOSessionData)

Этот шаг загружает и строит график эксперимента с измеренными данными о напряжении и токе и конфигурирует Parameter Estimator, чтобы оценить Q0 и Qmax.

Перейдите к кнопке Estimate на панели инструментов и из выпадающего списка выберите Generate MATLAB Function (смотрите Сгенерировать код MATLAB для задач оценки параметра (GUI)). Этот шаг генерирует функцию MATLAB, которая добавляется в редактор MATLAB, и MAT-файл parameterEstimation_sdoBattery_Data.mat. Сгенерированный код доступен для вас в файловой parameterEstimationSdoBattery.m. Можно использовать сгенерированный код для оценки параметров в неразвернутом режиме.

Рекомендуется начать с этого сгенерированного кода и скопировать, разделить и изменить код, чтобы создать файлы настройки и запуска, описанные в следующих разделах.

Файл настройки для оценки развернутого параметра

Чтобы оценить параметры в развернутом режиме, код для оценки неразвернутого параметра может быть разделен на файл настройки для использования в неразвернутом режиме и файл запуска для использования в развернутом режиме. Файл настройки доступен следующим parameterEstimationSdoBattery_setup.m и основными частями являются:

  1. Определите параметры

  2. Определите эксперименты

  3. Подготовьтесь к развертыванию и сохраните

Определите параметры

Параметры определены в parameterEstimationSdoBattery_setup.m так же, как и сгенерированный код MATLAB, parameterEstimationSdoBattery.m. Используйте sdo.getParameterFromModel команда для создания объекта параметра, содержащего поля для значения параметров, минимального и максимального, и поле («Free»), указывающее, будет ли параметр настроен во время оценки.

В этом примере информация о параметрах также хранится в базе данных, в которой автомобили идентифицируются кодом, подобным псевдоидентификационному номеру транспортного средства (VIN). Производитель автомобиля может использовать это для мониторинга состояния батареи с течением времени. The parameterEstimationSdoBattery_setup.m файл использует VIN-базу данных для обновления значений параметров батареи. Смотрите parameterEstimationSdoBattery_setup.m файл для получения дополнительной информации.

Исходная база данных загружается из файла MATLAB sdoBatteryVinDatabase.mat в котором VIN-база данных сохранена в переменной vinDatabase. Это containers.Map объект и VIN-ключ 4DEF используется для поиска параметров для батареи в этом примере.

Управляемый

vinDatabase("4DEF")

для отображения следующей таблицы:

Определите эксперименты

Эксперименты определены в parameterEstimationSdoBattery_setup.m так же, как и сгенерированный код MATLAB, parameterEstimationSdoBattery.m. Эксперименты имеют измеренные данные и информацию о конкретных портах или сигналах в модели, которые связаны с данными.

Подготовка к развертыванию и сохранение

В конце parameterEstimationSdoBattery_setup.m файл, задайте симулятор, который может запустить модель и сравнить выход модели с измеренными данными. Используйте prepareToDeploy команда, чтобы сконфигурировать эксперименты и симулятор, чтобы они могли использоваться в развернутом режиме. Сохраните эти подготовленные объекты в MAT-файл.

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

Файл запуска parameterEstimationSdoBattery_run.m использует объекты, сохраненные в sdoBatteryObjectsToDeploy.mat для оценки параметра в развернутом режиме.

Run-File для оценки развернутого параметра

Файл запуска доступен следующим parameterEstimationSdoBattery_run.m и основными частями являются:

  1. Загрузка предварительно сконфигурированных объектов развертывания

  2. Обновление экспериментов и параметров

  3. Запустите оптимизацию

  4. Обновление базы данных параметров

Загрузка предварительно сконфигурированных объектов развертывания

The parameterEstimationSdoBattery_run.m нужна прагма, чтобы Simulink Compiler включил модель в скомпилированный код следующим образом:

Загрузите предварительно сконфигурированные объекты, которые были сохранены в конце parameterEstimationSdoBattery_setup.m файл следующим образом:

Обновление экспериментов и параметров

The parameterEstimationSdoBattery_run.m файл принимает два входных параметров:

  • dataFilename - имя файла данных для данных эксперимента

  • vin - идентификационный номер транспортного средства для значений параметров

Считайте данные из текстового файла с значениями (CSV), заданного dataFilename. Используйте команду updateIOData, чтобы обновить развернутые эксперименты с новыми входными и выходными данными (данными о токе и напряжении для этой модели). Поскольку данные из файла CSV, вам не нужно getData функция, которая присутствует в сгенерированном коде MATLAB, parameterEstimationSdoBattery.m.

Используйте VIN-код как ключ, чтобы просмотреть параметры батареи этого автомобиля в базе данных параметров. Используйте текущее значение из базы данных, чтобы обновить начальные значения параметров перед запуском новой оценки. Смотрите parameterEstimationSdoBattery_run.m файл для получения дополнительной информации.

Запуск оптимизации

Следующие несколько шагов в parameterEstimationSdoBattery_run.m очень похожи на код в parameterEstimationSdoBattery.m (для неразвернутой сметы). Задайте указатель на целевую функцию оценки, задайте опции оптимизации и используйте sdo.optimize функция. Этот шаг запускает модель и сравнивает выход модели для эксперимента с данными. Параметры настраиваются, чтобы достичь близкого соответствия между моделью и данными.

Целевая функция определяется в подфункции sdoBattery_optFcn что также похоже на целевую функцию в parameterEstimationSdoBattery.m. Однако имя переменной регистрации сигналов должно быть задано, так как оно не может быть запрошено из модели в развернутом режиме.

Чтобы определить имя переменной ('logsout'в этом случае) запросите модель из MATLAB в неразвернутом режиме:

get_param('sdoBattery','SignalLoggingName')

Кроме того, в Simulink используйте вкладку Моделирование (Modeling) на панели инструментов и щелкните Настройки модели (Model Settings). В диалоговом окне строения выберите Data Import/Export и найдите имя переменной в Signal logging коробка.

Обновление базы данных параметров

После вызова sdo.optimize в основной функции parameterEstimationSdoBattery_run.m, обновление базы данных VIN. Для каждого параметра, который оценивается, скопируйте CurrentValue на PreviousValue а затем используйте новую оценку параметра, чтобы обновить CurrentValue. См. parameterEstimationSdoBattery_run.m для получения дополнительной информации.

Оценка выполняемого параметра в развернутом режиме

Используйте mcc команда для компиляции parameterEstimationSdoBattery_run.m функцию из командного окна MATLAB или командной строки DOS или UNIX. Для выполнения следующих действий необходимо установить MATLAB Runtime. Для получения дополнительной информации см. раздел Установка и настройка MATLAB Runtime (MATLAB Compiler).

Выполните оценку параметра в развернутом режиме.

В MATLAB выполните

vinDatabase("4DEF")

для отображения следующего результата:

Отслеживание параметров батареи с течением времени

В таблице ниже показаны оценки параметров батареи Q0 и Qmax со временем. Файл sdoBattery_Data1.csv содержит данные для батареи, когда она была новой, sdoBattery_Data2.csv содержит данные для батареи, когда ей было 1 год и sdoBattery_Data3.csv содержит данные для батареи, когда ей было 2 года.

Заметьте, что со временем происходит ухудшение емкости батареи. Высокие темпы деградации наблюдаются в первый год, после которого темпы деградации снижаются. Когда батарея была новой, коммутатор туда и обратно оставил состояние заряда батареи на 61%, в то время как через 2 года коммутатор оставил состояние заряда батареи на 47%. Если состояние заряда падает ниже 40%, это условие уменьшает количество раз, когда батарея может быть перезаряжена. Отслеживая параметры батареи с течением времени, производитель может контролировать состояние батареи, и определять, нужен ли автомобилю новый аккумулятор.

См. также

| | | |