Batterimonitor
A PIC based battery monitor |
Denna sida beskriver ett batteriövervakningsprojekt. Denna sida beskriver den första prototypen som är helt diskret uppbyggd. Den aktuella konstruktionen hittar du här.
Då man seglar så hinner man tänka och en tanke som dök upp var: "Räcker laddningen i vårt batteri?". s/y Moulin Rouge har en 110Ah blyackumulator som enbart laddas via en 25W NAPS solpanel. Den största förbrukaren är kylboxens kompressor. Såväl laddning som urladdning är inte konstant över tiden.
This is the project page for my first battery gauge project. The recent design can be found here. Scroll down for an English summary
Erfarenhetsmässigt vet vi att strömmen brukar räcka, men vi resonerar som Sokrates: Det outforskade livet är inte värt att leva.
Att övervaka laddningen i ett blybatteri är ingen exakt vetenskap. Noggrannast resultat får man om man kollar elektrolytens specifika vikt med en syraprovare, men det är litet bökigt. För att veta vartåt det lutar så kan man räkna strömmen in i batteriet och ut över tiden. Helst skall man ligga på plus och ha en marginal. Man kan även mäta batteriets vilospänning som motsvarar laddningsgrad vid 20C.
Nu är jag inte den första som funderat på detta. Några alternativa (hobby)lösningar hittar du nedan
En lösning som liknar min, men mätkretsen tillverkas ej längreOm du inte är intresserad av elektronik så lönar det sig att köpa färdigt, tex:
NASA Marine, har extremt låg egenförbrukningBygger man själv så kan man få den precis som man vill ha den. Målen för mitt projekt var:
En bra sammanfattning av teorierna kring blybatterier hittar du bla Svenska Kryssarklubbens sidor. samt hos Maxim.
Att mäta effekt är enkelt i teorin. Mät strömmen och integrera. För att hantera transienta laster måste man sampla ofta och för att få bra noggrannhet måste man ha bra upplösning, gärna motsvarande 16-bitar. Antingen mäter man strömmen med PICens DAC och adderar fortlöpande (samplande mätning), alternativt kan man förvandla strömmen till ett pulståg där frekvensen är proportionell mot strömmen och räkna pulserna (integrerande mätning). Båda metoderna har sina för och nackdelar. Med en LM331 V/F-omvandlare är den maximala, teoretiska uplösningen 1/100000, vilket motsvarar 16-17 bitar. Notera att upplösningen halveras eftersom vi måste mäta såväl + som -.
En samplande mätning är enklare att implementera, medan en integrerande ger bättre noggrannhet över tiden. Skillnaderna berörs helt kort i AN485 från Maxim. Denna appnote utenämnar dock den teoretiska bakgrunden och resonemanget om långtidsnoggrannhet. Dessa faktorer diskuteras i detalj i "Smart battery analog front end architecture comparison" från IEEE. Den integrerande lösningen eliminerar kvantieringsfelet som faktor i långtidsberäkningen. I en jämförelse mellan ADC och VFC som på pappret har samma upplösning (3,05uV) blir felet för ADC-lösningen 17% medan VFC lösningens fel är 0,08% i slutet av laddnings/urladdningscykeln
För att mäta själva strömmen kan man använda spänningsfallet över en shunt (som i extremfallet kan vara tex jordflätan!) eller också använda en färdig sensor, tex en Hall-effekt sensor. En bla sammanfattning av tekniken finns här Fördelen med Hall-effekt sensorerna är att de ger en utspänning som direkt passar PICens DAC, däremot är de dåliga på att mäta svaga strömmar. En strömshunt ger en svag spänning som måste förstärkas, själva shunten är dock linjär inom ett mycket stort område. Däremot är det är frågan om svaga signalervilket leder till vissa utmaningar rent mät-tekniskt.
Om vi lämnar hall-effektgivare därhän och koncentrerar oss på shuntar så kan man mäta på två sätt "high side" dvs i detta fall på ackumulatorns pluspol, eller "low side", på ackumulatorns minuspol. Det finns för och nackdelar med båda och det behandlas bla i Current sense Circuit Collection från Analog Devices. I detta fall valde jag "low side", vilket dock gör att jag måste ha balanserad matningsspänning.
I korthet fungerar denna batterimonitor så här:
Prototyp för att testa en 32-bitars räknare driven av "interrupt on change". Pulser genereras av en 555:
Prototyp av den analoga delen. Ingångssteg är en INA128. Resten TL07x. Nackdelen med TL07x är den relativt höga offsetspänningen och driften. I nästa prototyp bytte jag därför till OP07
Notera att displayen visar 0000000000mAh. Detta skall läsas som 000000,0000mAh
Inga kretskort ännu och handritade scheman. Detta är inte lättja, utan sund ingenjörskonst. I samma ögonblick som man renritar på papper eller i KiCAD och etsar kort så är man hopplöst fast i sin konstruktion. I detta fall håller jag helt med min gamle föreläsare, Juhani Rautavalta, som hävdade att de bästa konstruktionerna ritades på baksidan av en Klub 77 ask. (Nej, jag röker inte).
Prototyp med OP07. Konstruktionen kommer att ha tre sandwichade kretskort (1) Analog, (2) Digital och (3) Spänningsmatning. För att kunna mäta dubbelriktat "lowside" så behövs dubbel matning och för att få ett rimligt dynamiskt område behövs en hög, stabil matningsspänning. I denna prototyp har jag en 78L05 för PICen och 78L09 för +9V för det analoga, samt en switchad omvandlare för -9V (Därav toroiden på labbkortet). En 12Ah acku från vår elektriska gräsklippare får vara labbobjekt och en lanternlampa last. Frekvensräknaren visar här 41Hz vilket dels är mätarens egenförbrukning (ca 45mA) samt störningar som plockas upp av "ormboet". Upplösningen på denna variant är annars ca 4mA vid 12A fullskala.
Efter litet micklande är egenförbrukningen nu nere i 32mA och störningarna minskade.
Schema över digitala delen och strömförsörjningen. Kommer antagligen att haka på tryck-knappar på de lediga pinnarna. Är ännu oklart om jag skall ha en diskret switchande nätdel eller använda en färdig modul från tex Traco.
Strömförsörjningen är ett speciellt kapitel i detta fall. PIC och display matas med +5V och den analoga delen med +/-9V. Inspänningen antas ligga mellan 10 och 16V. Givetvis
vill vi minimera egenförbrukningen. Lösningen som valdes baserar sig på en switchande nätdel med MAX636. Lagringsspolen är en toroid för att minimera magnetiska störningar (Jag använde en färdig toroid från Elfa, därav storleken, förbrukningen är i storleksordningen totals mA så man kan bra linda en med klenare tråd). För att minska de elektriska finns ett antal drosslar och kondensatorer för filtrering, såväl på ingång som utgång. Elektrolyterna är av lågimpedanstyp. Skall mätaren fungera även vid minusgrader bör man beakta detta då man väljer elektrolyter. För den positiva spänningen valdes LDO-regulatorer av typen LM2931. Dessa har lägre framspänningsfall (0,2V) jämfört med 78L0x (1,7V) och en betydligt lägre egenförbrukning (0,4mA mot ca 3mA). Denna regulator är även specialgjord för batteriapplikationer och har en massa skyddsfunktioner mot felpolarisering och överspänning. I serie med inspänningen sitter en (schottky) diod som extra skydd och en säkring. |
Strömförsörjningen är i stort stt identisk med prototypen ovan, men samtliga regulatorer är nu av LDO-typ och några extra komponenter för glättning har tillkommit |
Den tidigare lösningen för absolutbelopp hade linearitetsproblem och byttes till en annan lösning, varvid även en OP-amp föll bort |
Den digitala delen innehåller inga underligheter. V/F omvandlaren LM331, en PIC 16F690, display och några kringkomponenter. |
Jo, den fungerar och klarar de mpl jag ställt upp. Dock lider den av några allvarliga problem:
För att få önskad upplösning krävs tillgång till hyfsat noggranna V/A-mätare samt en frekvensräknare, gärna en som mäter 0,1Hz. Det gör konstruktionen olämplig för hobbybruk. Jag valde i stället en annan lösning som fungerar på samma sätt, men som använder en färdig coloumb-IC
Mjukvaran är skriven för PIC 16F690 och i assembler. I korthet består den av
Vid tester på en 12Ah acku fann jag att spänningen steg relativt snabbt, efter urladdning, då lasten kopplades bort, för att sedan stiga mycket långsamt. Den nu valda algoritmen lagrar spänningen då strömmen (+/-) varit under ett gränsvärde (fn 100mA) under en viss tid (fn 255*0,5s). Vi antar vidare att spänningen är = -0,4114*G^2 + 1,2754*G + 11,841, där G är laddningsgraden i procent. Rutinen i programmet kollar helt enkelt mot en tabell, där den kan slå upp laddningsgraden från spänningen.
En blyackumulators självurladdning är normalt 5-15% vid 20C. Programmet tar hänsyn till detta genom en subrutin som körs varje minut och då subtraherar ett värde från laddningen. Självurladdningen är vidare temperaturberoende så att den fördubblas för varje 10 grader C höjning över 20C och halveras för arje 10 graders sänkning. Det subtraherade värdet bör justeras utifrån detta.
Med effektivitet avses att vi måste föra in mera laddning än vi tar ut. Om ackun är full-laddad och vi drar ur 5Ah, så måste vi kanske ladda 5,5Ah för att batteriet åter skall vara full-laddat. Effektiviteten är i detta fall 90%. Programmet tar hänsyn till detta genom att skippa var n-te puls vid laddning. Där n är valbart.
Here is where you will find the English summary once I write it..Meanwhile this short piece will have to do. The goal is to build a battery monitor for lead-acid batteries. The recent design can be found here. Design goals are
This information and the circuits are provided as is without any express or implied warranties. While every effort has been taken to ensure the accuracy of the information contained in this text, the authors/maintainers/contributors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. I disclaim everything. The contents of the articles below might be totally inaccurate, inappropriate, or misguided. There is no guarantee as to the suitability of said circuits and information for any purpose whatsoever other than as a self-training aid. I.E. If it blows your equipments, trashes your hard disc, wipes your backup, burns your building down or just plain don't work, IT ISN'T MY FAULT. In the event of judicial ruling to the contrary, any liability shall be limited to the sum charged on you by us for the aforementioned document or nothing, whichever is the lower. I will not be held responsible for any damages or costs which might occur as a result of my advice or designs. Nor are you allowed to use any of my designs for commercial purposes without my written authorisation.