Batterimonitor till segelbåten (Strömmätare över shunt)
7-8 bitar tycker jag låter lite - mätarna som det har i elkåpen ligger på typ 16 bitar och 8-16 ksampel/s för att få tillräklig upplösning för att mäta säkert.
Att mäta från säg 10 mA till 60 ampere kräver typ 75 dB dynamik.
Men det beror på användningen - nollställer man Ah-metern när man kliver i båten och har relativt stora förbrukare av on/off karaktär under dagens användning så kanske man kan få känn på att 'nu börjar det vara på upphällningen' i slutet av dagen - så kan det funka - men inget som egentligen håller reda på batteriet laddstatus utan förutsätter fulladdat vid varje start.
Då är det bättre med V/F-metoden då man automatiskt får en intergrerade funktion med sensorkretsen som kan mäta i mA-område och ge någon puls var 10 sekund till att räknaringångar inte har några bekymmer med MHz skaktakt från en sådan givare när bogpropellern drar igång vid flera 100 ampere förbrukning. Bygger man V/F-sensorn rätt så klarar den säkert över 90 dB dynamik steglöst mellan min och maxström.
- Återigen försök inte lösa _allt_ digtalt via en lågupplöst A/D-omvandlare utan använd analog teknik på uppgifter som den riktigt är bra på och 'digitala' uppgifter som digitalt är riktigt bra på.
analog drift på sensorsidan kan ganska enkelt lösas med lämpliga konstanter i programmet - vet man att V/F sensorn ger 1 puls per 10 sekunder pga offset/drift vid ingen ström alls, så får MCU:n helt enkelt dra av 1 puls var 10 sekund på den räknade summan...
Att mäta från säg 10 mA till 60 ampere kräver typ 75 dB dynamik.
Men det beror på användningen - nollställer man Ah-metern när man kliver i båten och har relativt stora förbrukare av on/off karaktär under dagens användning så kanske man kan få känn på att 'nu börjar det vara på upphällningen' i slutet av dagen - så kan det funka - men inget som egentligen håller reda på batteriet laddstatus utan förutsätter fulladdat vid varje start.
Då är det bättre med V/F-metoden då man automatiskt får en intergrerade funktion med sensorkretsen som kan mäta i mA-område och ge någon puls var 10 sekund till att räknaringångar inte har några bekymmer med MHz skaktakt från en sådan givare när bogpropellern drar igång vid flera 100 ampere förbrukning. Bygger man V/F-sensorn rätt så klarar den säkert över 90 dB dynamik steglöst mellan min och maxström.
- Återigen försök inte lösa _allt_ digtalt via en lågupplöst A/D-omvandlare utan använd analog teknik på uppgifter som den riktigt är bra på och 'digitala' uppgifter som digitalt är riktigt bra på.
analog drift på sensorsidan kan ganska enkelt lösas med lämpliga konstanter i programmet - vet man att V/F sensorn ger 1 puls per 10 sekunder pga offset/drift vid ingen ström alls, så får MCU:n helt enkelt dra av 1 puls var 10 sekund på den räknade summan...
Alla har vi våra preferenser. Om man lärde sig elektronik före det fanns mikroprocessorer så tenderar man använda diskret logik och sedan ta till en PIC då det inte är vettigt att realisera lösningen med enbart diskret logik. Lärde man sig elektronik via PICs så gör man kanske det omvända, dvs använder en PIC och sedan diskret logik då man kör fast med PICen.ntressant. Verkar vara lite veka ledare för att mäta 80A men den fungerar säkert bra.
Hur nogranna är hall effekt sensorerna egentligen och varför använda ella batteri monitorer shunt-motstånd?
Skall man serietillverka en produkt så tillkommer dessutom kostnadsaspekten. Ju flera komponenter, desto dyrare produkt. Den ideala konstruktionen har noll komponenter.
Även en vanlig PIC med 10 bitars är i minsta laget. Som xxargs påpekar så krävs en enorm dynamik. Att mäta från självurladdning på några tiotals mA till hundratals ampere är en utmaning.7-8 bitar tycker jag låter lite - mätarna som det har i elkåpen ligger på typ 16 bitar och 8-16 ksampel/s för att få tillräklig upplösning för att mäta säkert.
Därav den lösningen att förvandla ström till frekvens och räkna pulser som "signal conditioning". Sedan räknar man ned/upp med en tex 40 bitars räknare i mjukvara. Går man i tak med frekvens så kan man ha en "prescaler" i form av en 4 -bitars upp/nedräknare och mata in "carry" från denna till PICen.
Har allt uppkopplat i princip nu och har kalibrerat spänning/ström, men ej frekvens ännu. Skall posta en bild senare.
Att mäta över jordkabeln går bra, men skall du kunna mäta två vägar måste du ha en flytande mätare, eller en där ingångsförstärkaren matas med +/-. Det är den senare metoden jag använder. Nackdelen är att man måste skapa en -5V, men det är fråga om några milliamp så det fixar sig med en liten omvandlare.Jag håller oxå på att planera en batteriövervakare till mitt båtelmotorprojekt. Min tanke var att bara använda en bit av kabeln som shunt och sen mäta spänningsfallet över denna med en AVR. T.ex. med en Atmega16 (TQFP44) kan man väl mäta "differential gain channels" med ADn och få 7 resp 8 bitars upplösning vid 200x resp 10x förstärkning. Sen får man ju riktningen på strömmen på köpet. Detta kräver ju i princip inga ytterligare komponenter än AVRen. Borde inte det funka?
V/F är en AD-omvandlare i sig. Det eleganta med att omvandla till pulser och sedan räkna är att man får integreringen på köpet. Det är ju inte strömmen som sådan, utan per tidsenhet som är intressant.
Annars måste du sampla strömmen, ofta, med stor noggranhet i intervallet och addera.
Med en 10-bitars AD blir upplösningen 1024 om du har en separat teckenbit och 512 om ej. Om du vill ha 100A fullskaleutslag så blir det minsta värde du kan mäta 100mA och det är i grövsta laget
Annars måste du sampla strömmen, ofta, med stor noggranhet i intervallet och addera.
Med en 10-bitars AD blir upplösningen 1024 om du har en separat teckenbit och 512 om ej. Om du vill ha 100A fullskaleutslag så blir det minsta värde du kan mäta 100mA och det är i grövsta laget
Varför använda en 10-bit AD?
En PIC 16F88 tex har 16bit vilket ger en bättre upplösning. Då har man i alla fall 3mA/bit vid en full upplösning på 100A. Men jag skulle vilja komma ner till 1mA upplösning i alla fall.
AndersG: Vad räknar du med för upplösning?
Vad har en v/f för upplösning då?
Som jag skrev tänker jag antagligen använda en v/f jag med för att mät förbrukningen och sedan koppla in signalen från shunt-förstärkaren direkt till en ADC ingång för att gå momentant värde.
Dvs
Shunt -> Shunt-förstärkare -> v/f -> uC (interrupt räknare)
och
Shunt -> Shunt-förstärkare -> uC (ADC)
En PIC 16F88 tex har 16bit vilket ger en bättre upplösning. Då har man i alla fall 3mA/bit vid en full upplösning på 100A. Men jag skulle vilja komma ner till 1mA upplösning i alla fall.
AndersG: Vad räknar du med för upplösning?
Vad har en v/f för upplösning då?
Som jag skrev tänker jag antagligen använda en v/f jag med för att mät förbrukningen och sedan koppla in signalen från shunt-förstärkaren direkt till en ADC ingång för att gå momentant värde.
Dvs
Shunt -> Shunt-förstärkare -> v/f -> uC (interrupt räknare)
och
Shunt -> Shunt-förstärkare -> uC (ADC)
diff-förstärkarna kan mäta båda riktningarna - om förstärkaren matningspänning är lägre än lägsta spänningen och högre än högsta spänningen som shunten kan uppvisa i båda strömriktningarna. Det är när man inte har +/- matning som man får problem i åtminståne ena riktningen beroende var man sätter mätkretsens jordreferens emot.ankan skrev:Det finns annars shunt förstärkare som klarar båda riktningarna. På så vis får man både förstärkning av signalen och riktning. Sedan skulle man kunna använda en v/f men jag funderar på om inte v/f har en ADC i sig och vilken upplösning har den i så fall?
200A/0.001A = 200000 ggr
20*log10(200000) = 106 dB - inte ens en 16 bitars AD/omvandlare räcker för detta... vid 100 ampere max och fortfarande önska 1 mA upplösning så måste man hantera 100 dB i dynamik - jag skulle säga att det är väldigt få högklassinga microfoningångar som har över 100 dB användbar dynamik...
Det är heller inte att 'bara' förstärka till tillräkligt stark signal med områdesomkopplare när man mäter lågnivå då sensorn begränsas av en 'botten' som kallas termisk brus - därför kan man inte mäta i mA-område på en 50mV 1000 ampereshunt...
Det är inte utan orsak som tex. tångamperemetrar som kan mäta 3000 ampere sällan kan göra det med högre upplösning än 0.1 ampere...
Det låter som att de batteri monitorer som finns på marknaden antagligen inte kan ha så bra precision heller eller hur ha de löst problemet?
Skulle vara intressant å se hur en bra batteri monitor är uppbyggd.
MAX4070 tex är en dubbelriktad shunt-förstärkare. 0-2.5V är ena riktningen och 2.5-5V är andra riktningen.
En 16-bit ADC där 1 bit används för riktning så får man en upplösning på ca 3mA. Kör man med två separata förstärkare för shunten motkopplade och tar in signalen på två separata ADC-ingångar får man alla 16-bitar vilket borde ge en upplösning på 1.5mA.
Hur som helst så såg jag att LM332 (v/f) har en dynamic på 100dB. Det borde väll betyda att man får en upplösning på 1mA om man vill mäta upp till 100A. Jag tror knapast att jag kommer behöva kunna mäta strömma större än 50A vilket borde betyda en upplösning på 0,5mA.
De komerciella har ofta shuntar på 300A. Då kan man väll knappast få en upplösning på 1mA i alla fall, eller?
Skulle vara intressant å se hur en bra batteri monitor är uppbyggd.
MAX4070 tex är en dubbelriktad shunt-förstärkare. 0-2.5V är ena riktningen och 2.5-5V är andra riktningen.
En 16-bit ADC där 1 bit används för riktning så får man en upplösning på ca 3mA. Kör man med två separata förstärkare för shunten motkopplade och tar in signalen på två separata ADC-ingångar får man alla 16-bitar vilket borde ge en upplösning på 1.5mA.
Hur som helst så såg jag att LM332 (v/f) har en dynamic på 100dB. Det borde väll betyda att man får en upplösning på 1mA om man vill mäta upp till 100A. Jag tror knapast att jag kommer behöva kunna mäta strömma större än 50A vilket borde betyda en upplösning på 0,5mA.
De komerciella har ofta shuntar på 300A. Då kan man väll knappast få en upplösning på 1mA i alla fall, eller?
Dom kan nog ha hyffsad upplösning/nogrannhet - men det är ingen som man plocka rätt av från appnötterna från kretstillverkarna utan kräver lite kreaktiv problemlösning - en allt mer sällsynt förmåga då allt fler tror att man alltid hittar perfekta lösningen snabbt mha. google istället för att tänka lite själv...
Ofta har dessa företag jobbat med detta i många år med kanske inte så bra produkter i början och hitta metoder och algoritmer som förfinas allt efter produktutvecklingarna. Teorin är ofta ganska enkel, men det svåra är att bygga fysiska grejor med den upplösningen och nogranheten som önskas med alla naturlagar och felkällor som fins.
---
MAX4070 är en high-side mätare (mäter på 12-voltsidan och inte på jordledningen), och liknade är nog möjlig att göra med instrumentationsförsstärkare - gäller dock att ha sju tusan till matchade motstånd bara.
en sak man bör obervera på MAX4070 är att CMRR är bara ca 65 dB vid 10 Hz
Dvs. varierar säg 12-voltspänningen upp och ned 1 Volt i 10 Hz takt beroede av laständringar så ger 65 dB CMRR att denna variation dämpas 1778 ggr på kretsen utgången dvs. ger 0.5623 mV per volt spänningsändring på 12-voltsspänningen och bara det motsvaras på en 50mV 100 A strömshunt 1.125 ampere felvisning som inte alls har något med strömmen genom shunten att göra. mao. glöm det här med 1 mA precision.
lyckas man behålla 100 dB CMRR så ger det fortfarande 1/100000-dels inverkan på utgången av 12-voltsidans spänningsvariationer eller 1 mA per Volt enligt ovan angivna shunt
---
kommersiella industrishuntar av 50 eller 80 mV typ var/är tänkt att kopplas till analoga visarinstrument och en sådan har man svårt att se högre upplösning än i 100-delar av hela skalan typ. det är förs när man börja intergrera över tid med stor lastdynamik som gör att hög nogranhet vid små värden blir väldigt viktig för att det inte skall driva iväg - och i det avseendet när man stångats med problematiken en stund så inser man vilken precisionesverk med enkla medel man ändå lyckas få till som elmekaniska analoga elmätarna...
Ofta har dessa företag jobbat med detta i många år med kanske inte så bra produkter i början och hitta metoder och algoritmer som förfinas allt efter produktutvecklingarna. Teorin är ofta ganska enkel, men det svåra är att bygga fysiska grejor med den upplösningen och nogranheten som önskas med alla naturlagar och felkällor som fins.
---
MAX4070 är en high-side mätare (mäter på 12-voltsidan och inte på jordledningen), och liknade är nog möjlig att göra med instrumentationsförsstärkare - gäller dock att ha sju tusan till matchade motstånd bara.
en sak man bör obervera på MAX4070 är att CMRR är bara ca 65 dB vid 10 Hz
Dvs. varierar säg 12-voltspänningen upp och ned 1 Volt i 10 Hz takt beroede av laständringar så ger 65 dB CMRR att denna variation dämpas 1778 ggr på kretsen utgången dvs. ger 0.5623 mV per volt spänningsändring på 12-voltsspänningen och bara det motsvaras på en 50mV 100 A strömshunt 1.125 ampere felvisning som inte alls har något med strömmen genom shunten att göra. mao. glöm det här med 1 mA precision.
lyckas man behålla 100 dB CMRR så ger det fortfarande 1/100000-dels inverkan på utgången av 12-voltsidans spänningsvariationer eller 1 mA per Volt enligt ovan angivna shunt
---
kommersiella industrishuntar av 50 eller 80 mV typ var/är tänkt att kopplas till analoga visarinstrument och en sådan har man svårt att se högre upplösning än i 100-delar av hela skalan typ. det är förs när man börja intergrera över tid med stor lastdynamik som gör att hög nogranhet vid små värden blir väldigt viktig för att det inte skall driva iväg - och i det avseendet när man stångats med problematiken en stund så inser man vilken precisionesverk med enkla medel man ändå lyckas få till som elmekaniska analoga elmätarna...
xxargs, du verkar ha koll på dethär
Du har givetvis alldeles rätt i vad du säger. Det blir enormt kinkigt hur man förstärker, etc. Jag använder en lasertrimmad INA128 som ingångssteg och för att testa ett 0,05 ohms effektmotstånd.
Eftersom jag varken har startmotor eller bogpropeller så kan jag nöja mig med 10A fullskaleutslag som då får producera 1389 Hz, detta eftersom PICen räknar nollgenomgångar. På en timme får jag då 10000800 pulser.
Har kopplat up och testat med en 12Ah acku, lampa som last och laddaggregat med skiljediod dom laddare och det är rätt snyggt då räknaren från att ha rasat iväg åt ena hållet saktar ned och vänder då man drar på labbaggreatet.

Eftersom jag varken har startmotor eller bogpropeller så kan jag nöja mig med 10A fullskaleutslag som då får producera 1389 Hz, detta eftersom PICen räknar nollgenomgångar. På en timme får jag då 10000800 pulser.
Har kopplat up och testat med en 12Ah acku, lampa som last och laddaggregat med skiljediod dom laddare och det är rätt snyggt då räknaren från att ha rasat iväg åt ena hållet saktar ned och vänder då man drar på labbaggreatet.
Jag kom en gång också fram till att VFC är vägen att gå, när jag funderade och planerade en del på ett sånt här projekt för ett tag sen, men sen kom andra projekt i vägen.
Min tanke för att lösa det här med drift är om man inte helt kallt skulle kunna ignorera all laddning och förbrukning som ligger kring den normala självurladdningen hos batteriet, borde inte en stor del av driften försvinna då?
De flesta förbrukare i en båt drar åtminstone 25-50mA och uppåt, så om man ignorerar allt som ligger under detta och dödräknar självurladdningen beroende på temperatur så borde det fungera ganska bra. En förbrukare som förbrukar mindre än så måste dessutom vara på under långa tider för att den ska påverka resultatet något större. På laddningssidan kan man egentligen lägga gränsen ännu högre om man inte har någon solpanel som underhållsladdar.
Om man vill kan man sedan lägga till småförbrukare och ungefärligt utnyttjande som "extra självurladdning" och på så vis kompensera för en specifik båt.
Det skulle även gå att få diagnostik genom att mäta polspänningen när batteriet inte använts på ett tag eller vid låg förbrukning och jämföra med en urladdningskurva, antingen beräknad eller uppmätt för det aktuella batteriet/banken. Beroende på vilken dynamik man förväntar sig i laddning och urladdning så måste man nog också kompensera för effektiviteten i dessa, men fixvärden kan nog fungera för de flesta.
Min tanke för att lösa det här med drift är om man inte helt kallt skulle kunna ignorera all laddning och förbrukning som ligger kring den normala självurladdningen hos batteriet, borde inte en stor del av driften försvinna då?
De flesta förbrukare i en båt drar åtminstone 25-50mA och uppåt, så om man ignorerar allt som ligger under detta och dödräknar självurladdningen beroende på temperatur så borde det fungera ganska bra. En förbrukare som förbrukar mindre än så måste dessutom vara på under långa tider för att den ska påverka resultatet något större. På laddningssidan kan man egentligen lägga gränsen ännu högre om man inte har någon solpanel som underhållsladdar.
Om man vill kan man sedan lägga till småförbrukare och ungefärligt utnyttjande som "extra självurladdning" och på så vis kompensera för en specifik båt.
Det skulle även gå att få diagnostik genom att mäta polspänningen när batteriet inte använts på ett tag eller vid låg förbrukning och jämföra med en urladdningskurva, antingen beräknad eller uppmätt för det aktuella batteriet/banken. Beroende på vilken dynamik man förväntar sig i laddning och urladdning så måste man nog också kompensera för effektiviteten i dessa, men fixvärden kan nog fungera för de flesta.
I förra numret av praktisk båtägare, redovisar de hur en batteri monitor fungerar. Glömde att nämna att den nollställer sig varje gång efter att batteriet har blivit fulladdat för att antagligen slippa drifter.
Ett blybatteri kan ju ses som fulladdat när laddningsströmmen sjunker under en viss nivå samtidigt som spänningen stiger över en viss nivå.
Dessa nivåer skulle vara intressant att ta del av.
Om man håller koll på urladdningen och sedan hur mycket som behöver l tryckas in batteriet igen för att det ska bli fulladdat kan man få fram batteriets verkningsgrad också vilket inte är att förglömma.
xxargs:
Varför behöver man ett bättre matchat motstånd till en MAX4070 är någon annan förstärkare, eller syftar du på kringliggande motstånd?
Om nu MAX4070 skulle vara ett så dåligt alternativ som för övrikgt verkar gjort för uppgiften, vilken förstärkare ska man ha i stället som är bättre anpassad?
AndersG:
Har du tänkt på att lanternorna brukar vara på typ 20-25W styck? Bara där kan det dra iväg uppåt 5A om man inte kör med lysdiodslanternor.
Jag skulle gärna vilja räkna så lågt som 10A, men jag tror att risken finns att gränsen blir nådd. Även om jag har startmotor till en utombordare, så är den i alla fall kopplad till startbatteriet direkt och inte förbrukningsbatteriet där batteri monitorn kommer sitta.
Startbatteriet borde alltid vara i bra skick eftersom det bara laddas ur vid start och laddas upp direkt av motorgången.
Ett blybatteri kan ju ses som fulladdat när laddningsströmmen sjunker under en viss nivå samtidigt som spänningen stiger över en viss nivå.
Dessa nivåer skulle vara intressant att ta del av.
Om man håller koll på urladdningen och sedan hur mycket som behöver l tryckas in batteriet igen för att det ska bli fulladdat kan man få fram batteriets verkningsgrad också vilket inte är att förglömma.
xxargs:
Varför behöver man ett bättre matchat motstånd till en MAX4070 är någon annan förstärkare, eller syftar du på kringliggande motstånd?
Om nu MAX4070 skulle vara ett så dåligt alternativ som för övrikgt verkar gjort för uppgiften, vilken förstärkare ska man ha i stället som är bättre anpassad?
AndersG:
Har du tänkt på att lanternorna brukar vara på typ 20-25W styck? Bara där kan det dra iväg uppåt 5A om man inte kör med lysdiodslanternor.
Jag skulle gärna vilja räkna så lågt som 10A, men jag tror att risken finns att gränsen blir nådd. Även om jag har startmotor till en utombordare, så är den i alla fall kopplad till startbatteriet direkt och inte förbrukningsbatteriet där batteri monitorn kommer sitta.
Startbatteriet borde alltid vara i bra skick eftersom det bara laddas ur vid start och laddas upp direkt av motorgången.
Håller med om att 10A låter lite lågt, (beror givetvis på båten), men själv kommer jag inte undan med det som maxgräns. Värmarens glödstift kommer nog farligt nära på egen hand, lägg till kylens kompressor så är vi garanterat över 10A. Addera sen lite lampor (som iofs byts mot LED allt eftersom) och en laptop, för att inte tala om tryckvattenpumpen som glatt gurglar i sig några Amp.
Visst, men som min konstruktion ser ut så kan man eg välja den gränsen ganska fritt. Det är således absolut inget problem att välja 100A i stället.Håller med om att 10A låter lite lågt,
Suck, den är en blek kopia av orginalet, Practical Boat Owner som jag prenumererat på i mera än 10 år. Jo "Riktiga" batterimonitorer har förprogrammerade olika batterityper, men för att få det rimligt noggrant så måste man veta exakt vilket batteri man har. Givetvis kan man lägga in automatik som du beskriver, men i en segelbåt med solpanel blir det ändå rätt knepigt, så man kanske ändå har en knapp för "reset" som sätter räknaren till 110Ah i mitt fall.I förra numret av praktisk båtägare, redovisar de hur en batteri monitor fungerar. Glömde att nämna att den nollställer sig varje gång efter att batteriet har blivit fulladdat för att antagligen slippa drifter.
Ett blybatteri kan ju ses som fulladdat när laddningsströmmen sjunker under en viss nivå samtidigt som spänningen stiger över en viss nivå.
Dessa nivåer skulle vara intressant att ta del av.
Det kommer, orkar inte renrita i Kicad medan jag labbar så jag får plåta av det handritade. Hade ett litet problem med min nyinköpta, 30 år gamla frekvensräknare, men det är fixat nu.Anders, du glömde bilder, film och schema
Givetvis blir det open-source på allt
Ja, det är meningslöst att mäta lägre än det.Min tanke för att lösa det här med drift är om man inte helt kallt skulle kunna ignorera all laddning och förbrukning som ligger kring den normala självurladdningen hos batteriet, borde inte en stor del av driften försvinna då?