Forum: Analoge Elektronik und Schaltungstechnik Erkennung/Unterscheidung verschiedener Impulsbreiten


von Heiko D. (heiko-d)


Angehängte Dateien:

Lesenswert?

Hallo,

Da ich gerade an einer elektronischen (verteilerlosen) Zündung arbeite 
die mit Einzelfunkenzündspulen arbeitet bin ich bei der Auswertung des 
Triggersignals vor ein Problem gestoßen bei dem ich mit meinen 
Kenntnissen nicht ganz weiter komme. Ich versuche erst mal zu 
beschreiben um was es überhaupt geht;

Auf der Kurbelwelle eines Motors sitzt eine Impulsgeberscheibe um den 
Kurbelwellenwinkel zu erfassen. Sie besitzt eine Vielzahl von Zähnen, 
sehr häufig werden 60 Zähne verwendet wovon 2 ausgelassen werden, also 
eigentlich 58. Die Lücke dient dazu den Winkel der Scheibe dem 
entsprechenden Zylinder zuordnen zu können, wenn die Lücke im 
Triggersensor steht weiß das Motorsteuergerät dass der 1. bzw. 4. 
Zylinder auf dem obersten Totpunkt (OT) stehen. Gezündet wird 20-40° vor 
OT, aber das ist ein anderes Problem. Der Trigersensor liefert ein 
Rechteck-Signal von 0V (kein Zahn) oder 10V (Zahn liegt vor Sensor).

Mein Problem ist nun eine Schaltung zu entwickeln mit der Ich den 
OT-Punkt aus den anderen Impulsen der Triggerscheibe herausfiltern kann 
um ihn sozusagen als "Reset-Impuls" für meine Zündschalltung zu nutzen. 
Die Schaltung muss also die durch die zwei fehlenden Zähne erzeugte 
Lücke erkennen können. Ich hatte mir schon eine Variante mit einem 
RC-Glied und einem NAND-Gatter überlegt bei dem bei positivem Signal des 
Triggersensors der Kondensator auf ein bestimmtes Potential geladen wird 
bis der Sensor auf "0" geht, dann muss der Kondensator innerhalb der 
Aufladezeit auch wieder entladen werden, tut er das nicht wird die Lücke 
erkannt. Ich glaube allerdings dass das ganze nicht funktioniert weil 
die Impulsbreite drehzahlabhängig ist und mit steigender Drehzahl die 
Impulse immer kürzer werden. Wer also eine andere Idee oder Lösung hat - 
immer her damit

Danke & Viele Grüße

von karadur (Gast)


Lesenswert?

Hallo

Idee: mit den Impulsen eine PLL steuerern die auch einen Ausgangspuls 
erzeugt wenn der Zahn fehlt. Den PLL-Ausgang als Takt für ein 
D-Flip-Flop verwenden. Den D-Eingang des Flip-Flops mit den Zahnpulsen 
versorgen. Sollte bis auf den fehlenden Zahn immer eine 1 am Ausgang 
liefern. Beim fehlenden Zahn eine 0.


Das geht natürlich auch mit einem uC.

von Matthias L. (Gast)


Lesenswert?

>Ich glaube allerdings dass das ganze nicht funktioniert weil
>die Impulsbreite drehzahlabhängig ist und mit steigender Drehzahl die
>Impulse immer kürzer werden. Wer also eine andere Idee oder Lösung hat -
>immer her damit

Das ist das Problem.

Ich sehe auf die Schnelle zwei mögliche Lösungen:

1)
Eine andere Scheibe, in der du nur die 6° Teilung hast. Also zweite Spur 
ein extra Markierung, die dir die Null-Marke anzeigt. Das ist ähnlich 
wie die Nullspur bei einem Drehgeber.

2)
Einen zweiten Triggersensor, um >15Grad (aber vielfache von 6°) 
gegenüber dem ersten versetzt. Somit sollten beide Sensoren immer (fast) 
zugleich kommen, fehlt aber der eine, so ist dort die Null-Markierung 
da.

Hinweis: Egal wie du es lösen tust, die Nullmarkierung zu Erkennen, 
indem du das Fehlen der 6°-Teilung erkennst (weil die Lücke größer ist) 
kann du immer nur nach diesen 6°. Eher wirds es nie..

von Heiko D. (heiko-d)


Lesenswert?

Schon mal danke für die schnellen Antworten. Leider bin ich nicht so 
sehr bewandert was die Digitaltechnik angeht, ich kenne mich zwar mit 
Gattern aus aber alles andere ist mir eher fremd.

@karadur: Was ist denn ein PLL?

@Mathias: Eine zweite Scheibe kommt nicht in Frage da so wenig wie 
möglich von dem ganzen zu sehen sein soll, zudem gäbe es auch noch die 
Möglichkeit den Nockenwellensensor mit zu verwenden, er Liefert pro 720° 
Kurbelwellenumdrehung nur einen einzigen Impuls wenn der 1. Zylinder auf 
OT steht, also eigentlich das was ich bräuchte - ABER der Motor der mit 
der Zündung gesteuert werden soll sitz in einem allten Kadett C und der 
Nockenwellensensor würde mit der Spritzwand kollidieren, d.h. man müsste 
das Blech ausschneiden. Das möchte ich allerdings nicht und deshalb nur 
das Triggerrad auf der Kurbelwelle verwenden. Dies sitzt im Übrigen im 
inneren des Motorsblocks und ist von außen nicht sichtbar.

von Matthias L. (Gast)


Lesenswert?

Du brauchst dich nicht rechtfertigen bei mir... ;-)

Ich meinte nicht, eine zweite Scheibe, sondern eine andere .

Dann nimm meinen zweiten Vorschlag und bau nen zweiten Sensor dran. 
Somit sollte das gehen.
Aber:
>Leider bin ich nicht so
>sehr bewandert was die Digitaltechnik angeht, ich kenne mich zwar mit
>Gattern aus aber alles andere ist mir eher fremd.

Keine guten Vorraussetzungen...

von Heiko D. (heiko-d)


Lesenswert?

Einen zweiten Sensor anbauen wird nicht gehen, der Sensor sitzt im 
Motorblock in einer Passung. Da ist kein Platz für einen zweiten 
Sensor...

von Thomas W. (wagneth)


Lesenswert?

Naja, ich denke mal das der Hersteller Deiner Einspritz/Zündanlage (die 
wohl vorher verbaut war) das auch schon "gelöst" hat,
ohne zusätzliche Hardware...

Im Endeffekt wird doch nur die Zeit von Lücke zu Lücke gemessen und mit 
der letzten verglichen.
(resp. kann man auch den Mittelwert der dt's zum vergleichen nehmen,
wenn sie Scheibe Beschleunigt/verzögert je nach Betriebspunkt)


Ist das dt größer als das letzte dt,
bedeutet das daß die 2-Zahn-Lücke unter deinem Hallgeber 
vorbeigeschuscht ist.

Allerdings müsstest Du die ev. Beschleunigung Deiner Scheibe 
berücksichtigen.

-Dein dt ist nebenbei 1/proportional zur Drehzahl.
-Timeout von dt bedeutet Scheibe dreht nicht.
-Die 2-Zahn-Lücke ist bei Motronic-steuerungen meistens 76° KW vor OT.
 Somit hat man genug Zeit noch ein wenig zu rechnen bevor man Zündet 
oder Sequentiel einspritzt.

Was soll es denn werden ?

von Thomas W. (wagneth)


Lesenswert?

PS : Es gibt da auch schon fertige IC die die Dekodierung machen.
Glaube ich habe bei MegasquirtAVR sowas schonmal gesehen...

von Heiko D. (heiko-d)


Lesenswert?

Hallo Thomas,

du scheinst ja zu wissen worum es geht :D Das ganze wird ein 2,0l 16V in 
einem Kadett C mit Doppelvergasern, deshalb auch die aufwendige Zündung. 
Man könnte das ganze auch mit einem Zündverteiler fahren, den muss man 
dann jedoch versetzten, umlenken oder die Spitzwand kaputt schneiden. 
Außerdem sollen möglichst wenig Kabel zu sehen sein.

Deine Idee mit dem Mittelwert hört sich gut an, nur bei der Umsetzung 
haperts bei mir :(

von Thomas W. (wagneth)


Lesenswert?

Och...

Also der c20xe wie er im Kadett war hatte zusätzlich einen Verteiler mit 
Hallgeber.
Darüber war die Phasenlage der Nockenwellen bekannt.

Bist Du dir sicher das bei deinem Geber der im Block sitzt es sich um 
einen Hallgeber handelt ???
Normalerweise steckt da ein Induktivgeber drin...

Ich würde mir als erstes mal Gedanken machen wie meine Zündung später 
"aussehen" soll.

Verteiler, verteilerlos, Einzelfunken, Doppelfunken dann wäre das 
Stichwort DIS.
Gabs beiden x16xz Motoren im Astra (die mit 72PS).
Sowas könnte ich mir durchaus auch an einem 16v vorstellen.

Allerdings kannst Du beim DIS (wo die Endstufen schon in der Zündspule 
integriert sind) den Zündwinkel nicht so stark variieren,
da Du sonst bei dem anderen Zylinder in den Ansaugtakt funkst.
(kommt auch drauf an was Du für Nockelwellen fahren willst...)

Allerdings musst Du sehr vorsichtig sein, der Motor nimmt Dir falsche 
Zündwinkel sehr übel.


Für den Anfang würde ich mir erstmal einen µC mit einer 
Eingangsbeschaltung und ein paar LEDs zurechtlöten.

Und die "Software" am Motor testen.
(es reicht wenn Du Anlasserdrehzahl (ca 200-450 upm) und die Lücke 
sicher detektierst.

Versuche doch erstmal nur den Zeitabstand zwischen den Zähnen zu messen.
Das geht mit einen Timer und minimal Mathematik.

Danach machen wir uns an die Lücke...

von Heiko D. (heiko-d)


Lesenswert?

Dass der Verteiler einen Hallgeber hatte weiß ich, das ist aber oben 
genanntes Problem. Der Ventildeckel und damit auch der Sitz des 
Verteilers sitzt 2 cm vor der Oberkannte der Spritzwand, entweder man 
schneidet diese für den Zündverteiler aus oder man dreht den 
Zündverteiler und treibt ihn über einen Zahnriemen an. Beides Lösungen 
die ich nicht für elegant hallte. Ich habe bereits 
Einzelfunkenzündspulen in Steckerform die ich auch schon bei anderen 
C20XEs verbaut habe, eine passende Endstufe mit MosFETs habe ich mir 
auch gebaut, allerdings habe ich diese bisher über ein frei 
programmierbares Steuergerät gesteuert (Haltech E6X). Da der Motor im 
Kadett aber mit Vergasern gefahren wird wird das einzigste was neben 
Licht und Anlasser noch mit Strom zutun hat die Zündung sein.

Diese werde ich wie bei einer Doppelfunkenspule immer paarweise 
ansteuern, also 1+4 oder 2+3. Einzigster Vorteil zur Doppelfunkenspule - 
Ich habe keine externe Zündspule und muss nur die dünnen Kabel der 
Primärspule herausführen...

Ich werde wie du vorschlägst wol erst mal einen solchen Versuchsaufbau 
machen und dann berichten. Schon mal danke für die schnelle Hilfe und 
die vielen Antworten!

von Thomas W. (wagneth)


Lesenswert?

Hmmm,
also die Nummer mit dem Zahnriemen, bzw Spritzwand  halte ich auch für 
äusserst "ungünstig" ;)

Ev. liesse sich ein zusätzlicher Hallgeber mit einer der Nockenwellen in 
den Ventildeckel einlassen !?

Für einen 8V hätte ich da eine Idee...

Für mich :

-Aus welchen Auto und Bj ist denn der Motor ? (ich frage wegen dem 
Hallgeber KW)
-Was für (Finger?-) Zündspulen verwendest Du ?

von Heiko D. (heiko-d)


Lesenswert?

Es gibt ja sogar einen passenden Nockenwellensensor für die Motronic 
bzw. den 16V von Opel, es gab ja die Motronic M2.5 (mit dem schwarzen 
Verteiler) und die M2.8 (Vertielerlos) da saß dann anstelle des 
Verteilers ein Block mit dem Geber im Zündverteilerloch. Ist aber immer 
noch zu breit bzw. steht zu weit raus ohne mit der Spitzwand zu 
kollidieren.

Ich hatte auch schon überlegt einen Nockenwellensensor selber zu bauen, 
Platz ist auf jeden Fall genug. Aber wenn es sich umgehen läßt möchte 
ich das ganze möglichst ohne diesen betreiben.

welches Baujahr der Motor hat kann ich dir nicht sagen, habe bestimmt 4 
oder 5 Motoren in meiner Werkstatt stehen, die meisten allerdings 
C20LETs also 16V Turbos aber die sind absolut identisch. Grundsätzlich 
sind bei Opel ja alle Big-Block-Motoren gleich, also egal ob 8V oder 16V 
der Block ist der selber, somit auch die Kurbelwelle (wenn 2000cm²) und 
der Kurbelwellensensor...

Die Zündspulen stammen vom Motorrad, passen genau in den Ventildeckel 
und dichten Sogar mit der angebrachten Gummidichtung die 
Zündkerzenbohrung ab...

von Heiko D. (heiko-d)


Angehängte Dateien:

Lesenswert?

Hier noch ein Bild der Zündspulen...

von karadur (Gast)


Lesenswert?

Hallo

PLL heisst Phase locked Loop. Das ist ein Oszillator der mit einem 
Referenzsignal synchronisiert wird. Die PLL läuft synchron zum 
Zahnimpuls. Fällt ein Impuls aus läuft der Oszillator trotzdem mit der 
gleichen Frequenz weiter. Durch die Synchronisation läuft der Oszillator 
mit der Frequenz der aktuellen Drehzahl.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nachdem die Drehzahländerung nicht sehr schnell erfolgen kann/wird, 
würde ich das so machen:
Mit einem uC bei jedem Zahn-Impuls
- wird der Zählerwert gespeichert
- wird der Zähler neu gestartet
- wird der Zähler mit dem vorher berechneten Zählergrenzwert verglichen
  und der Trigger ausgelöst,
                  wenn der aktuelle Zähler größer als der Grenzwert ist
  sonst nur der neue Grenzwert berechnet wird (hier einfach Faktor 2)
1
  if (zahnimpuls) {
2
    trigger = 0;           // erst mal Trigger löschen
3
    cnt_akt = timer;       // aktuellen Timerwert auslesen
4
    timer   = 0;           // Timer zurücksetzen
5
    if (cnt_akt > cnt_og)  
6
       trigger = 1;        // zu große Pause --> Trigger 
7
    else                 
8
       cnt_og = cnt_akt*2; // sonst neuen Grenzwert berechnen
9
  }

von Heiko D. (heiko-d)


Lesenswert?

Lothar Miller wrote:
> Nachdem die Drehzahländerung nicht sehr schnell erfolgen kann/wird,

Das einzigste Problem sehe ich noch darin dass sich die Drehzahl 
schlagartig ändern könnte bzw. wird wenn die Räder durchdrehen, dann 
würde die Drehzahl sehr schnell nach oben schießen. Bekommt der uC dass 
dann auch noch geregelt?

von Thomas W. (wagneth)


Lesenswert?

Hallo Heiko,


Schau mal wie lange es dauert wenn Du den Motor vom Leerlauf bis auf 
6400 upm hochdrehen läst (leer).

Das wäre dann deine Maximale Änderungsgeschwindigkeit der Drehzahl die 
Du in Deinem Algo berücksichtigen musst.

Ausserdem misst Du immer nur von Zahn zu Zahn,
dadurch verringert sich die Maximale Änderung da die 
Änderungsgeschwindigkeit nur auf 1/60 wirkt...

Bist Du aus der Umgebung von FFM ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Heiko Domnick wrote:
> Lothar Miller wrote:
>> Nachdem die Drehzahländerung nicht sehr schnell erfolgen kann/wird,
> Das einzigste Problem sehe ich noch darin dass sich die Drehzahl
> schlagartig ändern könnte...
Thomas W. (wagneth) hat das richtig erkannt:
Für eine schlagartige Drehzahländerung brauchst du einen Kolbenfresser,
am besten zusammen mit Kurbelwellenbruch   ;-)

von Thomas W. (wagneth)


Lesenswert?

Also ein "normaler" fresser reicht da nicht aus...

Dabei schmilzt nur ein bisschen was vom flammsteg ab,
ev. frisst auch die Zylinderwand ein wenig.

von Heiko D. (heiko-d)


Angehängte Dateien:

Lesenswert?

Thomas W. wrote:
> Also ein "normaler" fresser reicht da nicht aus...
>
> Dabei schmilzt nur ein bisschen was vom flammsteg ab,
> ev. frisst auch die Zylinderwand ein wenig.

Kommt mir irgendwie sehr bekannt vor was du da beschreibst :(
Komme aus dem Raum Köln...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.