- Измерване на индивидуално клетъчно напрежение в серия от батерии
- Диференциална схема за измерване на индивидуалното напрежение на клетката
- Електрическа схема
- Проектиране и изработка на печатни платки с помощта на Easy EDA
- Изчисляване и поръчване на проби онлайн
- Тестване на веригата за наблюдение на напрежението
- Измерване на напрежението на литиевата клетка с помощта на Arduino
- Програмиране на Arduino
- Индивидуален дисплей на напрежението на клетката работи
Пробегът и производителността на електрическо превозно средство зависи от капацитета и ефективността на неговата батерия. За поддържане на батерията в пълно здраве е отговорност на системата за управление на батериите (BMS). BMS е сложна единица в EV, която извършва много дейности като наблюдение на клетките, балансиране и дори защита от температурни промени. Вече научихме достатъчно за това в тази статия за системата за управление на батерията, така че проверете дали сте нов тук.
За да направите нещо, първата стъпка за BMS би била да се знае текущото състояние на клетките в литиевата батерия. Това се прави чрез измерване на напрежението и тока (понякога и температурата) на клетките в опаковката. Само с тези две стойности BMS може да изчисли SOC или SOH и да извърши балансиране на клетките и т.н. Така че измерването на напрежението и тока на клетката е жизненоважно за всяка схема на BMS, било то обикновена банка за захранване или батерия за лаптоп или толкова сложен пакет като EV / Слънчеви батерии.
В тази статия ще научим как можем да измерим индивидуалното клетъчно напрежение на клетките, използвани в литиева батерия. За целите на този проект ще използваме четири последователно свързани литиеви клетки 18650, за да оформим батерия и ще проектираме проста схема, използваща операционни усилватели, за да измерим отделните клетъчни напрежения и да ги покажем на LCD екран, използвайки Arduino.
Измерване на индивидуално клетъчно напрежение в серия от батерии
Проблемът с измерването на индивидуалното клетъчно напрежение в пакет последователно свързани батерии е, че референтната точка остава същата. Картината по-долу илюстрира същото
За простота нека приемем, че и четирите клетки са на ниво напрежение 4V, както е показано по-горе. Сега, ако използваме микроконтролер като Arduino за измерване на напрежението на клетката, няма да имаме проблем при измерването на напрежението на 1- ва клетка, тъй като другият й край е свързан към земята. Но за останалите клетки трябва да измерим напрежението на тази клетка заедно с предишните клетки, например когато измерим напрежението на 4-та клетка, ще измерим напрежението на всичките четири клетки заедно. Това е така, защото референтната точка не може да бъде променена от земята.
Така че тук трябва да въведем допълнителна схема, която да ни помогне да измерим индивидуалните напрежения. В груб начин е да се използва потенциален делител за картографиране на нивата на напрежение и след това да се измери, но този метод ще намали разделителната способност на отчетената стойност до повече от 0.1V. Следователно в този урок ще използваме Op-Amp Differential Circuit, за да измерим разликата между всяка клетка, за да измерим индивидуалното напрежение.
Диференциална схема за измерване на индивидуалното напрежение на клетката
Вече знаем, че Op-Amp, когато работи като диференциален усилвател, дава разликата между двете стойности на напрежението, предоставени на неговия инвертиращ и неинвертиращ щифт. Така че за нашата цел да измерим 4 клетъчни напрежения се нуждаем от три диференциални усилвателя, както е показано по-долу.
Имайте предвид, че това изображение е само за представяне; действителната схема се нуждае от повече компоненти и ще бъде обсъдена по-късно в тази статия. Първият операционен усилвател O1 измерва напрежението на 2- ра клетка, като изчислява разликата между 2- ри клетка и 1- ви клетка, която е (8-4). По подобен начин Op-amp O2 и O3 измерват съответно 3 -то и 4 -то напрежение на клетката. Не сме използвали операционен усилвател за 1- ва клетка, тъй като той може да бъде измерен директно.
Електрическа схема
Пълната схема на веригата за наблюдение на многоклетъчно напрежение в литиева батерия е дадена по-долу. Схемата е проектирана с помощта на EasyEDA и ние ще използваме същото, за да произведем и нашата печатна платка.
Както можете да видите, ние имаме два Quad пакет Rail to Rail високо напрежение OP-усилвател OPA4197 в нашата схема, захранвани от общото напрежение на пакета. Единият IC (U1) се използва за буферна верига, известен още като последовател на напрежението, докато другият IC (U2) се използва за формиране на веригата на диференциалния усилвател. Необходима е буферна верига, за да се предотврати натоварването на която и да е от клетките поотделно, което не означава, че ток трябва да се консумира от една клетка, а само да образува пакета като цяло. Тъй като буферната верига има много висок входен импеданс, можем да използваме за отчитане на напрежението от клетката, без да черпим енергия от нея.
Всичките четири операционни усилвателя в IC U1 се използват за буфериране на напрежението съответно на четирите клетки. Входните напрежения от клетките са обозначени от B1 + до B4 +, а буферираното изходно напрежение е маркирано от B1_Out до B4_Out. След това това буферирано напрежение се изпраща към диференциалния усилвател за измерване на индивидуалното напрежение на клетката, както е обсъдено по-горе. Стойността на целия резистор е настроена на 1K, тъй като коефициентът на усилване на диференциалния усилвател е настроен на единица. Можете да използвате всяка стойност на резистора, но всички те трябва да са с една и съща стойност, с изключение на резисторите R13 и R14. Тези два резистора образуват потенциален разделител за измерване на напрежението на пакета на батерията, така че да можем да го сравним със сумата от измерените напрежения на клетката.
Релса към релса, високо напрежение Op-Amp
Горната схема изисква от вас да използвате опционален усилвател с високо напрежение Rail to Rail като OPA4197 поради две причини. И двете Op-Amp IC работят при напрежение на пакета, което е максимум (4.3 * 4) 17.2V, поради което Op-amp трябва да може да се справи с високо напрежение. Също така, тъй като използваме буферна верига, изходът на буфера трябва да бъде равен на напрежението на пакета за 4 -ти клетъчен терминал, което означава, че изходното напрежение трябва да бъде равно на работно напрежение на операционния усилвател, поради което трябва да използваме релса, за да Железопътен усилвател
Ако не можете да намерите железопътен железопътен усилвател, можете да замените интегралната схема с обикновен LM324. Този IC може да се справи с високо напрежение, но не може да действа като релса към релса, така че трябва да използвате издърпващ резистор от 10k на първия щифт на U1 Op-Amp IC.
Проектиране и изработка на печатни платки с помощта на Easy EDA
Сега, когато нашата схема е готова, е време да я изфабрикуваме. Тъй като Op-Amp, който използвам, се предлага само в SMD пакет, трябваше да изработя печатни платки за моята схема. Така че, както винаги, използвахме онлайн инструмента за EDA, наречен EasyEDA, за да произведем нашата PCB, защото е много удобен за използване, тъй като има добра колекция от отпечатъци и е с отворен код.
След проектирането на печатни платки, ние можем да поръчаме пробите на печатни платки чрез техните евтини услуги за производство на печатни платки. Те също така предлагат услуга за снабдяване с компоненти, където имат голям запас от електронни компоненти и потребителите могат да поръчат необходимите им компоненти заедно с поръчката на печатни платки.
Докато проектирате вашите схеми и печатни платки, можете също така да направите вашите схеми и печатни платки публични, така че другите потребители да могат да ги копират или редактират и да се възползват от вашата работа, ние също направихме цялата ни схема на платки и печатни платки публична за тази схема, проверете връзката по-долу:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
Можете да видите всеки слой (Top, Bottom, Topsilk, bottomomsilk и т.н.) на печатната платка, като изберете слоя от прозореца „Layers“. Наскоро те също така въведоха опция за 3D изглед, така че можете също да разгледате печатната платка за измерване на напрежението на Multicell, за това как ще изглежда след производството, като използвате бутона 3D View в EasyEDA:
Изчисляване и поръчване на проби онлайн
След като завършите дизайна на тази верига за измерване на напрежение на литиеви клетки, можете да поръчате печатната платка чрез JLCPCB.com. За да поръчате печатната платка от JLCPCB, ви е необходим Gerber File. За да изтеглите Gerber файлове от вашата PCB, просто щракнете върху бутона Generate Fabrication File на страницата на редактора EasyEDA, след това изтеглете Gerber файла от там или можете да кликнете върху Order в JLCPCB, както е показано на изображението по-долу. Това ще ви пренасочи към JLCPCB.com, където можете да изберете броя на печатни платки, които искате да поръчате, колко медни слоя ви трябват, дебелината на печатната платка, теглото на медта и дори цвета на печатната платка, като снимката, показана по-долу:
След като щракнете върху поръчка в бутона JLCPCB, ще ви отведе до уебсайта на JLCPCB, където можете да поръчате всякакви цветни печатни платки на много ниска цена, която е 2 $ за всички цветове. Времето им за изграждане също е много по-малко, което е 48 часа с DHL доставка от 3-5 дни, като основно ще получите вашите печатни платки в рамките на една седмица след поръчката. Освен това те предлагат отстъпка от 20 щ.д. за доставка за първата ви поръчка.
След като поръчате печатната платка, можете да проверите производствения напредък на вашата печатна платка с дата и час. Можете да го проверите, като отидете на страницата на акаунта и щракнете върху връзката "Производствен ход" под печатната платка, както е показано на изображението по-долу.
След няколко дни поръчка на печатни платки взех пробите на печатни платки в хубава опаковка, както е показано на снимките по-долу.
След като се уверих, че следите и следите са правилни. Продължих със сглобяването на печатната платка, използвах женски хедъри, за да поставя Arduino Nano и LCD, за да мога да ги премахна по-късно, ако имам нужда от тях за други проекти. Изцяло запоената дъска изглежда така по-долу
Тестване на веригата за наблюдение на напрежението
След запояване на всички компоненти, просто свържете батерията към съединителя H1 на платката. Използвал съм свързващи кабели, за да съм сигурен, че няма да променя връзката в бъдеще случайно. Внимавайте да не го свържете по грешен начин, тъй като това може да доведе до късо съединение и да повреди батериите или веригата за постоянно. Моята PCB с батерията, която използвах за тестване, е показана по-долу.
Сега използвайте мултицет на терминала H2 за измерване на индивидуалното напрежение за продажба. Терминалът е маркиран с цифри, за да се идентифицира клетъчното напрежение, което се измерва. Тук можем да заключим, че веригата работи. Но за да бъде по-интересно, нека свържем LCD и използваме Arduino, за да измерим тези стойности на напрежението и да го покажем на LCD екрана.
Измерване на напрежението на литиевата клетка с помощта на Arduino
Схемата за свързване на Arduino към нашата платка е показана по-долу. Той показва как да свържете Arduino Nano към LCD.
Заглавният щифт H2 на печатната платка трябва да бъде свързан към аналоговите щифтове на платката Arduino, както е показано по-горе. Аналоговите щифтове А1 до А4 се използват за измерване съответно на четирите клетъчни напрежения, докато щифтът А0 е свързан към щифта за заглавие v 'на Р1. Този v 'щифт може да се използва за измерване на общото напрежение на пакета. Също така сме свързали 1- ия щифт на P1 към Vin щифта на Arduino и 3 - ия щифт на P1 на заземяващия щифт на Arduino, за да захранваме Arduino с батерията.
Можем да напишем програма за измерване на четирите клетъчни напрежения и напрежение на батерията и да я покажем на LCD. За да стане по-интересно, добавих и четирите клетъчни напрежения и сравних стойността с измереното напрежение на пакета, за да проверя колко близо всъщност измерваме напрежението.
Програмиране на Arduino
Пълната програма можете да намерите в края на тази страница. Програмата е доста проста, ние просто използваме функцията за аналогово четене, за да прочетем напреженията на клетката с помощта на модула ADC и да покажем изчислената стойност на напрежението на LCD, използвайки LCD библиотеката.
float Cell_1 = analogRead (A1) * (5.0 / 1023.0); // Измерете lcd.print на първото напрежение на клетката ("C1:"); lcd.print (Cell_1);
В горния фрагмент сме измерили напрежението на клетка 1 и сме го умножили с 5/1023, за да преобразуваме стойността на ADC 0 до 1023 в действителна 0 до 5V. След това показваме изчислената стойност на напрежението на LCD дисплея. По същия начин правим това и за четирите клетки, и за целия комплект батерии. Също така използвахме променливото общо напрежение, за да сумираме всички клетъчни напрежения и да го покажем на LCD, както е показано по-долу.
float Total_Voltage = Cell_1 + Cell_2 + Cell_3 + Cell_4; // Добавете всичките четири измерени стойности на напрежението lcd.print ("Общо:"); lcd.print (Общо_напрежение);
Индивидуален дисплей на напрежението на клетката работи
След като сте готови с веригата и кода, качете кода на платката Arduino и свържете захранващата банка към печатната платка. LCD сега трябва да показва индивидуалното напрежение на клетката на всичките четири клетки, както е показано по-долу.
Както можете да видите, напрежението, показано на клетка от 1 до 4, е съответно 3.78V, 3.78V, 3.82V и 3.84V. Тогава използвах мултиметъра си, за да проверя действителното напрежение на тези клетки, което се оказа малко по-различно, разликата е изведена по-долу.
Измерено напрежение |
Действително напрежение |
3.78V |
3.78V |
3.78V |
3.78V |
3.82V |
3.81V |
3.84V |
3.82V |
Както можете да видите, получаваме точни резултати за клетките една и две, но има грешка до 200 mV за клетки 3 и 4. Това най-вероятно се очаква за нашия дизайн. Тъй като използваме диференцираща верига с оп-усилвател, точността на измереното напрежение ще намалее с увеличаване на броя на клетките.
Но тази грешка е фиксирана грешка и може да бъде коригирана в програмата, като се вземат примерни показания и се добави множител за коригиране на грешката. На следващия LCD екран можете също да видите сумата от измереното напрежение и действителното напрежение на пакета, измерено чрез делител на потенциала. Същото е показано по-долу.
Сумата от измерените напрежения е 15,21V, а действителното напрежение, измерено през щифта A0 на Arduino, се оказва 15,22V. По този начин разликата е 100mV, което не е лошо. Докато този тип верига може да се използва за по-малък брой утайки, като в захранващи банки или батерии за лаптопи. Електрическото превозно средство BMS използва специален тип интегрални схеми като LTC2943, защото дори грешка от 100 mV не е допустима. Въпреки това се научихме как да го направим за малка верига, където цената е ограничение.
Най- пълен работата на установката може да бъде намерена на видеото връзка по-долу. Надявам се, че проектът ви е харесал и сте научили нещо полезно от него. Ако имате въпроси, оставете ги в раздела за коментари или използвайте форумите за по-бързи отговори.