- Måling av individuell cellespenning i en serie batteristakk
- Differensialkrets for å måle individuell cellespenning
- Kretsdiagram
- PCB-design og fabrikasjon ved bruk av Easy EDA
- Beregning og bestilling av prøver online
- Testing av spenningsovervåkningskretsen
- Måling av litiumcelle spenning ved hjelp av Arduino
- Programmering av Arduino
- Individuell cellespenningsvisning fungerer
Kjørelengde og ytelse til et elektrisk kjøretøy avhenger av kapasiteten og effektiviteten til batteripakken. Å vedlikeholde batteripakken med full helse er ansvaret for Battery Management System (BMS). En BMS er en sofistikert enhet i en EV som gjør mye aktivitet som å overvåke cellene, balansere dem og til og med beskytte dem mot temperaturendringer. Vi har allerede lært nok av det i denne Battery Management System-artikkelen, så sjekk dem hvis du er ny her.
For å gjøre hva som helst, vil det første trinnet for BMS være å vite den nåværende statusen til cellene i litiumbatteripakken. Dette gjøres ved å måle spenningen og strømmen (noen ganger også temperaturen) til cellene i pakken. Bare med disse to verdiene kunne BMS beregne SOC eller SOH og utføre cellebalansering osv. Så å måle spenningen og strømmen til cellen er viktig for enhver BMS-krets, det være seg en enkel strømbank eller laptopbatteri eller så komplisert pakke som EV / Solbatterier.
I denne artikkelen vil vi lære hvordan vi kan måle den individuelle cellespenningen til cellene som brukes i en litiumbatteripakke. Av hensyn til dette prosjektet vil vi bruke fire litium 18650-celler koblet i serie for å danne en batteripakke og designe en enkel krets ved hjelp av op-forsterkere for å måle de enkelte cellespenningene og vise den på en LCD-skjerm ved hjelp av Arduino.
Måling av individuell cellespenning i en serie batteristakk
Problemet med å måle individuell cellespenning i en serie seriekoblede batterier er at referansepunktet forblir det samme. Bildet nedenfor illustrerer det samme
For enkelhets skyld, la oss anta at alle fire cellene har et spenningsnivå på 4V som vist ovenfor. Nå hvis vi bruker en mikrokontroller som Arduino å måle cellespenningen, vil vi ha noe problem med å måle spenningen over en st celle siden det har den andre enden er koblet til jord. Men for de andre cellene må vi måle spenningen til den cellen sammen med de forrige cellene, for eksempel når vi måler spenningen til 4. celle, vil vi måle spenningen til alle fire cellene sammen. Dette er fordi referansepunktet ikke kan endres fra bakken.
Så vi må introdusere litt ekstra krets her som kan hjelpe oss med å måle de enkelte spenningene. På grov måte er å bruke en potensiell skillelinje for å kartlegge spenningsnivåene og deretter måle dem, men denne metoden vil redusere oppløsningen til leseverdien til mer enn 0,1V. Derfor vil vi i denne opplæringen bruke Op-Amp Differential Circuit til å måle forskjellen mellom hver celleterminal for å måle individuell spenning.
Differensialkrets for å måle individuell cellespenning
Vi vet allerede en Op-Amp når vi jobber som en differensialforsterker, gir forskjellen mellom de to spenningsverdiene som er gitt til den inverterende og ikke-inverterende pinnen. Så for vårt formål å måle 4 cellespenninger trenger vi tre differensielle op-forsterkere som vist nedenfor.
Merk at dette bildet kun er for representasjon; den faktiske kretsen trenger flere komponenter og vil bli diskutert senere i denne artikkelen. Den første operasjonsforsterker O1 måler spenningen til 2 nd cellen ved å beregne differansen mellom to nd celleterminal, og en st celle terminal som er (8-4). På lignende måte er op-amp O2 og O3 måler 3 rd og 4 th henholdsvis cellespenning. Vi har ikke brukt en op-amp for en st cellen siden det kan måles direkte.
Kretsdiagram
Det komplette kretsskjemaet for overvåking av flercellsspenning i litiumbatteripakke er gitt nedenfor. Kretsen ble designet med EasyEDA, og vi vil bruke det samme til å produsere PCB også.
Som du kan se, har vi to firpakkede skinner til skinner Høyspennings op-amp OPA4197 i kretsen vår begge drevet av den totale pakkespenningen. Én IC (U1) brukes til å lage en bufferkrets som også kalles spenningsfølger, mens den andre IC (U2) brukes til å danne differensialforsterkerkretsen. En bufferkrets er nødvendig for å forhindre at noen av cellene blir lastet individuelt, noe som ikke er strøm, bør konsumeres fra en enkelt celle, men bare danner pakken som en helhet. Siden bufferkretsen har veldig høy inngangsimpedans, kan vi lese av spenningen fra cellen uten å trekke strøm fra den.
Alle de fire op-forsterkerne i IC U1 brukes til å buffere spenningen til henholdsvis de fire cellene. Inngangsspenningene fra cellene er merket fra B1 + til B4 + og den bufrede utgangsspenningen er merket fra B1_Out til B4_Out. Denne bufrede spenningen blir deretter sendt til differensialforsterkeren for å måle den enkelte cellespenning som diskutert ovenfor. Verdien av hele motstanden er satt til 1K siden forsterkningen til differensialforsterkeren er satt til enhet. Du kan bruke hvilken som helst motstandsverdi, men de skal alle ha samme verdi, bortsett fra motstandene R13 og R14. Disse to motstandene danner en potensiell skillelinje for å måle batteriets pakkespenning slik at vi kan sammenligne den med summen av målte cellespenninger.
Skinne til skinne, høyspenning Op-Amp
Ovennevnte krets krever at du bruker en Rail to Rail høyspent op-amp som OPA4197 på grunn av to grunner. Både Op-Amp IC fungerer med pakkespenningen som er maksimalt (4,3 * 4) 17,2V, og derfor bør Op-amp være i stand til å håndtere høye spenninger. Også siden vi bruker en bufferkrets, bør utgangen til bufferen være lik pakkespenningen for den fjerde celleterminalen, noe som betyr at utgangsspenningen skal være lik driftsspenningen til op-amp, derfor må vi bruke en skinne for å Skinne op-amp
Hvis du ikke finner en skinne til skinne-op-amp, kan du erstatte IC med enkel LM324. Denne IC kan håndtere høyspenning, men kan ikke fungere som skinne til skinne, så du må bruke en opptrekksmotstand på 10k på den første pinnen på U1 Op-Amp IC.
PCB-design og fabrikasjon ved bruk av Easy EDA
Nå som kretsen vår er klar, er det på tide å få den fabrikkert. Siden Op-Amp jeg bruker er bare tilgjengelig i SMD-pakke, måtte jeg lage et PCB for kretsen min. Så som alltid har vi brukt det elektroniske EDA-verktøyet kalt EasyEDA for å få PCB-fabrikken vår fordi den er veldig praktisk å bruke siden den har en god samling fotavtrykk og den er åpen kildekode.
Etter å ha designet PCB, kan vi bestille PCB-prøvene med deres lave pris på PCB-fabrikasjonstjenester. De tilbyr også komponent sourcing-tjenester der de har et stort lager av elektroniske komponenter og brukere kan bestille de nødvendige komponentene sammen med PCB-bestillingen.
Mens du designer kretsene og kretskortene dine, kan du også gjøre krets- og kretskortsdesign offentlig, slik at andre brukere kan kopiere eller redigere dem og dra nytte av arbeidet ditt, vi har også gjort hele krets- og kretskortoppsett offentlig for denne kretsen, sjekk lenken nedenfor:
easyeda.com/CircuitDigest/Multicell-Voltage-measuring-for-BMS
Du kan se hvilket som helst lag (topp, bunn, overflatemelk, bunnmelk osv.) På PCB ved å velge laget fra vinduet "Lag". Nylig har de også introdusert et 3D-visningsalternativ, slik at du også kan se multicell spenningsmåling PCB, for hvordan det vil se ut etter fabrikasjon ved hjelp av 3D View- knappen i EasyEDA:
Beregning og bestilling av prøver online
Etter å ha fullført utformingen av denne målekretsen for litiumcelle spenning, kan du bestille PCB via JLCPCB.com. For å bestille PCB fra JLCPCB, trenger du Gerber File. For å laste ned Gerber-filer på PCB-en klikker du bare på Generer fabrikasjonsfil-knappen på EasyEDA-redigeringssiden, og deretter laster du ned Gerber-filen derfra, eller du kan klikke på Bestill på JLCPCB som vist i bildet nedenfor. Dette vil omdirigere deg til JLCPCB.com, hvor du kan velge antall PCB du vil bestille, hvor mange kobberlag du trenger, PCB-tykkelsen, kobbervekten og til og med PCB-fargen, som øyeblikksbildet vist nedenfor:
Etter å ha klikket på bestillingen ved JLCPCB-knappen, tar den deg til JLCPCB-nettstedet hvor du kan bestille hvilken som helst fargekort i veldig lav pris, som er $ 2 for alle farger. Byggetiden deres er også veldig mindre, som er 48 timer med DHL-levering på 3-5 dager, i utgangspunktet får du PCB-ene dine innen en uke etter bestilling. Videre tilbyr de også 20 $ rabatt på frakt for din første bestilling.
Etter at du har bestilt PCB, kan du kontrollere produksjonsfremdriften til PCB med dato og klokkeslett. Du sjekker det ved å gå til kontosiden og klikke på "Produksjonsfremdrift" -koblingen under PCB som vist i bildet nedenfor.
Etter noen dager med bestilling av PCB fikk jeg PCB-prøvene i fin emballasje som vist på bildene nedenfor.
Etter å ha sørget for at sporene og fotavtrykkene var riktige. Jeg fortsatte med å montere PCB, jeg brukte kvinnelige overskrifter for å plassere Arduino Nano og LCD slik at jeg kan fjerne dem senere hvis jeg trenger dem til andre prosjekter. Det helt lodde brettet ser slik ut nedenfor
Testing av spenningsovervåkningskretsen
Når du har loddet alle komponentene, kobler du bare batteripakken til H1-kontakten på kortet. Jeg har brukt tilkoblingskabler for å sørge for at jeg ikke endrer tilkoblingen i fremtiden ved et uhell. Vær veldig forsiktig med å ikke koble den på feil måte, da det kan føre til kortslutning og skade batteriene eller kretsen permanent. PCB-en med batteripakken som jeg brukte til testing, vises nedenfor.
Bruk nå multimeteret på H2-terminalen for å måle de enkelte salgsspenningene. Terminalen er merket med tall for å identifisere cellespenningen som nå måles. Her kan vi konkludere med at kretsen fungerer. Men for å gjøre det mer interessant, la oss koble til en LCD og bruke en Arduino til å måle disse spenningsverdiene og vise den på LCD-skjermen.
Måling av litiumcelle spenning ved hjelp av Arduino
Kretsen for å koble Arduino til PCB-en vår er vist nedenfor. Den viser hvordan du kobler Arduino Nano til LCD.
Toppteksten H2 på PCBet skal kobles til de analoge pinnene på Arduino-kortet som vist ovenfor. De analoge tappene A1 til A4 brukes til å måle henholdsvis de fire cellespenningene, mens tappen A0 er koblet til toppstiften v 'til P1. Denne v-pinnen kan brukes til å måle den totale pakkespenningen. Vi har også koplet til en st stiften av P1 til Vin pin av Arduino og 3 rd tapp av P1 o jordpinnen av Arduino til kraft Arduino med batteripakken.
Vi kan skrive et program for å måle alle de fire cellespenningene og pakkespenningen til batteripakken og vise den på LCD-skjermen. For å gjøre det mer interessant har jeg også lagt til alle de fire cellespenningene og sammenlignet verdien med den målte pakkespenningen for å sjekke hvor nær vi faktisk måler spenningen.
Programmering av Arduino
Hele programmet finner du på slutten av denne siden. Programmet er ganske enkelt, vi bruker ganske enkelt den analoge lesefunksjonen til å lese cellespenningene ved hjelp av ADC-modulen og vise beregne spenningsverdien på LCD-skjermen ved hjelp av LCD-biblioteket.
flyte Cell_1 = analogRead (A1) * (5.0 / 1023.0); // Mål første celle spenning lcd.print ("C1:"); lcd.print (Cell_1);
I utdraget ovenfor har vi målt spenningen til celle 1 og multiplisert den med 5/1023 for å konvertere 0 til 1023 ADC-verdien til faktisk 0 til 5V. Vi viser deretter den beregnede spenningsverdien på LCD-skjermen. På samme måte gjør vi dette for alle de fire cellene og den totale batteripakken også. Vi har også brukt den variable totalspenningen for å oppsummere alle cellespenningene og vise den på LCD-skjermen som vist nedenfor.
flyte Total_Voltage = Cell_1 + Cell_2 + Cell_3 + Cell_4; // Legg til alle de fire målte spenningsverdiene lcd.print ("Total:"); lcd.print (Total_Voltage);
Individuell cellespenningsvisning fungerer
Når du er klar med krets og kode, laster du opp koden til Arduino-kortet og kobler strømbanken til kretskortet. LCD-skjermen skal nå vise den individuelle cellespenningen til alle de fire cellene, som vist nedenfor.
Som du kan se, er spenningen som vises for celle 1 til 4 henholdsvis 3,78V, 3,78V, 3,82V og 3,84V. Så da brukte jeg multimeteret mitt for å sjekke den faktiske spenningen til disse cellene, som viste seg å være litt forskjellige. Forskjellen er tabellert nedenfor.
Målt spenning |
Faktisk spenning |
3.78V |
3.78V |
3.78V |
3.78V |
3.82V |
3.81V |
3.84V |
3.82V |
Som du ser har vi fått nøyaktige resultater for cellene en og to, men det er en feil så høy som 200mV for celler 3 og 4. Dette er mest sannsynlig å forvente for vårt design. Siden vi bruker en op-amp differensieringskrets, vil nøyaktigheten til den målte spenningen gå ned når antall celler øker.
Men denne feilen er en fast feil og kan rettes i programmet, ved å ta prøvelesninger og legge til en multiplikator for å rette feilen. På neste LCD-skjerm kan du også se summen av den målte spenningen og den faktiske pakkespenningen som ble målt gjennom potensiell skillelinje. Det samme er vist nedenfor.
Summen av spenningene som ble målt er 15,21V, og den faktiske spenningen målt gjennom A0-pinnen til Arduino viser seg å være 15,22V. Dermed er forskjellen 100mV, noe som ikke er dårlig. Mens denne typen krets kan brukes til mindre antall strømmer som i strømbanker eller bærbare batterier. Det elektriske kjøretøyet BMS bruker spesiell type IC-er som LTC2943 fordi selv en feil på 100mV ikke tolereres. Likevel har vi lært hvordan vi gjør det for småskala kretser der prisen er en begrensning.
Den komplette arbeider av set-up kan bli funnet på video link under. Håper du likte prosjektet og lærte noe nyttig av det. Hvis du har spørsmål, la dem være i kommentarseksjonen eller bruk forumene for raskere svar.