Hallo Community Mit einem Stm32 mit angeschlossenem Eeprom möchte ich einen 2 Zylindermotor betreiben. Protokollfunktion und die Möglichkeit der Programmierung der Zündkennlinie und dem Einspritzkennfeld sind bereits integriert. Beim Zündzeitpunkt benutze ich ein uint8_t array mit 255 Werten für die Drehzahl, da hier bis auf eine kleine Ausnahme die Drosselklappenstellung nicht mit in die Zündkennlinie eingeht. Nun stehe ich vor dem Problem das Einspritzkennfeld zu implementieren. Hierzu hatte ich ein array in Planung das 8 bit werte enthält ( eventuell ist das sogar schon zu gering) und zusätzlich noch zweidimensional ist. Also 100 Werte für die Drosselklappenstellung und 255 für die Drehzahl. So versuchte ich meine Werte zu schreiben, dass sprengt mir aber das Ram und der Stm32 hat nicht wenig davon. Kennt ihr Möglichkeiten, dass Kennfeld etwas speichersparender einzubauen? mfg Jan
Weniger Stützstellen nehmen oder ein neuronales Netz verwenden.
Kenne den Prozessor nicht. Die 8Bit reichen eigentlich schon. Du könntest damit 25,5ms E-Zeit in 100µs schritte einstellen. Ich würde mal ein 16x16 Feld probieren. (das ist schon sehr "üppig" für Hobby-im-Keller) Zu dem Thema fallen mir noch ein : - Du wirst feststellen das sich deltaLuftmasse bei kleinem alpha viel stärker ändert. Du benötigst dort also eine grössere Auflösung als weiter hinten. Es gibt Drehzahlbereiche die sind nicht so interessant. Demnach bietet es sich an die Stützstellen nicht gleichmässig zu verteilen. Selbiges gilt für alpha. Dazwischen wird interpoliert (das lässt sich beliebig verfeinern). Wobei das festlegen auf eine Teilung eigentlich erst sinn macht wenn man weiss wie der Motor tickt...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.