- Измерение напряжения отдельных ячеек в последовательном батарейном стеке
- Дифференциальная схема для измерения напряжения отдельной ячейки
- Принципиальная электрическая схема
- Проектирование и изготовление печатных плат с использованием Easy EDA
- Расчет и заказ образцов онлайн
- Тестирование цепи контроля напряжения
- Измерение напряжения литиевой ячейки с помощью Arduino
- Программирование Arduino
- Индикация напряжения отдельных элементов работает
Пробег и производительность электромобиля зависят от емкости и эффективности его аккумуляторной батареи. За поддержание полной работоспособности аккумуляторной батареи отвечает система управления батареями (BMS). BMS - это сложное устройство в электромобиле, которое выполняет множество функций, таких как мониторинг ячеек, их балансировка и даже защита от изменений температуры. Мы уже узнали об этом достаточно из этой статьи о системе управления батареями, поэтому ознакомьтесь с ними, если вы здесь новичок.
Чтобы сделать что-либо, первым шагом для BMS было бы узнать текущее состояние ячеек в блоке литиевых батарей. Это делается путем измерения напряжения и тока (иногда также температуры) ячеек в блоке. Только с этими двумя значениями BMS может рассчитать SOC или SOH и выполнить балансировку ячеек и т. Д. Таким образом, измерение напряжения и тока ячейки жизненно важно для любой схемы BMS, будь то простой блок питания или аккумулятор ноутбука или такой сложный блок, как EV / Солнечные батареи.
В этой статье мы узнаем, как мы можем измерить напряжение отдельных ячеек, используемых в литиевой аккумуляторной батарее. Для этого проекта мы будем использовать четыре литиевых элемента 18650, соединенных последовательно, чтобы сформировать аккумуляторную батарею, и спроектируем простую схему с использованием операционных усилителей для измерения напряжений отдельных ячеек и отображения их на ЖК-экране с помощью Arduino.
Измерение напряжения отдельных ячеек в последовательном батарейном стеке
Проблема с измерением напряжения отдельной ячейки в пакете последовательно соединенных батарей состоит в том, что контрольная точка остается той же самой. На рисунке ниже показано то же самое
Для простоты предположим, что все четыре ячейки находятся под напряжением 4 В, как показано выше. Теперь, если мы используем микроконтроллер, такой как Arduino, для измерения напряжения ячейки, у нас не будет проблем с измерением напряжения 1- й ячейки, поскольку у нее другой конец подключен к земле. Но для других ячеек мы должны измерить напряжение этой ячейки вместе с предыдущими ячейками, например, когда мы измеряем напряжение 4-й ячейки, мы будем измерять напряжение всех четырех ячеек вместе. Это связано с тем, что контрольную точку нельзя изменить с земли.
Поэтому нам нужно ввести здесь дополнительную схему, которая может помочь нам измерить отдельные напряжения. Грубым способом является использование делителя потенциала для отображения уровней напряжения и их последующего измерения, но этот метод снизит разрешение считываемого значения до более чем 0,1 В. Следовательно, в этом руководстве мы будем использовать дифференциальную схему операционного усилителя для измерения разницы между клеммами каждой ячейки для измерения отдельного напряжения.
Дифференциальная схема для измерения напряжения отдельной ячейки
Мы уже знаем, что операционный усилитель при работе в качестве дифференциального усилителя дает разницу между двумя значениями напряжения, подаваемыми на его инвертирующий и неинвертирующий вывод. Итак, для измерения напряжения на 4 элементах нам понадобятся три дифференциальных операционных усилителя, как показано ниже.
Обратите внимание, что это изображение предназначено только для представления; Фактическая схема требует большего количества компонентов и будет обсуждаться позже в этой статье. Первый операционный усилитель O1 измеряет напряжение 2- й ячейки, вычисляя разность между клеммой 2- й ячейки и клеммой 1- й ячейки, то есть (8-4). Аналогичным образом операционные усилители O2 и O3 измеряют напряжение 3- й и 4- й ячейки соответственно. Мы не использовали операционный усилитель для 1- го элемента, поскольку его можно было измерить напрямую.
Принципиальная электрическая схема
Полная принципиальная схема для контроля напряжения в многоячеечной литиевой батарее приведена ниже. Схема была разработана с использованием EasyEDA, и мы также будем использовать ее для изготовления нашей печатной платы.
Как вы можете видеть, в нашей схеме есть два Quad Package Rail to Rail высокого напряжения ОУ OPA4197, оба питаются от общего напряжения батареи. Одна микросхема (U1) используется в качестве буферной схемы, также известной как повторитель напряжения, а другая микросхема (U2) используется для формирования схемы дифференциального усилителя. Требуется буферная схема, чтобы предотвратить загрузку какой-либо из ячеек по отдельности, поскольку ток не должен потребляться от одной ячейки, а только для формирования блока в целом. Поскольку буферная схема имеет очень высокий входной импеданс, мы можем использовать ее для считывания напряжения с ячейки, не потребляя от нее энергию.
Все четыре операционных усилителя в микросхеме U1 используются для буферизации напряжения четырех ячеек соответственно. Входные напряжения от ячеек обозначены от B1 + до B4 +, а буферизованное выходное напряжение обозначено от B1_Out до B4_Out. Это буферизованное напряжение затем отправляется на дифференциальный усилитель для измерения напряжения отдельной ячейки, как описано выше. Значение всех резисторов установлено на 1 кОм, поскольку коэффициент усиления дифференциального усилителя установлен на единицу. Вы можете использовать резисторы любого номинала, но все они должны быть одного номинала, за исключением резисторов R13 и R14. Эти два резистора образуют делитель потенциала для измерения напряжения аккумуляторной батареи, чтобы мы могли сравнить его с суммой измеренных напряжений элементов.
Rail to Rail, операционный усилитель высокого напряжения
Приведенная выше схема требует, чтобы вы использовали высоковольтный операционный усилитель Rail to Rail, такой как OPA4197, по двум причинам. Обе микросхемы операционного усилителя работают с максимальным напряжением блока (4,3 * 4) 17,2 В, следовательно, операционный усилитель должен выдерживать высокие напряжения. Кроме того, поскольку мы используем буферную схему, выход буфера должен быть равен напряжению батареи для клеммы 4- й ячейки, что означает, что выходное напряжение должно быть равно рабочему напряжению операционного усилителя, поэтому нам нужно использовать шину для Железнодорожный операционный усилитель
Если вы не можете найти операционный усилитель, работающий по схеме «rail-to-rail», можно заменить микросхему простым LM324. Эта ИС может работать с высоким напряжением, но не может работать как шина-шина, поэтому вам нужно использовать подтягивающий резистор 10 кОм на первом выводе ИС U1 Op-Amp.
Проектирование и изготовление печатных плат с использованием Easy EDA
Теперь, когда наша схема готова, пора ее изготовить. Поскольку используемый мной операционный усилитель доступен только в SMD-корпусе, мне пришлось изготовить печатную плату для своей схемы. Итак, как всегда, мы использовали онлайн-инструмент EDA под названием EasyEDA для изготовления нашей печатной платы, потому что он очень удобен в использовании, так как он имеет хорошую коллекцию посадочных мест и является открытым исходным кодом.
После проектирования печатной платы мы можем заказать образцы печатной платы в их недорогих услугах по изготовлению печатных плат. Они также предлагают услуги по подбору компонентов, если у них есть большой запас электронных компонентов, и пользователи могут заказать необходимые компоненты вместе с заказом печатной платы.
При разработке схем и печатных плат вы также можете сделать общедоступными свои схемы и конструкции печатных плат, чтобы другие пользователи могли их копировать или редактировать и извлекать выгоду из вашей работы. Мы также сделали общедоступными макеты всех схем и печатных плат для этой схемы, проверьте ссылка ниже:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
Вы можете просмотреть любой слой (верхний, нижний, верхний, нижний, шелковый и т. Д.) Печатной платы, выбрав слой в окне «Слои». Недавно они также представили опцию 3D-просмотра, так что вы также можете просмотреть печатную плату для измерения напряжения Multicell, как она будет выглядеть после изготовления, используя кнопку 3D View в EasyEDA:
Расчет и заказ образцов онлайн
После завершения проектирования этой схемы измерения напряжения литиевого элемента вы можете заказать печатную плату через JLCPCB.com. Чтобы заказать печатную плату в JLCPCB, вам потребуется файл Gerber. Чтобы загрузить файлы Gerber для вашей печатной платы, просто нажмите кнопку Generate Fabrication File на странице редактора EasyEDA, затем загрузите файл Gerber оттуда или вы можете щелкнуть Order at JLCPCB, как показано на изображении ниже. Это перенаправит вас на JLCPCB.com, где вы можете выбрать количество плат, которые вы хотите заказать, сколько слоев меди вам нужно, толщину печатной платы, вес меди и даже цвет печатной платы, как на снимке, показанном ниже:
После нажатия кнопки «Заказать» на кнопке JLCPCB вы попадете на веб-сайт JLCPCB, где сможете заказать печатную плату любого цвета по очень низкой цене, которая составляет 2 доллара США за все цвета. Их время сборки также очень мало, что составляет 48 часов с доставкой DHL 3-5 дней, в основном вы получите свои печатные платы в течение недели с момента заказа. Более того, они также предлагают скидку 20 долларов на доставку вашего первого заказа.
После заказа печатной платы вы можете проверить ход производства вашей печатной платы с указанием даты и времени. Вы можете проверить это, перейдя на страницу учетной записи и щелкнув ссылку «Production Progress» под печатной платой, как показано на изображении ниже.
После нескольких дней заказа печатных плат я получил образцы печатных плат в красивой упаковке, как показано на рисунках ниже.
Убедившись, что следы и следы правильные. Я приступил к сборке печатной платы, я использовал женские разъемы для размещения Arduino Nano и ЖК-дисплея, чтобы я мог удалить их позже, если они мне понадобятся для других проектов. Полностью спаянная плата выглядит так ниже
Тестирование цепи контроля напряжения
После пайки всех компонентов просто подключите аккумулятор к разъему H1 на плате. Я использовал соединительные кабели, чтобы случайно не изменить соединение в будущем. Будьте очень осторожны, не подключите его неправильно, так как это может привести к короткому замыканию и необратимо повредить батареи или электрическую цепь. Моя печатная плата с аккумулятором, который я использовал для тестирования, показана ниже.
Теперь используйте мультиметр на клемме H2, чтобы измерить отдельные напряжения продажи. Клемма помечена цифрами для обозначения напряжения ячейки, при которой измеряется ток. Отсюда можно сделать вывод, что схема исправна. Но чтобы было интереснее, давайте подключим ЖК-дисплей и воспользуемся Arduino для измерения этих значений напряжения и отображения их на ЖК-экране.
Измерение напряжения литиевой ячейки с помощью Arduino
Схема подключения Arduino к нашей печатной плате показана ниже. Он показывает, как подключить Arduino Nano к ЖК-дисплею.
Вывод H2 на печатной плате должен быть подключен к аналоговым выводам платы Arduino, как показано выше. Аналоговые выводы с A1 по A4 используются для измерения напряжения четырех ячеек соответственно, а вывод A0 подключен к выводу v 'разъема P1. Этот вывод v 'можно использовать для измерения общего напряжения батареи. Мы также подключили 1- й контакт P1 к контакту Vin Arduino и 3- й контакт P1 к контакту заземления Arduino для питания Arduino с аккумулятором.
Мы можем написать программу для измерения напряжения всех четырех ячеек и напряжения аккумуляторной батареи и отобразить их на ЖК-дисплее. Чтобы сделать его более интересным, я также сложил напряжения всех четырех ячеек и сравнил значение с измеренным напряжением блока, чтобы проверить, насколько близко мы фактически измеряем напряжение.
Программирование Arduino
Полную программу можно найти в конце этой страницы. Программа довольно проста, мы просто используем функцию аналогового считывания, чтобы считывать напряжения ячеек с помощью модуля АЦП и отображать вычисленное значение напряжения на ЖК-дисплее с помощью библиотеки ЖК-дисплея.
float Cell_1 = analogRead (A1) * (5.0 / 1023.0); // Измерение напряжения 1-й ячейки lcd.print ("C1:"); lcd.print (Ячейка_1);
В приведенном выше фрагменте мы измерили напряжение ячейки 1 и умножили его на 5/1023, чтобы преобразовать значение АЦП от 0 до 1023 в фактическое значение от 0 до 5 В. Затем мы отображаем рассчитанное значение напряжения на ЖК-дисплее. Точно так же мы делаем это для всех четырех ячеек и всей аккумуляторной батареи. Мы также использовали переменное общее напряжение, чтобы суммировать все напряжения ячеек и отобразить их на ЖК-дисплее, как показано ниже.
float Total_Voltage = Cell_1 + Cell_2 + Cell_3 + Cell_4; // Сложить все четыре измеренных значения напряжения lcd.print ("Total:"); lcd.print (Total_Voltage);
Индикация напряжения отдельных элементов работает
Когда вы будете готовы со схемой и кодом, загрузите код на плату Arduino и подключите блок питания к печатной плате. На ЖК-дисплее теперь должно отображаться напряжение отдельных ячеек всех четырех ячеек, как показано ниже.
Как видите, напряжение, отображаемое для ячеек с 1 по 4, составляет 3,78 В, 3,78 В, 3,82 В и 3,84 В соответственно. Итак, затем я использовал свой мультиметр, чтобы проверить фактическое напряжение этих ячеек, которое оказалось немного другим, разница представлена в таблице ниже.
Измеренное напряжение |
Фактическое напряжение |
3,78 В |
3,78 В |
3,78 В |
3,78 В |
3,82 В |
3,81 В |
3,84 В |
3,82 В |
Как вы можете видеть, мы получаем точные результаты для ячеек 1 и 2, но для ячеек 3 и 4 есть ошибка, достигающая 200 мВ. Это, скорее всего, ожидаемо для нашей конструкции. Поскольку мы используем схему дифференциатора на операционном усилителе, точность измеренного напряжения будет снижаться по мере увеличения количества ячеек.
Но эта ошибка является фиксированной, и ее можно исправить в программе, сняв показания образца и добавив множитель для исправления ошибки. На следующем ЖК-экране вы также можете увидеть сумму измеренного напряжения и фактического напряжения батареи, которое было измерено через делитель потенциала. То же самое показано ниже.
Сумма измеренных напряжений составляет 15,21 В, а фактическое напряжение, измеренное через вывод A0 Arduino, оказывается 15,22 В. Таким образом, разница составляет 100 мВ, что неплохо. Хотя этот тип схемы может использоваться для меньшего количества осадков, например, в банках питания или батареях для ноутбуков. BMS электромобиля использует специальные типы ИС, такие как LTC2943, потому что даже ошибка 100 мВ недопустима. Тем не менее, мы научились делать это для небольших схем, где цена является ограничением.
Полный рабочий по настройки можно найти на видео, связанное ниже. Надеюсь, вам понравился проект и вы узнали из него что-то полезное. Если у вас есть какие-либо вопросы, оставьте их в разделе комментариев или воспользуйтесь форумом, чтобы быстрее ответить.