Datalogging

Aus megasquirt.de
Wechseln zu: Navigation, Suche

Datalogging und die Software MSTweak3000[Bearbeiten]

Grundsätzliches zu Datalogs und MSTweak3000[Bearbeiten]

Das Datalogging ermöglicht ihnen die Echtzeit-Variablen der MegaSquirt fortlaufend aufzuzeichnen. Sobald sie das Datalogging durch Anklicken des Punktes Datalog aktivieren, fragt MegaTune den MegaSquirt-Controller auf alle aktiven Inhalte der Titelseite, dem Runtime Display oder der Tuning Seite ab und legt diese Daten in einen Datei ab. Die Datei hat ein „komma-getrenntes“ Format und alle Standards um dem „.xls“-Format gerecht zu werden; diese Datei(en) werden automatisch in Microsoft Excel geöffnet. Diese Datalogs können als Input für die MSTweak3000-Software verwendet werden, welche diese heranzieht um ihre VE-Tabelle zu korrigieren. Für mehr Informationen über MSTweak3000 lesen sie bitte gleichnamiges Kapitel auf [www.msefi.com].

Wenn das Datalogging aktiviert ist enthält die zweite Status-Box fettgedruckt den Hinweis „LOGGING“. Die Anzeige ganz rechts zeigt entweder den Text „CONNECTED“ ausgegraut; was bedeutet das MegaTune aktuell nicht mit der MS kommuniziert, „CONNECTED“ in schwarz; was dann heißt das eine stabile Kommunikation stattfindet, oder „RESET n“ in schwarz; was wiederrum bedeutet das der Controller wegen einem Fehler neu gebootet wurde und zwar „n“-mal seitdem MegaTune ein Verbindung zur MS aufgebaut hat.

Anmerkung: Die Logging-Funktion im Menü „Communications“ hat eine andere Funktion und muss für das oben genannte Aufzeichnen von Echtzeit-Daten nicht aktiviert sein. Um mehr über die „Comm Logging“-Funktion zu erfahren, lesen sie bitte das Hilfe-Menü von MegaTune. Wenn ihr Fahrzeug schon so weit ist, dass man damit fahren kann, verwenden sie das Datalogging um die Daten während der Fahrt aufzuzeichnen. Suchen sie in dem Datalog nach MAP-RPM-Kombinationen, welche nah an einem Schnittpunkt ihrer VE-Tabelle liegen, wenn die Lambdasonde deutlich weniger als 0,5 Volt (sagen wir mal 0,014 V) ausgibt. Erhöhen sie die VE-Werte an diesen Stellen um 10%. Wenn die Lambdasonde deutlich mehr als 0,5 Volt ausgibt (sagen wir 0,825 V), dann verkleinern sie die Werte um 10%. Ein paarmal um den Block fahren sollte schon ausreichen um das ganze ganz gut zum Laufen zu bekommen.

Stattdessen könne sie jedoch auch MSTweak3000 anwenden, welches ihre Datlogs aussortiert und vorschlägt, welche VE-Werte geändert werden sollten. Jeder (der nen Motor am Laufen hat und das Datalogging verwendet) sollte einmal MSTweak3000 getestet haben – es ist sehr leistungsfähig und benutzerfreundlich. Es ermöglicht es ihnen, ihre Datalogs zu lesen, bereinigt die Werte von Ausreißern und erstellt dann eine neue VE-Tabelle. Sie können damit neue Werte für die Zeilen oder Spalten der Tabelle vergeben (speziell für die Drehzahlen bei Spitzen oder Tälern in dem gefilterten Datalog) und die Tabelle dann erneut berechnen lassen; alles mit einem Klick. Nie mehr endloses Starren auf Excel-Tabellen auf der Suche nach Informationen um ihre VE-Tabelle zu optimieren.


MSTweakProbleme.png


MSTweak sucht nach Punkten im Datalog, wo die EGO-Spannung die von ihnen gewählten Grenzwerte überschreitet (eine Schmalband-Lambdasonde gibt ca. 0,45 Volt bei einem stöchiometrischen Gemisch aus, eine Breitband-Lambdasonde liegt da bei 2,5 Volt). Wenn sie im „Closed Loop“ arbeiten, werden automatisch eine Menge solcher Überscheitungen generiert. Deshalb:

  • Wenn sie MSTweak verwenden, gehen sie sicher, dass die EGO Correction der MegaSquirt aktiviert ist. Stellen sie den EGO-Schaltpunkt („switch point“) sowohl in MegaTune als auch in MSTweak auf denselben Wert (0,45 oder 2,5 Volt, je nach Sonden-Typ). Setzten sie den Grenzwert über welcher Drehzahl EGO aktiv ist („Active Above RPM“) auf einen niedrigen Wert herab, sagen wir mal 1.500 U/min. Kontrollieren sie auch, ob nicht irgendein anderer EGO-Parameter („coolant temperature activation“, EGO RPM limit usw.) die Funktion des EGO-Feedbacks verhindert.
  • Stellen sie den Parameter „max ego correction“ auf eine relativ hohe Prozentzahl (sagen wir >50%), damit genug Spielraum da ist um den Schaltpunkt der Sonde zu erreichen (mehr darüber weiter unten).

Beobachten sie mal, wenn sie gerade das Cruisen mitloggen, die EGO-Spannung und sie werden bemerken, wie diese um den Schaltpunkt herum auf- und abspringt. Wenn das der Fall ist, loggen sie genau die Übergangs mit, die MSTweak benötigt.

Übergänge sind die Punkte an denen die aktuelle EGO-Spannung den in MegaTune eingestellten Schaltpunkt passiert. Als Beispiel gehen wir von einer Schmalband-Sonde aus, der Schaltpunkt wurde bei 0,45 Volt gesetzt: Wandert nun die Spannung von 0,4 nach 0,6 Volt, haben sie dort einen Übergangs-Punkt („cross-over point“). Geht die Spannung dann wieder zurück auf 0,425 Volt, haben sie erneut einen Cross-Over-Point.

MSTweak benutzt eben diese Cross-Over-Points als Indikator dafür, dass man sehr nah an dem erwünschten AFR dran ist. Also umso mehr Cross-Over-Points auftauchen, desto sicherer kann sich MSTweak sein, dass das richtige Gemisch eingestellt ist.

Wir benutzen das EGO-Feedback um solche Cross-Over-Points zu erzeugen. Denn das EGO-Feedback macht nichts anderes, als die Spannung wieder nach unten zu bringen, wenn der Schaltpunkt überschritten wurde, und zwar indem die Kraftstoffmenge verringert wird. Im Umkehrschluss wird versucht die Spannung anzuheben, wenn der Schaltpunkt unterschritten wurde. Das EGO-Feedback macht eigentlich nichts anderes, als Cross-Over-Points zu erzeugen.

Der Parameter „ignition events per step“ bietet die Möglichkeit das Ansprechen von EGO zu verlangsamen und zu „beruhigen“, also um zu verhindern das zu schnell reagiert wird. Das kann sonst zu einem Schwingvorgang führen. Der Parameter „step size“ soll eigentlich dasselbe bewirken. Größere Schritte führen zu einer kürzeren Reaktionszeit, allerdings können größere Schritte auch dazu führen, dass das erwünschte Gemisch sich nicht genau einstellen lässt.

Anhand der in der Datei aufgezeichneten Übergangs-Punkte der Lambdasonde ermittelt MSTweak3000, welcher VE-Wert ein AFR von 14,7 erzielt. MSTweak3000 erstellt ihnen eine überarbeitete VE-Tabelle, welche dann die passenden VE-Werte enthält um ein AFR von 14,7 : 1 zu erreichen. Wenn sie natürlich ein anderes AFR erhalten wollen, können sie das abschätzen, indem sie die überarbeitete Tabelle hernehmen und diese dann mit dem Verhältnis (stöchiometrisches AFR / erwünschtes AFR) multiplizieren. Beispiel: MSTweak3000 gibt ihnen einen Wert von 50% für die VE-Tabelle vor, sie wollen jedoch ein Verhältnis von 12,5 : 1 erhalten, dann rechnen sie 50 x (14,7 / 12,5) = 59% – diese Ergebnis pflegen sie in ihre Tabelle ein. Sollten sie noch mehr Informationen darüber benötigen, widmen sie sich bitte der MSTweak3000-Software selbst und zugehöriger „help file“. Es sei an dieser Stelle angemerkt, dass die aktuellsten Versionen von MSTweak das Einstellen von AFR-Zielen („targets“) für jede einzelne MAP-Zeile zulässt. Für mehr Einzelheiten, lesen sie bitte das MSTweak3000 Manual.

Wenn alles wie in oben genanntem Beispiel funktionieren soll, müssen alle Parameter konstant sein. Das umfasst auch den „injector offset“, die „injector battery voltage correction“, Req_Fuel für die Durchflussrate der Einspritzdüsen und die „air temperature correction“. Bei der Auflösung mit der wir arbeiten wird man zwar annähernd herankommen, aber bedenken sie, dass eine Schmalbandsonde nur ein AFR von 14,7 : 1 bewerkstelligen kann; jedes andere Verhältnis lässt sich basierend darauf nur abschätzen. Wenn sie jedoch eine Breitbandsonde im Einsatz haben, können sie das aktuelle AFR direkt an der Ausgangsspannung ablesen und diese Ergebnisse direkt in ihrer VE-Tabelle umsetzen.

MSTweak3000 stimmt ihre MegaSquirt nicht für sie ab, aber es schlägt neue VE-Werte für ihre Tabelle vor. Es ist ein Werkzeug um ihre VE-Tabelle zu visualisieren, bessere VE-Werte zu finden und die MAP-Zeilen und RPM-Spalten für ihren Motor optimaler zu platzieren. Behalten sie aber im Hinterkopf, dass sie auf eine gute Lambdasonde angewiesen sind (Breitbandsonden sind hierfür optimal). Zu Beginn setzen sie das „O2 +/- limit“ auf 100% um erst mal eine sehr grobe Tabelle zu erhalten. Wenn ihre Tabelle dann mehr oder weniger abgestimmt ist, sollten 50 – 70% auch schon funktionieren (behalten sie diese hohe Einstellung jedoch während des Abstimmens bei).

Die kritischen Parameter sind der „O2 step%“ und die „ignition events per step“.

  • Wenn sie Bereiche im unteren Drehzahlbereich abstimmen wollen (1.000 – 3.000 U/min), dann stellen sie den EGO step (%) auf 1 und ignition events per step auf 32 (2.000 U/min bei einem V6-Motor ergeben 100 Zündimpulse pro Sekunde = etwa 3% Abänderung pro Sekunde).
  • Wenn sie sich dann dem höheren Drehzahlbereich und einer sehr groben Tabelle widmen: EGO step (%) = 3 und ignition events per step = 64 (ergibt ca. 3,5% Änderung bei einer Drehzahl von 4.500 U/min).
  • Wenn dann die Tabelle bereits einigermaßen optimiert ist stellen sie: EGO step (%) auf 1 und ignition events per step auf 72. Das gibt dem closed loop Regler etwas mehr Stabilität und erlaubt ein besseres Feintuning im hohen Drehzahlbereich.

Fürs Feintuning belassen sie die O2 adjustments per second auf 3 bis 5 stehen. Für eine grobe Bereinigung der VE-Tabelle stellen sie diese aber auf 5 bis 10 pro Sekunde (was aber auch vom Zustand der Sonde abhängt; bei einer alten Sonde sollten sie tiefere Werte wählen).

Wenn die Tabelle dann optimiert ist, stellen sie folgendes ein:

  • EGO+- limit (%) = 5% (es kann auch höher gestellt werden, je nachdem wie fragwürdig die Werte der Tabelle sind
  • EGO step (%) = 1
  • Ignition events stellen sie auf einen Wert, der bei einer Cruising-Geschwindigkeit pro Sekunde etwa 4 Schritte zulässt.

Die O2 adjustments per second lassen sich folgendermaßen berechnen:

O2 adjustments per second=[(Drehzahl/120)xZylinderzahl]/ignition events per step

Der Datalog enthält ein Feld namens “EngineBit”. An dessen Werten lässt sich ablesen, ob gerade beschleunigt wurde, ob der Motor im warm-up war usw. Zu wissen ob zu einem bestimmten Zeitpunkt die accel-enrichment, die warm-up-enrichment o.ä. aktiv war, kann bei einer Fehlersuche extrem hilfreich sein.

Das EngineBit setzt sich aus 6 Bits zusammen. Die Stelle (bzw. Bit) ganz rechts signalisiert ob der Motor läuft oder nicht. Steht hier eine 1 (000001) läuft der Motor, steht da eine 0 (000000) ist der Motor aus. Die Stelle links daneben (2. von rechts) steht fürs Anlassen („cranking“); 000010 = cranking. So sehen die Felder im Einzelnen aus:

EngineBit.png

Hier die Anmerkung, dass der einzige passende Wert des EngineBits die 1 ist, wenn man versucht Werte von einer Lambdasonde zu lesen (1 = Motor läuft; keine Anreicherung aktiv). Im Anschluss sind Beispiele für die Bedeutung der Werte:

EngineBitExamples.png


Man kann sich den Inhalt eines Datalogs in graphischer Form anzeigen lassen; hierfür verwendet man den MegLogViewer. Diese Software kann sowohl auf Schmalband- als auch auf Breitband-Sonden eingestellt werden. Durch verwenden des Viewers kann man Trends im Datalog und problematische Bereiche viel leichter erkennen, als in einer Excel-Tabelle.




Die Verwendung der Datalogs fürs Tuning und für die Fehlersuche[Bearbeiten]

Unten sind ein paar Screenshots vom MSLVV wie er gerade Datalogs mit unterschiedlichen Konditionen aufzeigt.


MLV 1.png

Die Abbildung oberhalb ist ein Beispiel für einen guten Datalog. Alle Sensoren funktionieren. MAP und RPM steigen mit Drosselklappenstellung und sonst nicht.


MLV 2.png

Diese Abbildung zeigt ein Datalog welches die klassischen „tach spikes“ enthält. Man kann sehen dass die Drehzahl (RPM) sehr stark anzusteigen scheint, bei gleichbleibender Drosselklappenstellung. Derjenige der diesen Motor abgestimmt hat, hat sein Bestes gegeben indem er die „accel enrichments“ auf ein Minimum reduziert hat (ansonsten würden die Pulsbreite „PW“ und der „duty cycle“ sehr stark ansteigen. Allerdings wäre die bessere Lösung gewesen, das „tach“-Signal in den Griff zu bekommen.


MLV 3.png

Das Beispiel oben zeigt was passiert, wenn der „TPSdot“-Parameter zu niedrig gewählt wurde (kleiner ~1.0 kann man als klein bezeichnen). Eine gewöhnliche Menge an Störsignalen („noise“) in den TPS-Signalen kann schon die „accel enrichment“ auslösen, was zum starken Ansteigen der Pulsbreite führt. Das Ergebnis ist ein sehr fettes Gemisch und ein schlecht laufender Motor, welcher sehr schlecht aufs Abstimmen anschlägt. Das Problem löst man, indem man den Parameter „TPSdot“ zwischen 1.0 und 2.0 stellt.


MLV 4.png

Obiges Beispiel zeigt ein stark rauschendes („noisy“) Signal. Im Gegensatz zu dem vorhergehenden Beispiel jedoch ist der TPSdot angemessen gewählt, allerdings produziert das Drosselklappenpoti (TPS) selbst bzw. die zugehörigen Leitungen eine Menge Störsignale. Möglicherweise liegt das an einer losen Verbindung, die Leitungen sind zu nahe an den Zündkabeln oder –spule verlegt, oder das TPS selbst ist beschädigt. Jedenfalls sorgt auch das für zusätzliche „accel enrichment“, was bekanntlich das Abstimmen sehr schwer macht.


MLV 5.png

Hier versteckt sich ein ziemlich raffiniertes Problem. Der CLT (Kühlwasser-Temperaturgeber) ist defekt. Wenn sie unten im Diagramm nachsehen, werden sie bemerken das er bei -40°F festhängt. Da die Linie des CLT unten am Diagramm und konstant verläuft, kann man sie sehr leicht übersehen. Trotzdem sorgt das für jede Menge „warm-up enrichment“ und macht es schwer die „warm-up“-Parameter abzustimmen. Läge derselbe Fehler am IAT (Ansaugluft-Temperaturgeber) vor, wären die Auswirkungen noch schlimmer, da die MS diesen Wert für die Berechnung der Einspritzmenge selbst schon benötigt.


MLV 6.png

Der Screenshot hier ist ein sehr kniffliges Beispiel eines Datalogs, welcher zeigt wie der Ego einen instabilen Leerlauf verursacht. Man kann das daran erkennen, dass in den Bereichen in denen der EGO von der Schmalbandsonde fettes Gemisch anzeigt (größer 0,45V) der MAP runtergeht und in den Bereichen mit magerem Gemisch der MAP raufgeht. In diesem Fall sollte es helfen, wenn man die VE-Werte im Leerlauf anfettet und die EGO Correction im Leerlauf abschaltet (das geschieht indem man den EGO aktiv schaltet wenn er eine Drehzahl ein paar hundert Umdrehung oberhalb des Leerlaufs überschreitet.


Quelle: MegaManual unter http://www.megamanual.com/index.html