PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Entwicklung eines Motorsteuergerätes...



Spartakaktus
01.01.2006, 21:02
Frohes neues Jahr erstmal!

Ich würd gern ein Steuergerät für nen Motor "basteln"... und zwar in 2 Versionen...
Einmal für nen 4 Zylinder (a) und einmal für nen 1-Zylinder Dieselmotor (b)
Ein gewisses Grundkonzept haben wir ja schon:

Es werden
Lufttemperatur,
Wassertemperatur,
Drosselklappenstellung (-> Gaspedalstellung)
und eventuell der Druck gemessen.

Natürlich braucht man dann auch noch die Drehzahl.
Bei Version a kann mans (denk ich) leicht ermitteln: man bekommt bei OT (oberster Totpunkt) ein Signal, durch das man Drehzahl und Position bestimmen kann.

// Vorgeschichte Ende :)

Bei b besteht nun mein Problem:
OT wird ned exakt gegeben, sondern man hat eine gewuchtete Scheibe, die 58 Paare zu je hoch/tief (1/0) und 2 Paare zu je tief/tief besitzt.
(Siehe Bild1 und Bild2)

Die Unterschiede werden mithilfe von diesem Digitalaufnehmer (http://www.rs-components.at/cgi-bin/bv/search/SearchDisplay.jsp?BV_SessionID=%40%40%40%400588745 557.1136144986%40%40%40%40&BV_EngineID=ccckaddgiljjmdecefeceefdffhdfij.0&SearchType=quick&viewType=images&SearchText=304-172&quickSubmit=Suche) erkannt.

Drehzahl kann man ja durch die Zeitabstände zwischen den Zähnen errechnen (man muss halt irgendwie die 2 Paare ignorieren können)

Nur wie komm ich auf OT?
Vorm Starten, die Schwungscheibe so drehen, sodass der Aufnehmer in der Lücke is, damit man immer nur bis 58 zählen muss?

Oder die Zeit zwischen den Zähnen messen und diese eine Unregelmäßigkeit registrieren?
Stellt sich mir nur die Frage, ob sowas ein "Siemens sab c517a" zeitlich schafft... bei 7000U/min sind das ja doch 13534 Zähne / Sekunde...

Naja, ich hoff mal auf gute Ideen eurerseits :)

Vielen Dank schonmal!

Liebe Grüße
Alex

kalledom
01.01.2006, 22:54
Hallo Alex,
Es muß grundsätzlich erst mal herausgefunden werden, wo die Lücke ist, denn sonst nützt das Abzählen der 58 Zähne nichts.
Bei 7000 U/min = 117 U/sek und 60 Zähne (2 für die Lücke) komme ich auf eine Frequenz von 117 * 60 = 7.020 Hz.
Das sind ca. 142 / 2 = 71 MikroSekunden ZahnLücke und 142 * 2 = 284 MikroSekunden für die Lücke.
Das könnte in Assembler gehn.

Spartakaktus
01.01.2006, 23:23
Hmm 71 Mikrosekunden is doch bissl hart...

Das Problem is ja, dass er zusätzlich noch
Gaspedalstellung (0-100%) und Temperatur messen,
Einspritzzeitpunkt und -länge ausrechnen und dann
noch die Drosselklappenstellung per PWM ausgeben soll...

Wird sich wohl mit einem einzigen Controller ned ausgehn oder?

Zusatz:
Einspritzzeitpunkt und -länge wird ned direkt berechnet, sondern soll aus
einer (von uns angelegten) Tabelle ausgelesen werden.
Wird in etwa so aussehen:
x-Achse: Gaspedalstellung 0-100%
y-Achse: Drehzahl 100u/min, 200u/min, ... , 7000u/min.

Könnte man das vielleicht mit 2 Controllern lösen?
Einer is nur für die Schwungscheibe zuständig und der 2te macht den Rest.
Der zweite sollte ja genug Zeit haben -> 8,5 ms pro Umdrehung

kalledom
02.01.2006, 00:12
Eine weitere Frage ist, mit welchem Sensor willst Du die Zahnlücken und die Lücke detektieren ? Wie sicher ist dieser Sensor ?
Wenn es da was Schnelles gibt, könnte ein kleiner PIC im Interrupt die Zeiten von Zahn zu Zahn ermitteln (bei den unterschiedlichen Drehzahlen) und so die Lücke erkennen. Vielleicht auch noch erkennen, ob der Sensor spinnt oder das Zahnrad steht. Also, ein Controller alleine hat mit dieser Aufgabe und was sich sonst noch rauskristallisiert genug zu tun.
Was ist eigentlich nach dem Einschalten / Starten ? Wo ist da die Lücke ? Was passiert bis zum ersten Erkennen der Lücke ?

Spartakaktus
02.01.2006, 15:31
So, dank eines Kollegen beim Bundesheer...(NL245T)

hatt ich heut den Geistesblitz!

Durch Verwenden eines Sensors, hat man im Grunde (ohne viel Zähl- und Rechenaufwand) keine Chance die Lücke zu erkennen.
Aber wenn man 2 nebeneinander positioniert, sodass ein Sensor über einer 1 und der 2te über der "Nachbar-0" ist, erkennt man sofort die Lücke, da beide Sensoren eine Null erkennen.

Erkennt der Mikrocontroller nun diese beiden Nullen, so sendet er ein Signal an den zweiten µC, welcher somit weiß wann OT ist bzw. wie hoch die Drehzahl ist.

Vielen Dank für die Hilfe schonmal!

Ich werd sicher bald wieder mit Problemen antanzen :)

LG Alex

kalledom
02.01.2006, 16:00
Jetzt warst Du um Minuten schneller.
Gleiches wollte ich auch vorschlagen: 2 Sensoren, der eine sieht den Zahn, der andere die Zahnlücke und umgekehrt. Die beiden Pegel auf ein Exor-Gatter ergibt immer 0. An der großen Lücke sehen beide Sensoren Nichts, beide liefern den gleichen Pegel, macht beim Exor-Gatter eine 1.
Ob es so einen Sensor mit passendem Abstand fertig gibt ?

Man könnte eine Lichtschranke in einem bestimmten Winkel anbringen;
wo Zähne sind, ist die Lichschranke unterbrochen, bei der großen Lücke nicht.

Spartakaktus
02.01.2006, 17:18
Danke sehr!
Tolle Idee mit dem EXOR-Gitter!

Ich Depp wäre den schwereren Weg über nen µC gegangen :)

LG Alex

EDIT:
Eigentlich reicht ja sogar ein NOR-Gatter...
Aber da 1/1 eh nie vorkommt (-en sollte :) ) gehts mit nem XOR auch.

kalledom
02.01.2006, 23:41
Bei einem OR- / NOR-Gatter ist eine Abhängigkeit von der Polarität der Sensoren gegeben; in der großen Lücke müssen beide Sensoren 0 sein, beim XOR-Gatter können sie auch beide 1 sein.
Die Sensoren müssen eine Reaktionszeit von 80 MikroSekunden haben.

Interessant wäre eine Gabellichtschranke, die so schräg angesetzt wird, daß sie nur während der großen Lücke aktiv werden kann. So würde ohne weitere Hardware ein Int nur bei der großen Lücke ausgelöst. Die Reaktionszeit liegt bei ca. 250 MikroSekunden.

farray
09.01.2006, 19:33
Hmm 71 Mikrosekunden is doch bissl hart...

Das Problem is ja, dass er zusätzlich noch
Gaspedalstellung (0-100%) und Temperatur messen,
Einspritzzeitpunkt und -länge ausrechnen und dann
noch die Drosselklappenstellung per PWM ausgeben soll...

Wird sich wohl mit einem einzigen Controller ned ausgehn oder?

Zusatz:
Einspritzzeitpunkt und -länge wird ned direkt berechnet, sondern soll aus
einer (von uns angelegten) Tabelle ausgelesen werden.
Wird in etwa so aussehen:
x-Achse: Gaspedalstellung 0-100%
y-Achse: Drehzahl 100u/min, 200u/min, ... , 7000u/min.

Könnte man das vielleicht mit 2 Controllern lösen?
Einer is nur für die Schwungscheibe zuständig und der 2te macht den Rest.
Der zweite sollte ja genug Zeit haben -> 8,5 ms pro Umdrehung


Äh ein Dieselmotor hat doch gar keine Drosselklappe :-k ,


Die Drehzahl kann ma mit einem Piezokristall den ma an der Einspritzleitung befestigt messen (so macht man das auch bei der Diesel Au), Bei jeder Einspritzung gibts ein Signal weil sich die Leitung ausdehnt.
Geht aber nur bei den herkömmlichen Diesel.


...und einspritzzeitpunkt und länge werden doch mechanisch geregelt (Einspritzpumpe), außer ihr habt da so ein Pumpe-Düse oder
Common-Rail- Diesel aber da ist die Sensorik um einiges aufwendiger (Klopfsensoren,Abgastemperatur,Kraftstoffdruck).
Und wie kommt man aus Drehzahl und Gaspedalstellung auf EinspriTzzeitpunkt? habt ihr die kennfelder irgendwo her?