Programmierbare Zündanlage für Golf 2


Hinweis: Dieses Projekt ist noch nicht abgeschlossen, alle hier veröffentlichten Informationen sind vor dem Hintergrund "work in progress" zu betrachten!

Allgemein

Mein Golf
Mein 83er Golf C

Gekauft habe ich ihn mit 11 Jahren und 170000km für DM 2500.- (in bescheidenem Zustand). Mittlerweile hat er 334000km und ist immer noch nicht müde :-) Die Substanz hat gut gehalten obwohl ich ihn bis 2006 im Alltagsbetrieb jeden Sommer und Winter gefahren bin, da hat VW beim Golf II wirklich einen guten Job gemacht.
Den 1600cm3 Motor habe ich vor einigen Jahren mit Weber 40DCOE Vergasern bestücken lassen, es ist jedoch immer noch die originale kontaktgesteuerte Zündanlage drin. Diese wird prinzipiell durch Gewichte im Verteiler per Fliehkraft gesteuert. Zusätzlich wurde sie von dem originalen Pierburg 2E2 Vergaser mit Unterdruck gesteuert. Bei den neuen Vergasern hat letzteres aber nicht mehr funktioniert (das Verhalten war ohne deutlich besser als mit, egal wie man die Zündung eingestellt hat), so dass die Unterdrucksteuerung deaktiviert werden musste.

Dieses Projekt soll den suboptimalen Ist-Zustand (die Zündung wird ausschließlich von der Drehzahl gesteuert) nun ändern. Die neue Zündanlage soll allerdings so integriert werden, dass bei deren Ausfall mit Bordmitteln auf die originale mechanische Lösung umgebaut werden kann (damit man zumindest nach Hause kommt um sie zu reparieren).

Was verspreche ich mir davon? Mehr Leistung speziell bei niedrigen Drehzahlen, bessere Fahrbarkeit, geringerer Verbrauch und bessere Abgaswerte (direkt HC und indirekt CO und CO2 falls ein geringerer Verbrauch zu Stande kommt).


Funktionsprinzip und Aufbau

Die neue Zündanlage soll per Kennfeld gesteuert werden wie das bei neueren Fahrzeugen üblich ist. Um die Sache zu vereinfachen sollen jedoch nur die beiden wichtigsten Parameter - Drehzahl und Last - als Steuergrößen herangezogen werden. Das resultierende Kennfeld ist also zweidimensional. Vorgesehen sind 16x16 Stützstellen aus denen per linearer Interpolation 64x64 Werte gewonnen werden die dann von der CPU des Steuergerätes zur Berechnung des Zündzeitpunktes verwendet werden. 16x16=256 Werte erscheint mir als maximal sinnvolle Anzahl an Punkten die man von Hand sinnvoll ausmessen kann (z.B. auf dem Prüfstand).

Geplant ist die Endstufe, die sich in der Nähe der Spule befinden sollte, als externe Einheit zu realisieren damit man das Steuergerät im Innenraum montieren kann. Ich will das aus folgenden Gründen so haben:

Auf Lufttemperaturkompensation und Klopfregelung wird verzichtet. Für ersteres liegen mir keine Daten vor und den Einfluss der Temperatur auf die Zündung halte ich für deutlich weniger relevant als z.B. bei einer Einspritzanlage. Für die Klopfregelung wären Informationen über die Verbrennung nötig die sich nur aus dem Motorgeräusch gewinnen lassen. Normalerweise benutzt man dazu ein Mikrofon (Klopfsensor) um das Frequenzspektrum des Motorgeräusches zu messen. Das Spektrum wird dann per digitaler Signalverarbeitung auf Frequenzanteile untersucht deren Amplitude beim Klopfen besonders stark zunehmen. Ein solches System zu entwickeln das zuverlässig das Überschreiten der Klopfgrenze unter allen Bedingungen meldet wäre sehr kompliziert und vermutlich mehr Aufwand als der ganze Rest des Projektes.


Sensoren

Das Steuergerät benötigt außer den Parametern Drehzahl und Last zur Berechnung des Zündzeitpunktes auch noch die absolute Position der Kurbelwelle. Wird pro Kerze eine eigene Spule verwendet außerdem noch die Information in welchem Takt sich die Zylinder befinden.
Ich habe vorgesehen ersteinmal mit einer Spule anzufangen und den vorhandenen Verteiler weiterzubenutzen. Eine "wasted spark" Option für zwei Doppelspulen soll auch möglich sein falls es Probleme mit dem Verteiler geben sollte.

Somit sind die beiden folgenden zwei Sensoren ausreichend:

An meinem Motor gibt es noch zwei weitere Sensoren die für die Zündung an sich nicht benötigt werden aber trotzdem an das Steuergerät angeschlossen sind:

Die genauen Eigenschaften der Sensoren sind in der Dokumentation des Steuergeräts und der zugehörigen Firmware beschrieben.


Zündspule

Als Spule ist die Bosch Ausführung 0 221 122 349 mit grünem Aufkleber vorgesehen (habe ich für EUR 10.- auf dem Schrottplatz erworben). Diese hat VW bei den TSZ-H und VEZ Zündanlagen verwendet. Auf dem Deckel steht die Nummer 1 220 522 016, das ist aber offenbar nur die Schutzkappe.

Für Tests habe ich ein kleines Gestell aus Holzabfall verwendet auf dem die Spule und eine Zündkerze befestigt sind:

Testaufbau
(Klicken zum vergrößern)

Mit diesem Aufbau wurde die Endstufe getestet und eine geeignete Ladezeit für die Spule ermittelt. Wird die Warnung auf 8A eingestellt, werden ca. 3ms Ladezeit benötigt bis diese anspricht und es entstehen schöne Funken an der Kerze.

Eingebaut habe ich die neue Spule rechts vorne im Motorraum neben der Endstufe.


Endstufe

Die Endstufe treibt die Spule mit einem IGBT. Sie misst außerdem den Spulenstrom und erzeugt eine Warnung für das Steuergerät wenn ein einstellbares Limit überschritten wird. Intelligenz irgendwelcher Art ist nicht vorhanden, insbesondere keine Schließwinkelbegrenzung. Das Steuergerät muss also Timings erzeugen die weder Endstufe noch Spule beschädigen.

Ich habe ein spritzwasserdichtes Metallgehäuse verwendet:

Endstufe
Endstufe V0.4 (Klicken für Details)


Steuergerät

Das Steuergerät soll in den Radioschacht eingebaut werden in dem momentan Instrumente für Batteriespannung, Öldruck und -temperatur eingebaut sind. Es besitzt ein Display zum Anzeigen von Parametern und Fehlermeldungen und kann daher die Funktion dieser drei Instrumente mitübernehmen. Zum Updaten der Firmware und der Kennfelder gibt es eine RS232 Schnittstelle und dazu noch ein paar Tasten zur Bedienung. Es soll möglich sein, damit einzelne Werte des Kennfeldes zu verstellen ohne einen Laptop anschließen zu müssen. Für wichtige Fehler oder Warnungen kann außerdem noch eine externe LED angesteuert werden. Ich werde eine LED im Cockpit verwenden die bisher von einem eigenen Steuergerät ab einer bestimmten Drehzahl eingeschaltet wurde (es gab bisher keinen Drehzahlbegrenzer, da sollte es wenigstens leuchten):

Cockpit
Modifiziertes Cockpit (Klicken für Details)

Für das Display habe ich zuerst nach einem LCD gesucht aber nichts passendes gefunden. Ich will folgendes haben:

Gefunden habe ich nur VFDs die diese Anforderungen erfüllen. Bei einer Diskussion im USENET in de.sci.electronics kam die Frage auf ob VFDs durch ihr filigranes Innenleben nicht Probleme mit den Erschütterungen haben könnten ...
Ich habe mir also mal ein VFD ausgesucht, die Wahl fiel auf ein Noritake/Itron CU20045SCPB-W5J. Im Datenblatt steht, dass es eine Beschleunigung von maximal 100G aushält ohne kaputtzugehen. Ein Mitarbeiter des Herstellers mit dem ich über dieses Thema gesprochen habe meinte, dass auch keine Probleme der Anzeige bei leichten Erschütterungen im Betrieb zu erwarten wären. Ich habe daher mal einen Versuchsaufbau erstellt den man zum Test im Auto spazieren fahren kann:

Displaytest
Displaytest (Klicken für Details)

Fazit: Ich konnte keine Probleme feststellen und halte solche VFDs für geeignet. Der Kontrast ist perfekt aus jedem Betrachtungswinkel und die Erschütterungen haben keinerlei sichtbaren Einfluss auf die Anzeige. In der Nacht ist die Sache allerdings sehr hell, die Helligkeit kann aber per Software bis auf 25% reduziert werden (Ich werde den Lichtschalter ans Steuergerät anschließen und auf 25% gehen, sobald das Licht einschaltet wird).

Steuergerät:

Steuergerät
Hardware (Klicken für Details)

Firmware
Firmware (Klicken für Details)


News/Status




Browser        IDFC        Last update: 2008-08-02        micha@hilfe-fuer-linux.de