Zum Inhalt springen

Projekt Verbrauchsanzeige


Empfohlene Beiträge

Geschrieben (bearbeitet)

Die Öffnungsdauer an der Düse direkt zu messen ist, denke ich, einfacher.

Ich greife das Signal aus der Ecu für die Düse parallel ab und messe die Pulsdauer, die eine Düse bekommt.

Der genaue Durchflusswert durch die Düse müsste sich doch anhand des Leitungsdrucks und des Durchmessers der Düse errechenen lassen.

In Verbindung mit der Zeit ergibt das dann eine Spritmenge x für eine Düse.

@horse:

Die Idee mit der Messung an der Düse ist wirklich gut. Aber die benötigte genauigkeit bei einem 24h rennen ist natürlich eine ganz andere als die die ich mir vorstelle.

Die meisten Daten werde ich wahrscheinlich als theoretischen Wert in die berrechnung einfügen, sonst wird das ganze wirklich zu groß.

Solange es Spaß macht, sollte sich die Frage nach dem "Warum?" nicht stellen.

Finde ich

Im übrigen habe ich mich noch gar nicht für eure ganzen Beiträge bedankt.

Danke :flowers:

EDIT:

Da mich das Internet noch bekloppt macht,

kann mir jemand sagen wie ich die Durchflussmenge anhnad von Druck, Zeit und Leitungsdurchmesser berechne?

Bearbeitet von marco-117
Geschrieben

Berechnen ist eher schlecht.

Mit den Düsen ist es so wie mit Ventilen, da braucht man ein Ventil Fluss Diagramm, dort kann man ablesen wieviel Liter bei 21 Grad mit einem Differenzdruck über dem Kegel dann fließen.

So ist es auch mit der Düse , bei der gibt es auch ein Diagram , dort kann man dann ablesen bei wieviel Differenzdruck also bei unseren Speedys ist das dann 3 bar bei dementsprechender ansteuerung fließen.

Deshalb ist es bei den Triples dann schlecht wenn der Pumpendruck nicht mehr stimmt. Entweder justiert man mit den Druck oder aber die Impulsdauer, aber egal was du änderst , man musst du den Motor wieder anpassen.

Eigentlich sollte man den Druck erhöhen und die Impulsdauer verkürzen. Sieht man bei den hohen Drücken in modernen Dieselpumpen, es zerstäupt einfach besser wenn der Druck hoch ist .

Geschrieben

4,3g /s ,damit hast du alles was du brauchst. Die Impuls Zeit willst du messen, also, auf gehts ;-).

Geschrieben

Das wird dann der nächste Schritt sein.

Jetzt hätte ich nur noch gerne den Injector der Triumphmodelle gewusst.

Wenn jemand gerade seine Maschine offen hat, würde er mir dann die Bezeichnung ablesen?

Wenn ich schon dabei bin, dann würde ich das Progamm für mehr als ein Injektor/Motorrad schreiben und mittels Konifgurationsjumper einstellbar machen.

Geschrieben

Ich sach mal: vergiss es.

-jede einzelne Einspritzungen an jeder einzelnen Düse gemessen und summiert

Ich nehme an ihr habt das vor der Düse gemessen. Rein interessehalber, womit und hat die Messung in irgend einer weise Einfluss auf das Einspritzverhalten oder Zerstäubungsbild der Düse?

Geschrieben

Wenn du das Elektrische Signal Lastfrei mißt,

also so, dass kein Strom über dein Messinstrument fliest,

dann öffnet und schließt die Düse wie immer.

Aber selbst wenn ein Strom fließt, hängt es davon ab, ob die ECU diesen zusätzlich bereitstellen kann.

ich gehe mal davon aus, das der Toleranzbereich groß genug ist, das die Ecu die 0,x mA zur messung bereitstellen kann.

Ich hatte 3 Beiträge über dir ein Datenblatt eines injectors gepostet. Da siehst du auch, das dieser nur 8V benötigt um sicher zu öffnen.

Ich habe es noch nicht gemessen, aber ich gehe mal davon aus, das die Ecu 12 V benutzt zur Ansteuereung, das wären dann 4V di man zur Verfügung hätte.

Geschrieben

Bei der 1050er sind es 5V, bei den Sagem ECUs weiss ich es nicht.

Geschrieben (bearbeitet)

Ich habe mal ein Programm zur Messung und errechnug geschrieben.

Es fehlt noch eine Ausgabe.

Wie ich die Mengen und die Strecken Variable vernünftig zurücksetze weiß ich noch nicht...

Gerne nehme ich verbesserungen an.

Taktfrequenz ist übrigends 20MHz

/*
* Verbrauchsanzeige.c
*
* Created: 18.09.2013 17:21:42
* Author: mschulz
*/

#include <avr/io.h>
#include <avr/interrupt.h>
#include <inttypes.h>

#define Radumfang 1878 // Radumfang für 17" Felge mit 190/50 Bereifung
#define Zylinder 4
#define Durchfluss 0.00573 //Durchflussmenge der Einspritzdüse (l/s)

volatile uint32_t PulseInjector = 0;
volatile uint32_t Counter = 0;
volatile uint8_t PulseSpeed = 0;

volatile uint32_t Strecke = 0;

ISR (TIMER0B_OVF_vect) //alle 102,4us wird Interrupt ausgelöst
{
cli();

Counter++;

if(PINB0 > 1) //Prüfe ob Injektor offen
{
PulseInjector++;
}

sei();
}

ISR (INT1_vect) //Interrupt zur bestimmung der gefahrenen Strecke
{
cli();
PulseSpeed ++;
sei();

if (PulseSpeed = 22) //Prüfe ob eine Radumdrehung vollendet
{
Strecke += Radumfang; //Gesamtstrecke wird um einen Radumfang erhöht
PulseSpeed = 0;
}

}


int main(void)
{
TCCR0B = 0b00000001;
DDRB = 0b00000000;
GIMSK = 0b10000000;
MCUCR = 0b00001100;
sei();


float Verbrauch = 0;
float Menge = 0;

while(1)
{
if (Counter >= 1000000) //Alle 102,4s errechnung der Verbrauchten Menge
{
Menge += ((PulseInjector/9765.625)*Durchfluss)*Zylinder; //Berrechnung der Menge in Liter
PulseInjector = 0; //Zurücksetzen der Variablen um einen Überlauf zu vermeiden
Counter = 0;
}


Verbrauch = (Menge / (Strecke/1000)) * 1000;


}


}

Bearbeitet von marco-117
Geschrieben

Was denkste denn, wieviele sich hier für einen C-Code interessieren??

Aber ich zeig dir auf die Schnelle mal ein paar Fehler :-)

ISR (TIMER0B_OVF_vect) //alle 102,4us wird Interrupt ausgelöst
{
cli(); //Quatsch, andere Ints sind eh gesperrt

Counter++;

if(PINB0 > 1) //Prüfe ob Injektor offen // PINB0 kann nur 0 oder 1 sein, niemals grösser als 1
{
PulseInjector++;
}

sei(); // wie oben, wird am Ende der ISR eh automatisch ausgeführt
}

if (PulseSpeed = 22) //Prüfe ob eine Radumdrehung vollendet //soll wohl heissen (PulseSpeed==22)

//besser ist eh (PulseSpeed >= 21)

TCCR0B = 0b00000001; //korrekt, aber nicht lesbar

//besser: TCCR0B = 1<< CS00;
DDRB = 0b00000000;
GIMSK = 0b11000000;
MCUCR = 0b00001111;

Ich glaub nicht, dass du mit der Messung eines Zylinders auskommst. Dazu kommt immer ein Druckabfall, sobald ein Injektor öffnet, beeinflussen sich gegenseitig. Der Druck ist nicht konstant, bei hoher Last (=lange Einspritzzeiten) geht der Druck runter.

Wie schon gesagt - die aktuellen Einspritzzeiten kennt niemand besser und genauer als die ECU. Dennoch bekommen die es nicht hin, daraus eine halbwegs genaue Verbrauchsanzeige daraus zu stricken. Der Druckverlauf ist komplex, die Toleranzen der Einspritzdüsen erheblich. Dein Abtastraster von 100µS ist viel zu grob, du bräuchtest ein eventsystem, das auf 3 Kanälen auf steigende und fallende Flanken reagiert und dir die Werte ablegt.

Glaub es mir - du denkst in dem Fall zu einfach.

Geschrieben

Einer scheint sich mindestens dafür zu interressieren :biggrin:

Danke für die Korrekturen.

Ich werde es dennoch testen, der Aufbau wird nicht sehr Groß, von daher kann es nicht schaden denke ich.

Ich glaube dir allerdings, dass die Genauigkeit leidet oder auch nur unfug angezeigt wird.

Ich habe es mir allerdings in den Kopf gesetzt und will es jetzt auch zu ende bringen...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.
Hinweis: Dein Beitrag muss vom Moderator freigeschaltet werden, bevor er sichtbar wird.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Lädt...
×
×
  • Neu erstellen...