Cоздание системы управления батареей#
В данном разделе проводится обзор модели системы управления аккумуляторной батареи (АКБ), на английском языке также известной как Battery Management Control system (BMS). В целях удобства исследуемый объект будет упоминаться как система управления батареей (СУБ). Модель СУБ разработана на платформе REPEAT VISION.
Модель СУБ#
В данной разделе вы узнаете:
Что такое СУБ;
Основные функции СУБ;
Какие производители используют СУБ;
Пример модели СУБ, выполненной в REPEAT VISION;
Пример модели аккумулятора с СУБ;
Пример СУБ с активной балансировкой ячеек;
Почему важен модельно-ориентированный подход в разработке СУБ.
1. Что такое СУБ#
Производительность литий-ионных аккумуляторов значительно зависит от температуры, поэтому важно осуществлять работу АКБ в допустимых тепловых пределах.
СУБ — это устройство, предназначенное для контроля процесса зарядки и разрядки аккумуляторной батареи. Основная функция СУБ заключается в обеспечении безопасной эксплуатации аккумулятора за счет контроля его состояния, что максимально продлевает срок службы АКБ. Ниже представлена упрощенная структурная схема электромобиля с СУБ, которая контролирует параметры тягового аккумулятора и в зависимости от его состояния генерирует управляющие сигналы для обеспечения оптимальных условий работы.
Блок-схема упрощенного электромобиля/Block diagram of a simplified electric vehicle
2. Какие основные функции СУБ#
СУБ выполняет ряд функций, способствующих улучшению качества безопасности эксплуатации АКБ:
Связь с другими элементами системы (передача информации);
2.1. Контроль основных параметров#
Система производит замер следующих параметров:
Напряжение;
Ток;
Температура;
Уровень заряда (State-of-Charge (SOC));
Режим работы: заряд, разряд, холостой ход (х.х.).
2.2. Балансировка ячеек#
Балансировка ячеек – это процесс выравнивания напряжений и уровня заряда ячеек. Балансировка достигается путем предотвращения недозаряда/перезаряда отдельных ячеек АКБ, например перераспределение энергии от наиболее заряженных ячеек к наименее заряженным, что называется активным методом балансировки. При пассивной балансировке используются шунтирующие резисторы для рассеивания электроэнергии.
2.3. Рекуперация#
Рекуперация электромобиля – это процесс превращения кинетической энергии в электрическую с последующим ее возвращением в аккумуляторный блок. Рекуперация достигается оперативным определением режима работы аккумулятора и проведением соответствующих операций переключения в цепи.
2.4. Связь с другими элементами системы#
Данные, генерируемые СУБ, также передаются в другие части системы, в которой установлен аккумулятор (см. диаграмму выше).
2.5. Защита от нештатных режимов работы#
Для предотвращения возникновения неисправностей производится защита АКБ от следующих режимов работы:
Перенапряжение/недостаточное напряжение;
Превышение/снижение тока допустимого значения;
Переохлаждение/перегрев.
3. Где используется данная технология#
Данная технология является критически важным для всех производителей устройств, в которых установлен АКБ, т.к. при помощи данной системы управления производители добиваются повышенной надежности, за счет обеспечения безопасности работы, производительности и экономической эффективности. СУБ используются, например, в Tesla S и Nissan Leaf.
4. Разработка СУБ в REPEAT VISION#
Первоначальная версия СУБ будет включать себя алгоритмы по определению:
Нештатных режимов работы;
Режима работы аккумулятора;
Падение уровня заряда ниже критической отметки;
Температуры АКБ, относительно химических потерь.
Также в модель СУБ внедрим встроенную нагрузку для проведения тестовых расчетов модели.
Большая часть функций реализуется при помощи блоков автоматики (нагрузка, определение нештатного режима работы и падения уровня заряда ниже критического).
При реализации нагрузки установим блок №5 Переключатель, блоки №6 и №62 Константа, блок №1 Генератор прямоугольных импульсов и блок №2 Ограничитель сигнала. При проведении расчетов можно выбрать значение тока нагрузки, тип нагрузки (импульсный или постоянный) и предел допустимых токов.
Модель нагрузки#
Наиболее простой частью разработки окажется алгоритм по определению нештатных режимов работы АКБ: блоки №21,23,39,41 сравнения (Больше, Меньше) с допустимыми значениями и блоки №12,43,44 Логическое ИЛИ. При возникновении любого из аварийных режимов на выходе СУБ будет 1.
Определение нештатного режима работы#
Теперь переходим к более интересной части: реализация алгоритма по определению режима работы аккумулятора, для этого мы реализуем простейший конечный автомат, т.е. модель, в котором последующее состояние модели зависит не только от входного сигнала, а также от состояния в настоящий момент времени.
Есть ряд способов по осуществлению данного алгоритма, мы напишем скрипт при помощи блока Jython, в котором язык Python интегрирован в экосистему Java.
Ниже визуально представлена структура разрабатываемого автомата. Помимо перехода между тремя состояниями (заряд, разряд, холостой режим), также необходимо внедрить условие по времени, т.к. система проверяет состояние с определенным интервалом, например:
Граф автомата состояний#
В начале скрипта инициализируем класс с тремя состояниями:
class State: #Класс состояний АКБ
Idle = 0.0 #Холостой ход
Discharge = 1.0 #Разряд
Charge = 2.0 #Заряд
Перед написанием скрипта стоит отметить, что тест СУБ будет проводится в электрической схеме с неидеальными источниками, поэтому ток в замкнутой цепи быть равным 0 не может. Поставим условие, что холостому режиму работы будет соответствовать:
интервал -1е\(^{-6}\)≤ \(I_{АКБ}\)≤1е\(^{-6}\), разряду \(I_{АКБ}\) >1е\(^{-6}\), заряду \(I_{АКБ}\)<-1е\(^{-6}\)
def CheckState(Ibatt): #Функция по определению состояния относительно тока Ibat
global state #Переменная состояния
global time #Переменная времени
incrTime(in_2 ) #Функция для реализации счетчика времени
if time < 0.25:
if in_3 == 0:
state = State.Idle
elif in_3 == 1:
state = State.Discharge
elif in_3 == 2:
state = State.Charge
return state
else:
if state == State.Idle:
if Ibatt <= 1e-6 and Ibatt >= -1e-6:
state = State.Idle
elif Ibatt > 1e-6:
state = State.Discharge
elif Ibatt < -1e-6:
state = State.Charge
elif state == State.Discharge:
if Ibatt > 1e-6:
state = State.Discharge
elif Ibatt <= 1e-6 and Ibatt >= -1e-6:
state = State.Idle
elif Ibatt < -1e-6:
state = State.Charge
elif state == State.Charge:
if Ibatt < -1e-6:
state = State.Charge
elif Ibatt <= 1e-6 and Ibatt >= -1e-6:
state = State.Idle
elif Ibatt > 1e-6:
state = State.Discharge
time = 0.0
return state
out_1 = CheckState(in_1) #Первый выходной порт состояния АКБ
out_2 = ShowTime() #Второй выходной порт счетчика
Скрипт по реализации конечного автомата (При заряде выходное значение = 2, разряде = 1, х.х. = 0)
Проверим работоспособность разработанного скрипта, подадим на вход ступенчатый ток, соответствующий х.х., разряду и заряду:
Ступенчатый ток#
Согласно результатам, конечный автомат корректно показывает состояние системы относительно тока с требуемым временным интервалом.
Результаты теста Jython#
Тепловая модель представлена одной тепловой массой (блок №10), отражающей свойства электродов АКБ. Изменение температуры определяется химическими потерями (блок №8) и эффективностью охлаждения окружающим воздухом (блок №71 иблок №13).
Модель по определению температуры АКБ#
5. Разработка модели аккумулятора с СУБ#
Перед тем как приступить к расчетам еще раз обозначим выходные сигналы СУБ (последовательно сверху-вниз):
Ток нагрузки (Load);
Режим работы АКБ (State);
Нештатный режим работы по току (CurrentFault);
Нештатный режим работы по напряжению (VoltageFault);
Нештатный режим работы (Fault);
Понижение уровня заряда ниже допустимого (SOCdrop);
Температура АКБ (TempOut).
Выходные сигналы СУБ#
Изучим принцип работы СУБ в модели, состоящей из аккумулятора (блок №2) и источника тока (блок №3), в командный порт которого подается значение сигнала тока нагрузки:
Тестовая схема модели#
На входные порты СУБ подключим датчики тока, напряжения, уровня заряда (SOC) и мощности общих тепловых потерь АКБ.
Входные сигналы СУБ#
Далее установим связь между разработанной моделью и встроенным инструментом JupyterLite, подробный урок по этому процессу представлен в видео.
Для исследования зависимости температуры АКБ относительно тока нагрузки, запустим серию расчетов с увеличивающимся током нагрузки с 0 до 120 [А].
LoadCurrent |
|
|---|---|
0 |
0.0 |
1 |
30.0 |
2 |
60.0 |
3 |
90.0 |
4 |
120.0 |
Входные данные для серии расчетов АКБ с СУБ
Кривые температур представлены ниже.
Кривые температуры при разных токах нагрузки#
По характеристике сравнения видно, как значительно меняется температура при увеличении тока нагрузки, что позволяет нам, при известном значении допустимой температуры АКБ, установить максимальный рабочий ток.
Проведем еще один единичный расчет при токе нагрузки равном 5 [А] и выведем таблицу значений контролируемых параметров (справа-налево: ток нагрузки, состояние АКБ, нештатный режим по току, нештатный режим по напряжению, уровень заряда температура АКБ).
BatteryCurrent |
State |
CurrentFault |
VoltageFault |
BatterySOC |
TempOut |
|---|---|---|---|---|---|
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
100.00 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
5.00 |
1.00 |
0.00 |
0.00 |
99.99 |
20.00 |
Таблица результатов расчета
Так как в столбцах по определению нештатных режимов по току, напряжению (VoltageFault и BatterySOC) нули. АКБ работает в допустимых пределах.
Однако мы рассмотрели работу АКБ со статической нагрузкой. А что, если батарея питает динамичную нагрузку, например, Электропривод (ЭП) электромобиля?
Блок Электропривод#
Обновим модель и параметры СУБ.
Модель АКБ и ЭП#
Обновленные параметры СУБ#
Моментная характеристика ЭП представлена ниже, где синяя линия – характеристика нагрузки, а красная – момент электропривода:
Моментная характеристика ЭП#
Согласно полученным результатам, ток превышает допустимые значения во время пуска, когда переходит в генераторный режим, а также, когда достигает максимального момента (300 [Н \( \cdot \) м]).
Таблица результатов расчета#
График нештатных режимов по току#
Данные результаты показывают, что АКБ работает не в допустимых диапазонах, т.к. превышается максимальный ток аккумулятора, и требуется обеспечить безопасность операции АКБ при питании ЭП, чего можно достичь разными путями: от уменьшения нагрузки ЭП вплоть до разработки управляемого тягового преобразователя.
6. Разработка СУБ с активной балансировкой ячеек#
Так как активная балансировка ячеек аккумуляторного блока является одной из основных функций СУБ, модель СУБ дополняется соответствующим алгоритмом. Существуют следующие методы активной балансировки:
На основе конденсаторных элементов;
На основе индуктивных элементов;
На основе преобразователей.
Рассмотрим балансировку на основе одиночного индуктора, который передает энергию между аккумуляторами.
Модель трех аккумуляторных ячеек с активной балансировкой#
Ввиду большого объема данной статьи, полный обзор модели с активной балансировкой будет проведен в следующей главе. На данный момент приведем результаты расчета в модели, в которой в начальный момент времени ячейки обладают разными уровнями заряда (60.01, 60.03, 60.05 % соответственно).
Уровни заряда батарей перед балансировкой (блоки №14,73,74)#
Так как разница в зарядах незначительная, СУБ за 0.5 секунд приравнивает их уровни зарядов:
Уровни заряда батарей после балансировки#
7. Почему важен модельно-ориентированный подход в разработке СУБ#
При модельно-ориентированном проектировании становится возможным исследовать разрабатываемую систему при различных условиях от рабочих до аварийных режимов, оптимизировать ее параметры и проводить ряд тестирований перед переходом к разработке прототипа – все это значительно повышает экономическую эффективность процесса разработки.