Drehzahlmessung für Rennbuggymotor

Gast #426093
Lesenswert?

Hallo Leute,

Ich bin neu hier im Forum und hätte da eine Frage an die versierten 
Leute unter euch.

Ich bin in einem Rennbuggyteam zuständig für die Fahrzeugelektronik und 
entwickle im Momente eine Modifikation des Motorsteuergerätes.

Das ganze läuft zur Zeit mit einem Atmega16 ganz gut. Nur jetzt ist der 
Punkt gekommen an dem ich nicht mehr weiter weis, denn in Sachen 
Grundschaltungen/Elektronik allgeimein bin ich nicht wirklich gut.

Mein Problem:

Der (Verbrennungs) Motor hat an der Nockenwelle einen Positionssensor 
der ein  kontinuerliches Signal ausgiebt welches seine Amplitude und 
seine Freuquenz in abhängigkeit von der Motordrehzahl verändert (siehe 
Oszimessungen im Anhang, 1x Leerlauf und 1x 6000 rpm).

Ich möchte anhand von diesem Signal die Drehzahl und in weiterer Folge 
auch die Winkelposition der Nockenwelle erfassen/errechnen.

Hat irgendjemand Anregungen oder Ideen wie ich dieses Signal mit dem uC 
auswerten kann?

Ich hab mir folgendes überlegt wie es gehen "könnte":

#1 Spannungsteiler --> ADC und die Nulldurchgänge auswerten + Frequenz 
errrechnen, Problem: Was mache ich mit der negativen Welle (mit Diode 
töten ??), verfälscht die Messung das Signal nicht zu stark (vl spinnt 
dann das originale Steuergerät das ja dieses Signal auch noch braucht) 
?, Abhilfe - auskoppeln mit Wandler/Spule - aber wie ?

#2 OPV Schaltung mit Grenzwert bei 0,5 V und steigende Flanke messen ?
funktioniert das über den ganzen Drehzahlbereich, mann muss bedenken 
dass die Spannung bei der Enddrehzahl des Motors (12000rpm) schon 
verdammt hoch ist)


Wenn Interesse besteht kann ich natürlich weitere Details und bereits 
funktionierende Sachen (wie zB. Anzeige des eingelegten Gangs im Cockpit 
auf "fettem" 7 Seg. usw...) hier posten

Über jeden Vorschlag wäre ich sehr sehr dankbar und verbleibe mit 
freundlich grüßen aus Österreich

Stefan
#426185
Lesenswert?

Hallo Stefan,
Leider hast du den Anhang wohl vergessen, aber ich kann dir einfach mal 
meine Überlegungen posten.

Die Befürchtung, dass bei Version 1 die Motorelektronik gestört würde, 
könntest du relativ einfach mit einem Impedanzwandler und einer idealen 
Diode (beides mit OPV aufgebaut) ausräumen. Wie genau soll die 
Drehzahlmessung denn sein?

Version 2: Spannungsteiler am Eingang eines Komparators (Schaltschwelle 
musst du richtig wählen) und falls nötig einen folgenden Monoflop 
(definierte Signallänge)


Recht schwierig dürfte die Positionserkennung zu realisieren sein, da ja 
sowohl Amplitude als (nehme ich mal an) die Signaldauer von der Drehzahl 
abhängig sind.
Auch hier stellt sich wieder die Frage, wie genau diese 
Positionsbestimmung werden soll.

Bevor ich hier aber anfange, wild zu spekulieren, warte ich besser auf 
die Oszi-Bilder und die Spezialisten hier im Forum.
Dein Projekt klingt jedenfalls nicht uninteressant, wenn du uns hier auf 
dem Laufenden halten würdest, wäre das sehr nett.

Grüße von der Donau,
Erik
Gast #426382
Lesenswert?

Du kannst auch einen Timer über einen externen Pin zählen lassen, z.B. 
T1 für Timer 1. Je nach Zählerstand kannst du die Drehzahl ermitteln. 
Wenn ich dich richtig verstanden habe willst du bei einem Bestimmten 
Winkel etwas auslösen? Dann kannst du mittels Output-Compare-Interrupt 
des gleichen Zählers den Winkel ermitteln (wie oben schon gesagt: 
abhängig von der Drehzahl)
Gast #426732
Lesenswert?

Den Anhang scheine ich doch glatt vergessen zu haben (....)

@ Erik:

Danke für die Stichwörter - werde mich damit im inet mal schlau machen 
wie das mit auskoppeln usw funktioniert. Eine Version die nur einen 
Digitaleingang am uC verlangt hat natürlich auch ihre Vorteile.

Die Genauigkeit ist relativ gering (+- 20rpm) da ja der Schaltvorgang 
ohnehin vom Fahrer ausgelöst wird , allerdings sollte die 
Wiederholgenauigkeit (ka ob das der richtige Ausdruck ist) relativ gut 
sein. (Das selbe Signal liefert immer wieder die selbe Drehzahl)


@ Sonic:

Mein Problem ist eher die externe Beschaltung die ich nicht verstehe. 
Wie ich von der Periodendauer dur Drehzahl und zur Position komme ist 
mir schon relativ klar. Aber reden wir weiter wenn ich die Bilder 
gepostet habe. Danke dennoch schon mal im Voraus


@ Christian:

Der Motor hat bereits einen Sensor hierfür eingebaut. Das einzige was 
ich weis ist, dass er seinen Widerstand in Abhängigkeit vom Gang 
verändert ( evtl. Poti am Schaltgestängehebel ??) Ich messe den 
Widerstand brutal per Spannungsteiler über einen ADC Eingang. Anzeige 
per 100mm hohen 7 Segment Display.


Danke schon mal im Voraus für eure rasche und freundlich Hilfe.
Werde mich in Zukunft sicher häufiger hier im Forum beteiligen.
Im Moment komme ich aber leider nur ca alle 4 Tage zum arbeiten also 
nicht böse sein wenn ich mich längere Zeit nicht melde.


lg Stefan

PS: Sollte der Anhang wieder nicht funktionieren dann bitte den 
verwenden "Den Anhang scheine ich doch glatt vergessen zu haben (....)

@ Erik:

Danke für die Stichwörter - werde mich damit im inet mal schlau machen 
wie das mit auskoppeln usw funktioniert. Eine Version die nur einen 
Digitaleingang am uC verlangt hat natürlich auch ihre Vorteile.

Die Genauigkeit ist relativ gering (+- 20rpm) da ja der Schaltvorgang 
ohnehin vom Fahrer ausgelöst wird , allerdings sollte die 
Wiederholgenauigkeit (ka ob das der richtige Ausdruck ist) relativ gut 
sein. (Das selbe Signal liefert immer wieder die selbe Drehzahl)


@ Sonic:

Mein Problem ist eher die externe Beschaltung die ich nicht verstehe. 
Wie ich von der Periodendauer dur Drehzahl und zur Position komme ist 
mir schon relativ klar. Aber reden wir weiter wenn ich die Bilder 
gepostet habe. Danke dennoch schon mal im Voraus


@ Christian:

Der Motor hat bereits einen Sensor hierfür eingebaut. Das einzige was 
ich weis ist, dass er seinen Widerstand in Abhängigkeit vom Gang 
verändert ( evtl. Poti am Schaltgestängehebel ??) Ich messe den 
Widerstand brutal per Spannungsteiler über einen ADC Eingang. Anzeige 
per 100mm hohen 7 Segment Display.


Danke schon mal im Voraus für eure rasche und freundlich Hilfe.
Werde mich in Zukunft sicher häufiger hier im Forum beteiligen.
Im Moment komme ich aber leider nur ca alle 4 Tage zum arbeiten also 
nicht böse sein wenn ich mich längere Zeit nicht melde.


lg Stefan

PS: Sollte der Anhang wieder nicht funktionieren, dann bitte den hier 
verwenden: "http://loop0.org/~steve/oszi.zip";
Gast #430368
Lesenswert?

Hallo, Stefan,

digikey hat das teil.

Die DIY ECU Projekte liefern viele Anhaltspunte, vielleicht gibt es auch 
andere Ansaetze, Induktionsensoren auszuwerten. Eventuell tausche mal 
deinen gegen einen Hall-Effect Sensor (die von mir bisher gesehenen 
Nockenwellensensoren waren Hall-Effect Sensoren), der gibt nur High/Low 
aus , dann hast Du gar keine Probleme mit Auswertung.

>Winkelposition der Nockenwelle erfassen/errechnen

Geht das nicht ueber den Kurbelwellensensor? Die Nockenwelle hat 
normallerweise nur einen Impuls per 360 Grad. Bei Deinem Motor scheint 
es auch der Fall zu sein. Fuer das Timing der Zuendung  wird es zu 
ungenau, fuerchte ich.


Meine Lieblingsprojekte sind:

http://www.vems.hu/wiki/

und

http://www.bgsoflex.com/megasquirt.html

LG




Gast #430378
Lesenswert?

Jop habs auch bei Farnell schon gefunden.

Ein Sensortausch kommt leider nicht in Frage, da es für alle baugleichen 
Motoren für jedermann ohne weitere Umbauten verwendbar sein soll 
(plug'n'play sozusagen)

Bei dem Motor (Suzuki GSX 1300R Hayabusa) sieht das Signal der 
Kurbelwelle genau gleich aus nur mit doppelter Frequenz.

In die Zündung wird vorerst nur soweit eingegriffen, das diese 
(kurzzeitig) unterbrochen wird sobald eine bestimmte Drehzahl (für den 
Start) erreicht wird.

Werde mich in diese DIY ECU Projekte auf jeden Fall weiter einlesen.

lg Stefan
Gast #430554
Lesenswert?

Ich habe hier ein grundsätzliches Problem:
Wozu ist es notwendig, die genaue Position des Nockenwellensensors zu 
erfassen? Das ist ein 4 Zylinder 4Takter der durch 2 Zündspulen gezündet 
werden kann (180° Versatz). Der Nockenwellensensor ist nur dafür da, daß 
Du herausbekommst, welches Zylinderpaar Du befeuern mußt, der Konkrete 
Zeitpunkt seines Signals ist Mettwurscht....

Den Genauen Zündwinkel mußt Du schon über das Signal des 
Kurbelwellensensors ermitteln, dazu reicht es aber aus, das Signal mit 
einem Schmittrigger zu
formen und dann zu erfassen, die Zeitliche Änderung des Signals durch 
die
Änderung seiner Amplitude kompensierst Du austomatisch in den 
Kennfeldtabellen mit der Einstellung des Zündwinkels....

Wo also ist das Problem?

Gruß,

Holm
Gast #431463
Lesenswert?

Schicke das Signal über 1,5KOhm auf die Basis eines npn Transistors. 
evtl
von dieser Basis eine Diode mit Kathode am Transistor und Anode an 
Masse,
ggf. zur Störunterdrückung einen Kondensator von ein paar nF parallel 
zur Diode.
Der Transistor erhält einen Kollektorwiderstand von ca. 4,7K nach +5V,
dann sollten am Kollektor negative Nadelimpulse zur Auswertung bereit 
stehen.

Experimentiere mal damit.

Gruß,

Holm
Gast #431690
Lesenswert?

@holm: Danke für den Tipp, muss mir das ganze mal aufbauen, aber hier 
muss ich sicher vorher mit OPV Entkoppeln um das Signal nicht zu 
beeinflussen. Ein weiteres Problem ist, dass sich testen vorallem im 
oberen Drehzahlbereich sehr Aufwendig gestaltet weil der Motor ja im 
Buggy verbaut ist und wir dazu jedesmal auf eine Strecke fahren müssen.

@Sonic: Wirklich kompakte ERklärung, Danke

lg Stefan
Gast #476106
Lesenswert?

Hallo,

Melde mich nach langer Zeit wieder mal.
Habe eine einfache Lösung durch viele Tests gefunden.

Spannungsteiler mit 10k zu 100k Widerständen.
Kleinsignaldiode BA157 nach GND und nach +5V.
ADC Eingang am AVR und schnell genug messen.
Per Timer die Zeiten zwischen den Nulldurchgängen messen und mit f = 1/T 
Drehzahl ermitteln.

Werde hier falls Interesse besteht nähere Details zu gegebener Zeit 
posten.

--> http://users.loop0.org/users/steve/BUGGY/DSC00032.JPG

lg Stefan
#2160197
Lesenswert?

Hallo,

Wie du schon selber geschrieben hast ist das ganze ca. 4 Jahre her. Den 
Schaltplan / Code muesste ich erst mal "ausgraben".

Es ist aber zumindest schaltungstechnisch so einfach wie oben 
beschrieben.
2 Widerstaende und 2 Dioden. Dann einen Timer mit Interupteingang nutzen 
und die Zeit zwischen 2 Nulldurchgaengen ermitteln.

Aus heutiger Sicht wuerde ich das auch anders machen, aber damals hat's 
funktioniert und mir genuegt.

LG

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren