Seite 11 von 18

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 1. Dez 2017
von Emil1957
Sorry, versehentlicher Post.

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 1. Dez 2017
von GalosGarage
Die Vergaser Ducatis haben auch 2 zündgeber (Induktiv), 2 Zündboxen, 2 Zünspulen usw.
Jeder Zylinder hat ne eigene, autarke Zündanlage.
abgegriffen am Lima rotor, der auf der KW sitzt.

bei den i.e.'s siehts anders aus. da wird an ner nebenwelle abgegriffen, (halbe KW Drehzahl).
Hier werden die Zähne an einem Zahnrad gezählt 42, 2 davon sind ausgespart. Der rechner zählt mit und weiss so immer wo die kurbelwelle sich befindet. den rest macht die software.

galo

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 2. Dez 2017
von Emil1957
GalosGarage hat geschrieben: 1. Dez 2017 Jeder Zylinder hat ne eigene, autarke Zündanlage.
Wär natürlich auch eine elegante Lösung, die in allen Fällen funktionieren würde. Es müsste ja nur ein weiterer Arduino auf die Platine drauf, jeder Zylinder hätte dann seinen eigenen "Rechenknecht". Kostenmäßig spielt das nur eine kleine Rolle (son Arduino ist ja für 4-5€ zu bekommen), allerdings wird die Platine dann natürlich etwas größer. Man könnte dann mit beliebigen Kombinationen bei der Signalaufnahme und der Steuerscheibengeometrie spielen (da die richtige Kombination zu finden, ist aber nicht ganz ohne).

Ich bin aber auch schon weiter mit der Vorverlegung des Hallsensorsignals, Ergebnis in Kürze.

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 4. Jan 2018
von Emil1957
Ich wollte mich zum neuen Jahr mal mit neuen Erkenntnissen zum Projekt melden. Das betrifft im wesentlichen die Software. Beim bisherigen Ansatz ergab sich ja das Problem, dass bei hohen Umdrehungszahlen die Ladezeit der Spule reduziert werden musste, damit der ganze Vorgang (Signal vom Hallsensor, evtl. Wartenzeit, Laden der Spule, Zündung) innerhalb einer halben KW-Umdrehung (also einem Takt) erfolgen konnte. Diese Einschränkung kann man aber aufbrechen, wenn man sich von dem Dogma "Hallsensor muss am UT feuern" verabschiedet und das ganze etwas nach vorne (also z.B. in die Mitte des 1. Taktes verlagert). Allerdings werden die Verhältnisse in bestimmten Fällen dann schnell unübersichtlich.
Ich habe mir daher die einzelnen Ereignisse, die bei der Zündung eine Rolle spielen, für die verschiedenen Motor-Konstellationen (z.B. Paralleltwin, Gegenläufer-Twin, 90°-Twin) mal in Form von Excel-Diagrammen dargestellt. Ich will heute mal mit dem "gutmütigsten Kandidaten", dem Paralleltwin mit 360° Zündversatz und Signalaufnahme an der Nockenwelle beginnen.
Zündfolge-360-Grad-Twin-NW.png
Die rot umrandeten Bereiche stellen die einzelnen Takte der beiden Zylinder dar, die Farben sind in der Abbildung erläutert.

Für alle folgenden Versuche mit meiner Schaltung habe ich mit einer Standard-Ladezeit der Spule von 3500 µs gearbeitet. Die folgende Abbildung (8571 UPM, Hallsignal am UT) zeigt aber, dass bei höheren Drehzahlen diese Ladezeit nicht realisiert werden kann. Damit die Zündung am berechneten Zeitpunkt (Frühzündung vor OT) erfolgen kann, muss sie vom Programm auf ca. 2700 µs reduziert werden ("Rampe" der roten Kurve). Die rot gestrichelten Linien zeigen die Postion des UT bzw. OT an.
360_8571_nw_bt2.jpg
Das Problem lässt sich aber umgehen, wenn man die Steuerscheibe so positioniert, dass der Hallsensor bereits in der Mitte des 1. Taktes feuert. In der folgenden Abbildung sieht man deutlich, dass man dadurch entscheidende Zeit gewinnt und nun die volle Ladezeit von 3500 µs möglich ist. Es ist sogar noch deutlich Luft nach oben, 5000 µs wären ohne Probleme möglich.
360_8571_nw_mt1.jpg
Zu beachten ist, dass nun die ansteigende/absteigende Flanke der grünen Kurve (die dem Signal am Hallsensor entspricht) nicht mehr identisch mit dem UT bzw. OT ist (was in der vorherigen Abb. noch der Fall war). Deren Postion ist wieder durch die rot gestrichelten Linien dargestellt.

Morgen geht es weiter mit der Signalaufnahme an der Kurbelwelle.

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 8. Jan 2018
von Emil1957
Der Vollständigkeit halber hier mal das Verhalten eines Parallel-Twins bei Signalaufnahme an der Kurbelwelle.
Zündfolge-360-Grad-Twin-KW.png
Im Grunde ist es ähnlich wie bei der Signalaufnahme an der Nockenwelle, aber mit folgenden Unterschieden

-Da die KW doppelt so schnell dreht, ist die Frequenz auch doppelt so hoch

-Da nicht unterschieden werden kann, ob gerade der zweite oder der vierte Takt aktiv ist, muss zwangsweise in beiden Takten gezündet werden ("wasted spark" im Auspufftakt), was zur Folge hat, dass beide Zündkerzen simultan zünden

-Für die Ermittlung des "Zeitnullpunktes" (d.h. zyklischer Beginn eines Zündablaufes) wird nur die ansteigende Flanke des Hallsensor-Signales genutzt, die abfallende Flanke wird nur zur genaueren Messung der Umdrehungszeit verwendet

Am Oszilloskop sieht das dann (bei 8571 UPM, Hallsensor feuert am UT) so aus
360_8571_kw_bt2.jpg
Auch hier muss die eigentlich auf 3500 µs eingestellte Ladezeit auf ca. 2700 µs reduziert werden, damit der ganze Vorgang noch innerhalb eines Taktes ablaufen kann.

Die Lösung ist aber auch die gleiche wie bei der Signalaufnahme an der NW: Die Steuerscheibe wird so positioniert, dass das Signal vom Hallsensor schon in der Mitte des 1. Takes kommt:
360_8571_kw_mt1.jpg
Dann ist wieder genügend Zeit vorhanden, um die Spule 3500 µs (und sogar länger) zu laden.
Die gestrichelten Linien markieren wieder die Postion des UT bzw. OT. Im Gegensatz zur Signalaufnahme an der Nockenwelle zünden nun beide Kerzen gleichzeitig (abfallende Flanke der roten Kurve), es würde im Prinzip eine Zündspule mit zwei Sekundärausgängen reichen.

In der nächsten Folge kommt dann der Gegenläufer-Twin (180° Zündversatz), da wird es dann deutlich komplexer.

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 25. Jan 2018
von Emil1957
Falls sich jemand fragt, warum ich das so detailliert durchkaue, kommt heute die Auflösung. Der Paralleltwin ist ja (wie in den beiden vorherigen Beiträgen gezeigt) ein recht gutmütiger Zeitgenosse. Die einzelnen Ereignisse während einer Zündfolge (Signal des Hallsensors, Laden der Zündspule, Zünden) laufen da entweder streng sequentiell (Signalaufnahme an der Nockenwelle) oder parallel ab (bei Signalaufnahme an der Kurbelwelle). Dies entsprach auch dem bisherigen Konzept in meinem Programm.

Beim Gegenläufer-Twin (mit 180° Zündversatz) wird es nun etwas komplizierter. Hier der Ablauf bei einer Signalaufnahme an der NW.
Zündfolge-180-Grad-Twin-NW.png
Wenn der Hallsensor (Signalaufnahme an der NW) am UT feuert, läuft noch alles schön der Reihe nach ab. Allerdings muss dann ähnlich wie beim Paralleltwin bei höheren Drehzahlen die Ladezeit reduziert werden, damit der gesamte Zündvorgang innerhalb eines Taktes ablaufen kann (Beispiel bei 8571 UPM, Ladezeit reduziert auf 2700 µs statt 3500 µs, gestrichelte rote Linien zeigen wieder die Position des UT und OT).
180_8571_nw_bt2.jpg
Wenn nun die Steuerscheibe wieder so positioniert wird, dass das Signal vom Hallsensor schon in der Mitte des 1. Taktes kommt (um eine längere Ladezeit zu erreichen), treten aber Probleme auf, die mit dem bisherigen Programmkonzept nicht gelöst werden konnten. Die Ereignisse in beiden Zylindern überschneiden sich nämlich nun, wobei die Art der Überschneidung auch noch von der Drehzahl abhängt (unterer Teil der ersten Grafik). Bei niedrigen Drehzahlen feuert der Hallsensor für den zweiten Zylinder bereits,´bevor die erste Spule geladen wird, bei mittleren Drehzahlen feuert dagegen der Hallsonsor für den zweiten Zylinder innerhalb der Ladezeit für den ersten Zylinder und bei hohen Drehzahlen zündet der erste Zylinder während der Ladezeit des zweiten. Es gab nun drei optionen, dies verarbeiten zu können:

1) Verwendung eines eigenen Timers für jeden Zylinder
Das wäre die einfachste Lösung gewesen, allerdings verfügt der ATmega328 Chip nur über einen für diese Zwecke geeigneten Timer. Diese Option fiel also aus.

2) Verwendung von zwei Arduinos
Bei dieser Option hätte jeder Zylinder sein eigenes Steuermodul (=Arduino) bekommen. Von den Kosten wäre das nicht groß ins Gewicht gefallen, einen Arduino Mini Pro gibt es ja schon für ca. 4€. Allerdings hätte dazu das Platinenlayout geändert werden müssen. Neue Platinen wollte ich aber nicht fertigen lassen (außerdem wäre die Platine dann auch größer geworden).

3) Programmkonzept überarbeiten
Da 1) und 2) nicht in Frage kamen, blieb nur diese Option. Dazu musste ein Teil des Programmcodes komplett überarbeitet werden (hat sich aber gelohnt, wie später noch gezeigt wird). Kernpunkt war ein "Ereignis-Verwalter", der (je nach Motorentyp und Drehzahl) die einzelnen Ereignisse (Hallsignal, Laden der Spule, Zünden) und deren Dauer berechnet und in der korrekten Reihenfolge spechert und abarbeitet.

Hier das Ergebnis für den Gegenläufer-Twin bei 8571 UPM (Signalaufnahme an der NW, Hallsensor feuert in der Mitte des 1. Taktes)
180_8571_nw_mt1.jpg
Die Ladezeit der Spulen braucht nun nicht reduziert zu werden (könnte sogar auf ca. 5000 µs erhöht werden). Dazu eine Anmerkung: In der Grafik sieht man keine "Zündung" der ersten Spule (die dazu gehörende abfallende Flanke der roten Kurve liegt bei ca. 7ms), da sie vom kurz davor beginnenden Ladevorgang der zweiten Spule überdeckt wird. Um das getrennt darzustellen, wäre ein 3-Kanal-Oszilloskop notwendig gewesen.

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 4. Jan 2019
von brummbaehr
Ist das Thema mit dem letzten Post erledigt, oder gestorben, oder kommt da noch was?

Sind die Dateien auf github aktuell?

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 4. Jan 2019
von Endert
Mir ist meine Unterbrecherzündung aufeinmal wieder sympathisch, aber Hut ab vor der Leistung hier.

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 12. Okt 2019
von bummbummthomas
Hallo Emil,

zunächst einmal Hut ab vor diesem tollen Beitrag. Ich würde mich sehr über die Zusendung der Unterlagen und der Software für den Nachbau freuen.

Gruß
Thomas

Re: Elektronische Zündung auf Arduino-Basis

Verfasst: 13. Okt 2019
von Emil1957
Kannst Du gerne haben, wäre aber nett, wenn Du ein paar Infos einstellen könntest
-Wer bist Du?
-Was willst Du mit dem Material machen?

Ich frage deshalb: Ich habe das Zeug schon mehreren Interessenten zugeschickt, aber nie irgendeine Rückmeldung bekommen (und sei es nur, dass irgendwas nicht funktioniert).