mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Motorsteuerung mittels uc


Autor: Peter b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ein Kumpel und ich möchten aus Interesse versuchen einen Motor mittels
uController zum laufen zu bringen.
Meine erste Frage währe nun ob sich jemand schon mal mit dem Thema
auseinadergesetzt hat bzw. welcher uc dazu am besten geeignet ist.
Primär müsste der uc folgende Anforderungen erfüllen
1.  Drehzahlen bis 10000upm Messen können bei einem Geberrad mit 60
Zähen währen das dann ja 10MHZ
2.  Ausgabe von Zündung und Einspritzung mit selbiger Frequenz
3.  Messung von Analogsignalen wie Saugrohrdruck und oder Luftmasse



Danke für Eure Antworten
Mit freundlichen Grüßen
Peter

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1) Wie kommst du auf 10Mhz?

   10000 upm macht das in 1 Sekunde ~166 Umdrehungen.
   Bei 60 Zähnen macht das dann 166 * 60 -> 10000 Pulse
   pro Sekunde, also 10 kHz. Da langweilt sich jeder µC.

2) damit kann ich überhaupt nichts anfangen.
   Was soll 'Ausgabe der Zündung und Einspritzung mit
   selbiger Frequenz' bedeuten?

   Oder soll das heissen das sich der µC auch um die
   Zündung und Einspritzung kümmern soll?
   Da langweilt sich der µC dann nicht mehr so.

3) Messung von ...
   Ja. Können die meisten AVR, wenn du entsprechende
   Sensoren hast, die ein entsprechendes Analog-Signal
   liefern. Aber: Der µC soll ja wahrscheinlich nicht nur
   messen, sondern mit den Messwerten auch noch was machen.

Autor: Peter b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Karl
Danke für die Schnelle antwort

1.Danke für die Korrektur hab mich mit Khz und Mhz vertan.
2. Ich möchte mit dem uc im ersten schritt mal anhand der Drehzahl ein
Signal für Zündung und Einspritzung Ausgeben.
Ich werde ein Geberrad mit 60 Zähnrn und einer Lücke Verwenden für die
OT erkennung.
Im 2. Schritt möchte ich Kennelder für Zündung und Einspritzung
Hinterlegen (zb X:Saugrohrdruck und y: Drehzahl z: Zündungswinkel)

Leider bin ich auf dem Gebiet der uController nicht sehr bewandert. Ich
hab vor Jahren mal in der Schule einen 8051 mit C und Assembler
prorammiert welcher uc würde sich am bsten für mein Problem eignen?

Wie gehe ich am besten an die Sache rann?


mfg

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist es bei einer Motorsteuerung nicht sinnvoll die Impulse den Zylindern
(falls mehrere) zuzuordnen und die Zeiten zwischen den jeweiligen
auszuwerten? Dann habe ich z.B. eine Bewertung der Kompression und der
Kolbenbeschleunigung. Ebenso kann anhand der Impulzahl der Zündwinkel
und Einspritzzeitpunkt zugeordnet werden (für jeden Zylinder extra
natürlich). Meines Wissens machen das die Autohersteller so. Impulse
zählen und Zeit messen ist per µC einfach und geht beim AVR in den
MHz-Bereich. Die Drehzahl ist nur ein Nebenprodukt.

Autor: Peter b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thilo

Die Lücke im Geberrad wird dem OT des 1. Zlinders zugeordnet.Darauf
sollen Sollen sich dann die Ausgaben von Zündung und Einspritung
beziehen so wie bei den Motorsteuerung die um KFZ verwedet werden.
Kompression braucht eigentlich nicht bewertet werden. Um den Motor mal
zum laufen zu bringen reicht zündung und einspritzung mal "grob"
mittels drehtzahl éinzustelln. Natürlich muss man wissen wann welcher
zlinder im ot ist.
Als 2.schritt kann man dann die Last zzb duch saugrohrdruck oder
Lutmasse ins spiel bringen (Kennfeld)

mfg

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du ein Geberrad (z.B. das Schwungrad mittels Hallsensor) mit 60
Zänen benutzt, bekommst Du bei einem 4-Zylinder-Motor logischerweise
120 Impulse für alle 4 Takte (2 Umdrehungen). Jetzt brauchst Du nur
noch die Impulse zählen: 0 bis 14 und 60 bis 74 wäre Zylinder 1, wobei
in 0 bis 14 Zündung und Einspritzung stattfindet (1. Umdrehung), 60 bis
74 ist der Abgasausstoß des 1. Zylinders (2. Umdrehung). Die
Impulserfassung muss unbedingt Interruptgesteuert stattfinden, da diese
Geschichte zeitkritisch ist! Saugrohrdruck und Luftmasse sind wohl
Analogwerte und können etwas verzögert gemessen und ausgewertet werden.
Den berechneten Zündimpuls musst Du dann nur noch beim richtigen Impuls
laut Kennfeld (Frühzündung, also vor 0) ausgeben. Probier's mal an
einem alten Rasenmäher, das funktioniert prima!

Autor: Peter b (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thilo

Danke für die Antwort. Genau so wie du es beschreiben hast hab ich es
auch vor. Motor hab ich auch schon ausm alten ford. Mir fehlen nur die
ucontroller kentnisse. Welchen könnt ich da am besten nehmn.
Mir währ am liebsten wenn ich ihn in c programmieren könnt da ich da
schon bischen erfahrung habe, ich weis das Assembler schnell ist wie c

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein 'Lieblingsprozessor' ist momentan der ATmega32, hat genügend
Reserven und läuft mit 16MHz. Kommt natürlich drauf an was Du alles
'reinpacken willst, evtl. ist der ATmega8 auch i.O. Als
Programmieroberfläche in C bin ich persönlich auf WinAVR eingeschossen,
ist natürlich subjektiv. Preis-Leistungsverhältnis stimmt halt, weil
Freeware, grins!
Ach ja: Motorsteuerungen, Endstufen, Hallsensoren oder ähnliche
vibrationsbelastete Schaltungen in Muffengießharz (dauerelastisch)
vergießen, spart später viel Ärger!
Ich wünsch' Dir viel Spaß mit der Aufgabe, ist echt interessant!

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, den OT würde ich besser mit einem 2. Sensor machen, Lücken
können auch beim Normalbetrieb mal auftreten ('verschluckter'
Impuls), das muss natürlich per SW abgefangen werden. Sicherheit ist
eh' oberstes Gebot, sonst wird's nicht bei einem Motor bleiben!

Autor: Karl-heinz Domnick (kalledom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Am Zahnrad würde ich zwei Sensoren anbringen; abwechselnd ist immer
einer belegt und der andere frei.
Außer in der Zahnlücke, da sind beide frei.
Damit gibt es mehr Sicherheit und eine Zahnlücken-Erkennung.

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gute Idee! Ist halt 'n Problem wenn man die Schwungscheibe
(Anlasserkranz) des Motors benutzt, da sollte es keine 'Zahnlücke'
geben.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich kenn nur 60-2 Geber, es "fehlen" also 2 Zähne.
Der schwierigste Teil der Sache ist die Zündung, du musst sozusagen
schon vorher wissen, wann die Zündung erfolgen soll und dementsprechend
Zündzeitpunkt-Ladezeit mit der Ladung der Zündspule beginnen (bei
Hochleistungszündspulen sind ca. 3ms, wenn ich mich recht erinnere).
Die Zündspule darf keinesfalls in die Sättigung kommen, dann steigt der
STrom stark an und die Endstufe kann Schaden nehmen/Zündspule wird zu
warm. Die Höhe der Bordspannung sollte mit in die Berechnung der
Ladezeit einfliessen, sonst fehlt dir gerade beim Starten Zündenergie.
Eine schöne Vereinfachung: du brauchst für einen 4Zyl. nur 2 Endstufen
und 2 Zündspulen, wenn du Doppelzündspulen verwendest. Der Funke kommt
also immer in 2 Zylindern gleichzeitig, einer zündet, der andere funkt
ins Leere.
Einspritzung ist unkritisch, da es da nicht so auf exaktes Timing
ankommt.
2.Sensor ist Quatsch,  da fehlen keine Signale. Und selbst, das merkt
man doch leicht, da jede Umdrehung neu synchronisiert wird. Fehlt
Beispielsweise 90° nach OT ein Impuls, wird man doch nicht auf Idee
kommen, das wäre ein neuer Synchronimpuls?? Schlimmstenfalls hast du in
der einen Umdrehung einmal einen Zündversatz von 6° - na und? Die
Induktivgeber sind sehr betriebssicher, meiner Meinung nach besser als
Hallgeber. Die können allerdings genauer messen, da beide Flanken
ausgewertet können.
Ich würde dir nicht unbedingt einen AVR empfehlen, sondern such dir
einen Typ, der mehr mit Hardwaretimern machen kann. Dann kannst du ganz
in Ruhe deine Sensoren auslesen, Kennfelder beackern usw. Fertige
Ergebnisse für Zündung und Einspritzung schreibst du dann in die
Timerregister, der Rest läuft dann von alleine.

Autor: Tee oder Kaffee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Elektronisches Motormanagment kann auch brutal simpel sein!
(Zündung nicht integriert, kein Kat.)

Wie bei einem Opel (E-)Kadett GSi(1,8l/115PS)...
Kein Geberrad oder ähnliches.
Nur Luftmengenmesser, Drosselklappenpoti,Temperatursensor und Anschluss
an Klemme 1 der Zündspule für die Drehzahlerfassung.
Eingespritzt wird ins Saugrohr, nähe Zylinderkopf.
Alle Einspritzventile auf einmal. Der Motor holt sich das Gemisch wenn
das Einlassventil öffnet...

Hatte 2 Jahre lang die Krücke.
Ich hasse Opel.

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fahre diesen Motor seit '97, bis auf ein paar kleine Probleme mit dem
Kabelbaum (2 Kabelbrüche, Einspritzventil und Temp-Sensor) habe ich
damit keine Probleme gehabt, nach 251.000 km brachte der Motor ohne
Leistungssteigerung noch 112PS auf die Rolle. Danach wurde aber ein
neuer Motor aufgebaut Ergebniss 158PS, der wurde dann später für die
Aufladung umgebaut. Andere Kolben, Pleuel, Verdichtugn runter....
Am Motor gibts wirklich nichts auszusetzen, die Einspritzanlage ist
zwar nicht umbedingt das beste aber da kann man halt noch richtig dran
rumspielen ohne die ganze Hardware fürs Chiptuning anschaffen zu
müssen.

Ich will mir aber auch eine andere Einspritz- und Zündanlage bauen.
Dafür soll jetzt erstmal ein kleiner 4-Zyl. 4-Taktmotor auf ein Gestell
gebaut werden um das alles unter richtigen Bedingungen testen zu können.
 Wegen der Handlichkeit will ich mir aber nen Motorradmotor zum basteln
holen.

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@crazy horse:
>2.Sensor ist Quatsch,  da fehlen keine Signale. Und selbst, das merkt
man doch leicht, da jede Umdrehung neu synchronisiert wird. Fehlt
Beispielsweise 90° nach OT ein Impuls, wird man doch nicht auf Idee
kommen, das wäre ein neuer Synchronimpuls?? Schlimmstenfalls hast du
in
der einen Umdrehung einmal einen Zündversatz von 6° - na und? Die
Induktivgeber sind sehr betriebssicher, meiner Meinung nach besser als
Hallgeber. Die können allerdings genauer messen, da beide Flanken
ausgewertet können.<

Der 2, Sensor sitzt nicht auf dem Zahnrad des 1. Sensors. Er gibt nur 1
Impuls pro Umdrehung ab(besser wäre 1 Imp. pro Zylinder). Das macht
schon Sinn, der Einfachheit beim Programmieren wegen (und der
Sicherheit). Induktivgeber sind stark erschütterungsempfindlich (wegen
Festmagnet, bricht leicht), wenn dann sollten es teure vergossene sein.
Die Amplitude ist Drehzahlabhängig, beim Sinussignal dieses Gebers muss
der Nulldurchgang detektiert werden, da es sonst abhängig von der
Drehzahl zu einem Zeitversatz kommt => aufwendig. Wenn Dich ein
Zündwinkelversatz von 6° bei allen Zylindern für 1 Umdrehung nicht
stört möchte ich mal hoffen dass Du keine Motoren verkaufst, das ist
schlicht und ergreifend Pfusch!
Atmel-µC nehme ich weil ich mich drauf eingeschossen habe, ist deshalb
'ne Subjektive Meinung. Die Doppelzündspule hat den Nachteil dass die
Haltbarkeit der Zündkerzen halbiert wird (doppelte Zündvorgänge). Bei
guten Motorsteuerungen wird auch die Zündspannung geregelt, schon
deshalb ist eine optimale bestromung der Zündspule Pflicht.

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haltbarkeit der Kerzen sehe ich kein Problem entweder Silber oder
Platinelektroden nehmen. Ein weitere Vorteil der Doppelspulenzündung
ist es das gerade wegen der Zündung in den Auslaßtrakt die Kerzen nicht
so schnell naß werden (gerade bei Motoren mit scharfen Wellen) wo die
Gemischbildung bei niedrigen Drehzahlen durch die geringe Strömung Müll
ist ist das sehr vorteilhaft gerade im Winter.

Ich denke eher das die Hallgeber das einfachere/bessere ist, dieser hat
nämlich nen Schmitt-Trigger integriert. Die Induktivgeber werden im STG
nochmal durch nen Schmitt-Trigger gejagt. Außerdem liefert der
Hallgeber annähern Batteriespannung unabhängig wie schnell der Motor
sich dreht gerade deshalb muss beim Induktivgeber nochmal verstärkt
werden. Gibt da extra nen IC für der die Verstärkung als auch dn
Schmitt-Trigger drin hat, glaube LM1801 oder 1805.

Probleme mit Hallgebern kenne ich eigentlich nur beim 3er Golf aber da
liegt es weniger am Sensor sondern an der Kabelverlegung, kurz nach dem
Stecker erleiden die Teile sehr oft nen Kabelbruch.

Die Zündspannung geregelt? Diese wird eigentlich immer konstant hoch
gehalten. Die aktuellen Steuergeräte zünden mehrmals hintereinander
wobei die Zündfunken nach dem Hauptzündfunken mit geringeren
Schließzeiten erzeugt werden.

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die Zündspannung geregelt? Diese wird eigentlich immer konstant hoch
gehalten. Die aktuellen Steuergeräte zünden mehrmals hintereinander
wobei die Zündfunken nach dem Hauptzündfunken mit geringeren
Schließzeiten erzeugt werden.<

Das meinte ich mit geregelt.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thilo:
wenn du wüsstest, was ich schon so mit Motoren gemacht habe, hättest du
keinen Ton gesagt.
Ich baue etliche Sachen, die im ziemlich hochpreisigen Segment (Porsche
GT2-Cup) bestens laufen.
Selbstverständlich ist ein Zündversatz von 6° nicht tolerabel, aber es
passiert überhaupt nichts, wenn das einmal bei vielen tausend
Umdrehungen passieren würde, noch dazu, da es in Richtung Spätzündung
gehen würde, wenn man sklavisch dem Impulsgeber folgen würde. Es ging
darum, dass hier Angst gemacht wurde, nicht erkannte Impulse würden zum
Motorschrott führen. Hinzu kommt: ist das alles eine Frage der Software,
man braucht überhaupt nicht jeden einzelnen Impuls. Da wird auch viel
mit Plausibilitätsprüfung gemacht.
Wir reden hier von Zündung und Einspritzung, nicht von
Ventilsteuerung!
Definitiv sind Induktiv-Geber zuverlässiger als Hallgeber, da kannst du
sabbeln, was du willst. Ich kann dir ja mal die Kisten fehlerhafter
Sensoren zukommen lassen. Da sind ca. 5mal mehr Hallgeber als
Induktivsensoren drin.
Und das der Nulldurchgang (und nur dieser) ausgewertet wird, war für
mich so selbstverständlich, dass ich sowas gar nicht erwähnt habe. Kein
Mensch wertet die Spannung aus.

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein Induktivgeber erzeugt halt seine Spannung selbst, ein Hallgeber
bekommt eine Zugeführt die er dann unterbricht oder durchschaltet. Ein
Kabelbruch kann ihn z.b. killen wenn der Augangs nämlich auf Masse
schlägt ist er hin. Das kann beim Induktivgeber nicht passieren da die
Energie viel zu gering ist als das es die Spule durchhauen würde.

Ich will mich nicht streiten aber für mich ist ein Hallsensor absolut
verläßlich, es sei den man killt ihn durch einen Kurzschluß oder durch
die Versorgungsspannung wenn diese nicht aufbereitet ist und die
größten Spikes durchschlagen.

Darf man fragen was für ein Einspritzsytem bei diesen GT-2 zum Einatz
kommt also ist es was spezielles oder Seriensteuergeräte mit anderen
Datenständen?

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist halt'n Unterschied ob man Motoren für kurzen Spaß tunt oder welche
für lange Lebensdauer präpariert. Die Haltbarkeit von Motoren, die
durch eine (wenn auch vernachlässigbare) Unregelmäßigkeit beim
Zündwinkel behaftet sind, ist halt mal kleiner! Ich präpariere ältere
Standardmotoren für den Einsatz in Stromaggregaten/Pumpen. Das ist'n
Unterschied zu Sport- bzw. Rennwagen!

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Danke erstmal für die viele Antworten.
@Thilo Kannst Du mie ein Starterboard für den ATmega32 empehlen?


@crazy horse: Welchen uC für eine Motorsteuerung würdest Du verwenden?

Autor: Thilo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe damals das STK500 gekauft, aber selten benutzt. Ich baue das
Ganze auf einem Steckbrett auf, den ISP habe ich mir fest drangebaut
(für AVRIsp).
Das erleichtert die Anschaltung von Komponenten, da kurze
Leitungsführung und größere Flexibilität.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.