Система управления аккумулятором
Система управления аккумулятором
В данном проекте представлена модель системы управления аккумулятором (Battery Management System, BMS).
Это сложная электронно-программная система управления, предназначенная для контроля и регулирования рабочих параметров перезаряжаемых аккумуляторов, используемых, например, в электромобилях, электрических летательных аппаратах вертикального взлёта и посадки, батарейных системах накопления энергии, а также в ноутбуках и смартфонах.
Система управления аккумулятором напрямую влияет на безопасность, эффективность и срок службы аккумулятора, а следовательно - на общую производительность и надёжность системы.
Используем макрос @__DIR__ для определения пути, содержащего интерактивный скрипт:
project_path = @__DIR__;
И добавим в путь Engee директорию, в которой находится словарь данных проекта:
engee.addpath(joinpath(project_path, "data"));
Описание модели
Модель замкнутого контура содержит два основных компонента - модель объекта управления и контроллер:

Объект управления состоит из модуля батарей, зарядного устройства с нагрузкой и цепи предварительной зарядки, необходимой для предотвращения сильного скачка тока при подключении аккумулятора к нагрузке или зарядному устройству:

Контроллер состоит из четырёх подсистем:
- Подсистемы, рассчитывающей текущие ограничения по мощности батареи. Так как она со временем деградирует, максимальные заряд и ток необходимо поддерживать таким образом, чтобы в текущем состоянии батарея не перегревалась.
- Подсистемы для организации интерфейсов контроллера.
- И двух подсистем, содержащих конечные автоматы и реализующих управляющую логику.

В подсистеме State Machine находится блок Chart, содержащий четыре параллельных состояния:
Состояние MainStateMachine управляет начальным состоянием и переходами контроллера. Когда диаграмма становится активной, она запускается в состоянии ожидания. После этого проверяется наличие критических неисправностей. Если они обнаружены, активным состоянием становится Fault. Иначе проверяется, есть ли запрос на зарядку или разрядку контроллера.

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

Также есть ещё два состояния, управляющих открытием и закрытием контакторов для обеспечения безопасной работы зарядного устройства и подключения нагрузки. Если есть запрос на зарядку или разрядку, контроллер проверяет отсутствие неисправностей перед входом в состояния CloseChgrContactors или CloseInvtrContactors. Перед замыканием контактов выполняется замыкание цепи предварительной зарядки.


Подсистема Balancing_Logic содержит конечный автомат, управляющий балансировкой ячеек. Это необходимо для обеспечения равномерного распределения напряжения по ячейкам для поддержания работоспособности аккумулятора:

Запуск симуляции
Загрузим модель BMS_ClosedLoop.engee:
BMS_ClosedLoop_model = engee.load("$project_path/BMS_ClosedLoop.engee");
И запустим её симуляцию:
simulation_results = engee.run(BMS_ClosedLoop_model);
Закроем модель после окончания симуляции:
engee.close(BMS_ClosedLoop_model, force = true);
Результаты симуляции
Напряжение на ячейках аккумулятора:
plot(simulation_results["PLANT.To_BMS.Cell_Voltages"].time[1:2:end], hcat(simulation_results["PLANT.To_BMS.Cell_Voltages"].value...)'[1:2:end, :])
Температура ячеек:
plot(simulation_results["PLANT.To_BMS.Cell_Temperatures"].time[1:2:end], hcat(simulation_results["PLANT.To_BMS.Cell_Temperatures"].value...)'[1:2:end, :])
Общее напряжение:
plot(simulation_results["PLANT.To_BMS.Pack_Voltage"].time[1:2:end], simulation_results["PLANT.To_BMS.Pack_Voltage"].value[1:2:end])
Общий ток:
plot(simulation_results["PLANT.To_BMS.Pack_Current"].time[1:2:end], simulation_results["PLANT.To_BMS.Pack_Current"].value[1:2:end])
Выводы
Данный проект может использоваться в качестве основы для разработки системы управления аккумулятором в Engee, а также иллюстрирует возможность совместного использования различных парадигм моделирования (направленные блоки, физическое моделирование и конечные автоматы) в рамках единой среды.