Translate

29 März 2011

Energiezähler--ganz neue Erkenntnisse

Hallo allerseits! Auweh! da habe ich was Wichtiges übersehen! Ich bin bisher ganz selbstverständlich davon ausgegangen, dass die Akkus Masseverbindung haben. Dem ist aber nicht so! Folglich konnte die Schaltung natürlich nicht so bleiben. Zunächst mal habe ich einen galv. getrennten Messwandler gebaut. Letztlich fast das Gleiche wie schon bei den Messwandlern für die Einzelspannungsmessung bei meinen BMS-Versuchen. Ein ATtiny 25 übernimmt hier die Messung, schickt die Werte seriell an den Zähler, ein geregelter DC-DC-Wandler sorgt für die Versorgung und Referenzspannung. Ein Optokoppler trennt die Signale. Soweit ganz einfach, aber halt doch wieder etwas Mehraufwand, der mir gar nicht gefällt. Also hab ich nun endlich doch mal nachgeschaut, wie die"Konkurrenz" das macht. (keine Zeit.........) Das kommerzielle Produkt, das meinem Zähler von der Idee her am ähnlichsten ist, das ist das ZEVA2. http://www.evworks.com.au/index.php?product=INS-ZEVA-FGDP Dessen Anschlussplan (auf der Seite ganz unten zu öffnen) führte zu einem klassischen AHA!!!-Erlebnis !! Die messen die Spannung überhaupt nicht! Da werden nur die Ampere über die Zeit aufdaddiert! Ich wollte halt die echte Energie anzeigen, sowie auch die momentane Leistung, Spannungsgrenzen überwachen, etc.... Das Zeva2 hat kein Display, darum interessieren diese Werte da auch nicht. Der Abgleich auf die Tankuhr und die Akkukapazität erfolgt da per Poti, und weil immer das selbe Akkupaket dran hängt, lässt sich das sicher so abgleichen, dass die Anzeige einigermaßen genau anzeigt.Und das alles auch ohne Spannungsmessung! Eigentlich bräuchte ich aus meinem Zählerprogramm nur die Spannungs- messung und die Multiplikation der Stromwerte mit den Spannungswerten entfernen und die Einheit der angezeigten Werte von Wh auf Ah ändern und ev. noch eine Erkennung reinbauen, ob auch die "Zündung" an ist,falls mal der Nullpunkt des Strom- wandlers nicht 100% passt. Oder eben so wie beim ZEVA beim Reset einen Nullabgleich durchführen. (0A entsprechen 2,5V am Wandler) Die ganzen Spannungsüberwachungs- geschichten gehören eigentlich sowieso ins BMS bzw. Monitoring-System. Die beiden Systeme (Monitor + Zähler) sollen letztendlich miteinander zu einer Einheit verschmelzen, aber ganz so weit bin ich leider noch nicht. Wie das beim Zeva nun genau gelöst ist, mit nur einem Poti sowohl Verstärkung als auch die Richtung des Signals für die Tankuhr einzustellen, das muss ich noch mal genau durchdenken...... Das hat sich jemand sehr geschickt ausgedacht! Respekt!!!!!!!! Auf die Idee muss man erst mal kommen! Ich hätte da wohl den ATtiny per Jumper und entsprechender Programmierung je nach Bedarf umgepolt, aber so gehts auch! Das müsste ein OP sein, dessen Nullpunkt und Verstärkung ja sogar das Vorzeichen der Verstärkung über ein und das selbe Poti eingestellt werden. Wie kann das gehen? eine Idee: Der Gegenkopplungswiderstand ist wohl irgendwie mit dem Negativen Eingang verbunden, das muss so sein und das Poti liegt wohl zwischen positivem und negativem (invertierendem) Eingang. Beide Eingänge hängen wohl per Spannungsteiler auf dem gleichen Potential.Dieser Pegel wird ziemlich sicher mit dem Poti für den Vollausschlag-Pegel verändert. Wenn nun der Eingang über den Schleifer des Potis erfolgt, dann wird je nach Potistellung mehr am Positiven oder am Negativen Eingang eingespeist und je nachdem invertiert der Verstärker oder nicht.............. und je unterschiedlicher dieser Betrag ist, desto größer wäre auch die Verstärkung. Der OP an 12V und 0V und der ATtiny liefert ein Signal das bei 0V startet und dann gegen 5V wandert......(ev. umgekehrt) So könnte das gehen! Der ATtiny (hier wohl ein ATtiny 24, das passt von den Pins, und der hat auch einen 16Bit-Counter drin für die Frequenz zum DZM; 8Bit reicht nicht) kann so eine Spannung per PWM ausgeben. Das muss ich selbst erst mal bis zum Ende duchkauen! Vor allem, warum in der Mittelstellung die Verstärkung am größten ist. Ich bin mir sehr sicher, dass die Tankuhr direkt über eine Spannung angesteuert wird. das ist einfacher, als Widerstände zu simulieren. Was hat das mit der Richtung auf sich? "Früher", bei VW z.B. bis Golf3 waren Tankuhren üblicherweise so geschaltet dass hohohmig (150 bis 300 Ohm) am Geber leer anzeigte und niederohmig (20 - 50 Ohm) voll anzeigte. Dass der Geber nicht bis 0Ohm geht ermöglicht eine Überwachung der Leitung auf Masseschluss mittlerweile läuft der Geber und die Anzeige bei manchen Autos aber "andersrum". Warum?? Hmmmm???? keine Ahnung, wieso!!!??? Ich werde auf alle Fälle mal das Programm für eine "abgespeckte" Version so ändern und das mal ausgiebig testen. Letztendlich ist mir aber die "Urversion" wesentlich sympathischer. Mal sehen.....Watt, Volt, Ampere und kWh sind mir halt lieber als "50% von ganz voll" Um abzuschätzen, wie weit man noch etwa kommen wird reicht das aber.





















Hier ein Bild des galv. getrennten Messwandlers für die echte Energiemessung in Wh bzw kWh und ein Bild des Displays in der Version mit reiner Ah-Zählung ohne Spannungsmessung. mfG Franz 08.04.2011


letztes Update: Seit kurzem reagiert Michaels Beetle-Drehzahlmesser auf die Impulse die mein Messwandler produziert:
http://e-vw.blogspot.com/2011/04/drehzahlmesser-zeigt-simulierten-strom.html

Das war ein etwas langer Weg bis alles passte, aber kaum hat man ein paar zerschossene Bauteile getauscht und alles korrekt angeschlossen, schon läufts wie vorgesehen.
So ein handgestricktes Versuchsmuster ist halt etwas empfindlicher als ein ausgefeiltes Serienprodukt mit Schutzschaltungen an jeder möglichen Fehlerquelle.
Dafür baut man Prototypen!
Und deshalb misshandelt man die auch ! ;-) sonst findet man die Schwachstellen erst wenns zu spät ist! So was wäre natürlich viel einfacher, wenn das Auto wo so was rein soll in der eigenen Garage steht und nicht am genau entgegengesetzten Ende unseres Landes........... (wobei in den letzten Tagen ein paar Briefe mit Ersatzteilen in geradezu atemberaubender Geschwindigkeit zugestellt wurden. 17:30 am Chiemsee zur Post gebracht und am nächsten Morgen in Norddeutschland zugestellt......wow!!!!!!!!!)

7 Kommentare:

  1. Hi Franz,

    musst du denn für deinen Energiezähler die Spannung jeder einzelnen Zelle überwachen? Im Prinzip reicht es doch wenn du die Gesamtspannung/+die aufaddierten Ströme kennst. Dann kannst du sagen wieviel Energie das Akkupack noch hat. Für das BMS muss man sich noch was ausdenken... Wenn du natürlich Warnungen generieren möchtest, wenn Einzelzellen die Entladeschlussspannungen unterschreiten, brauchst du es jedoch... Ich z.B. brauche nur den Energiezähler, da mein MiniBMS für die Zellüberwachung zuständig ist.

    Jau 4 Zeilen Displays sind natürlich besser:)

    VG,

    Bernd

    AntwortenLöschen
  2. Hallo Bernd,
    für den Energiezähler alleine reicht es,
    nur die Amperestunden zu zählen, und die
    Spannung ganz weg zu lassen. Es ist ja immer das
    selbe Akkupaket, das man misst.
    Da kann man sich einfach an den Wert rantasten,
    bis es passt.
    Sicher wäre eine echte Kilowattstunden-Messung
    viel schöner, aber dann muss ich beim
    galv. getrennten Übertragen der Messwerte
    viel mehr Aufwand betreiben, und das läuft
    momentan noch nicht perfekt, zumindest nicht, wenn der Spannungsmesser einfach so vor
    sich hin sendet.... da kommt manchmal
    Hi-Byte und Lo-Byte durcheinander....
    Das krieg ich auch noch hin, aber da hab ich gerade wichtigeres zu tun..... bei meinem
    BMS-Prototyp übertrage ich pro Zelle nur
    ein Byte je Zelle, das geht problemlos.
    5V / 255 = 0,02V Auflösung, das genügt hier.
    aber bei der gesamtspannung will ichs genauer haben.
    mfg
    Franz

    AntwortenLöschen
  3. Dieser Kommentar wurde vom Autor entfernt.

    AntwortenLöschen
  4. Ok stimmt :) So kann man es auch messen. Das EV-Display vom Hersteller meines BMS-Systems (http://minibms.mybigcommerce.com/) macht es genauso. Es wird die Gesamtspannung nicht gemessen. Man kann sie sich jedoch anzeigen lassen. Und zwar wird beim EV-Display eine! willkürliche Zellspannung gemessen und dann mit der Zellanzahl multipliziert. Dieser Wert wäre mir jedoch witzlos...

    Was machen deine CAN-Bus Versuche? Mein BMS sendet nämlich über einen und ein sehr spätes Ziel (erst mal muß mein Golfi fahren) war, dort hinein zu lauschen. Dann habe ich nämlich jede Zellspannung :)

    AntwortenLöschen
  5. Hallo Bernd,
    Reinhorchen in den Can-Bus ist das Eine,
    Verstehen, was da an Daten rumschwirrt
    ist was Anderes, und Auswerten des Ganzen ist
    wieder ein anderes Kapitel...........

    Ich habe mit der Kombination
    Lawicel-Adapter und "CANHACKER" als
    Auslese-Software inzwischen sehr gute
    Ergebnisse! Lesen klappt prima!
    Ich hab mich am Wochenende mal an einen
    Smart drangehängt, und mitlesen klappte
    auf Anhieb problemlos. So Dinge wie
    Gaspedalstellung, Anzeige offener Türen,
    Raddrehzahlen, Schaltkontakte am Lenkrad,
    Blinker etc waren gut zu lokalisieren.
    Rauszufinden, welches Bit in welchem Byte
    nun tatsächlich welche Bedeutung hat ist
    schon wesentlich schwieriger.
    Ich habe mich für die Variante mit
    serieller Schnittstelle entschieden,
    weil es da wesentlich einfacher ist,
    einen kleinen Prozessor so zu programmieren, dass er sinnvolle Dinge sendet.
    Einen CAN-Controller (z.B.SJA1000) direkt anzusteuern oder auch eine I²C-Variante
    ist mir noch eine Nummer zu groß :-/
    aber die serielle Anbindung ist überschaubar.
    Das geht dann fast in "Klartext"
    insbesondere wenn nur vorgefertigte
    Meldungen oder Befehle gesendet werden
    müssen um z.B. Tankuhr und Thermometer
    sinnvoll anzusteuern.Da reicht dann eine
    Liste mit ein paar Dutzend fertigen
    Befehlssequenzen.

    mfG
    Franz

    AntwortenLöschen
  6. Hi Franz,

    ich glaube das mein MiniBMS nur wenig über den BUS jagt. Anders als bei einem Auto mit zig Steuergeräten. Da ist man ohne Telegrammkatalog ziemlich aufgeschmissen. Teilweise erklären sich die Telegramme von selbst, aber die meisten wohl eher nicht. Schreiben ist denke ich richtig kompliziert. Auf so einem Bus gibt es ja ganz genaue Regeln die zu befolgen sind (Timing... Prioritäten usw.) Da kann man mit einem Telegramm das man auf den BUS jagt schon ganz schön viel Unruhe stiften :) Aber wie gesagt ich würde nur mal reinhorchen und schauen ob man etwas verstehen kann. Das dein CANBUS-Adapter eine serielle Schnittstelle hat ist super. Das macht das Auswerten per MC einfacher :)

    VG

    AntwortenLöschen
  7. Hallo Bernd,
    Das siehst Du etwas zu kompliziert!
    Den Datenverkehr regelt der CAN-Controller
    hardwaremäßig. Zum Senden reicht es, dem Controller das Datenpakert zu überreichen,
    und DER regelt das mit den anderen Controllern
    wer wann was sendet.Die Mühe, den Controller
    zu simulieren oder selber zu programmieren
    sollte man sich sparen.Dafür gibt es die ICs.

    Aber Du hast schon recht, man sollte schon ganz genau wissen, was man gerade sendet........
    jeder Befehl ist durch die ID definiert, aber
    keiner kann sagen, wer den Befehl oder die Daten geschickt hat.Wenns passt, wird der Empfänger drauf reagieren, hoffentlich
    auf sinnvolle Art und Weise.

    Beim Reinhorchen gilt es, zuerst mal rauszufinden welche Infos sich in welcher
    ID verstecken. Dann sollte man versuchen
    zu verstehen welches Byte sich wann ändert.
    Zu guter letzt muss man die Byte bitweise
    betrachten. ein Byte besteht nun mal aus
    acht Bit und da kann jedes einzelne eine
    ganz spezielle Information haben.
    das ist leider in der zweistelligen
    hex-Darstellung nicht erkennbar.
    Das wäre ein tolles Feature, sich die
    Bytes bitweise anzeigen lassen zu können.
    .....mal nach so einem Programm suchen!
    Listen gibt es ja, aber das macht keinen
    Spass, und so was wie LABVIEW habe ich nicht

    Sobald ich mal Zeit habe werde ich das mal
    etwas ausführlicher vorführen.

    Das mit der seriellen Schnittstelle ist so eine
    Sache......wie ich schon erwähnte ist das ein
    arger Flaschenhals im System! aber zum
    reinhorchen und analysieren eines Auto-
    oder BMS-Can-Bus reicht das durchaus.
    mach Dich mal mit den ganzen kleinen
    Hilfsprogrammen vertraut, die ich
    im Zusammenhang mit dem Can und der
    seriellen Schnittstelle empfehle.
    insbesondere der Free Serial Port Monitor
    ist genial!!!!!!!

    AntwortenLöschen