Mikrocontroller, Reichweitenanzeige

Batterie Ladegeräte
DAGA

Mikrocontroller, Reichweitenanzeige

Beitrag von DAGA »

Hallo zusammen,

ich studiere mittlerweile im 4 Semester Mechatronik und in diesem Semester programmieren wir Mikrocontroller...
Ich habe mir vorgenommen einen Mikrocontroller zu programmieren welcher die aktuelle Reichweite und den Akkustand in Prozent auf einem LCD anzeigt... Später soll das ganze evtl noch mittels GPRS Modul vom smartphone aus ausgelesen werden können.
Mit dem Mikrocontroller wollte ich alle 100ms oder so Strom und Spannung messen und darüber die entnommenen bzw eingespeisten kWh errechnen. Dazu dann noch die Drehzahl und den Radumfang. Die Eingänge des Mikrocontrollers haben einen Messbereich von 0 bis 5 Volt mit einer Auflösung von 10bit.
Die Spannung würde ich mit einem Spannungsteiler in den messbaren Bereich bringen(wie hoch kann ich die Widerstände wählen, Stromverbrauch?)und den Strom messe ich mit einem Halleffekt Stromsensor(http://de.rs-online.com/web/p/hall-effe ... s/6807557/)
Die Drehzahl würde ich auch mit einem Hallsensor messen...
Das Problem, wie beziehe ich die Verluste durch den Innenwiderstand der Zellen mit ein? Beim Entladen fehlt in den Messungen dann ja ein Teil der durch die Batterien verbratenen kWh und beim Laden ist dieser Teil zuviel, also doppelter Fehler.
Wie oder kann ich den Innenwiderstand der Batterien überhaupt im Betrieb messen?
Irgendwelche Ideen?
Vom Preis her würde das ganze so bei 30-40€ liegen.(ohne GPRS Modul)

Gruß
DAGA
Zuletzt geändert von DAGA am Di 9. Apr 2013, 22:34, insgesamt 1-mal geändert.

Benutzeravatar
MEroller
Moderator
Beiträge: 18744
Registriert: Mo 1. Nov 2010, 22:37
Roller: Zero S 11kW ZF10.5/erider Thunder (R.I.P)
PLZ: 7
Tätigkeit: Entwickler (Traktionsbatterie)
Kontaktdaten:

Re: Microcontroller, Reichweitenanzeige

Beitrag von MEroller »

DAGA hat geschrieben:Das Problem, wie beziehe ich die Verluste durch den Innenwiderstand der Zellen mit ein? Beim Entladen fehlt in den Messungen dann ja ein Teil der durch die Batterien verbratenen kWh und beim Laden ist dieser Teil zuviel, also doppelter Fehler.
Wie oder kann ich den Innenwiderstand der Batterien überhaupt im Betrieb messen?
Irgendwelche Ideen?
Erst mal hast Du im Groben die richtigen Ideen dessen, was z.B. ein Cycle Analyst heute schon ganz gut macht, allerdings bist Du mit aktuellerer Technik unterwegs (Hallsensoren für Strom und Geschwindigkeit, Reichweitenanzeige und GPS).
Innenwiderstand der Batterien im Betrieb messen: Zumindest kann man den Gesamtwiderstand der Batterie recht gut messen (inklusive Polverbinder), wenn man Strom und Batteriespannung genau messen kann.
Dazu sollte möglichst einen Akku mit Lithium-Chemie verwendet werden, bei ca. 1/3 Entladezustand. Dann ist man schon im recht flachen Spannungsverlauf angekommen. Und Möglichst bei über 20°C, bzw. die Messung gilt nur für die jeweilige Batterietemp. und natürlich den generellen Ladezustand.
Dann einfach Strom und Spannung bei verschiedenen Lastzuständen messen, innerhalb von maximal vielleicht 30s. Ausgehen tun wir von der Leerspannung der Batterie bei 0A Strom. Davon ziehen wir die jeweils gemessene Batteriespannung bei Strombelastung ab (Spannungsabfall) und teilen den Spannungsabfall durch den zugehörigen Strom. Der Widerstandswert bleibt dabei über eine so kurze Prüfdauer erstaunlich konstant, egal ob man gerade viel oder weniger Strom von der Batterie fordert. Wenn man es noch ein bisschen genauer machen will kann man auch die leichte Leerlaufspannungsreduktion zum Ende der Prüfung berücksichtigen und für die Innenwiderstandsermittlung zwischen Anfangs- und Endleerlaufspannung als Basis interpolieren.
Das Ganze kann man bei verschiedenen Ladezuständen wiederholen, denn bei zunehmend leerer Batterie nimmt der Innenwiderstand zu.
Zero S 11kWZF10.5
e-rider Thunder 5000: Ruht in Frieden

Gluehbert
Beiträge: 635
Registriert: Do 19. Mai 2011, 21:09
Roller: E-max 140L, Vectrix VX-2
PLZ: 26
Kontaktdaten:

Re: Microcontroller, Reichweitenanzeige

Beitrag von Gluehbert »

Hallo,

durch den Spannungsteiler, der die Akkuspannung teilen soll, muss ein Strom fließen, der erheblich größer ist, als der, der aus ihm heraus in den ADC reinfließt. Sonst versaut Dir der ADC die Messung. Ein ATMega32 soll jedoch z. B. 100 MOhm Eingangswiderstand haben, bzw. +-50 nA Eingangstrom. => Du bist sehr frei in der Auswahl der Widerstände, ich persönlich würde wohl aus Gewohnheit irgendetwas im 2stelligen kOhm Bereich nehmen. Schau ins Datenblatt!

Warum willst Du die Spannung überhaupt messen? Verbessert mich, wenn ich falsch liege, aber: Aus einem Akku bekommst Du maximal die Ladungsmenge heraus, die Du reingeladen hast. Die Energie im Akku ist dabei egal. Beispiel: Du quälst einen Akku beim Entladen, so dass seine Spannung auf die Hälfte sinkt. Dann kann auch nur (theoretisch) die Hälfte der Energie herauskommen, da die Ladungsmenge im theoretischen Idealfall konstant bleibt. Um die gleiche Energie (kWh) herauszubekommen, müsste sich die entnehmbare Ladungsmenge verdoppeln, was sie natürlich nicht tut. Sie wird, je nach Akkuchemie, ebenfalls mehr oder weniger viel kleiner.

D. h. eigentlich müsstest du doch nur den Strom messen und mit deinem Microcontroller zur Ladungsmenge aufintegrieren, oder?

DAGA

Re: Microcontroller, Reichweitenanzeige

Beitrag von DAGA »

@meroller

Den Cycle Analyst kenne ich auch, aber Self-made ist immer noch am besten ;)
Und ich wollte kein GPS sondern ein GPRS Modul einbauen(mobiles Internet) um den Ladezustand per Browser auf dem Smartphone oder PC abzufragen.

@gluehbert

Daran habe ich auch schon gedacht und ich glaube du hast recht, dann spielt der Innenwiderstand auch keine Rolle mehr, da geht ja kein Strom verloren...
Und einen Atmega32 wollte ich auch verwenden.
Also werde ich einfach alle 100ms den Strom messen und diesen über die Zeit integrieren, so kann ich das Laden und Entladen auch einfach miteinander verrechnen.
Das sollte dann auch recht genau sein?!

@alf

Es kann ja auch passieren dass man nicht die Zeit hat den Roller zu 100% zu Laden, wenn ich dann einen Reset durchführe sobald geladen wird, stimmt die Reichweite natürlich nicht.
Ich hatte es so geplant: Die Strommengen vom Laden und Entladen werden miteinander verrechnet, da hierbei jedoch sehr wahrscheinlich Messfehler entstehen und diese sich mit der Zeit aufsummieren wollte ich auf jeden Fall noch einen manuellen Reset(Akku=voll) einbauen. Zusätzlich könnte man noch einen automatischen Reset einbauen welcher den Status auf "voll" setzt, wenn die Ladeschlussspannung erreicht ist.
Den Durchschnittsverbrauch kann ich über die Drehzahl bestimmen und so die Restliche Reichweite abschätzen.
Der Durchschnittsverbrauch wird natürlich genauer je länger man gefahren ist, diesen wollte ich auch rücksetzbar gestalten.

Gruß
DAGA

Benutzeravatar
MEroller
Moderator
Beiträge: 18744
Registriert: Mo 1. Nov 2010, 22:37
Roller: Zero S 11kW ZF10.5/erider Thunder (R.I.P)
PLZ: 7
Tätigkeit: Entwickler (Traktionsbatterie)
Kontaktdaten:

Re: Microcontroller, Reichweitenanzeige

Beitrag von MEroller »

GPRS :lol: Sorry, das R war mir nicht so richtig bewusst :oops: Fernabfrage ist auf jeden Fall immer gut!

Zum Thema Ah-Zählen: Es gehen immer ein paar zerquetschte Ah mehr in die Batterie rein beim Laden als vorher beim Entladen rausgekommen sind. Ein Australischer E-Rollerfahrer hat seinen Cycle Analyst dauernd an, auch beim Laden, und hat regelmäßig -0,7 bis -1Ah nach Laden stehen. Er hat eine 50Ah CHL Batterie mit 24 Zellen. Da der CA Entladung als positiv zählt heißt ein negativer Wert nach Ladungsende, dass soviel mehr reinging als vorher rauskam.
Ein Automatischer Reset der Ah nach Erreichen der Ladeschlusspannung wäre eine höchst vernünftige Lösung, allerdings nur, wenn vorher die 0Ah Grenze überschritten wurde. Bei mir ist es oft passiert (bei Batterietemp. unter 15°C), dass der Ladevorgang vorzeitig abgebrochen wurde und ich am nächsten Tag nur noch mit Mühe wieder heimkam. Das würde ich morgens auf den ersten Blick sehen, wenn die Ah-Zählung noch größer als 0 ist.
Zero S 11kWZF10.5
e-rider Thunder 5000: Ruht in Frieden

DAGA

Re: Microcontroller, Reichweitenanzeige

Beitrag von DAGA »

Also werde ich doch die Spannung messen müssen ;)
Ich habe mir die Teile jetzt bestellt, da ich aber jetzt für eine Woche im Urlaub bin werde ich noch nicht anfangen können.
Ich werde schreiben wenn ich Fortschritte gemacht habe.

Gruß

DAGA

Benutzeravatar
dexter
Beiträge: 331
Registriert: So 7. Aug 2011, 21:24
PLZ: 58256
Wohnort: Ennepetal
Kontaktdaten:

Re: Microcontroller, Reichweitenanzeige

Beitrag von dexter »

Hallo DAGA, nettes Projekt :-)

Ich hab die Twizy-Firmware für das OVMS entwickelt (http://www.openvehicles.com/), da ist ein Kombichip für GSM/GPRS und GPS verbaut, der SIM908:

http://www.simcom.us/product_detail.php?cid=1&pid=38

Was bei diesen Chips allgemein leider gilt (auch ohne GPS), die sind sehr stromhungrig. Der SIM908 braucht für rein GSM 21 mA im Ruhezustand (!) und bis zu 240 mA bei aktiver Datenverbindung. GPS kostet wenn aktiviert nochmal zusätzlich 76 mA, ist aber praktisch zum Loggen von Strecken. Je nach Typ gibt's diverse Sleep-Modi, die man bei längerer Standzeit also nutzen sollte.

Zu deinem Poll-Intervall: ich glaube 100 ms sind zu grob aufgelöst, ich würde 10 ms anvisieren (ist übrigens auch die Auflösung im Twizy). Die Lastwechsel können in einem Zehntelsekundenfenster schon sehr groß sein.
Michael

Twizy Technic (80 km/h; 13 kW) ..... 23.622 km / 2.383 kWh => 10,1 kWh/100km
Emco Novum-Li (45 km/h; 3 kW) ..... 3.923 km / 203 kWh => 5,2 kWh/100km
(Stand: 10/2014, Verbrauch ab Steckdose)

Benutzeravatar
MEroller
Moderator
Beiträge: 18744
Registriert: Mo 1. Nov 2010, 22:37
Roller: Zero S 11kW ZF10.5/erider Thunder (R.I.P)
PLZ: 7
Tätigkeit: Entwickler (Traktionsbatterie)
Kontaktdaten:

Re: Microcontroller, Reichweitenanzeige

Beitrag von MEroller »

dexter hat geschrieben:Zu deinem Poll-Intervall: ich glaube 100 ms sind zu grob aufgelöst, ich würde 10 ms anvisieren (ist übrigens auch die Auflösung im Twizy). Die Lastwechsel können in einem Zehntelsekundenfenster schon sehr groß sein.
Da stimme ich Dexter zu: Wenn man Ah über die Zeit hochintegriert mus man schon recht genau hinschauen, um nicht zu viel zu verpassen. Der Cycle Analyst hat z.B. als kürzest einstellbare Zeit zum Anzeige mitteln ganze 25ms. Da bildet der schon einen Mittelwert aus den Messwerten... Allerdings scheint mir da das Rauschen des Shunts und der Verstärkerschaltung im CA erheblichen höheren Anteil an den angezeigten Stromschwankungen zu haben als es tatsächliche Stromspitzen wären. Ich mittle die Anzeige etwa 300ms, was aber mehr dem Auge geschuldet ist als einer möglichst verzögerungsfreien Zustandsanzeige. Beim Loggen machen diese Mittelungen aber einen Riesenunterschied und aus teils über 250A Stromspitzen werden nur noch 180A.

Da es aber Dir (DAGA) um eine möglichst präzise Energiezählung geht sind 10ms sicher angebracht für die interne Berechnung.
Zero S 11kWZF10.5
e-rider Thunder 5000: Ruht in Frieden

DAGA

Re: Microcontroller, Reichweitenanzeige

Beitrag von DAGA »

Danke für die Vorschläge,

ich hatte gestern meine erste praktische Stunde in Mikrorechnertechnik und konnte mir den Programmieradapter ausleihen.
Ich habe mir noch vorgenommen die Spannung jeder Zelle zu messen(mithilfe eines Multiplexers), sodass man sich deren Spannungen auf dem LCD anzeigen lassen kann. Für die Gesamtspannung brauche ich dann auch keinen Spannungsteiler mehr ;).
Außerdem soll bei der Unterschreitung von 2,7V ein Warnsignal am LCD erscheinen.
Ich habe schon ein wenig am Layout gearbeitet und bin am überlegen welche Menüpunkte ich einbauen soll.
Ein Menü für die Anzahl der KM und der Kapazität in Prozent, ein Menü für die einzelnen Spannungen und ein Menü zum Auslesen, Einstellen und Resetten des Durchschnittsverbrauchs, des Raddurchmessers, der Ladeschlussspannung, und der Unterspannungsgrenze(2,7V).
Habt ihr noch andere Vorschläge?

Gruß
DAGA

Benutzeravatar
dirk74
Beiträge: 1759
Registriert: So 10. Apr 2011, 13:55
Roller: Trinity Uranus
PLZ: 65
Wohnort: bei Frankfurt
Kontaktdaten:

Re: Microcontroller, Reichweitenanzeige

Beitrag von dirk74 »

Ich habe ähnliches mit einem Arduino (Atmega8) vor. Darüber hinausgehend allerdings:
- Temperaturerfassung
- Anzeige der geschätzten Restreichweite
- Datalogging aller Sensoren auf SD-Karte
- Bluetooth-Anbindung
- Eventuell Alarmanlage mit Vibrationssensor

Was ich bisher testen konnte:
- Den Atmega mit Arduino-Bootloader flashen und auf Experimentierplatine bertreiben
- Anbindung Uhr-Modul
- Datalogging auf SD-Karte
- Temperaturerfassung mit NTC

Ich werde nicht alles separat aufbauen. Die Module (z. B. Bluetooth) gibt es billig bei DX.
Ob ich das jemals zum Abschluss bringe, weiß ich noch nicht, da das zeitaufwändig ist und der Mehrwert für meinen kleinen Roller nicht so groß ist. Interessant ist es aber auf jeden Fall und die Möglichkeiten nahezu unbegrenzt.

Gruß
Dirk
Trinity Uranus L2 - 3 kW - >73.000 km
0-2.250 km: Leihakkus L1/L3
2.250-36.872 km: L2-Akku 60V / 40Ah (Lithium)
aktuell: L3-Akku 60V / 50Ah (Lithium)
Skoda CITIGOe iV (>56.000 km)

Antworten

Zurück zu „Ladegeräte“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste