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

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

Контроль батареи

Батареи в электромобилях являются дорогими, чтобы заменить и должны быть проверены и обеспечены тщательно, чтобы гарантировать, что они функционируют хорошо в течение их намеченного времени жизни. В этом примере электромобиль ездится на работу и назад на ежедневной дороге до работы. Дома, автомобиль включается к умному зарядному устройству, которое контролирует и ток и напряжение батареи. Зарядное устройство анализирует данные о батарее, чтобы оценить параметры батареи, с помощью развернутой версии оценки параметра 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 ампер-часов (100 кВт·ч), когда батарея является новой. Как возрасты батареи, Qmax как ожидают, уменьшится, и это проверено, чтобы отследить рабочее состояние батареи. Начальное состояние заряда Q0 и новая емкость батареи Qmax должен быть оценен.

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

Существует два основных шага, чтобы запустить оценку параметра развернутый режим:

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

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

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

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

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

load sdoBattery_spesession_forDeployment
spetool(SDOSessionData)

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

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

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

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

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

  1. Задайте параметры

  2. Задайте эксперименты

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

Задайте параметры

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

В этом примере информация параметра также хранится в базе данных, в которой автомобили идентифицированы кодом, сродни псевдо идентификационному номеру транспортного средства (VIN). Автопроизводитель может использовать это, чтобы контролировать рабочее состояние батареи в зависимости от времени. 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 для оценки параметра развернутый режим.

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

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

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

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

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

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

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

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

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

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

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%, это условие уменьшает число раз, батарея может быть перезаряжена. Путем отслеживания параметров батареи в зависимости от времени, производитель может контролировать здоровье батареи и определить, нужна ли для автомобиля новая батарея.

Смотрите также

| | | |

Для просмотра документации необходимо авторизоваться на сайте