-
Die Erfindung betrifft ein Betriebsverfahren für eine elektronische Motorsteuerung zur Ansteuerung von Aktoren von Einspritzventilen in einer Brennkraftmaschine gemäß Anspruch 1, sowie eine entsprechende Motorsteuerung gemäß Anspruch 9.
-
Bei herkömmlichen Brennkraftmaschinen mit Einspritzanlagen werden die Aktoren (z. B. Piezoaktoren) der einzelnen Einspritzventile jeweils durch ein elektronisches Steuersystem angesteuert, wobei das Steuersystem eine echtzeitfähige, hardwarenahe Basissoftware und eine übergeordnete und nicht-echtzeitfähige Applikationssoftware umfasst.
-
Die übergeordnete Applikationssoftware legt hierbei entsprechend dem gewünschten Betriebsverhalten der Einspritzventile einen Arbeitsdatensatz fest und übergibt diesen Arbeitsdatensatz zyklisch an die Basissoftware, wobei die Übergabe des Arbeitsdatensatzes von der Applikationssoftware an die Basissoftware beispielsweise zeitsynchron oder synchron zur Kurbelwellenstellung der Brennkraftmaschine erfolgen kann.
-
Die hardwarenahe Basissoftware generiert dann anhand des von der Applikationssoftware übernommenen Arbeitsdatensatzes in Echtzeit Steuersignale für einen Mikrocontroller, der die einzelnen Aktoren der Einspritzventile entsprechend ansteuert.
-
Problematisch ist hierbei eine mögliche software- oder hardware-bedingte Fehlfunktion der Basissoftware, die beispielsweise zu einem Ausbleiben der Einspritzung führen kann, wenn eine Zustandsmaschine (”state machine”) der Basissoftware ihren Zustand nicht mehr ändern kann und mit anderen Worten eingefroren ist.
-
In der
DE 10 2006 017 824 A1 werden komplexe Diagnosesituationen in modernen Fahrzeugen beschrieben. Es geht dabei um ein Diagnoseparadigma, bei dem die modellbasierte und die assoziative Diagnose kombiniert werden. Die grundlegende Idee ist die, ein Modell des entsprechenden Systems in verschiedenen Fehlermodi und in seinem typischen Eingabebereich zu simulieren und eine Simulationsdatenbank anzulegen. Aus der Simulationsdatenbank wird ein vereinfachtes, regelbasiertes Verhaltensmodell erstellt, in dem lange Ursache-Wirkung-Ketten durch deutlich einfachere Assoziationen ersetzt und für eine heuristische Klassifikation der in Frage kommenden Fehler optimiert werden.
-
Aus der
DE 10 2006 048 169 A1 ist ein Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung bekannt, wobei die Steuerung mehrere Ausführungseinheiten aufweist. Dabei wird ein Überwachungsprogramm, beispielsweise ein Momentenüberwachungsprogramm, in einem Vergleichs-Betriebsmodus auf mehreren Ausführungseinheiten des Systems ausgeführt und es werden die bei der Ausführung des Überwachungsprogramms von den Ausführungseinheiten abgegebenen Signale zur Erkennung eines Fehlers miteinander verglichen. Das Überwachungsprogramm wird dabei vorzugsweise durch ein Momenten-Überwachungsprogramm gebildet, das durch ein durch einen Motor erzeugtes Moment überwacht und die Steuerung ist durch eine Motorsteuerung gebildet.
-
Die
EP 1 535 821 A2 zeigt eine Prozessanschaltung für das sichere Betreiben von sicherungstechnischen Einrichtungen, insbesondere für die Ansteuerung von Signallampen, Weichenantrieben, Achszählern, Freimeldeeinrichtungen, Geschwindigkeitsmesseinrichtungen, Fahrsperren und für sichere Kontaktabfragen. Dabei sind miteinander kombinierbare Funktions-Module vorgesehen, deren Funktionalität jeweils unterschiedlichen Prozessanschaltungen gemeinsam sind, insbesondere die Funktionalitäten von Prüfschaltungen, Leistungsschaltungen, Filtern, digitalen Ein- und Ausgängen, Rechnern und Kommunikationsschnittstellen. Es ist zumindest ein Funktions-Modul ein sicherer Rechner, wobei die Kommunikation zwischen dem Rechner und jedem Funktions-Modul-Typ identisch ist, und die Software jedes Funktions-Moduls prozessanschaltungsunabhängig ist. Die Software des Rechners ist eine prozessanschaltungsunabhängige Basissoftware und weist eine prozessanschaltungsunabhängige Anwendungssoftware auf, wobei die Kommunikation mit dem Funktions-Modulen allen durch die Basissoftware erfolgt.
-
Eine allgemeine Übersicht über bekannte Sicherungsstrategien für sicherheitskritische Software im Automobilbereich ist aus Leaphart, Eldeon G. [u. a]: „Survey of Software Failsafe Techniques for Safety-Critical Automotive Applications”, in SAE Papers, 2005, S. 1–16, 2005-01-0779, bekannt.
-
Der Erfindung liegt deshalb die Aufgabe zugrunde, ein fehlerhaftes Einspritzverhalten zu vermeiden.
-
Diese Aufgabe wird durch ein erfindungsgemäßes Betriebsverfahren gemäß Anspruch 1 bzw. durch eine Motorsteuerung gemäß Anspruch 9 gelöst.
-
Die Erfindung umfasst die allgemeine technische Lehre, dass im normalen Betrieb die Funktionsfähigkeit der Basissoftware und/oder der die Basissoftware ausführenden Hardware überprüft wird, um einen Fehler zu erkennen, wobei die Überprüfung der Funktionsfähigkeit durch die übergeordnete Applikationssoftware erfolgt.
-
Bei der Erkennung eines Fehlers wird die Basissoftware neu gestartet, damit die Basissoftware anschließend wieder ordnungsgemäß funktioniert.
-
Hierbei besteht die Möglichkeit, dass die Basissoftware getrennt von der Applikationssoftware neu gestartet wird. Es besteht jedoch alternativ auch die Möglichkeit, dass die Basissoftware im Fehlerfall zusammen mit der Applikationssoftware neu gestartet wird.
-
Ferner besteht die Möglichkeit, dass die Basissoftware redundant ausgeführt ist, indem beispielsweise mehrere Softwaremodule der Basissoftware parallel laufen, so dass dann im Fehlerfall von dem fehlerhaften Softwaremodul der Basissoftware auf das andere, mutmaßlich fehlerfreie Softwaremodul der Basissoftware umgeschaltet werden kann.
-
Darüber hinaus besteht auch die Möglichkeit, dass die Applikationssoftware bei einem Fehler der Basissoftware von der Basissoftware auf ein echtzeitfähiges Notprogramm umschaltet, das dann die Ansteuerung der Aktoren übernimmt.
-
Vorzugsweise überprüft die Applikationssoftware die Funktionsfähigkeit der Basissoftware und/oder der die Basissoftware ausführenden Hardware zyklisch, beispielsweise in jedem Einspritzzyklus der Brennkraftmaschine. Ein Einspritzzyklus erstreckt sich hierbei über einen Drehwinkelbereich von 720° der Kurbelwelle der Brennkraftmaschine und entspricht einem Arbeitsspiel einer 4-Takt-Brennkraftmaschine.
-
Alternativ besteht die Möglichkeit, dass die Applikationssoftware die Funktionsfähigkeit der Basissoftware und/oder der die Basissoftware ausführenden Hardware jeweils nach einer bestimmten Zeitspanne überprüft.
-
Weiterhin besteht die Möglichkeit, dass die Applikationssoftware die Funktionsfähigkeit der Basissoftware und/oder der die Basissoftware ausführenden Hardware in jedem Segment eines Einspritzzyklus überprüft, wobei jedes Segment in diesem Sinne einen Kurbelwellenwinkel umfasst, der gleich einem Winkel von 720° ist, geteilt durch die Anzahl der Brennräume der Brennkraftmaschine. Bei einer Brennkraftmaschine mit sechs Zylindern umfasst jedes Segment also einen Winkelbereich der Kurbelwelle von 120°.
-
In einem bevorzugten Ausführungsbeispiel zählt die Applikationssoftware im Rahmen der Funktionsüberprüfung laufend einen Fehlerzähler weiter. Beispielsweise kann die Applikationssoftware den Fehlerzähler in jedem Segment eines Einspritzzyklus inkrementieren, d. h. bei einem 6-Zylinder-Motor jeweils nach einem Kurbelwellenwinkel von 120°.
-
Weiterhin vergleicht die Applikationssoftware den aktuellen Stand des Fehlerzählers mit einem vorgegebenen Grenzwert und detektiert einen Fehler der Basissoftware und/oder der die Basissoftware ausführenden Hardware, wenn der aktuelle Stand des Fehlerzählers den vorgegebenen Grenzwert erreicht oder überschreitet.
-
In diesem Zusammenhang ist zu erwähnen, dass der Fehlerzähler wahlweise herauf oder herunter gezählt werden kann. Falls der Fehlerzähler von der Applikationssoftware heraufgezählt wird, wird ein Fehler detektiert, wenn der aktuelle Stand des Fehlerzählers den vorgegebenen Grenzwert erreicht oder überschreitet. Wenn die Applikationssoftware den Fehlerzähler dagegen herunterzählt, wird ein Fehler detektiert, wenn der aktuelle Stand des Fehlerzählers den vorgegebenen Grenzwert erreicht oder unterschreitet.
-
Weiterhin erzeugt die Basissoftware bei einem fehlerfreien Betrieb vorzugsweise ein Rücksetzsignal, das von der Applikationssoftware abgefragt wird, so dass die Applikationssoftware den Fehlerzähler zurücksetzt, wenn die Applikationssoftware das Rücksetzsignal von der Basissoftware empfängt.
-
Vorzugsweise erzeugt die Basissoftware das Rücksetzsignal in jedem Einspritzzyklus bei einer fehlerfreien Funktion der Aktoren, wobei das Rücksetzsignal beispielsweise die letzte Einspritzung innerhalb eines fehlerfreien Einspritzzyklus anzeigen kann. Das Rücksetzsignal kann deshalb auch als End-of-Cycle-Event (EOC) bezeichnet werden, da es die letzte Einspritzung innerhalb eines Einspritzzyklus anzeigt. Bei einem Fehler der Basissoftware und/oder der die Basissoftware ausführenden Hardware erzeugt die Basissoftware dagegen kein EOC-Signal, da die letzte Einspritzung innerhalb des Einspritzzyklus ausfällt. In diesem Fall wird der Fehlerzähler von der Applikationssoftware laufend weitergezählt, ohne dass ein Rücksetzsignal von der Basissoftware zu einem Rücksetzen des Fehlerzählers führt, so dass der Fehlerzähler schließlich den vorgegebenen Grenzwert erreicht, was zu einer Fehlerdetektion führt.
-
Vorzugsweise zählt die Applikationssoftware den Fehlerzähler in jedem Segment weiter, wobei ein Segment jeweils einen Kurbelwellenwinkel umfasst, der gleich einem Winkel von 720° ist geteilt durch die Anzahl der Brennräume der Brennkraftmaschine. So umfasst ein Segment bei einem 6-Zylinder-Motor beispielweise einen Kurbelwellenwinkel von 120°.
-
Weiterhin ist zu erwähnen, dass der vorgegebene Grenzwert für den Zählerstand des Fehlerzählers vorzugsweise gleich oder größer der Summe der Anzahl der Brennräume der Brennkraftmaschine und der Anzahl der Einspritzbänke der Brennkraftmaschine ist, wobei als Einspritzbank ein Hardware- oder Softwareteil bezeichnet wird, der für die Ansteuerung einer Gruppe von Einspritzventilen zuständig ist. Beispielsweise steuert eine Einspritzbank bei einem 6-Zylinder-Motor mit zwei Zylinderbänken drei Zylinder an. Diese Festlegung des Grenzwertes für den Zählerstand des Fehlerzählers ist sinnvoll, weil zwischen zwei aufeinanderfolgenden und die Rücksetzung des Fehlerzählers bewirkenden EOC-Signalen eine bestimmte Anzahl von Segment-Triggern liegen kann, die jeweils ein Weiterzähnen des Fehlerzählers triggern.
-
So können beispielsweise bei einem 6-Zylinder-Motor mit zwei Einspritzbänken innerhalb eines Kurbelwellenwinkels von 960° maximal 9 Segment-Trigger liegen, die zu einem Inkrementieren des Fehlerzählers führen. Bei einem derartigen Motor ist es deshalb sinnvoll, wenn der Grenzwert für den Fehlerzähler mindestens 10 beträgt.
-
Es empfiehlt sich jedoch, den tatsächlichen Grenzwert auf einen größeren Wert festzusetzen, da die Segment-Trigger und das EOC-Signal in der realen Software einem hardware- und software-abhängigen Jitter (Schwankungen) unterliegen. Dadurch erhöht sich zwar die Erkennungsdauer eines Fehlers, jedoch wird die Fehlererkennungsfunktion dann aber wesentlich sicherer gegen ungewolltes Auslösen eines Neustarts der Basissoftware.
-
Es wurde bereits eingangs zum Stand der Technik erwähnt, dass die Basissoftware vorzugsweise echtzeitfähig ist und die Aktoren der Einspritzventile in Echtzeit ansteuert. Dies bedeutet, dass die Basissoftware hinreichend schnell arbeitet, um die hochdynamischen Steuersignale für die Aktoren zu generieren.
-
Die Applikationssoftware ist dagegen in der Regel nicht echtzeitfähig und gibt den Arbeitsdatensatz deshalb nicht in Echtzeit an die Basissoftware weiter. Dies bedeutet vorzugsweise, dass der von der Applikationssoftware generierte Arbeitsdatensatz für die Basissoftware zumindest innerhalb eines Segments, eines Einspritzzyklus und vorzugsweise sogar über mehrere (z. B. mehr als 2, 3, 4, 5, 10 oder 20) Einspritzzyklen unverändert bleibt. Auch bei dem erfindungsgemäßen System ist die Basissoftware hardware-näher als die übergeordnete Applikationssoftware.
-
Weiterhin ist zu erwähnen, dass die Applikationssoftware den Arbeitsdatensatz für die Ansteuerung der Aktoren vorzugsweise zyklisch mit einer bestimmten Periode festlegt, wobei die Periode beispielsweise vorgegeben sein kann durch einen bestimmten Zeitabstand oder durch eine bestimmte Anzahl von Umdrehungen einer Kurbelwelle oder einer Nockenwelle der Brennkraftmaschine.
-
Ferner ist zu erwähnen, dass die Basissoftware die Aktoren der Einspritzventile vorzugsweise über einen Mikrocontroller ansteuert.
-
Weiterhin ist zu erwähnen, dass die Erfindung nicht beschränkt ist auf die Ansteuerung von Aktoren in einer Einspritzanlage. Vielmehr eignet sich die Erfindung auch zur Ansteuerung anderer elektro-mechanischer Wandler, die beispielsweise in einem Kraftfahrzeug eingesetzt werden.
-
Schließlich umfasst die Erfindung auch eine elektronische Motorsteuerung für eine Brennkraftmaschine mit einer Einspritzanlage, wobei die Motorsteuerung einen Steuerrechner und einen Programmspeicher aufweist, in dem ein Steuerprogramm abgespeichert ist, das bei einer Ausführung auf dem Steuerrechner das vorstehend beschriebene erfindungsgemäße Betriebsverfahren ausführt.
-
Andere vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen enthalten oder werden nachstehend zusammen mit der Beschreibung des bevorzugten Ausführungsbeispiels der Erfindung anhand der Zeichnungen erläutert. Es zeigen:
-
1 ein schematisches Schichtenmodell der Softwarestruktur des erfindungsgemäßen Steuersystems,
-
2 das Betriebsverfahren des erfindungsgemäßen Steuersystems in Form eines Flussdiagramms,
-
3 ein Zeitdiagramm zur Verdeutlichung der Einspritzzyklen einer Zylinderbank eines 6-Zylinder-Motors mit zwei Einspritzbänken,
-
4 den zeitlichen Verlauf eines Fehlerzählers bei einem fehlerfreien Betrieb der Basissoftware, sowie
-
5 den zeitlichen Verlauf des Fehlerzählers bei einem fehlerhaften Betrieb der Basissoftware.
-
1 zeigt in schematisierter Form ein Schichtenmodell eines erfindungsgemäßen Steuersystems 1, das über einen Mikrocontroller 2 Aktoren 3 (z. B. Piezoaktoren) von Einspritzventilen einer Einspritzanlage einer Brennkraftmaschine eines Kraftfahrzeugs steuert. In dem dargestellten Beispiel handelt es sich bei der Brennkraftmaschine um einen 6-Zylinder-Motor, so dass die Einspritzanlage entsprechend sechs Einspritzventile und sechs Aktoren 3 aufweist, die von dem Steuersystem 1 über den Mikrocontroller 2 angesteuert werden. Die einzelnen Aktoren 3 öffnen bzw. schließen hierbei jeweils die einzelnen Einspritzventile der Einspritzanlage, was an sich aus dem Stand der Technik bekannt ist.
-
In dem Steuersystem 1 läuft eine hardware-nahe und echtzeitfähige Basissoftware 4 sowie eine übergeordnete und nichtechtzeitfähige Applikationssoftware 5.
-
Die Applikationssoftware 5 generiert entsprechend dem gewünschten Betriebsverhalten der Aktoren 3 einen Arbeitsdatensatz und gibt diesen zyklisch (d. h. nicht in Echtzeit) an die Basissoftware 4 weiter.
-
Die Basissoftware 4 generiert dann entsprechend dem von der Applikationssoftware 5 übernommenen Arbeitsdatensatz Steuersignale zur Ansteuerung des Mikrocontrollers 2, so dass der Mikrocontroller 2 dann die Aktoren 3 entsprechend dem gewünschten und durch den Arbeitsdatensatz vorgegebenen Betriebsverhalten ansteuert.
-
Bei einem fehlerfreien Betrieb generiert die Basissoftware 4 darüber hinaus jeweils bei der letzten Einspritzung innerhalb eines Einspritzzyklus ein EOC-Signal (EOC: End-of-Cycle), wobei das EOC-Signal von der Applikationssoftware 5 ausgelesen wird. Die Applikationssoftware 5 erkennt dann anhand de EOC-Signals, dass die Basissoftware 4 fehlerfrei arbeitet. Falls die Applikationssoftware 5 dagegen über einen bestimmten Zeitraum hinweg kein EOC-Signal von der Basissoftware 4 empfängt, nimmt die Applikationssoftware 5 einen Fehler der Basissoftware 4 oder der die Basissoftware 4 ausführenden Hardware an und triggert einen Neustart der Basissoftware 4 an. Auf diese Weise wird verhindert, dass die Basissoftware 4 über einen längeren Zeitraum in einem fehlerhaften Zustand verbleibt.
-
Im Folgenden wird nun unter Bezugnahme auf das in 2 gezeigte Flussdiagramm das erfindungsgemäße Betriebsverfahren beschrieben, das von dem Steuersystem 1 gemäß 1 ausgeführt wird.
-
In einem ersten Schritt S1 legt die Applikationssoftware 5 entsprechend dem gewünschten Betriebsverhalten der Aktoren 3 einen Arbeitsdatensatz fest, wobei der Arbeitsdatensatz das gewünschte Einspritzverhalten definiert.
-
Der Arbeitsdatensatz wird dann in einem Schritt S2 von der Applikationssoftware 5 an die Basissoftware 4 übertragen.
-
Die Basissoftware 4 steuert dann den Mikrocontroller 2 in einem Schritt S3 entsprechend dem Arbeitsdatensatz an, den die Basissoftware 4 von der Applikationssoftware 5 erhalten hat. Die Ansteuerung des Mikrocontrollers 2 durch die Basissoftware 4 erfolgt hierbei hochdynamisch in Echtzeit.
-
In einem Schritt S4 überprüft die Applikationssoftware 5 dann zyklisch, ob ein neuer Arbeitsdatensatz generiert werden muss.
-
Falls dies nicht der Fall ist, prüft die Applikationssoftware 5 in einem Schritt S5, ob eine Segmentgrenze erreicht ist. Ein Segment umfasst hierbei einen Kurbelwellenwinkel von 720° geteilt durch die Anzahl der Zylinder der Brennkraftmaschine. In diesem Ausführungsbeispiel mit einem 6-Zylinder-Motor umfasst ein Segment also einen Kurbelwellenwinkel von 120°.
-
Falls die Applikationssoftware 5 in einem Schritt S6 erkennt, dass eine Segmentgrenze erreicht ist, so inkrementiert die Applikationssoftware 5 in einem Schritt S7 einen Fehlerzähler CTR.
-
Anschließend prüft die Applikationssoftware 5 in einem Schritt S8, ob die Basissoftware 4 aufgrund eines fehlerfreien Betriebs ein EOC-Signal generiert.
-
Falls die Applikationssoftware 5 ein EOC-Signal von der Basissoftware 4 empfängt, so geht die Applikationssoftware von einem Schritt S9 zu einem Schritt S10 über, wo der Fehlerzähler CTR auf Null zurückgesetzt wird.
-
Andernfalls geht die Applikationssoftware 5 von dem Schritt S9 zu einem Schritt S11 über, wo die Applikationssoftware 4 den aktuellen Stand des Fehlerzählers CTR mit einem Maximalwert CTRmax = 11 vergleicht. Diese Festlegung des Maximalwerts CTRmax ist sinnvoll, da bei einem 6-Zylinder-Motor mit zwei Zylinderbänken im fehlerfreien Betrieb maximal 9 EOC-Signale auftreten können.
-
Der Maximalwert CTRmax wird also in Abhängigkeit von der Anzahl der Einspritzbänke, und der Anzahl der Zylinder nach folgender Formel berechnet: CTRmax = Zylinderzahl + Anzahl der Zylinderbänke + 1 + Sicherheitsmarge
-
In diesem Ausführungsbeispiel beträgt die Sicherheitsmarge also 2. Dadurch wird mit ausreichender Sicherheit verhindert, dass ein unvermeidbarer Jitter ungewollt einen Neustart der Basissoftware 4 auslöst. Die Sicherheitsmarge kann aber auch größer als 2, 3, 4 oder sogar größer als 5 sein, um Fehldetektionen mit größerer Sicherheit zu gewährleisten.
-
Falls die Applikationssoftware 4 in dem Schritt S12 erkennt, dass der aktuelle Stand des Fehlerzählers CTR den vorgegebenen Maximalwert CTRmax überschreitet, so sendet die Applikationssoftware 5 in einem Schritt S13 ein Triggersignal an die Basissoftware 4, um die Basissoftware 4 neu zu starten. Anschließend geht die Applikationssoftware 5 dann von dem Schritt S13 zu dem Schritt S1 über.
-
3 zeigt die Einspritzzyklen der Zylinder Nr. 1, Nr. 3 und Nr. 5 einer ersten Zylinderbank des 6-Zylinder-Motors. Daraus ist erkennbar, dass die Einspritzzyklen der einzelnen Zylinder jeweils um einen Kurbelwellenwinkel von 240° verschoben sind.
-
Die schraffierten Kästchen zeigen hierbei jeweils den letzten Einspritzvorgang innerhalb eines Einspritzzyklus an und bilden das EOC-Signal, das von der Basissoftware 4 an die Applikationssoftware 5 zurückgemeldet wird.
-
4 zeigt einen fehlerfreien Betrieb der Basissoftware 4, was daran erkennbar ist, dass in jedem Einspritzzyklus jeweils ein EOC-Signal erzeugt wird, was jeweils zur Rücksetzung des Fehlerzählers CTR führt. Aufgrund der regelmäßigen Rücksetzung des Fehlerzählers CTR überschreitet der Fehlerzähler CTR nie den Maximalwert CTRmax = 11, so dass auch kein Fehlerfall erkannt wird.
-
5 zeigt dagegen einen Fehlerfall der Basissoftware 4, so dass in dem ersten Einspritzzyklus des Zylinders 5 die Einspritzung ausbleibt und deshalb kein EOC-Signal erzeugt wird. Das gleiche gilt für die nachfolgenden Einspritzzyklen der beiden anderen Zylinder Nr. 1 und Nr. 3.
-
Demzufolge führen nur die beiden anfänglichen EOC-Signale in den beiden ersten Einspritzzyklen der Zylinder Nr. 1 und Nr. 3 zu einer Rücksetzung des Fehlerzählers CTR. Anschließend wird der Fehlerzähler CTR dagegen nicht mehr zurückgesetzt und überschreitet deshalb schließlich den Maximalwert CTRmax, woraufhin dann die Applikationssoftware 5 einen Neustart der Basissoftware 4 triggert.