- Măsurarea tensiunii individuale a celulei într-o serie de baterii din serie
- Circuit diferențial pentru măsurarea tensiunii individuale a celulei
- Diagrama circuitului
- Proiectare și fabricare PCB folosind Easy EDA
- Calcularea și comandarea eșantioanelor online
- Testarea circuitului de monitorizare a tensiunii
- Măsurarea tensiunii celulelor de litiu folosind Arduino
- Programarea Arduino
- Afișajul individual al tensiunii celulare funcționează
Kilometrajul și performanța unui vehicul electric depinde de capacitatea și eficiența pachetului său de baterii. Menținerea completă a acumulatorului este responsabilitatea sistemului de gestionare a bateriei (BMS). Un BMS este o unitate sofisticată într-un EV care face o mulțime de activități, cum ar fi monitorizarea celulelor, echilibrarea acestora și chiar protejarea acestora împotriva schimbărilor de temperatură. Am aflat deja destul de mult în acest articol despre sistemul de gestionare a bateriei, așa că verificați-le dacă sunteți nou aici.
Pentru a face orice, primul pas pentru BMS ar fi să cunoască starea actuală a celulelor din pachetul de baterii cu litiu. Acest lucru se realizează prin măsurarea tensiunii și curentului (uneori și a temperaturii) celulelor din pachet. Numai cu aceste două valori BMS ar putea calcula SOC sau SOH și poate efectua echilibrarea celulei etc. Deci, măsurarea tensiunii și curentului celulei este vitală pentru orice circuit BMS, fie că este vorba de o baterie simplă de alimentare sau de un laptop sau de un pachet la fel de complicat ca EV / Baterii solare.
În acest articol vom afla cum putem măsura tensiunea individuală a celulelor utilizate într-un pachet de baterii cu litiu. În scopul acestui proiect, vom folosi patru celule de litiu 18650 conectate în serie pentru a forma un pachet de baterii și pentru a proiecta un circuit simplu folosind op-amperi pentru a măsura tensiunile individuale ale celulei și a- l afișa pe un ecran LCD folosind Arduino.
Măsurarea tensiunii individuale a celulei într-o serie de baterii din serie
Problema cu măsurarea tensiunii individuale a celulei într-un pachet de baterii conectate în serie este că punctul de referință rămâne același. Imaginea de mai jos ilustrează același lucru
Pentru simplitate, să presupunem că toate cele patru celule sunt la un nivel de tensiune de 4V așa cum se arată mai sus. Acum, dacă folosim un microcontroler precum Arduino pentru a măsura tensiunea celulei, nu vom avea nicio problemă în măsurarea tensiunii primei celule, deoarece are celălalt capăt conectat la masă. Dar, pentru celelalte celule trebuie să măsurăm tensiunea acelei celule împreună cu celulele anterioare, de exemplu, când măsurăm tensiunea celei de-a 4-a celule, vom măsura tensiunea tuturor celor patru celule împreună. Acest lucru se datorează faptului că punctul de referință nu poate fi schimbat de la sol.
Deci, trebuie să introducem aici un circuit suplimentar care ne-ar putea ajuta să măsurăm tensiunile individuale. În mod brut, este de a utiliza un divizor potențial pentru a mapa nivelurile de tensiune și apoi pentru a le măsura, dar această metodă va reduce rezoluția valorii citite la mai mult de 0,1V. Prin urmare, în acest tutorial vom folosi circuitul diferențial Op-Amp pentru a măsura diferența dintre fiecare terminal de celulă pentru a măsura tensiunea individuală.
Circuit diferențial pentru măsurarea tensiunii individuale a celulei
Știm deja un Op-Amp atunci când funcționează ca amplificator diferențial, dă diferența dintre cele două valori de tensiune furnizate pinului său inversor și non-inversor. Deci, pentru scopul nostru de a măsura 4 tensiuni de celulă, avem nevoie de trei amplificatori opționali diferențiali, așa cum se arată mai jos.
Rețineți că această imagine este doar pentru reprezentare; circuitul real are nevoie de mai multe componente și va fi discutat mai târziu în acest articol. Primul op-amp O1 măsoară tensiunea celei de-a doua celule prin calcularea diferenței dintre terminalul a doua celulă și primul terminal celular care este (8-4). În mod similar, Op-amp O2 și O3 măsuri 3 rd și 4 - lea, respectiv tensiune celulară. Nu am folosit un amplificator operațional pentru prima celulă, deoarece ar putea fi măsurat direct.
Diagrama circuitului
Schema completă a circuitului pentru monitorizarea tensiunii multicelulei din pachetul de baterii cu litiu este prezentată mai jos. Circuitul a fost proiectat folosind EasyEDA și vom folosi același lucru și pentru fabricarea PCB-ului nostru.
După cum puteți vedea, avem două pachete Quad cu șină Op-amp OPA4197 de înaltă tensiune în circuitul nostru, ambele alimentate de tensiunea totală a pachetului. Un IC (U1) este folosit ca un circuit tampon make aka tensiune, în timp ce celălalt IC (U2) este utilizat pentru a forma circuitul amplificatorului diferențial. Este necesar un circuit tampon pentru a preveni încărcarea oricăreia dintre celule, ceea ce nu înseamnă că curentul ar trebui consumat dintr-o singură celulă, ci doar să formeze pachetul în ansamblu. Deoarece circuitul tampon are o impedanță de intrare foarte mare, îl putem folosi pentru a citi tensiunea de la celulă fără a extrage energie de la aceasta.
Toate cele patru op-amperi din IC U1 sunt utilizate pentru tamponarea tensiunii respectivelor patru celule. Tensiunile de intrare de la celule sunt etichetate de la B1 + la B4 +, iar tensiunea de ieșire tamponată este etichetată de la B1_Out la B4_Out. Această tensiune tamponată este apoi trimisă amplificatorului diferențiat pentru a măsura tensiunea individuală a celulei, așa cum sa discutat mai sus. Valoarea tuturor rezistențelor este setată la 1K, deoarece câștigul amplificatorului diferențial este setat la unitate. Puteți utiliza orice valoare a rezistenței, dar toate ar trebui să aibă aceeași valoare, cu excepția rezistențelor R13 și R14. Aceste două rezistențe formează un divizor de potențial pentru a măsura tensiunea pachetului bateriei, astfel încât să o putem compara cu suma tensiunilor celulare măsurate.
Rail to Rail, înaltă tensiune Op-Amp
Circuitul de mai sus necesită utilizarea unui amplificator de înaltă tensiune Rail to Rail, cum ar fi OPA4197, din două motive. Ambele Op-Amp IC funcționează la o tensiune de pachet care este maximă (4,3 * 4) 17,2 V, prin urmare amplificatorul Op ar trebui să fie capabil să manipuleze tensiuni ridicate. De asemenea, din moment ce folosim un circuit tampon, producția de tampon ar trebui să fie egală cu pachet de tensiune pentru 4 - lea terminalul mobil, ceea ce înseamnă că tensiunea de ieșire ar trebui să fie egală cu tensiunea de funcționare a op-amperi, prin urmare, trebuie să folosim o Rail Amplificator de cale ferată
Dacă nu găsiți un amplificator opțional pe șină, puteți înlocui IC-ul cu LM324 simplu. Acest IC poate gestiona tensiunea înaltă, dar nu poate acționa ca șină pe șină, deci trebuie să utilizați un rezistor de tracțiune de 10k pe primul pin al IC-ului U1 Op-Amp.
Proiectare și fabricare PCB folosind Easy EDA
Acum, când circuitul nostru este gata, este timpul să-l fabricăm. Deoarece Op-Amp-ul pe care îl folosesc este disponibil doar în pachetul SMD, a trebuit să fabric un PCB pentru circuitul meu. Deci, ca întotdeauna, am folosit instrumentul EDA online numit EasyEDA pentru a fabrica PCB-ul nostru, deoarece este foarte convenabil de utilizat, deoarece are o colecție bună de amprente și este open-source.
După proiectarea PCB-ului, putem comanda probele de PCB după serviciile lor de fabricare a PCB-urilor cu costuri reduse. De asemenea, oferă servicii de aprovizionare a componentelor, unde au un stoc mare de componente electronice, iar utilizatorii pot comanda componentele necesare împreună cu comanda PCB.
În timp ce vă proiectați circuitele și PCB-urile, puteți, de asemenea, să vă faceți publice circuitele și PCB-urile, astfel încât ceilalți utilizatori să le poată copia sau edita și să poată profita de munca dvs. linkul de mai jos:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
Puteți vizualiza orice strat (de sus, de jos, de top, de fund etc.) al PCB-ului selectând stratul din fereastra „Straturi”. Recent, au introdus, de asemenea, o opțiune de vizualizare 3D, astfel încât să puteți vizualiza și PCB-ul de măsurare a tensiunii multicelule, despre cum va arăta după fabricație utilizând butonul Vizualizare 3D din EasyEDA:
Calcularea și comandarea eșantioanelor online
După finalizarea proiectării acestui circuit de măsurare a tensiunii cu celule de litiu, puteți comanda PCB-ul prin JLCPCB.com. Pentru a comanda PCB-ul de la JLCPCB, aveți nevoie de Gerber File. Pentru a descărca fișierele Gerber ale PCB-ului dvs., faceți clic pe butonul Generați fișierul de fabricație de pe pagina editorului EasyEDA, apoi descărcați fișierul Gerber de acolo sau puteți face clic pe Comandă la JLCPCB așa cum se arată în imaginea de mai jos. Acest lucru vă va redirecționa către JLCPCB.com, unde puteți selecta numărul de PCB-uri pe care doriți să le comandați, de câte straturi de cupru aveți nevoie, grosimea PCB-ului, greutatea cuprului și chiar culoarea PCB-ului, cum ar fi instantaneul prezentat mai jos:
După ce faceți clic pe comanda la butonul JLCPCB, acesta vă va duce la site-ul web JLCPCB, unde puteți comanda orice PCB color cu o rată foarte mică, care este de 2 USD pentru toate culorile. Timpul lor de construcție este, de asemenea, foarte redus, adică 48 de ore cu livrare DHL de 3-5 zile, practic veți primi PCB-urile dvs. într-o săptămână de la comandă. Mai mult, acestea oferă, de asemenea, o reducere de 20 USD la expediere pentru prima comandă.
După ce ați comandat PCB-ul, puteți verifica progresul producției PCB-ului dvs. cu data și ora. O verificați accesând pagina Contului și faceți clic pe linkul „Progresul producției” de sub PCB, ca în imaginea de mai jos.
După câteva zile de a comanda PCB-uri, am obținut probele de PCB într-un ambalaj frumos, așa cum se arată în imaginile de mai jos.
După ce ne-am asigurat că urmele și amprentele erau corecte. Am continuat cu asamblarea PCB-ului, am folosit anteturi de sex feminin pentru a plasa Arduino Nano și LCD, astfel încât să le pot elimina mai târziu, dacă am nevoie de ele pentru alte proiecte. Placa complet lipită arată așa mai jos
Testarea circuitului de monitorizare a tensiunii
După lipirea tuturor componentelor, pur și simplu conectați acumulatorul la conectorul H1 de pe placă. Am folosit cabluri de conectare pentru a mă asigura că nu schimb conexiunea în viitor din întâmplare. Aveți mare grijă să nu-l conectați în mod greșit, deoarece ar putea duce la scurtcircuit și ar deteriora bateriile sau circuitul permanent. PCB-ul meu cu acumulatorul pe care l-am folosit pentru testare este prezentat mai jos.
Acum utilizați multimetrul de pe terminalul H2 pentru a măsura tensiunile individuale de vânzare. Terminalul este marcat cu numere pentru a identifica tensiunea celulei care este măsurată curent. Cu aici putem concluziona că circuitul funcționează. Dar pentru a-l face mai interesant, permiteți-ne să conectăm un LCD și să folosim un Arduino pentru a măsura aceste valori de tensiune și a-l afișa pe ecranul LCD.
Măsurarea tensiunii celulelor de litiu folosind Arduino
Circuitul pentru conectarea Arduino la PCB-ul nostru este prezentat mai jos. Arată cum să conectați Arduino Nano la ecranul LCD.
Pinul de antet H2 de pe PCB ar trebui să fie conectat la pinii analogici ai plăcii Arduino așa cum se arată mai sus. Pinii analogici A1 la A4 sunt utilizați pentru a măsura respectivele patru tensiuni ale celulei, în timp ce pinul A0 este conectat la pinul antet v 'al lui P1. Acest pin V poate fi folosit pentru a măsura tensiunea totală a pachetului. Ne - am conectat, de asemenea, 1 st PIN P1 la pinul Vin al Arduino și 3 rd PIN -ul P1 O PIN - ul la sol de Arduino la putere Arduino cu acumulatorul.
Putem scrie un program pentru a măsura toate cele patru tensiuni ale celulelor și tensiunea pachetului acumulatorului și să îl afișăm pe ecranul LCD. Pentru a-l face mai interesant, am adăugat, de asemenea, toate cele patru tensiuni ale celulei și am comparat valoarea cu tensiunea măsurată a pachetului pentru a verifica cât de aproape măsurăm de fapt tensiunea.
Programarea Arduino
Programul complet poate fi găsit la sfârșitul acestei pagini. Programul este destul de simplu, folosim pur și simplu funcția de citire analogică pentru a citi tensiunile celulei folosind modulul ADC și pentru a afișa valoarea calculată a tensiunii pe ecranul LCD folosind biblioteca LCD.
float Cell_1 = analogRead (A1) * (5.0 / 1023.0); // Măsurați prima tensiune a celulei lcd.print ("C1:"); lcd.print (Cell_1);
În fragmentul de mai sus am măsurat tensiunea celulei 1 și am înmulțit-o cu 5/1023 pentru a converti valoarea ADC de la 0 la 1023 la 0 la 5V reale. Afișăm apoi valoarea tensiunii calculate pe ecranul LCD. În mod similar, facem acest lucru și pentru toate cele patru celule și pentru bateria totală. De asemenea, am folosit tensiunea totală variabilă pentru a însuma toate tensiunile celulei și a le afișa pe ecranul LCD, așa cum se arată mai jos.
float Total_Voltage = Cell_1 + Cell_2 + Cell_3 + Cell_4; // Adăugați toate cele patru valori de tensiune măsurate lcd.print ("Total:"); lcd.print (Total_Voltage);
Afișajul individual al tensiunii celulare funcționează
Odată ce sunteți gata cu circuitul și codul, încărcați codul pe placa Arduino și conectați banca de alimentare la PCB. Ecranul LCD ar trebui să afișeze acum tensiunea individuală a celulei pentru toate cele patru celule, așa cum se arată mai jos.
După cum puteți vedea, tensiunea afișată pentru celula 1 la 4 este de 3,78V, 3,78V, 3,82V și respectiv 3,84V. Deci, apoi mi-am folosit multimetrul pentru a verifica tensiunea reală a acestor celule, care s-a dovedit a fi puțin diferită, diferența este tabelată mai jos.
Tensiunea măsurată |
Tensiunea reală |
3,78V |
3,78V |
3,78V |
3,78V |
3,82V |
3,81V |
3,84V |
3,82V |
După cum puteți vedea, obținem rezultate exacte pentru celulele una și două, dar există o eroare de până la 200 mV pentru celulele 3 și 4. Acest lucru este cel mai probabil de așteptat pentru proiectarea noastră. Întrucât folosim un circuit diferențiat op-amp, precizia tensiunii măsurate va scădea odată cu creșterea numărului de celule.
Dar această eroare este o eroare fixă și poate fi corectată în program, luând probe citite și adăugând un multiplicator pentru a corecta eroarea. Pe următorul ecran LCD puteți vedea, de asemenea, suma tensiunii măsurate și a tensiunii reale a pachetului care a fost măsurată prin divizorul de potențial. Același lucru este prezentat mai jos.
Suma tensiunilor măsurate este de 15,21 V, iar tensiunea reală măsurată prin pinul A0 al Arduino se dovedește a fi de 15,22 V. Astfel diferența este de 100mV ceea ce nu este rău. În timp ce acest tip de circuit poate fi folosit pentru un număr mai mic de drojdie, cum ar fi în băncile de alimentare sau bateriile laptopului. Vehiculul electric BMS folosește tipuri speciale de circuite integrate precum LTC2943, deoarece nici măcar o eroare de 100mV nu este tolerabilă. Cu toate acestea, am învățat cum să o facem pentru un circuit la scară mică, unde prețul este o constrângere.
Funcționarea completă a setului poate fi găsită la videoclipul legat mai jos. Sper că ți-a plăcut proiectul și ai învățat ceva util din acesta. Dacă aveți întrebări, lăsați-le în secțiunea de comentarii sau folosiți forumurile pentru răspunsuri mai rapide.