-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung Nr. 62/115,293, eingereicht am 12. Februar 2015. Die Offenbarung der obigen Anmeldung ist hier durch Bezugnahme vollständig mit aufgenommen.
-
Diese Anmeldung ist verwandt mit der US-Patentanmeldung Nr. 14/675,828, eingereicht am 1. April 2015, die die Priorität der vorläufigen US-Anmeldung Nr. 62/115,208, eingereicht am 12. Februar 2015, beansprucht. Die Offenbarung der obigen Anmeldung ist hier durch Bezugnahme vollständig mit aufgenommen.
-
GEBIET
-
Die vorliegende Offenbarung bezieht sich auf Brennkraftmaschinen und insbesondere auf Kraftmaschinenregelsysteme und auf Kraftmaschinenregelverfahren für Fahrzeuge.
-
HINTERGRUND
-
Die hier gegebene Hintergrundbeschreibung dient nur zur allgemeinen Darstellung des Kontexts der Offenbarung. Arbeit der vorliegend genannten Erfinder in dem Umfang, in dem sie in diesem Hintergrundabschnitt beschrieben ist, sowie Aspekte der Beschreibung, die nicht auf andere Weise als Stand der Technik zum Zeitpunkt der Einreichung berechtigen, sind gegenüber der vorliegenden Offenbarung weder explizit noch implizit als Stand der Technik anerkannt.
-
Brennkraftmaschinen verbrennen innerhalb von Zylindern ein Luft-Kraftstoff-Gemisch, um Kolben anzutreiben, was ein Antriebsdrehmoment erzeugt. Die Luftströmung in die Kraftmaschine wird über eine Drossel reguliert. Genauer stellt die Drossel die Drosselöffnungsfläche ein, was die Luftströmung in die Kraftmaschine erhöht oder verringert. Während die Drosselöffnungsfläche zunimmt, nimmt die Luftströmung in die Kraftmaschine zu. Ein Kraftstoffregelsystem stellt die Rate, mit der Kraftstoff eingespritzt wird, so ein, dass ein gewünschtes Luft/Kraftstoff-Gemisch zu den Zylindern bereitgestellt wird und/oder dass eine gewünschte Drehmomentausgabe erzielt wird. Das Erhöhen der Menge der Luft und des Kraftstoffs, die für die Zylinder bereitgestellt werden, erhöht die Drehmomentausgabe der Kraftmaschine.
-
In Fremdzündungskraftmaschinen initiiert ein Zündfunken die Verbrennung eines für die Zylinder bereitgestellten Luft/Kraftstoff-Gemischs. In Selbstzündungskraftmaschinen verbrennt die Verdichtung in den Zylindern das Luft/Kraftstoff-Gemisch, das für die Zylinder bereitgestellt ist. Die Fremdzündung und die Luftströmung können die Hauptmechanismen zum Einstellen der Drehmomentausgabe von Fremdzündungskraftmaschinen sein, während die Kraftstoffströmung der Hauptmechanismus zum Einstellen der Drehmomentausgabe von Selbstzündungskraftmaschinen sein kann.
-
Um das Kraftmaschinenausgangsdrehmoment zum Erzielen eines gewünschten Drehmoments zu regeln, sind Kraftmaschinenregelsysteme entwickelt worden. Allerdings regeln herkömmliche Kraftmaschinenregelsysteme das Kraftmaschinenausgangsdrehmoment nicht so genau, wie es gewünscht ist. Ferner stellen herkömmliche Kraftmaschinenregelsysteme kein schnelles Ansprechen auf Regelsignale bereit oder koordinieren sie nicht die Kraftmaschinendrehmomentregelung zwischen verschiedenen Vorrichtungen, die das Kraftmaschinenausgangsdrehmoment beeinflussen.
-
ZUSAMMENFASSUNG
-
In einem Merkmal wird ein Kraftmaschinenregelsystem eines Fahrzeugs offenbart. Ein Drehmomentanforderungsmodul erzeugt auf der Grundlage einer Fahrereingabe eine erste Drehmomentanforderung für eine Fremdzündungskraftmaschine. Ein Drehmomentumsetzungsmodul setzt die erste Drehmomentanforderung in eine zweite Drehmomentanforderung um. Ein Modul für die modellprädiktive Regelung (MPC-Modul) führt auf der Grundlage der zweiten Drehmomentanforderung, eines Modells der Kraftmaschine, einer Tableaumatrix und einer Basislösungsmatrix mehrere Iterationen aus, um einen aktuellen Satz von Sollwerten zu bestimmen. Jede der Iterationen enthält in dem MPC-Modul: das Bestimmen, ob die Basislösungsmatrix Folgendes ist: nicht in der Standardform, die ein Nicht-Basis-Paar einer primalen und einer dualen Variablen enthält; oder in der Standardform, die ein Basispaar einer primalen und einer dualen Variablen enthält; wenn die Basislösungsmatrix nicht in der Standardform ist, Identifizieren einer ersten Spalte der Tableau-Matrix auf der Grundlage einer ersten Eintragsposition der primalen Variablen des Nicht-Basis-Paars; wenn die Basislösungsmatrix in der Standardform ist und eine oder mehrere primale Variablen der Basislösungsmatrix negativ sind, Identifizieren der ersten Spalte der Tableau-Matrix auf der Grundlage einer zweiten Eintragsposition einer dualen Variablen des Basispaars; und wahlweises Aktualisieren der Basislösungsmatrix auf der Grundlage der ersten Spalte der Tableau-Matrix. Ein Aktuatormodul regelt einen Kraftmaschinenaktuator auf der Grundlage eines ersten des aktuellen Satzes von Sollwerten.
-
In weiteren Merkmalen bestimmt das MPC-Regelmodul den aktuellen Satz von Sollwerten auf der Grundlage von Einträgen der Basislösungsmatrix, wenn die Basislösungsmatrix in der Standardform ist und wenn alle primalen Variablen der Basislösungsmatrix positiv sind.
-
In weiteren Merkmalen bestimmt das MPC-Regelmodul den aktuellen Satz von Sollwerten auf der Grundlage von Einträgen der Basislösungsmatrix, wenn die Basislösungsmatrix in der Standardform ist und wenn alle primalen Variablen der Basislösungsmatrix positiv sind.
-
In weiteren Merkmalen führt das MPC-Regelmodul Folgendes aus, wenn die Basislösungsmatrix in der Standardform ist und wenn alle primalen Variablen der Basislösungsmatrix positiv sind: Es bestimmt jeweils Änderungen für die Sollwerte auf der Grundlage von Einträgen der Basislösungsmatrix; und es bestimmt den aktuellen Satz von Sollwerten jeweils durch Summieren der Änderungen mit einem letzten Satz von Sollwerten.
-
In weiteren Merkmalen identifiziert das MPC-Regelmodul die erste Spalte der Tableau-Matrix auf der Grundlage einer dritten Eintragsposition der dualen Variablen, die mit einer am stärksten negativen primalen Variable gepaart ist, wenn die Basislösungsmatrix in der Standardform ist.
-
In weiteren Merkmalen aktualisiert das MPC-Regelmodul wahlweise die Basislösungsmatrix auf der Grundlage eines folgenden Verhältnisses: einer dualen Variablen der Basislösungsmatrix oder einer primalen Variablen der Basislösungsmatrix; zu einem entsprechenden Eintrag der Tableau-Matrix.
-
In weiteren Merkmalen bestimmt das MPC-Regelmodul für jede duale Variable und für eine primale Variable der Basislösungsmatrix ein Verhältnis zwischen diesem Eintrag der Basislösungsmatrix und dem entsprechenden Eintrag der Tableau-Matrix; identifiziert es ein kleinstes positives der Verhältnisse; und aktualisiert es wahlweise die Basislösungsmatrix auf der Grundlage der Eintragsposition des entsprechenden Eintrags der Tableau-Matrix.
-
In weiteren Merkmalen gibt das MPC-Modul an, dass ein Fehler aufgetreten ist, wenn keines der Verhältnisse positiv ist.
-
In weiteren Merkmalen führt das MPC-Modul die Matrixmultiplikation von Einträgen von Matrizen für vorgegebene Gewichtungswerte, die gleich null sind, nicht aus.
-
In weiteren Merkmalen regelt ein Ladedruckaktuatormodul das Öffnen eines Ladedruckregelventils eines Turboladers auf der Grundlage eines zweiten des aktuellen Satzes von Sollwerten; regelt ein Abgasrückführungs-Aktuatormodul (AGR-Aktuatormodul) das Öffnen eines AGR-Ventils auf der Grundlage eines dritten des aktuellen Satzes von Sollwerten; und regelt ein Phasenstelleraktuatormodul die Phasenlageneinstellung des Einlass- und des Auslassventils auf der Grundlage eines vierten bzw. eines fünften des aktuellen Satzes von Sollwerten. Das Aktuatormodul regelt das Öffnen einer Drosselklappe auf der Grundlage des einen des aktuellen Satzes von Sollwerten.
-
In einem Merkmal wird ein Kraftmaschinenregelverfahren eines Fahrzeugs offenbart. Das Kraftmaschinenregelverfahren umfasst: Erzeugen einer ersten Drehmomentanforderung für eine Fremdzündungskraftmaschine auf der Grundlage einer Fahrereingabe; Umsetzen der ersten Drehmomentanforderung in eine zweite Drehmomentanforderung; Verwenden eines Moduls für die modellprädiktive Regelung (MPC), das mehrere Iterationen ausführt, um auf der Grundlage der zweiten Drehmomentanforderung, eines Modells der Kraftmaschine, einer Tableaumatrix und einer Basislösungsmatrix einen aktuellen Satz von Sollwerten zu bestimmen, wobei jede Iteration enthält: Bestimmen, ob die Basislösungsmatrix Folgendes ist: nicht in der Standardform, die ein Nicht-Basis-Paar einer primalen und einer dualen Variablen enthält; oder in der Standardform, die ein Basispaar einer primalen und einer dualen Variablen enthält; wenn die Basislösungsmatrix nicht in der Standardform ist, Identifizieren einer ersten Spalte der Tableau-Matrix auf der Grundlage einer ersten Eintragsposition der primalen Variablen des Nicht-Basis-Paars; wenn die Basislösungsmatrix in der Standardform ist und eine oder mehrere primale Variablen der Basislösungsmatrix negativ sind, Identifizieren der ersten Spalte der Tableau-Matrix auf der Grundlage einer zweiten Eintragsposition einer dualen Variablen des Basispaars; und wahlweises Aktualisieren der Basislösungsmatrix auf der Grundlage der ersten Spalte der Tableau-Matrix. Außerdem enthält das Kraftmaschinenregelverfahren das Regeln eines Kraftmaschinenaktuators auf der Grundlage eines ersten des aktuellen Satzes von Sollwerten.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner das Bestimmen des aktuellen Satzes von Sollwerten auf der Grundlage von Einträgen der Basislösungsmatrix, wenn die Basislösungsmatrix in der Standardform ist und wenn alle primalen Variablen der Basislösungsmatrix positiv sind.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner das Bestimmen des aktuellen Satzes von Sollwerten auf der Grundlage von Einträgen der Basislösungsmatrix, wenn die Basislösungsmatrix in der Standardform ist und wenn alle primalen Variablen der Basislösungsmatrix positiv sind.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner, wenn die Basislösungsmatrix in der Standardform ist und wenn alle primalen Variablen der Basislösungsmatrix positiv sind: jeweils Bestimmen von Änderungen für die Sollwerte auf der Grundlage von Einträgen der Basislösungsmatrix; und Bestimmen des aktuellen Satzes von Sollwerten jeweils durch Summieren der Änderungen mit einem letzten Satz von Sollwerten.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner das Identifizieren der ersten Spalte der Tableau-Matrix auf der Grundlage einer dritten Eintragsposition der dualen Variablen, die mit einer am stärksten negativen primalen Variable gepaart ist, wenn die Basislösungsmatrix in der Standardform ist.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner das wahlweise Aktualisieren der Basislösungsmatrix auf der Grundlage eines folgenden Verhältnisses: einer dualen Variablen der Basislösungsmatrix oder einer primalen Variablen der Basislösungsmatrix; zu einem entsprechenden Eintrag der Tableau-Matrix.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner für jede duale Variable und für eine primale Variable der Basislösungsmatrix: das Bestimmen eines Verhältnisses zwischen diesem Eintrag der Basislösungsmatrix und dem entsprechenden Eintrag der Tableau-Matrix; das Identifizieren eines kleinsten positiven der Verhältnisse; und das wahlweise Aktualisieren der Basislösungsmatrix auf der Grundlage der Eintragsposition des entsprechenden Eintrags der Tableau-Matrix.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner das Angeben, dass ein Fehler aufgetreten ist, wenn keines der Verhältnisse positiv ist.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner das Nichtausführen der Matrixmultiplikation von Einträgen von Matrizen für vorgegebene Gewichtungswerte, die gleich null sind.
-
In weiteren Merkmalen enthält das Kraftmaschinenregelverfahren ferner: das Regeln des Öffnens eines Ladedruckregelventils eines Turboladers auf der Grundlage eines zweiten des aktuellen Satzes von Sollwerten; das Regeln eines Abgasrückführungs-Aktuatorventils (AGR-Aktuatorventils) auf der Grundlage eines dritten des aktuellen Satzes von Sollwerten; und das Regeln der Phasenlageneinstellung des Einlass- und des Auslassventils auf der Grundlage eines vierten bzw. eines fünften eines aktuellen Satzes von Sollwerten; und das Regeln des Öffnens einer Drosselklappe auf der Grundlage des einen des aktuellen Satzes von Sollwerten.
-
Weitere Bereiche der Anwendbarkeit der vorliegenden Offenbarung gehen aus der ausführlichen Beschreibung, aus den Ansprüchen und aus den Zeichnungen hervor. Die ausführliche Beschreibung und die spezifischen Beispiele sind nur zu Veranschaulichungszwecken bestimmt und sollen den Schutzumfang der Offenbarung nicht einschränken.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Offenbarung wird umfassender verständlich aus der ausführlichen Beschreibung und aus den beigefügten Zeichnungen, in denen:
-
1 ein Funktionsblockschaltplan eines beispielhaften Kraftmaschinensystems ist;
-
2 ein Funktionsblockschaltplan eines beispielhaften Kraftmaschinenregelsystems ist;
-
3 ein Funktionsblockschaltplan eines beispielhaften Luftregelmoduls ist; und
-
4 einen Ablaufplan enthält, der ein beispielhaftes Verfahren zum Lösen eines Optimierungsproblems und zum Bestimmen von Sollwerten zeigt; und
-
5 einen Ablaufplan enthält, der ein beispielhaftes Verfahren zum Regeln einer Drosselklappe, der Phasenlageneinstellung des Einlass- und des Auslassventils, eines Ladedruckregelventils und eines Abgasrückführungsventils (AGR-Ventils) unter Verwendung einer modellprädiktiven Regelung zeigt.
-
In den Zeichnungen können Bezugszeichen wiederverwendet sein, um ähnliche und/oder gleiche Elemente zu bezeichnen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ein Kraftmaschinenregelmodul (ECM) regelt die Drehmomentausgabe einer Kraftmaschine. Genauer regelt das ECM Aktuatoren der Kraftmaschine jeweils auf der Grundlage von Sollwerten, die auf der Grundlage eines angeforderten Betrags des Drehmoments bestimmt werden. Zum Beispiel regelt das ECM die Einlass- und die Auslassnockenwellen-Phasenlageneinstellung auf der Grundlage eines Einlass- und eines Auslass-Soll-Phasenstellerwinkels, eine Drosselklappe auf der Grundlage einer Solldrosselöffnung, ein Abgasrückführungsventil (AGR-Ventil) auf der Grundlage einer Soll-AGR-Öffnung und ein Ladedruckregelventil eines Turboladers auf der Grundlage eines Soll-Ladedruckregelventil-Tastgrads.
-
Das ECM könnte die Sollwerte unter Verwendung mehrerer Einzeleingabe-Einzelausgabe-Controller (SISO-Controller) wie etwa Proportional-Integral-Differential-Controller (PID-Controller) einzeln bestimmen. Allerdings können die Sollwerte so eingestellt werden, dass die Systemstabilität auf Kosten möglicher Kraftstoffverbrauchsverringerungen aufrechterhalten wird, wenn mehrere SISO-Controller verwendet sind. Außerdem können die Kalibrierung und der Entwurf der einzelnen ISO-Controller kosten- und zeitaufwändig sein.
-
Das ECM der vorliegenden Offenbarung erzeugt die Sollwerte unter Verwendung einer modellprädiktiven Regelung (MPC). Genauer bestimmt das ECM optimale Sollwerte durch iteratives Lösen eines beschränkten quadratischen Optimierungsproblems jeder Regelschleife. Das ECM der vorliegenden Offenbarung löst das Optimierungsprogramm auf recheneffiziente Weise.
-
Nun anhand von 1 ist ein Funktionsblockschaltplan eines beispielhaften Kraftmaschinensystems 100 dargestellt. Das Kraftmaschinensystem 100 enthält eine Kraftmaschine 102, die ein Luft/Kraftstoff-Gemisch verbrennt, um auf der Grundlage einer Fahrereingabe von einem Fahrereingabemodul 104 ein Antriebsdrehmoment für ein Fahrzeug zu erzeugen. Die Kraftmaschine 102 kann eine Benzin-Fremdzündungs-Brennkraftmaschine sein.
-
Durch eine Drosselklappe 112 wird Luft in einen Einlasskrümmer 110 angesaugt. Nur beispielhaft kann die Drosselklappe 112 eine Absperrklappe mit einer drehbaren Klappe enthalten. Ein Kraftmaschinenregelmodul (ECM) 114 regelt ein Drosselaktuatormodul 116, das das Öffnen der Drosselklappe 112 reguliert, um die Menge der in den Einlasskrümmer 110 angesaugten Luft zu regeln.
-
Aus dem Einlasskrümmer 110 wird Luft in Zylinder der Kraftmaschine 102 angesaugt. Obwohl die Kraftmaschine 102 mehrere Zylinder enthalten kann, ist zu Veranschaulichungszwecken ein einzelner repräsentativer Zylinder 118 gezeigt. Nur beispielhaft kann die Kraftmaschine 102 2, 3, 4, 5, 6, 8, 10 und/oder 12 Zylinder enthalten. Das ECM 114 kann ein Zylinderaktuatormodul 120 anweisen, einige der Zylinder wahlweise zu deaktivieren, was unter bestimmten Kraftmaschinenbetriebsbedingungen die Kraftstoffwirtschaftlichkeit verbessern kann.
-
Die Kraftmaschine 102 kann unter Verwendung eines Viertaktzyklus arbeiten. Die im Folgenden beschriebenen vier Takte können als der Ansaugtakt, als der Verdichtungstakt, als der Arbeitstakt und als der Ausstoßtakt bezeichnet werden.
-
Während jeder Umdrehung einer Kurbelwelle (nicht gezeigt) treten innerhalb des Zylinders 118 zwei der vier Takte auf. Somit sind zwei Kurbelwellenumdrehungen notwendig, damit der Zylinder 118 alle vier Takte erfährt.
-
Während des Ansaugtakts wird Luft aus dem Einlasskrümmer 110 durch ein Einlassventil 122 in den Zylinder 118 angesaugt. Das ECM 114 regelt ein Kraftstoffaktuatormodul 124, das die Kraftstoffeinspritzung reguliert, zum Erzielen eines Soll-Luft/Kraftstoff-Verhältnisses. Der Kraftstoff kann in den Einlasskrümmer 110 an einem zentralen Ort oder an mehreren Orten wie etwa in der Nähe des Einlassventils 122 jedes der Zylinder eingespritzt werden. In verschiedenen Implementierungen (nicht gezeigt) kann Kraftstoff direkt in die Zylinder oder in den Zylindern zugeordnete Mischkammern eingespritzt werden. Das Kraftstoffaktuatormodul 124 kann die Einspritzung von Kraftstoff in Zylinder, die deaktiviert sind, anhalten.
-
Der eingespritzte Kraftstoff mischt sich mit Luft und erzeugt in dem Zylinder 118 ein Luft/Kraftstoff-Gemisch. Während des Verdichtungstakts verdichtet ein Kolben (nicht gezeigt) innerhalb des Zylinders 118 das Luft/Kraftstoff-Gemisch. Ein Zündfunkenaktuatormodul 126 setzt auf der Grundlage eines Signals von dem ECM 114 eine Zündkerze 128 in dem Zylinder 118 unter Strom, was das Luft/Kraftstoff-Gemisch zündet. Die Zeiteinstellung des Zündfunkens kann relativ zu dem Zeitpunkt, zu dem der Kolben in seiner obersten Position ist, der als oberer Totpunkt (TDC) bezeichnet wird, spezifiziert werden.
-
Das Zündfunkenaktuatormodul 126 kann durch ein Zeitgebungssignal geregelt werden, das spezifiziert, wie viel vor oder nach dem TDC der Zündfunken erzeugt werden soll. Da die Kolbenposition direkt mit der Kurbelwellendrehung zusammenhängt, kann der Betrieb des Zündfunkenaktuatormoduls 126 mit dem Kurbelwellenwinkel synchronisiert werden. Das Erzeugen des Zündfunkens kann als ein Zündereignis bezeichnet werden. Das Zündfunkenaktuatormodul 126 kann die Fähigkeit aufweisen, die Zeiteinstellung des Zündfunkens für jedes Zündereignis zu variieren. Wenn die Zündfunkenzeiteinstellung zwischen einem letzten Zündereignis und dem nächsten Zündereignis geändert wird, kann das Zündfunkenaktuatormodul 126 die Zündfunkenzeiteinstellung für das nächste Zündereignis variieren. Das Zündfunkenaktuatormodul 126 kann die Bereitstellung des Zündfunkens für deaktivierte Zylinder anhalten.
-
Während des Arbeitstakts treibt die Verbrennung des Luft/Kraftstoff-Gemischs den Kolben von dem TDC weg an, wodurch die Kurbelwelle angetrieben wird. Der Arbeitstakt kann als die Zeitdauer zwischen dem Zeitpunkt, zu dem der Kolben den TDC erreicht, und dem Zeitpunkt, zu dem der Kolben den unteren Totpunkt (BDC) erreicht, definiert werden. Während des Ausstoßtakts beginnt der Kolben, sich vom BDC wegzubewegen, und stößt die Nebenprodukte der Verbrennung durch ein Auslassventil 130 aus. Die Nebenprodukte der Verbrennung werden über ein Auspuffsystem 134 von dem Fahrzeug ausgestoßen.
-
Das Einlassventil 122 kann durch eine Einlassnockenwelle 140 geregelt werden, während das Auslassventil 130 durch eine Auslassnockenwelle 142 geregelt werden kann. In verschiedenen Implementierungen können mehrere Einlassnockenwellen (einschließlich der Einlassnockenwelle 140) mehrere Einlassventile (einschließlich des Einlassventils 122) für den Zylinder 118 regeln und/oder können sie die Einlassventile (einschließlich des Einlassventils 122) mehrerer Bänke von Zylindern (einschließlich des Zylinders 118) regeln. Ähnlich können mehrere Auslassnockenwellen (einschließlich der Auslassnockenwelle 142) mehrere Auslassventile für den Zylinder 118 regeln und/oder können sie die Auslassventile (einschließlich des Auslassventils 130) für mehrere Bänke von Zylindern (einschließlich des Zylinders 118) regeln. In verschiedenen anderen Implementierungen können das Einlassventil 122 und/oder das Auslassventil 130 durch andere Vorrichtungen als Nockenwellen wie etwa durch nockenlose Ventilaktuatoren geregelt werden. Das Zylinderaktuatormodul 120 kann den Zylinder 118 dadurch deaktivieren, dass es das Öffnen des Einlassventils 122 und/oder des Auslassventils 130 sperrt.
-
Der Zeitpunkt, zu dem das Einlassventil 122 geöffnet wird, kann in Bezug auf den Kolben-TDC durch einen Einlassnocken-Phasensteller 148 variiert werden. Der Zeitpunkt, zu dem das Auslassventil 130 geöffnet wird, kann in Bezug auf den Kolben-TDC durch einen Auslassnocken-Phasensteller 150 variiert werden. Ein Phasenstelleraktuatormodul 158 kann den Einlassnocken-Phasensteller 148 und den Auslassnocken-Phasensteller 150 auf der Grundlage von Signalen von dem ECM 114 regeln. Wenn ein variabler Ventilhub (nicht gezeigt) implementiert ist, kann er ebenfalls durch das Phasenstelleraktuatormodul 158 geregelt werden.
-
Das Kraftmaschinensystem 100 kann einen Turbolader enthalten, der ein Heißturbinenrad 160-1 enthält, das durch heiße Abgase, die durch das Auslasssystem 134 strömen, mit Leistung versorgt wird. Außerdem enthält der Turbolader ein Kaltluftverdichterrad 160-2, das durch das Turbinenrad 160-1 angetrieben wird. Das Verdichterrad 160-2 verdichtet Luft, die in die Drosselklappe 112 geleitet wird. In verschiedenen Implementierungen kann ein Lader (nicht gezeigt), der durch die Kurbelwelle angetrieben wird, Luft von der Drosselklappe 112 verdichten und die Druckluft an den Einlasskrümmer 110 liefern.
-
Ein Ladedruckregelventil 162 kann ermöglichen, dass Abgas das Turbinenrad 160-1 umgeht, wodurch der durch den Turbolader bereitgestellte Ladedruck (der Betrag der Einlassluftverdichtung) verringert wird. Ein Ladedruckaktuatormodul 164 kann den Ladedruck des Turboladers durch Regeln des Öffnens des Ladedruckregelventils 162 regeln. In verschiedenen Implementierungen können zwei oder mehr Turbolader implementiert sein und können sie durch das Ladedruckaktuatormodul 164 geregelt werden.
-
Ein Luftkühler (nicht gezeigt) kann Wärme von der Druckluftladung auf ein Kühlmedium wie etwa Kraftmaschinenkühlmittel oder Luft übertragen. Ein Luftkühler, der die Druckluftladung unter Verwendung eines Kraftmaschinenkühlmittels abkühlt, kann als ein Zwischenkühler bezeichnet werden. Ein Luftkühler, der die Druckluftladung unter Verwendung von Luft abkühlt, kann als ein Ladeluftkühler bezeichnet werden. Die Druckluftladung kann Wärme z. B. über Verdichtung und/oder von Komponenten des Auspuffsystems 134 empfangen. Obwohl das Turbinenrad 160-1 und das Verdichterrad 160-2 zu Veranschaulichungszwecken getrennt gezeigt sind, können sie aneinander befestigt sein, was Einlassluft in nächster Nähe von heißem Abgas anordnet.
-
Das Kraftmaschinensystem 100 kann ein Abgasrückführungsventil (AGR-Ventil) 170 enthalten, das wahlweise Abgas zurück zu dem Einlasskrümmer 110 umleitet. Das AGR-Ventil 170 kann sich oberstromig des Turbinenrads 160-1 des Turboladers befinden. Das AGR-Ventil 170 kann auf der Grundlage von Signalen von dem ECM 114 durch ein AGR-Aktuatormodul 172 geregelt werden.
-
Unter Verwendung eines Kurbelwellenpositionssensors 180 kann eine Position der Kurbelwelle gemessen werden. Auf der Grundlage der Kurbelwellenposition kann eine Drehzahl der Kurbelwelle (eine Kraftmaschinendrehzahl) bestimmt werden. Unter Verwendung eines Kraftmaschinenkühlmitteltemperatur-Sensors (ECT-Sensors) 182 kann eine Temperatur des Kraftmaschinenkühlmittels gemessen werden. Der ECT-Sensor 182 kann sich innerhalb der Kraftmaschine 102 oder an anderen Orten, an denen das Kühlmittel umgewälzt wird, wie etwa bei einem Kühler (nicht gezeigt) befinden.
-
Unter Verwendung eines Krümmerabsolutdrucksensors (MAP-Sensors) 184 kann ein Druck innerhalb des Einlasskrümmers 110 gemessen werden. In verschiedenen Implementierungen kann der Kraftmaschinenunterdruck, d. h. die Differenz zwischen dem Umgebungsluftdruck und dem Druck innerhalb des Einlasskrümmers 110, gemessen werden. Unter Verwendung eines Luftmassendurchflusssensors (MAF-Sensors) 186 kann ein Massendurchfluss der in den Einlasskrümmer 110 strömenden Luft gemessen werden. In verschiedenen Implementierungen kann sich der MAF-Sensor 186 in einem Gehäuse befinden, das ebenfalls die Drosselklappe 112 enthält.
-
Das Drosselaktuatormodul 116 kann unter Verwendung eines oder mehrerer Drosselpositionssensoren (TPS) 190 die Position der Drosselklappe 112 überwachen. Unter Verwendung eines Einlasslufttemperatursensors (IAT-Sensors) 192 kann eine Umgebungstemperatur der Luft, die in die Kraftmaschine 102 angesaugt wird, gemessen werden. Außerdem kann das Kraftmaschinensystem 100 einen oder mehrere andere Sensoren 193 wie etwa einen Umgebungsfeuchtigkeitssensor, einen oder mehrere Klopfsensoren, einen Kompressorauslassdrucksensor und/oder einen Drosseleinlassluftsensor, einen Ladedruckregelventil-Positionssensor, einen AGR-Positionssensor und/oder einen oder mehrere andere geeignete Sensoren enthalten. Das ECM 114 kann Signale von den Sensoren verwenden, um Regelentscheidungen für das Kraftmaschinensystem 100 zu treffen.
-
Das ECM 114 kann mit einem Getrieberegelmodul 194 in Verbindung stehen, um das Schalten von Gängen in einem Getriebe (nicht gezeigt) zu koordinieren. Zum Beispiel kann das ECM 114 das Kraftmaschinendrehmoment während einer Gangschaltung verringern. Das ECM 114 kann mit einem Hybridregelmodul 196 in Verbindung stehen, um den Betrieb der Kraftmaschine 102 und den eines Elektromotors 198 zu koordinieren.
-
Der Elektromotor 198 kann ebenfalls als ein Generator fungieren und kann zum Erzeugen elektrischer Energie zur Verwendung durch Fahrzeugelektriksysteme und/oder zur Speicherung in einer Batterie verwendet werden. In verschiedenen Implementierungen können verschiedene Funktionen des ECM 114, des Getrieberegelmoduls 194 und des Hybridregelmoduls 196 in einem oder in mehreren Modulen integriert sein.
-
Jedes System, das einen Kraftmaschinenparameter variiert, kann als ein Kraftmaschinenaktuator bezeichnet werden. Zum Beispiel kann das Drosselaktuatormodul 116 die Öffnung der Drosselklappe 112 einstellen, um eine Soll-Drosselöffnungsfläche zu erzielen. Das Zündfunkenaktuatormodul 126 regelt die Zündkerze zum Erzielen einer Sollzündzeiteinstellung relativ zu dem Kolben-TDC. Das Kraftstoffaktuatormodul 124 regelt die Kraftstoffeinspritzeinrichtungen zum Erzielen von Soll-Kraftstoffbeaufschlagungsparametern. Das Phasenstelleraktuatormodul 158 kann den Einlass- und den Auslassnocken-Phasensteller 148 und 150 zum Erzielen von Soll-Einlassnocken-Phasenstellerwinkeln bzw. Soll-Auslassnocken-Phasenstellerwinkeln regeln. Das AGR-Aktuatormodul 172 kann das AGR-Ventil 170 zum Erzielen einer Soll-AGR-Drosselöffnungsfläche regeln. Das Ladedruckaktuatormodul 164 regelt das Ladedruckregelventil 162 zum Erzielen einer Soll-Ladedruckregelventil-Drosselöffnungsfläche. Das Zylinderaktuatormodul 120 regelt die Zylinderdeaktivierung zum Erzielen einer Sollanzahl aktivierter oder deaktivierter Zylinder.
-
Das ECM 114 erzeugt die Sollwerte für die Kraftmaschinenaktuatoren, um zu veranlassen, dass die Kraftmaschine 102 ein Soll-Kraftmaschinenausgangsdrehmoment erzeugt. Das ECM 114 erzeugt die Sollwerte für die Kraftmaschinenaktuatoren unter Verwendung einer wie im Folgenden weiter diskutierten modellprädiktiven Regelung.
-
Nun anhand von 2 ist ein Funktionsblockschaltplan eines beispielhaften Kraftmaschinenregelsystems dargestellt. Eine beispielhafte Implementierung des ECM 114 enthält ein Fahrerdrehmomentmodul 202, ein Achsdrehmoment-Entscheidungsmodul 204 und ein Vortriebsdrehmoment-Entscheidungsmodul 206. Das ECM 114 kann ein Hybridoptimierungsmodul 208 enthalten. Außerdem enthält das ECM 114 ein Reserven/Lasten-Modul 220, ein Drehmomentanforderungsmodul 224, ein Luftregelmodul 218, ein Zündfunkenregelmodul 232, ein Zylinderregelmodul 236 und ein Kraftstoffregelmodul 240.
-
Das Fahrerdrehmomentmodul 202 kann auf der Grundlage einer Fahrereingabe 255 von dem Fahrereingabemodul 104 eine Fahrerdrehmomentanforderung 254 bestimmen. Die Fahrereingabe 255 kann z. B. auf einer Position eines Fahrpedals und auf einer Position eines Bremspedals beruhen. Außerdem kann die Fahrereingabe 255 auf einem Tempomat beruhen, der ein adaptives Tempomatsystem sein kann, das die Fahrzeuggeschwindigkeit variiert, um eine vorgegebene Verfolgungsentfernung aufrechtzuerhalten. Das Fahrerdrehmomentmodul 202 kann eine oder mehrere Abbildungen der Fahrpedalposition auf das Solldrehmoment speichern und kann auf der Grundlage einer Ausgewählten der Abbildungen die Fahrerdrehmomentanforderung 254 bestimmen.
-
Das Achsdrehmoment-Entscheidungsmodul 204 entscheidet zwischen der Fahrerdrehmomentanforderung 254 und anderen Achsdrehmomentanforderungen 256. Das Achsdrehmoment (das Drehmoment bei den Rädern) kann durch verschiedene Quellen einschließlich einer Kraftmaschine und/oder eines Elektromotors erzeugt werden. Zum Beispiel können die Achsdrehmomentanforderungen 256 eine Drehmomentverringerung enthalten, die durch ein Traktionsregelsystem angefordert wird, wenn ein positiver Radschlupf detektiert wird. Ein positiver Radschlupf tritt auf, wenn das Achsdrehmoment die Reibung zwischen den Rädern und der Straßenoberfläche überwindet und die Räder gegenüber der Straßenoberfläche zu rutschen beginnen. Außerdem können die Achsdrehmomentanforderungen 256 eine Drehmomenterhöhungsanforderung enthalten, um einem negativen Radschlupf entgegenzuwirken, wenn ein Reifen des Fahrzeugs in Bezug auf die Straßenoberfläche in der anderen Richtung rutscht, da das Achsdrehmoment negativ ist.
-
Außerdem können die Achsdrehmomentanforderungen 256 Bremsmanagementanforderungen und Fahrzeugübergeschwindigkeits-Drehmomentanforderungen enthalten. Bremsmanagementanforderungen können das Achsdrehmoment verringern, um sicherzustellen, dass das Achsdrehmoment die Fähigkeit der Bremsen, das Fahrzeug zu halten, wenn das Fahrzeug angehalten wird, nicht übersteigt. Fahrzeugübergeschwindigkeits-Drehmomentanforderungen können das Achsdrehmoment verringern, um zu verhindern, dass das Fahrzeug eine vorgegebene Geschwindigkeit übersteigt. Die Achsdrehmomentanforderungen 256 können ebenfalls durch Fahrzeugstabilitätsregelsysteme erzeugt werden.
-
Das Achsdrehmoment-Entscheidungsmodul 204 gibt auf der Grundlage der Ergebnisse der Entscheidung zwischen den empfangenen Drehmomentanforderungen 254 und 256 eine vorhergesagte Drehmomentanforderung 257 und eine Sofortdrehmomentanforderung 258 aus. Wie im Folgenden beschrieben wird, können die vorhergesagte Drehmomentanforderung und die Sofortdrehmomentanforderung 257 und 258 von dem Achsdrehmoment-Entscheidungsmodul 204 durch andere Module des ECM 114 wahlweise eingestellt werden, bevor sie zum Regeln der Kraftmaschinenaktuatoren verwendet werden.
-
Allgemein gesagt kann die Sofortdrehmomentanforderung 258 ein Betrag des aktuell gewünschten Achsdrehmoments sein, während die vorhergesagte Drehmomentanforderung 257 ein Betrag des Achsdrehmoments sein kann, der kurzfristig notwendig werden kann. Das ECM 114 regelt das Kraftmaschinensystem 100, um ein Achsdrehmoment gleich der Sofortdrehmomentanforderung 258 zu erzeugen. Allerdings können verschiedene Kombinationen von Sollwerten zu demselben Achsdrehmoment führen. Somit kann das ECM 114 die Sollwerte so einstellen, dass ein schneller Übergang zu der vorhergesagten Drehmomentanforderung 257 ermöglicht wird, während das Achsdrehmoment weiterhin bei der Sofortdrehmomentanforderung 258 gehalten wird.
-
In verschiedenen Implementierungen kann die vorhergesagte Drehmomentanforderung 257 auf der Grundlage der Fahrerdrehmomentanforderung 254 eingestellt werden. Unter bestimmten Umständen wie etwa dann, wenn die Fahrerdrehmomentanforderung 254 auf einer vereisten Oberfläche einen Radschlupf verursacht, kann die Sofortdrehmomentanforderung 258 auf weniger als die vorhergesagte Drehmomentanforderung 257 eingestellt werden. In einem solchen Fall kann ein Traktionsregelsystem (nicht gezeigt) über die Sofortdrehmomentanforderung 258 eine Verringerung anfordern, wobei das ECM 114 die Kraftmaschinendrehmomentausgabe auf die Sofortdrehmomentanforderung 258 verringert. Allerdings führt das ECM 114 die Verringerung in der Weise aus, dass das Kraftmaschinensystem 100 die Erzeugung der vorhergesagten Drehmomentanforderung 257 schnell wiederaufnehmen kann, wenn der Radschlupf anhält.
-
Allgemein gesagt kann auf die Differenz zwischen der Sofortdrehmomentanforderung 258 und der (im Allgemeinen höheren) vorhergesagten Drehmomentanforderung 257 als eine Drehmomentreserve Bezug genommen werden. Die Drehmomentreserve kann den Betrag an zusätzlichem Drehmoment (über der Sofortdrehmomentanforderung 258), den das Kraftmaschinensystem 100 mit minimaler Verzögerung zu erzeugen beginnen kann, repräsentieren. Um das aktuelle Achsdrehmoment mit minimaler Verzögerung zu erhöhen oder zu verringern, werden schnelle Kraftmaschinenaktuatoren verwendet. Schnelle Kraftmaschinenaktuatoren sind im Gegensatz zu langsamen Kraftmaschinenaktuatoren definiert.
-
Allgemein gesagt können schnelle Kraftmaschinenaktuatoren das Achsdrehmoment schneller als langsame Kraftmaschinenaktuatoren ändern. Langsame Aktuatoren können auf Änderungen ihrer jeweiligen Sollwerte langsamer als schnelle Aktuatoren ansprechen. Zum Beispiel kann ein langsamer Aktuator mechanische Komponenten enthalten, die mehr Zeit benötigen, um sich in Ansprechen auf eine Änderung eines Sollwerts von einer Position zu einer anderen zu bewegen. Außerdem kann ein langsamer Aktuator durch die Zeitdauer charakterisiert sein, die es dauert, damit sich das Achsdrehmoment zu ändern beginnt, wenn der langsame Aktuator den geänderten Sollwert zu implementieren beginnt. Im Allgemeinen ist diese Zeitdauer für langsame Aktuatoren länger als für schnelle Aktuatoren. Außerdem kann es auch nach Beginn der Änderung länger dauern, bis das Achsdrehmoment vollständig auf eine Änderung in einem langsamen Aktuator anspricht.
-
Nur beispielhaft kann das Zündfunkenaktuatormodul 126 ein schneller Aktuator sein. Fremdzündungskraftmaschinen können Kraftstoffe einschließlich z. B. Benzin und Ethanol durch Anwenden eines Zündfunkens verbrennen. Im Gegensatz dazu kann das Drosselaktuatormodul 116 ein langsamer Aktuator sein.
-
Zum Beispiel kann das Zündfunkenaktuatormodul 126 wie oben beschrieben die Zündfunkenzeiteinstellung für ein nächstes Zündereignis variieren, wenn die Zündfunkenzeiteinstellung zwischen einem letzten Zündereignis und dem nächsten Zündereignis geändert wird. Im Gegensatz dazu dauert es länger, bis Änderungen der Drosselöffnung das Kraftmaschinenausgangsdrehmoment beeinflussen. Das Drosselaktuatormodul 116 ändert die Drosselöffnung durch Einstellen des Winkels der Klappe der Drosselklappe 112. Somit gibt es eine mechanische Verzögerung, während sich die Drosselklappe 112 in Ansprechen auf die Änderung aus ihrer vorhergehenden Position in eine neue Position bewegt, wenn der Sollwert zum Öffnen der Drosselklappe 112 geändert wird. Außerdem unterliegen Luftströmungsänderungen auf der Grundlage der Drosselöffnung Lufttransportverzögerungen in dem Einlasskrümmer 110. Ferner wird eine erhöhte Luftströmung in dem Einlasskrümmer 110 erst als eine Zunahme des Kraftmaschinenausgangsdrehmoments verwirklicht, wenn der Zylinder 118 in dem nächsten Ansaugtakt zusätzliche Luft empfängt, die zusätzliche Luft verdichtet und mit dem Arbeitstakt beginnt.
-
Unter Verwendung dieser Aktuatoren als ein Beispiel kann eine Drehmomentreserve dadurch erzeugt werden, dass die Drosselöffnung auf einen Wert eingestellt wird, der es ermöglichen würde, dass die Kraftmaschine 102 die vorhergesagte Drehmomentanforderung 257 erzeugt. Währenddessen kann die Zündfunkenzeiteinstellung auf der Grundlage der Sofortdrehmomentanforderung 258 eingestellt werden, die kleiner als die vorhergesagte Drehmomentanforderung 257 ist. Obwohl die Drosselöffnung ausreichend Luftströmung erzeugt, damit die Kraftmaschine 102 die vorhergesagte Drehmomentanforderung 257 erzeugt, wird die Zündfunkenzeiteinstellung auf der Grundlage der Sofortdrehmomentanforderung 258 verzögert (was das Drehmoment verringert). Somit wird das Kraftmaschinenausgangsdrehmoment gleich der Sofortdrehmomentanforderung 258.
-
Wenn ein zusätzliches Drehmoment notwendig ist, kann die Zündfunkenzeiteinstellung auf der Grundlage der vorhergesagten Drehmomentanforderung 257 oder eines Drehmoments zwischen der vorhergesagten Drehmomentanforderung und der Sofortdrehmomentanforderung 257 und 258 eingestellt werden. Durch das folgende Zündereignis kann das Zündfunkenaktuatormodul 126 die Zündfunkenzeiteinstellung auf einen Optimalwert zurückstellen, der ermöglicht, dass die Kraftmaschine 102 das vollständige Kraftmaschinenausgangsdrehmoment erzeugt, das mit der bereits vorhandenen Luftströmung erzielt werden kann. Somit kann das Kraftmaschinenausgangsdrehmoment schnell auf die vorhergesagte Drehmomentanforderung 257 erhöht werden, ohne Verzögerungen vom Ändern der Drosselöffnung zu erfahren.
-
Das Achsdrehmoment-Entscheidungsmodul 204 kann die vorhergesagte Drehmomentanforderung 257 und die Sofortdrehmomentanforderung 258 an ein Vortriebsdrehmoment-Entscheidungsmodul 206 ausgeben. In verschiedenen Implementierungen kann das Achsdrehmoment-Entscheidungsmodul 204 die vorhergesagte Drehmomentanforderung und die Sofortdrehmomentanforderung 257 und 258 an das Hybridoptimierungsmodul 208 ausgeben.
-
Das Hybridoptimierungsmodul 208 kann bestimmen, wie viel Drehmoment durch die Kraftmaschine 102 erzeugt werden sollte und wie viel Drehmoment durch den Elektromotor 198 erzeugt werden sollte. Daraufhin gibt das Hybridoptimierungsmodul 208 eine geänderte vorhergesagte Drehmomentanforderung und eine geänderte Sofortdrehmomentanforderung 259 bzw. 260 an das Vortriebsdrehmoment-Entscheidungsmodul 206 aus. In verschiedenen Implementierungen kann das Hybridoptimierungsmodul 208 in dem Hybridregelmodul 196 implementiert sein.
-
Die vorhergesagte Drehmomentanforderung und die Sofortdrehmomentanforderung, die von dem Vortriebsdrehmoment-Entscheidungsmodul 206 empfangen werden, werden aus einem Achsdrehmomentbereich (Drehmoment bei den Rändern) in einen Vortriebsdrehmomentbereich (Drehmoment bei der Kurbelwelle) umgesetzt. Diese Umsetzung kann vor dem, nach dem, als Teil des oder anstelle des Hybridoptimierungsmoduls 208 stattfinden.
-
Das Vortriebsdrehmoment-Entscheidungsmodul 206 entscheidet zwischen Vortriebsdrehmomentanforderungen 290 einschließlich der umgesetzten vorhergesagten Drehmomentanforderungen und der umgesetzten Sofortdrehmomentanforderungen. Das Vortriebsdrehmoment-Entscheidungsmodul 206 erzeugt eine entschiedene vorhergesagte Drehmomentanforderung 261 und eine entschiedene Sofortdrehmomentanforderung 262. Die entschiedenen Drehmomentanforderungen 261 und 262 können durch Auswählen einer gewinnenden Anforderung unter den empfangenen Drehmomentanforderungen erzeugt werden. Alternativ oder zusätzlich können die entschiedenen Drehmomentanforderungen durch Ändern einer der empfangenen Anforderungen auf der Grundlage einer oder mehrerer anderer der empfangenen Drehmomentanforderungen erzeugt werden.
-
Zum Beispiel können die Vortriebsdrehmomentanforderungen 290 Drehmomentverringerungen für den Kraftmaschinenüberdrehzahlschutz, Drehmomenterhöhungen zur Blockierungsverhinderung und Drehmomentverringerungen, die durch das Getrieberegelmodul 194 zur Anpassung an Gangschaltungen angefordert werden, enthalten. Außerdem können die Vortriebsdrehmomentanforderungen 290 ebenfalls zu einer Kupplungskraftstoffabschaltung führen, die das Kraftmaschinenausgangsdrehmoment verringert, wenn der Fahrer in einem Handschaltgetriebefahrzeug das Kupplungspedal niederdrückt, um ein Hochdrehen der Kraftmaschinendrehzahl zu verhindern.
-
Außerdem können die Vortriebsdrehmomentanforderungen 290 eine Kraftmaschinenabschaltanforderung enthalten, die initiiert werden kann, wenn ein kritischer Fehler detektiert wird. Nur beispielhaft können kritische Fehler die Detektion eines Fahrzeugdiebstahls, eines blockierten Startermotors, von Problemen der elektronischen Drosselregelung und unerwartete Drehmomenterhöhungen enthalten. In verschiedenen Implementierungen wählt die Entscheidung die Kraftmaschinenabschaltanforderung als die gewinnende Anforderung aus, wenn eine Kraftmaschinenabschaltanforderung vorhanden ist. Wenn die Kraftmaschinenabschaltanforderung vorhanden ist, kann das Vortriebsdrehmoment-Entscheidungsmodul 206 als die entschiedene vorhergesagte Drehmomentanforderung und als die entschiedene Sofortdrehmomentanforderung 261 und 262 null ausgeben.
-
In verschiedenen Implementierungen kann eine Kraftmaschinenabschaltanforderung die Kraftmaschine 102 getrennt von dem Entscheidungsprozess einfach abschalten. Das Vortriebsdrehmoment-Entscheidungsmodul 206 kann die Kraftmaschinenabschaltanforderung weiterhin empfangen, so dass z. B. geeignete Daten an andere Drehmomentanforderungseinrichtungen rückgekoppelt werden können. Zum Beispiel können alle anderen Drehmomentanforderungseinrichtungen informiert werden, dass sie die Entscheidung verloren haben.
-
Das Reserven/Lasten-Modul 220 empfängt die entschiedene vorhergesagte Drehmomentanforderung und die entschiedene Sofortdrehmomentanforderung 261 und 262. Das Reserven/Lasten-Modul 220 kann die entschiedene vorhergesagte Drehmomentanforderung und die entschiedene Sofortdrehmomentanforderung 261 und 262 einstellen, um eine Drehmomentreserve zu erzeugen und/oder um eine oder mehrere Lasten zu kompensieren. Daraufhin gibt das Reserven/Lasten-Modul 220 die eingestellte vorhergesagte Drehmomentanforderung und die eingestellte Sofortdrehmomentanforderung 263 und 264 an das Drehmomentanforderungsmodul 224 aus.
-
Nur beispielhaft können ein Katalysatoranspringprozess oder ein Kaltstartemissions-Verringerungsprozess eine nach spät verstellte Zündfunkenzeiteinstellung erfordern. Somit kann das Reserven/Lasten-Modul 220 die eingestellte vorhergesagte Drehmomentanforderung 263 über die eingestellte Sofortdrehmomentanforderung 264 erhöhen, um für den Kaltstartemissionsverringerungsprozess einen nach spät verstellten Zündfunken zu erzeugen. In einem anderen Beispiel können das Luft/Kraftstoff-Verhältnis der Kraftmaschine und/oder die Luftmassenströmung wie etwa durch betriebsunterbrechende Diagnoseäquivalenzverhältnistests und/oder durch Spülung einer neuen Kraftmaschine direkt variiert werden. Vor Beginn dieser Prozesse kann eine Drehmomentreserve erzeugt oder erhöht werden, um Verringerungen des Kraftmaschinenausgangsdrehmoments, die sich aus dem Lernen des Luft/Kraftstoff-Gemischs während dieser Prozesse ergeben, schnell auszugleichen.
-
Außerdem kann das Reserven/Lasten-Modul 220 in Erwartung einer künftigen Last wie etwa eines Servolenkungspumpenbetriebs oder des Einrückens einer Klimaanlagenkompressorkupplung (A/C-Kompressorkupplung) eine Drehmomentreserve erzeugen oder erhöhen. Die Reserve für das Einrücken der A/C-Kompressorkupplung kann erzeugt werden, wenn der Fahrer erstmals die Klimatisierung anfordert. Um die Drehmomentreserve zu erzeugen, kann das Reserven/Lasten-Modul 220 die eingestellte vorhergesagte Drehmomentanforderung 263 erhöhen, während es die eingestellte Sofortdrehmomentanforderung 264 unverändert lässt. Wenn daraufhin die A/C-Kompressorkupplung eingerückt wird, kann das Reserven/Lasten-Modul 220 die eingestellte Sofortdrehmomentanforderung 264 um die geschätzte Last der A/C-Kompressorkupplung erhöhen.
-
Das Drehmomentanforderungsmodul 224 empfängt die eingestellte vorhergesagte Drehmomentanforderung und die eingestellte Sofortdrehmomentanforderung 263 und 264. Das Drehmomentanforderungsmodul 224 bestimmt, wie die eingestellte vorhergesagte Drehmomentanforderung und die eingestellte Sofortdrehmomentanforderung 263 und 264 erzielt werden. Das Drehmomentanforderungsmodul 224 kann kraftmaschinentypspezifisch sein. Zum Beispiel kann das Drehmomentanforderungsmodul 224 für Fremdzündungskraftmaschinen gegenüber Selbstzündungskraftmaschinen anders implementiert sein oder andere Regelschemata verwenden.
-
In verschiedenen Implementierungen kann das Drehmomentanforderungsmodul 224 zwischen Modulen, die über alle Kraftmaschinentypen gemeinsam sind, und Modulen, die kraftmaschinentypspezifisch sind, eine Begrenzung definieren. Zum Beispiel können die Kraftmaschinentypen Fremdzündung und Selbstzündung enthalten. Module vor dem Drehmomentanforderungsmodul 224 wie etwa das Vortriebsdrehmoment-Entscheidungsmodul 206 können über die Kraftmaschinentypen gemeinsam sein, während das Drehmomentanforderungsmodul 224 und nachfolgende Module kraftmaschinentypspezifisch sein können.
-
Das Drehmomentanforderungsmodul 224 bestimmt auf der Grundlage der eingestellten vorhergesagten Drehmomentanforderung und der eingestellten Sofortdrehmomentanforderung 263 und 264 eine Luftdrehmomentanforderung 265. Die Luftdrehmomentanforderung 265 kann ein Bremsmoment sein. Das Bremsmoment kann sich auf das Drehmoment bei der Kurbelwelle unter den aktuellen Betriebsbedingungen beziehen.
-
Auf der Grundlage der Luftdrehmomentanforderung 265 werden Sollwerte für die Luftströmung regelnde Kraftmaschinenakuatoren bestimmt. Genauer bestimmt das Luftregelmodul 228 auf der Grundlage der Luftdrehmomentanforderung 265 eine Soll-Ladedruckregelventil-Öffnungsfläche 266, eine Soll-Drosselöffnungsfläche 267, eine Soll-AGR-Öffnungsfläche 268, einen Soll-Einlassnocken-Phasenstellerwinkel 269 und einen Soll-Auslassnocken-Phasenstellerwinkel 270. Das Luftregelmodul 228 bestimmt die Soll-Ladedruckregelventil-Öffnungsfläche 266, die Soll-Drosselöffnungsfläche 267, die Soll-AGR-Öffnungsfläche 268, den Soll-Einlassnocken-Phasenstellerwinkel 269 und den Soll-Auslassnocken-Phasenstellerwinkel 270 unter Verwendung einer modellprädiktiven Regelung, wie sie im Folgenden weiter diskutiert wird.
-
Das Ladedruckaktuatormodul 164 regelt das Ladedruckregelventil 162, um die Soll-Ladedruckregelventil-Öffnungsfläche 266 zu erzielen. Zum Beispiel kann ein erstes Umsetzungsmodul 272 die Soll-Ladedruckregelventil-Öffnungsfläche 266 in einen Soll-Tastgrad 274 umsetzen, der an das Ladedruckregelventil 162 angelegt werden soll, und kann das Ladedruckaktuatormodul 164 auf der Grundlage des Soll-Tastgrads 274 ein Signal an das Ladedruckregelventil 162 anlegen. In verschiedenen Implementierungen kann das erste Umsetzungsmodul 272 die Soll-Ladedruckregelventil-Öffnungsfläche 266 in eine Soll-Ladedruckregelventil-Position (nicht gezeigt) umsetzen und die Soll-Ladedruckregelventil-Position in den Soll-Tastgrad 274 umsetzen.
-
Das Drosselaktuatormodul 116 regelt die Drosselklappe 112, um die Solldrosselöffnungsfläche 267 zu erzielen. Zum Beispiel kann ein zweites Umsetzungsmodul 276 die Soll-Drosselöffnungsfläche 267 in einen Soll-Tastgrad 278 umsetzen, der an die Drosselklappe 112 angelegt werden soll, und kann das Drosselaktuatormodul 116 auf der Grundlage des Soll-Tastgrads 278 ein Signal an die Drosselklappe 112 anlegen. In verschiedenen Implementierungen kann das zweite Umsetzungsmodul 276 die Soll-Drosselöffnungsfläche 267 in eine Solldrosselposition (nicht gezeigt) umsetzen und die Soll-Drosselposition in den Soll-Tastgrad 278 umsetzen.
-
Das AGR-Aktuatormodul 172 regelt das AGR-Ventil 170, um die Soll-AGR-Öffnungsfläche 268 zu erzielen. Zum Beispiel kann ein drittes Umsetzungsmodul 280 die Soll-AGR-Öffnungsfläche 268 in einen Soll-Tastgrad 282 umsetzen, der an das AGR-Ventil 170 angelegt werden soll, und kann das AGR-Aktuatormodul 172 auf der Grundlage des Soll-Tastgrads 282 ein Signal an das AGR-Ventil 170 anlegen. In verschiedenen Implementierungen kann das dritte Umsetzungsmodul 280 die Soll-AGR-Öffnungsfläche 268 in eine Soll-AGR-Position (nicht gezeigt) umsetzen und die Soll-AGR-Position in den Soll-Tastgrad 282 umsetzen.
-
Das Phasenstelleraktuatormodul 158 regelt den Einlassnocken-Phasensteller 148 zum Erzielen des Soll-Einlassnocken-Phasenstellerwinkels 269. Außerdem regelt das Phasenstelleraktuatormodul 158 den Auslassnocken-Phasensteller 150 zum Erzielen des Soll-Auslassnocken-Phasenstellerwinkels 270. In verschiedenen Implementierungen kann ein viertes Umsetzungsmodul (nicht gezeigt) enthalten sein und kann es den Soll-Einlassnocken-Phasenstellerwinkel und den Soll-Auslassnocken-Phasenstellerwinkel in einen Soll-Einlasstastgrad bzw. in einen Soll-Auslasstastgrad umsetzen. Das Phasenstelleraktuatormodul 158 kann den Soll-Einlasstastgrad und den Soll-Auslasstastgrad an den Einlassnocken-Phasensteller 148 bzw. an den Auslassnocken-Phasensteller 150 anlegen. In verschiedenen Implementierungen kann das Luftregelmodul 228 einen Sollüberlappungsfaktor und eine effektive Soll-Verlagerung bestimmen und kann das Phasenstelleraktuatormodul 158 den Einlassnocken-Phasensteller 148 und den Auslassnocken-Phasensteller 150 zum Erzielen des Soll-Überlappungsfaktors und der effektiven Soll-Verlagerung regeln.
-
Außerdem kann das Drehmomentanforderungsmodul 224 auf der Grundlage der vorhergesagten Drehmomentanforderung und der Sofortdrehmomentanforderung 263 und 264 eine Zündfunkendrehmomentanforderung 283, eine Zylinderabschalt-Drehmomentanforderung 284 und eine Kraftstoffdrehmomentanforderung 285 erzeugen. Das Zündfunkenregelmodul 232 kann auf der Grundlage der Zündfunkendrehmomentanforderung 283 bestimmen, wie viel die Zündfunkenzeiteinstellung (die das Kraftmaschinenausgangsdrehmoment verringert) von einer optimalen Zündfunkenzeiteinstellung nach spät verstellt werden soll. Nur beispielhaft kann eine Drehmomentbeziehung umgekehrt werden, um sie nach einer Soll-Zündfunkenzeiteinstellung 286 aufzulösen. Für eine gegebene Drehmomentanforderung (Treq) kann die Soll-Zündfunkenzeiteinstellung (ST) 286 auf der Grundlage von: ST = f–1(TReq, APC, I, E, AF, OT, #) bestimmt werden, wobei APC eine APC ist, 1 ein Einlassventilphasenstellerwert ist, E ein Auslassventilphasenstellerwert ist, AF ein Luft/Kraftstoff-Verhältnis ist, OT eine Öltemperatur ist und # eine Anzahl aktivierter Zylinder ist. Diese Beziehung kann als eine Gleichung und/oder als eine Nachschlagtabelle verkörpert sein. Das Luft/Kraftstoff-Verhältnis (AF) kann das tatsächliche Luft/Kraftstoff-Verhältnis, wie es durch das Kraftstoffregelmodul 240 berichtet wird, sein.
-
Wenn die Zündfunkenzeiteinstellung auf die optimale Zündfunkenzeiteinstellung eingestellt ist, kann das resultierende Drehmoment einer minimalen Verstellung des Zündfunkens nach früh für das beste Drehmoment (MBT-Zündfunkenzeiteinstellung) so nah wie möglich sein. Das beste Drehmoment bezieht sich auf das maximale Kraftmaschinenausgangsdrehmoment, das für eine gegebene Luftströmung erzeugt wird, während die Zündfunkenzeiteinstellung nach früh verstellt ist, während ein Kraftstoff mit einer größeren Oktanzahl als einer vorgegebenen Oktanzahl verwendet wird und während eine stöchiometrische Kraftstoffbeaufschlagung verwendet wird. Die Zündfunkenzeiteinstellung, bei der dies am besten stattfindet, wird als eine MBT-Zündfunkenzeiteinstellung bezeichnet. Zum Beispiel kann sich die optimale Zündfunkenzeiteinstellung wegen der Kraftstoffqualität (wie etwa, wenn Kraftstoff mit einer niedrigeren Oktanzahl verwendet wird) und wegen Umgebungsfaktoren wie etwa der Umgebungsfeuchtigkeit und der Umgebungstemperatur von der MBT-Zündfunkenzeiteinstellung geringfügig unterscheiden. Somit kann das Kraftmaschinenausgangsdrehmoment bei der optimalen Zündfunkenzeiteinstellung kleiner als die MBT sein. Nur beispielhaft kann eine Tabelle optimaler Zündfunkenzeiteinstellungen, die verschiedenen Kraftmaschinenbetriebsbedingungen entsprechen, während einer Kalibrierungsphase des Fahrzeugentwurfs bestimmt werden, wobei der Optimalwert auf der Grundlage der aktuellen Kraftmaschinenbetriebsbedingungen aus der Tabelle bestimmt wird.
-
Die Zylinderabschalt-Drehmomentanforderung 284 kann durch das Zylinderregelmodul 236 verwendet werden, um eine Sollanzahl 287 zu deaktivierender Zylinder zu bestimmen. In verschiedenen Implementierungen kann eine Sollanzahl zu aktivierender Zylinder verwendet werden. Das Zylinderaktuatormodul 120 aktiviert und deaktiviert auf der Grundlage der Sollanzahl 287 wahlweise die Ventile der Zylinder.
-
Außerdem kann das Zylinderregelmodul 236 das Kraftstoffregelmodul 240 anweisen, die Bereitstellung von Kraftstoff für deaktivierte Zylinder anzuhalten, und kann es das Zündfunkenregelmodul 232 anweisen, die Bereitstellung eines Zündfunkens für deaktivierte Zylinder anzuhalten. Außerdem kann das Zündfunkenregelmodul 232 das Bereitstellen des Zündfunkens für einen Zylinder anhalten, wenn ein Kraftstoff/Luft-Gemisch, das in dem Zylinder bereits vorhanden ist, verbrannt worden ist.
-
Das Kraftstoffregelmodul 240 kann die Menge des für jeden Zylinder bereitgestellten Kraftstoffs auf der Grundlage der Kraftstoffdrehmomentanforderung 285 variieren. Genauer kann das Kraftstoffregelmodul 240 auf der Grundlage der Kraftstoffdrehmomentanforderung 285 Soll-Kraftstoffbeaufschlagungsparameter 288 erzeugen. Die Soll-Kraftstoffbeaufschlagungsparameter 288 können z. B. die Sollmasse des Kraftstoffs, die Soll-Einspritzungsanfangszeiteinstellung und die Sollanzahl der Kraftstoffeinspritzungen enthalten.
-
Während des normalen Betriebs kann das Kraftstoffregelmodul 240 in einer Luftführungsbetriebsart arbeiten, in der das Kraftstoffregelmodul 240 durch Regeln der Kraftstoffbeaufschlagung auf der Grundlage der Luftströmung ein stöchiometrisches Luft/Kraftstoff-Verhältnis aufrechtzuerhalten versucht. Zum Beispiel kann das Kraftstoffregelmodul 240 eine Soll-Kraftstoffmasse bestimmen, die eine stöchiometrische Verbrennung liefert, wenn sie mit einer vorhandenen Luftmasse pro Zylinder (APC) kombiniert wird.
-
3 ist ein Funktionsblockschaltplan einer beispielhaften Implementierung des Luftregelmoduls 228. Nun anhand von 2 und 3 kann die Luftdrehmomentanforderung 265 wie oben diskutiert ein Bremsmoment sein. Ein Drehmomentumsetzungsmodul 304 setzt die Luftdrehmomentanforderung 265 von dem Bremsmoment in ein Basisdrehmoment um. Die Drehmomentanforderung, die sich aus der Umsetzung in ein Basisdrehmoment ergibt, wird als eine Basisluftdrehmomentanforderung 308 bezeichnet.
-
Basisdrehmomente können sich auf das Drehmoment bei der Kurbelwelle, das während des Betriebs der Kraftmaschine 102 an einem Dynamometer erzeugt wird, während die Kraftmaschine 102 warm ist und der Kraftmaschine 102 keine Drehmomentlasten durch Zubehör wie etwa durch eine Lichtmaschine und durch einen A/C-Kompressor auferlegt werden, beziehen. Das Drehmomentumsetzungsmodul 304 kann die Luftdrehmomentanforderung 265 z. B. unter Verwendung einer Abbildung oder einer Funktion, die Bremsmomente mit Basisdrehmomenten in Beziehung setzt, in die Basisluftdrehmomentanforderung 308 umsetzen. In verschiedenen Implementierungen kann das Drehmomentumsetzungsmodul 304 die Luftdrehmomentanforderung 265 in einen anderen geeigneten Drehmomenttyp wie etwa in ein indiziertes Drehmoment umsetzen. Ein indiziertes Drehmoment kann sich auf ein Drehmoment bei der Kurbelwelle beziehen, das Arbeit zuzuschreiben ist, die über Verbrennung innerhalb der Zylinder erzeugt wird.
-
Ein MPC-Modul 312 erzeugt unter Verwendung der MPC (modellprädiktiven Regelung) die Sollwerte 266–270, um die Basisluftdrehmomentanforderung 308 zu erzielen. Das MPC-Modul 312 enthält ein Zustandsschätzmodul 316 und ein Optimierungsmodul 320.
-
Das Zustandsschätzmodul 316 bestimmt die Zustände für eine Regelschleife auf der Grundlage eines mathematischen Modells der Kraftmaschine 102, der Zustände der Kraftmaschine von einer vorhergehenden (z. B. der letzten) Regelschleife und der Sollwerte 266–270 von der vorhergehenden Regelschleife. Zum Beispiel kann das Zustandsschätzmodul 316 die Zustände für eine Regelschleife auf der Grundlage der folgenden Beziehungen bestimmen: x(k) = Ax(k – 1) + Bu(k – 1) + Bvv(k – 1); und y(k) = Cx(k), wobei k eine k-te Regelschleife ist, x(k) ein Vektor mit Einträgen, die Zustände der Kraftmaschine 102 für die k-te Regelschleife angeben, ist, x(k – 1) der Vektor x(k) von der k – 1-ten Regelschleife ist, A eine Matrix ist, die konstante Werte enthält, die auf der Grundlage von Eigenschaften der Kraftmaschine 102 kalibriert worden sind, B eine Matrix ist, die konstante Werte enthält, die auf der Grundlage von Eigenschaften der Kraftmaschine 102 kalibriert worden sind, u(k – 1) ein Vektor ist, der Einträge für die während der letzten Regelschleife verwendeten Sollwerte 266–270 enthält, y(k) eine Linearkombination des Vektors x(k) ist, C eine Matrix ist, die konstante Werte enthält, die auf der Grundlage von Eigenschaften der Kraftmaschine 102 kalibriert worden sind, Bv eine Matrix ist, die konstante Werte enthält, die auf der Grundlage von Eigenschaften der Kraftmaschine kalibriert worden sind, und v eine Matrix ist, die gemessene Störungen enthält. Das Modell der gemessenen Störungen enthält Parameter, die das Kraftmaschinenverhalten beeinflussen, aber nicht direkt manipuliert werden können, wie etwa den Umgebungsdruck und/oder die Umgebungstemperatur. Einer oder mehrere der Zustandsparameter können auf der Grundlage der gemessenen oder geschätzten Werte dieser Parameter, die gemeinsam durch Rückkopplungseingaben 330 dargestellt sind, eingestellt werden. Das Zustandsschätzmodul 316 kann die Zustände z. B. unter Verwendung eines Kalman-Filters oder eines anderen geeigneten Typs einer Zustandsschätzeinrichtung bestimmen.
-
Die durch das MPC-Modul 312 ausgeführten Funktionen können allgemein wie folgt beschrieben werden. Für k = 1, ..., N, wobei N eine ganze Zahl größer als eins ist:
- (1) Verwende die obigen Gleichungen und die Rückkopplungseingaben 330, um Schätzwerte der Zustände der Kraftmaschine 102 zum Zeitpunkt k zu erhalten;
- (2) berechne Optimalwerte für die Sollwerte 266–270 für den Zeitpunkt k, um eine Kostenfunktion während der Zeitdauer von dem Zeitpunkt k bis zu einem künftigen Zeitpunkt k + p zu minimieren; und
- (3) stelle die Sollwerte 266–270 nur zum Zeitpunkt k + 1 auf die berechneten Optimalwerte ein. Daraufhin kehre für die nächste Regelschleife zu (1) zurück.
-
Die Zeitdauer zwischen den Zeitpunkten k und k + p bezieht sich auf einen Vorhersagehorizont.
-
Die Kostenfunktion ist das Leistungskriterium, das in dem über dem Vorhersagehorizont in jeder Regelschleife definierten Optimalregelproblem zu minimieren ist. Diese Funktion widerspiegelt die gewünschten Regelziele. Zum Beispiel kann sie die Summe unterschiedlicher Terme, die Nachführungsfehlern entsprechen, z. B. Σi|(u(i) – uref(i))|2 für die manipulierten Variablen zum Nachführen einiger Referenzpositionen, Σi|(y(i) – yref(i))|2 für die geregelten Variablen zum Nachführen einiger gewünschter Sollwerte, der Regelaufwand, z. B. Σi|(u(i))|2 oder Σi|(Δu(i))|2, und ein Nachteilterm für die Beschränkungsverletzung sein. Allgemeiner hängt die Kostenfunktion von manipulierten Variablen y, von Änderungen der manipulierten Variablen von der letzten Regelschleife Δu, von den geregelten Variablen u und von der Beschränkungsverletzungs-Nachteilvariable ε ab. Auf die Sollwerte 266–270 kann als manipulierte Variablen Bezug genommen werden und sie werden durch die Variable u bezeichnet. Auf vorhergesagte Parameter kann als geregelte Variablen Bezug genommen werden und sie können durch die Variable y bezeichnet werden.
-
Ein Aktuatorbeschränkungsmodul 360 (2) kann Aktuatorbeschränkungen 348 für die Sollwerte 266–270 einstellen. Zum Beispiel kann das Aktuatorbeschränkungsmodul 360 eine Aktuatorbeschränkung für die Drosselklappe 112, eine Aktuatorbeschränkung für das AGR-Ventil 170, eine Aktuatorbeschränkung für das Ladedruckregelventil 162, eine Aktuatorbeschränkung für den Einlassnocken-Phasensteller 148 und eine Aktuatorbeschränkung für den Auslassnocken-Phasensteller 150 einstellen.
-
Die Aktuatorbeschränkungen 348 für die Sollwerte 266–270 können einen Maximalwert für den zugeordneten Sollwert und einen Minimalwert für diesen Sollwert enthalten. Das Aktuatorbeschränkungsmodul 360 kann die Aktuatorbeschränkungen 348 allgemein auf vorgegebene Betriebsbereiche für die zugeordneten Aktuatoren einstellen. Genauer kann das Aktuatorbeschränkungsmodul 360 allgemein die Aktuatorbeschränkungen 348 jeweils auf vorgegebene Betriebsbereiche für die Drosselklappe 112, für das AGR-Ventil 170, für das Ladedruckregelventil 162, für den Einlassnocken-Phasensteller 148 und für den Auslassnocken-Phasensteller 150 einstellen. Allerdings kann das Aktuatorbeschränkungsmodul 360 unter bestimmten Umständen wahlweise eine oder mehrere der Aktuatorbeschränkungen 348 einstellen.
-
Ein Ausgangsbeschränkungsmodul 364 (2) kann Ausgangsbeschränkungen 352 für die geregelten Variablen (y) einstellen. Die Ausgangsbeschränkungen 352 für die geregelten Variablen können einen Maximalwert für diese geregelte Variable und einen Minimalwert für diese geregelte Variable enthalten. Das Ausgangsbeschränkungsmodul 364 kann die Ausgangsbeschränkungen 352 jeweils allgemein auf vorgegebene Bereiche für die zugeordneten geregelten Variablen einstellen. Allerdings kann das Ausgangsbeschränkungsmodul 364 unter bestimmten Umständen eine oder mehrere der Ausgangsbeschränkungen 352 variieren.
-
Ein Referenzmodul 368 (2) erzeugt jeweils Referenzwerte 356 für die Sollwerte 266–270. Die Referenzwerte 356 enthalten für jeden der Sollwerte 266–270 eine Referenz. Mit anderen Worten, die Referenzwerte 356 enthalten eine Referenz-Ladedruckregelventil-Öffnungsfläche, eine Referenz-Drosselöffnungsfläche, eine Referenz-AGR-Öffnungsfläche, einen Referenz-Einlassnocken-Phasenstellerwinkel und einen Referenz-Auslassnocken-Phasenstellerwinkel. Das Referenzmodul 368 kann die Referenzwerte 356 z. B. auf der Grundlage der Luftdrehmomentanforderung 265, der Basisluftdrehmomentanforderung 308 und/oder eines oder mehrerer anderer geeigneter Parameter bestimmen.
-
Das Optimierungsmodul
320 bestimmt die Sollwerte
266–
270 unter Verwendung eines Dantzig-Lösers der quadratischen Programmierung (QP-Lösers). Ein QP-Löser löst ein Optimierungsproblem mit einer quadratischen Kostenfunktion unter Ungleichheitsbeschränkungen. Falls z. B. der Vektor
einige Optimierungsvariable repräsentiert, können quadratische Funktionen von x in die folgende Form gebracht werden:
1 / 2xTQx – hTx + Konstante, wobei Q eine konstante symmetrische positiv definierte n×n-Matrix ist, konstant ein konstanter Wert ist und
ist, wobei h ein Vektor ist, der für jede Regelschleife konstant ist, aber von Regelschleife zu Regelschleife variieren kann. Lineare Beschränkungen weisen die Form
Cx ≤ b auf, wobei C eine konstante Matrix ist und b ein Vektor ist, der für jede Regelschleife konstant ist, aber von Regelschleife zu Regelschleife variieren kann.
-
Das Folgende wird hinsichtlich nu mit Bezug auf die Anzahl der Sollwerte (z. B. in dem obigen Beispiel als 5) und ny mit Bezug auf die Anzahl geregelter Variablen beschrieben. u(k) = (u1(k), ..., unu(k)), y(k) := (y1(k), ..., yny(k)) und Δui(k) = (u1(k), ..., unu(k)), wobei i eine ganze Zahl zwischen 1 und nu ist.
-
Das zu lösende Regelproblem kann geschrieben werden als:
Minimiere:
unter den Beschränkungen:
ymin,i – εvy ≤ yi(k) ≤ ymax,i + εvy mit i = 1, ..., ny, und k = 1, ..., p, umin,i – εvu ≤ ui(k) ≤ umax,i + εvu mit i = 1, ..., nu und k = 0, ..., p – 1 und Δumin,i – εvΔu ≤ Δui(k) ≤ Δumax,i + εvΔu mit i = 1, ..., nu und k = 0, ..., p – 1, wobei wie oben beschrieben
y(k) = Cx(k) (1) ist, während
x(k) = Ax(k – 1) + Bu(k – 1) + Bvv(k – 1) (2) erfüllt ist. w
Δu, w
u und w
y sind vorgegebene Gewichtungswerte, die positiv sind. v
Δu, v
u und v
y sind vorgegebene Soft-Beschränkungswerte, die größer oder gleich null sind. Die vorgegebenen Beschränkungswerte können nullgesetzt werden, um z. B. Hard-Beschränkungen an die jeweiligen Parameter zu veranlassen. Werte mit dem Index min und max bezeichnen obere und untere Beschränkungen für den jeweiligen Parameter.
-
Die manipulierten Variablen u oder die Änderungen der manipulierten Variablen Δu könnten als (über das Optimierungsproblem) zu optimierende Werte verwendet werden. Das folgende Beispiel wird hinsichtlich der Änderungen der manipulierten Variablen Δu, die die zu optimierenden Werte sind, beschrieben. Auf der Grundlage der obigen Gleichungen (1) und (2) und der Induktion ist: x(1) = Ax(0) + Bu(0) + Bvv(0), x(2) = Ax(1) + Bu(1) + Bvv(1) = A2x(10) + ABu(0) + Bu(0) + ABvv(0) + Bvv(1) .
.
. x(k) = Akx(0) + Σ k-1 / i=0Ak-1-iBu(i) + Σ k-1 / i=0Ak-1-iBvv(i).
-
Somit ist y(k) = CAkx(0) + CΣ k-1 / i=0Ak-1-iBu(i) + CΣ k-1 / i=0Ak-1-iBvv(i). (3)
-
Neuschreiben der Terme von Δu liefert:
wobei u(1) eine Matrix ist, die die Sollwerte der vorhergehenden Regelschleife enthält, und x(0) eine Matrix ist, die die Zustandsparameter für die durch das Zustandsschätzmodul
316 bereitgestellte aktuelle Regelschleife enthält.
-
Um die Bezeichnung zu vereinfachen, wird Folgendes definiert: ΔU := (Δu(0), ..., Δu(p – 1)), U := (u(0), ..., u(p – 1)), V := (v(0), ..., v(p)) und Y := (y(1), ..., y(p)).
-
Es gilt dann
U = 1pu(–1), + JΔuΔU (5)
-
Um die Größe des Optimierungsproblems zu verringern, wendet das Optimierungsmodul 320 eine Move-Blocking-Struktur an. Es sei nc die Anzahl freier Regelbewegungen. Es sei Jm die Matrix, die einer gegebenen Move-Blocking-Struktur für ΔU entspricht. Dann ist Jm eine Matrix der Größe pnu × nc, die nur nc Identitäten Inu an geeigneten Positionen und Nullen enthält. Es seien z die neuen Optimierungsvariablen (alle frei beweglichen Variablen). Konstruktionsgemäß ist dann: ΔU = Jmz.
-
Unter Verwendung von z kann Gleichung (6) neu geschrieben werden als Y = SXx(0) + Su1u(–1) + SuJmz + HvV. (7)
-
Hinsichtlich der oben gegebenen Kostenfunktion sind
-
-
Matrizen, die die Gewichtungswerte enthalten. Um die Schreibweise zu vereinfachen, ist
-
In diesen Matrizen ist die Anzahl diagonaler Blöcke gleich der Länge des Vorhersagehorizonts.
-
Unter Verwendung dieser Schreibweise kann die Kostenfunktion neu geschrieben werden als: J(ΔU, ε) := ρεε2 + ΔUTW 2 / ΔUΔU + (U – UREF)TW 2 / U(U – UREF) + (Y – YREF)TW 2 / y(Y – YREF). (8)
-
Entfernen aller konstanten Terme aus der Kostenfunktion und Ausdrücken von J durch ΔU und ε ergibt: ∥U – UREF∥2 = UTW 2 / UU – 2U T / REFW 2 / UU
= ΔUTJ T / ΔUW 2 / UJΔU + 2[u(–1)T1 T / pW 2 / UJΔU – U T / REFW 2 / UJΔU]ΔU und ∥Y – YREF∥2 = YTW 2 / YY – 2Y T / REFW 2 / YY
= ΔUTS T / uW 2 / ySUΔU + 2[x(0)TS T / x + u(–1)TS T / u1 – Y T / REF + VTH T / v]W 2 / YSuΔU.
-
Dies bedeutet J(ΔU, ε) = ρεε2 + ΔUT(W 2 / ΔU + J T / ΔUW 2 / UJΔU + S T / uW 2 / ySu)ΔU + 2[u(–1)T(1 T / pW 2 / UJΔU – S T / u1W 2 / ySu) – U T / REFW 2 / uJΔu + x(0)TS T / XW 2 / ySu – Y T / REFW 2 / ySu + VTH T / VW 2 / ySu]ΔU.
-
Ersetzen von ΔU durch Jmz liefert: J(ΔU, ε) = ρεε2 + zTJ T / m(W 2 / ΔU + J T / ΔUW 2 / UJΔU + S T / uW 2 / ySu)Jmz + 2[u(–1)T(1 T / pW 2 / UJΔU – S T / u1W 2 / ySu) – U T / REFW 2 / uJΔu + x(0)TS T / XW 2 / ySu – Y T / REFW 2 / ySu + VTH T / VW 2 / ySu]Jmz.
-
Nun wird Folgendes eingeführt: Kz := 2J T / m(W 2 / Δu + J T / ΔuW 2 / uJΔu + S T / uW 2 / ySu)Jm, Kx := S T / xW 2 / ySuJm, Ku1 = (1 T / pW 2 / uJΔu + S T / u1W 2 / ySu)Jm, Kut = –W 2 / uJΔuJm, Kr = –W 2 / ySuJm und Kv = H T / VW 2 / ySuJm .
-
Ausgehend von diesen Definitionen kann die Kostenfunktion neu geschrieben werden als: J(ΔU, ε) = ρεε2 + 1 / 2zTKzz + (Y T / REFKr + VTKv + U T / REFKut + u(–1)TKu1 + x(0)TKx)z .:= ρεε2 + 1 / 2zTKzz – K T / currentz. (9)
-
Die Beschränkungen und die Erfüllung der Beschränkungen können wie folgt neu geschrieben werden. Vy = (vy, ..., vy)T, Vu = (vu, ..., vu)T, VΔu = (vΔu, ..., VΔu) Ymin – εVy ≤ Y ≤ Ymax + εVy, Umin – εVu ≤ U ≤ Umax + εVu, ΔUmin – εVΔu ≤ ΔU ≤ ΔUmax + εVΔu.
-
Aus den Gleichungen (5) und (6) kann Folgendes erhalten werden:
-
Die Verwendung der folgenden Definitionen
liefert
Mzz + Mεε ≤ Mlim + MvV + Mxx(0) + Mu1u(–1) := Mlim + Mcurrent. (10)
-
In der Matrix M
z kann der Block
reduziert werden auf
indem alle Zeilen von Nullen, die allen Δus entsprechen, die auf null geblockt sind, entfernt werden, wobei I
z die Einheitsmatrix der Größe z bezeichnet. Die anderen Matrizen M werden durch Entfernen unnötiger Zeilen ebenfalls ähnlich reduziert. Eine ähnliche Reduktion kann für den Block
ausgeführt werden, der den Aktuatorbeschränkungen entspricht.
-
Die vorhergesagten Parameter (y-Werte) sind über den gesamten Vorhersagehorizont beschränkt. Allerdings ist es möglich, spezifische Zeitschritte über den Vorhersagehorizont zu wählen, wo die Ausgangsbeschränkungen auferlegt werden. In diesem Fall werden nur diejenigen Zeilen, die diesen Zeitschritten in dem Block
entsprechen, in der Matrix M
z gehalten und werden alle anderen Matrizen M durch Entfernen unnötiger Zeilen dementsprechend geändert.
-
Die Matrizen Kz und Mz und die Vektoren Mε und Mlim sind für ein gegebenes lineares Modell konstant. Die Vektoren Kcurrent und Mcurrent hängen von dem durch das Zustandsschätzmodul 316 geschätzten aktuellen Zustand und von den Sollwerten 266–270 von der letzten Regelschleife (d. h. von der jüngsten Regelaktion) ab und werden in jeder Regelschleife aktualisiert, bevor sie durch das Optimierungsmodul 320 zum Bestimmen der Sollwerte 266–270 für die aktuelle Regelschleife verwendet werden.
-
Unter Verwendung dieser Bezeichnungen kann das durch das Optimierungsmodul
320 gelöste QP-Problem in jeder Regelschleife neu geschrieben werden als:
in Abhängigkeit von den Beschränkungen
Mzz + Mεε ≤ Mlim + Mcurrent.
-
Das obige Optimierungsproblem weist die folgende Form auf. Minimiere
1 / 2xTQx – hTx unter den Beschränkungen
Cx ≤ d, mit
-
Die Verwendung des hochgestellten Index T bezeichnet die Verwendung der Transponierten.
-
In Übereinstimmung mit dem Satz von Karush-Kuhn-Tucker (KKT-Satz) ist x* ∊
n genau dann die eindeutige Lösung des QP-Problems, wenn es ein λ* ∊
m derart gibt, dass:
- (i) (x*, λ*) erfüllt Qx* – h – CTλ* = 0, (11)
- (ii) Cx* ≤ d, λ* ≥ 0 und
- (iii) λ*T(d – Cx*) = 0.
-
Im Obigen umfasst (ii) die Erfüllung einer primalen und einer dualen Beschränkung und umfasst (iii) eine Komplementarität. x kann als eine primale Variable bezeichnet werden. λ kann als ein Lagrange-Multiplikator oder als eine duale Variable bezeichnet werden. Für QP-Optimierungsprobleme in Abhängigkeit von Beschränkungen enthält eine optimale Lösung ein optimales Paar einer primalen und einer dualen Variablen.
-
Es kann eine neue Variable y eingeführt werden mit y = d – Cx.
-
Dementsprechend ist y* = d – Cx*. Ausdrücken der Bedingungen (ii) und (iii) durch λ* und y* liefert:
- (i) λ* ≥ 0, Cx* ≤ d ⇔ λ* ≥ 0, y* ≥ 0 und
- (ii) λ*T(d – Cx*)=0 ≥ 0 ⇔ λ*Ty* = 0.
-
Auflösen nach x* ergibt x* = Q–1(h – CTλ*)
-
Somit ist: y* = d – Cx* = d – C[Q–1(h – CTλ*)] und y* = d – CQ–1(h – CTλ*)] = d – CQ–1h + CQ–1CTλ*
-
Es sei d ~ := d – CQ–1h und Q ~ = CQ–1CT, mit y* = d ~ – Q ~λ*.
-
Unter Verwendung der obigen Schreibweise sind die Bedingungen in der Beziehung (11) äquivalent zu
- (i) (x*, λ*) erfüllt d ~ = (I – Q ~)( y* / λ*)
- (ii) λ* ≥ 0, y* ≥ 0 und
- (iii) λ*Ty* = 0.
-
I ist eine Einheitsmatrix.
-
Somit kann x* unter Verwendung der Gleichung x* = Q–1(h – CTλ*) bestimmt werden.
-
Ein Löser, der für das optimale Paar (x*, λ*) löst, das die Bedingungen (i)–(iii) erfüllt, kann als ein dualer Löser bezeichnet werden. Das Optimierungsmodul 320 enthält einen dualen Löser und löst wie oben beschrieben für das optimalen Paar (x*, λ*).
-
x* enthält Optimalwerte, die Änderungen der Sollwerte 266–270 von der vorhergehenden Regelschleife (z. B. k – 1) entsprechen. Das Optimierungsmodul 320 stellt die Sollwerte 266–270 von der vorhergehenden Regelschleife jeweils auf der Grundlage der Werte von x* ein, um für die Regelschleife die Sollwerte 266–270 zu erzeugen, um die jeweiligen Aktuatoren zu regeln. Nur beispielhaft kann das Optimierungsmodul 320 die Sollwerte 266–270 jeweils mit den Werten von x* summieren, um die Sollwerte 266–270 für die aktuelle Regelschleife zu erzeugen. Diese Sollwerte 266–270 werden zum Regeln der jeweiligen Aktuatoren verwendet.
-
Das Obige könnte geschrieben werden als:
w – Au = q (12) und uTw = 0, u ≥ 0 und w ≥ 0, mit w = y*, u = λ*,
A = Q und q = d mit w und u in
m. A ist eine positive m×m- Matrix, die bekannt ist, und der Vektor q ∊
m ist bekannt.
-
Das Problem, (w, u) zu ermitteln, das das Obige erfüllt, kann als ein lineares Komplementaritätsproblem (LCP) bezeichnet werden und wird durch das Optimierungsmodul 320 gelöst. Genauer kann diese Form von einem Dantzig-QP-Loser verwendet werden. Die symmetrische Matrix A und der Vektor q enthalten vorgegebene Daten. Die Matrix A kann als ein Tableau bezeichnet werden. Die Größe des Tableaus beeinflusst die Anzahl der Berechnungen, die zum Erzeugen der Sollwerte 266–270 notwendig sind.
-
In der Beziehung (12) gibt es 2n Unbekannte in dem LCP (w und u) und gibt es n lineare Gleichungen. Um w und u zu bestimmen, werden n weitere Gleichungen benötigt. Werden die Bedingungen der Beziehung (12) einfacher geschrieben, ergibt sich: Σ m / i=1wiui = 0, wi > 0 und ui ≥ 0.
-
Dies bedeutet wiui = 0 für i = 1...m. Somit gibt es unter allen 2n Komponenten von w und u wenigstens n Nullen. Der Dantzig-QP-Löser bestimmt die richtige Kombination von Null- und Nicht-null-Komponenten für w und u iterativ in der Weise, dass die Beziehung (12) und ihre Bedingungen gleichzeitig sind.
-
Der Dantzig-QP-Loser, angewendet auf ein LCP, ist eine Erweiterung eines Simplex-Lösers für die lineare Programmierung. Die Beziehung (12) besitzt höchstens n von null verschiedene Komponenten. Basislösungen für die Beziehung (12) sind nur jene, die im Prozess des Lösens unter Berücksichtigung der Bedingungen der Beziehung (12) betrachtet werden müssen. Für eine gegebene Basislösung können alle Komponenten mit von null verschiedenen Werten als Basisvariablen bezeichnet werden.
-
Eine zulässige primale Basislösung ist eine Basislösung, bei der alle primalen Variablen nicht negativ sind. Eine zulässige duale Basislösung ist eine Basislösung, bei der alle dualen Variablen nicht negativ sind. Es kann gesagt werden, dass eine zulässige Basislösung in der Standardform ist, falls kein Paar entsprechender w-Komponenten und u-Komponenten zwei von null verschiedene Elemente enthält. In der Standardform ist genau ein Element jedes Paars (wi, ui) null (i = 1, ..., m). Falls eine zulässige Basislösung in der Standardform ist, kann gesagt werden, dass das entsprechende Tableau ebenfalls in der Standardform ist. Es kann gesagt werden, dass eine zulässige Basislösung in der Nicht-Standard-Form ist, falls sie nicht in der Standardform ist, d. h., falls sie Paare jedes Paars (wi, ui) derart aufweist, dass beide Komponenten null oder beide von null verschieden sind.
-
Es werden nun die folgenden Variablen verwendet. N bezieht sich auf die Anzahl von Beschränkungsvariablen w und ist gleich m. NUC ist die Anzahl unbeschränkter Variablen und kann in diesem Beispiel gleich null sein. BV ist ein Vektor von Werten der Basisvariablen und wird durch das Optimierungsmodul 320 iterativ bestimmt und wird auf BV = q initialisiert.
-
IB ist ein Indexvektor der Größe N für u. Falls IB(I) > 0 ist, ist wi eine Basisvariable und wI = BV(IB(I)). Falls IB(I) < 0 ist, ist wI eine Nicht-Basis-Variable und wI= 0 und ist –IB(I) ihre Spaltennummer in dem Tableau A. IL ist ein Indexvektor der Größe N für w. Falls IL(I) > 0 ist, ist uI eine Basisvariable und uI = BV(IB(I)). Falls IB(I) < 0 ist, ist uI eine Nicht-Basis-Variable und uI = 0 und ist –IB(I) ihre Spaltennummer in dem Tableau A. A ist das Anfangs-Tableau und wird durch das Optimierungsmodul 320 iterativ geändert.
-
IRET ist ein Rückgabewert, der angibt, dass die Optimierung abgeschlossen worden ist. IRET > 0 gibt an, dass die optimale Lösung ermittelt worden ist, wobei IRET die Anzahl der Iterationen angibt, die verwendet wurden, um die optimale Lösung zu erhalten. IRET = –I gibt einen Index einer zulässigen Komponente in w-Variablen des Anfangs-BV an. IRET = –3N gibt an, dass es unmöglich ist, eine Variable aus der Basis zu entfernen. IRET = –I und = –3N sollten nicht auftreten.
-
Allgemein gesagt ändert das Optimierungsmodul 320 iterativ Basislösungen für die Beziehung (12), um eine Basislösung zu ermitteln, die die Beziehung (12) und die Bedingungen für die Beziehung (12) in einer endlichen Anzahl von Iterationen erfüllt.
-
Eine Lösung für die Beziehung (12) ist w = q und u = 0. In diesem Fall sind alle Bedingungen der Beziehung (12) bis auf w ≥ 0 erfüllt. Falls alle Komponenten von q positiv sind, hält das Optimierungsmodul 320 an und ist eine optimale Lösung ermittelt worden. Andernfalls führt das Optimierungsmodul 320 eine oder mehrere weitere Iterationen aus. Unter Verwendung der obigen Terminologie wird die Basislösung auf eine vorgegebene Basislösung initialisiert: ( q / 0) wobei die Basisvariablen die Komponenten von w sind. Die Basislösung ist nur dual zulässig, falls q wenigstens eine negative Komponente aufweist. In Übereinstimmungen mit den obigen Definitionen der Indexvektoren IL und IB ist anfangs: IL(i) = I für i = 1, ..., m und IB = –IL.
-
Es sei das Tableau
= (I, M) das Tableau und h die Matrix der rechten Seite in dem aktuellen Schritt, wobei die entsprechende Basislösung durch
z = (zB, zN) bezeichnet ist, d. h.
wobei z
B und z
N eine Basisvariable und eine Nicht-Basis-Variable sind. Es ist festzustellen, dass z
B = h ist und dass definitionsgemäß z
N = 0 ist, wobei bei der Initialisierung M =
und h = q ist.
-
Es seien
+ = (I, M
+) und h
+ das Tableau bzw. die Matrix der rechten Seite in der nächsten Iteration. Es wird nun erläutert, wie das Optimierungsmodul
320 von
und h zu
+ und h
+ fortschreitet.
wobei E
i bzw. M
i die i-te Spalte von I und M bezeichnen. Eine Iteration geht wie folgt vor:
- (i) In Übereinstimmung mit einigen Vorschriften (bestimme IC und IR) sind die Spalte IC in M und die Spalte IR in I zu wählen und diese zwei Spalten derart zu vertauschen, dass Folgendes gilt:
- (ii) Es ist z = h durch Pivotisierung zu lösen, d. h. durch Spaltenoperationen an und h, um Folgendes zu erhalten:
-
Nachfolgend sind Variable zu bestimmen, die in die Basis eintreten und sie verlassen. Wenn gesagt wird, dass eine Nicht-Basis-Variable in die Basis eintreten sollte, ist gemeint, dass die dieser Variablen entsprechende Spalte in dem Tableau eine einer Basisvariable entsprechende Spalte ersetzen sollte. Wenn gesagt wird, dass eine Basisvariable die Basis verlassen sollte, ist gemeint, dass die dieser Variablen entsprechende Spalte in dem Tableau durch eine Spalte, die einer Nicht-Basis-Variable entspricht, die in die Basis eintreten sollte, ersetzt werden sollte.
-
Falls die Tabelle in der Standardform ist, sollte diese Nicht-Basis-Variable u in der Weise in die Basis eintreten, dass die entsprechende Variable w den am stärksten negativen Wert in h aufweist. Falls das Tableau ein Nicht-Standard ist und (wi, ui) das Nicht-Basis-Paar ist, sollte wi in die Basis eintreten. Es sein MIC die Spalte des Tableaus, das in die Basis eintreten soll, und h der aktuelle Wert der Basisvariablen. Es sind die Verhältnisse hi/Mi,IC für alle Basisvariablen u und die Variable, die der primären Variablen entspricht, die der Variablen u zugeordnet ist, die in die Basis eintreten soll, zu berechnen. Die Variable, die dem kleinsten positiven Verhältnis entspricht, ist zu löschen.
-
Hinsichtlich des Pivotisierung wird der Einheitsblock erhalten, falls
von rechts mit P
–1 multipliziert wird:
-
Somit ist M+ = P–1M ~ (13) und h+ = P–1h.
-
Das Optimierungsmodul 320 aktualisiert das Tableau und die Basislösung in Übereinstimmung mit der Beziehung (13).
-
Allerdings muss P
–1 berechnet werden. P ist gegeben durch:
-
Das Optimierungsmodul
320 überprüft, dass
ist. Die Pivotisierung kann die die meiste (Rechen-)Zeit verbrauchende Operation sein, die durch das Optimierungsmodul
320 ausgeführt wird, um die optimale Lösung zu erhalten. In Bezug auf die Rechenzeit zum Ausführen des Pivotisierung können alle anderen Operationen des Dantzig-QP-Lösers vernachlässigbar sein.
-
Es sei g ein Vektor der Größe N und es sei E(i, g) die Matrix, die dadurch erhalten wird, dass die i-te Spalte der Einheitsmatrix durch g derart ersetzt wird, so dass
ist. E(i, g) kann als eine Elementarmatrix bezeichnet werden. Angesichts des Obigen sind P und P
–1 ebenfalls Einheitsmatrizen.
-
Es sei a irgendein Vektor der Größe N,
-
Angesichts des Obigen ist festzustellen, dass die Anzahl der Operationen, die ausgeführt werden, um E(i, g)a zu berechnen, mit N linear skaliert, während die Anzahl der Operationen, die erforderlich sind, um allgemeine Matrixvektorprodukte zu berechnen, quadratisch mit der Vektorgröße skaliert.
-
Wie oben beschrieben wurde, sei (IR, IC) die Position der Pivotisierung, wobei in jeder Iteration die folgende Matrixmultiplikation ausgeführt würde.
-
-
Wie oben festgestellt wurde, sind allerdings nur die Werte der Basisvariablen notwendig, um IC zu bestimmen (d. h. sind keine Informationen aus dem Tableau notwendig), wobei, nachdem IC bestimmt worden ist, nur die IC-te Spalte des Tableaus aktualisiert werden muss, um die verbleibenden Iterationen zum Bestimmen von IR auszuführen.
-
Zum Beispiel ist in der Iteration n während einer Regelschleife und während der Index IC auf der Grundlage der aktualisierten Werte der Basisvariablen bestimmt worden ist, die Frage, wie die IC-te Spalte des Anfangs-Tableaus während der n – 1 früheren Iterationen aktualisiert wird. Es seien
P –1 / 1, ..., P –1 / n-1 die Elementarmatrizen (der linken Seite), die während der n – 1 früheren Iterationen verwendet wurden, wobei sie alle die Form E(IR
k, g
k) aufweisen, wobei IR
k die Pivot-Zeile ist, die in der Iteration k ausgewählt wird, und g
k der Spaltenvektor ist, der in der Iteration k aus der Pivot-Spalte erhalten wird. Es sei g
n das, was die IC-te Spalte des Tableaus in der aktuellen Iteration sein sollte. In einem ersten Fall ist die IC-te Spalte des Tableaus in vorhergehenden Iterationen der vorliegenden Regelschleife nicht ausgewählt worden. In diesem Fall sei g
0 die IC-te Spalte des Anfangs-Tableaus,
gn = P –1 / n-1...P –1 / 1g0, die mit (n – 1)N skaliert. In einem zweiten Fall wurde während einer vorhergehenden Iteration der vorliegenden Regelschleife die IC-te Spalte des Tableaus ausgewählt. In diesem Fall sei k die letzte Iteration, in der die IC-te Spalte verwendet wurde, und sei IR
k der Index für die in dieser Iteration ausgewählte Zeile, wobei die IC-te Spalte durch E
Irk = (0, ..., 0, 1, 0, ..., 0)
T nur mit der Komponente
IR TH / k gleich 1 in der Weise zusammenhängen muss, dass Folgendes gilt:
-
P –1 / k ist für einige g
k von der Form E(IR
k, g
k). Somit ist
-
Darüber hinaus ist gn = P –1 / n-1...P –1 / k+1gk. was mit n – 1 – k(N) skaliert.
-
Angesichts des Obigen skaliert die erforderliche Anzahl der Berechnungen in der Iteration n höchstens mit (n – 1)N. Somit skaliert die Gesamtlaufzeit für n Iterationen mit (1 + 2 + ... + n – 1)N = (n – 1)nN / 2.
-
Falls für jede Iteration die gesamte Matrixmultiplikation ausgeführt würde, wäre die Gesamtlaufzeit nN2. Das Verhältnis des Obigen zu nN2 ist näherungsweise n/2N. Somit wird durch das Optimierungsmodul 320 (durch Ausführung von weniger Berechnungen pro Iteration) eine Recheneffizienzverbesserung erzielt.
-
4 ist ein Ablaufplan, der ein beispielhaftes Verfahren zum Lösen des Optimierungsproblems und zum Bestimmen der Sollwerte 266–270 zeigt. Ein Regelkreis beginnt bei 404, wo das Optimierungsmodul 320 initialisiert, die Anfangsbasislösung BV auf die vorgegebene Anfangsbasislösung ( q / 0) einstellt und die Basisvariablen auf die Komponenten von w einstellt.
-
Bei 408 bestimmt das Optimierungsmodul 320, ob die Anfangsbasislösung dual zulässig ist. Die vorgegebene Anfangsbasislösung ist dual zulässig. Somit gibt das Optimierungsmodul 320 bei 410 an, dass ein Fehler aufgetreten ist, falls die Anfangsbasislösung BV bei 408 nicht dual zulässig ist, und stellt es IRET auf einen ersten vorgegebenen Wert (z. B. –1) ein, der angibt, dass die Anfangsbasislösung BV nicht dual zulässig ist. Falls 408 wahr ist, wird die Regelung mit 412 fortgesetzt.
-
Bei 412 bestimmt das Optimierungsmodul 320, ob die Basislösung BV in der Standardform ist. Falls die Basislösung BV bei 412 nicht in der Standardform ist, wird die Regelung mit 416 fortgesetzt. Bei 416 sichert das Optimierungsmodul 320 den Spaltenpositionsindex IC in dem Tableau der primalen Variablen des Nicht-Basis-Paars und bei 436 wird die Regelung fortgesetzt, was im Folgenden weiter diskutiert ist. Die Variable (und somit ihre Spalte des Tableaus) geht in die Basis für die nächste Iteration ein. Falls die Nicht-Basis-Lösung BV bei 412 in der Standardform ist, wird die Regelung mit 420 fortgesetzt.
-
Bei 420 bestimmt das Optimierungsmodul 320, ob alle primalen Variablen der Basislösung BV positiv sind. Falls bei 420 alle primalen Variablen positiv sind, ist das Optimierungsproblem gelöst worden und wird die Regelung mit 424 fortgesetzt. Bei 424 gibt das Optimierungsmodul 424 die Anzahl der Iterationen an, die notwendig sind, um das Optimierungsproblem für die aktuelle Regelschleife zu lösen. Daraufhin enthält der Vektor d die Werte λ*, die wie oben beschrieben zum Bestimmen der Werte x* verwendet werden. Die Werte x* sind jeweils Delta-Werte für die Sollwerte 266–270. Das Optimierungsmodul 320 stellt die Sollwerte 266–270 für die aktuelle Regelschleife jeweils gleich den Summen der Sollwerte 266–270 aus der vorhergehenden Regelschleife plus den Deltawerten ein. Diese (aktualisierten) Sollwerte 266–270 werden zum Regeln der Aktuatoren für die aktuelle Regelschleife verwendet.
-
Falls bei 420 eine oder mehrere der primalen Variablen der Basislösung BV negativ sind, ist das Optimierungsproblem noch nicht gelöst worden und wird die Regelung mit 428 fortgesetzt. Bei 428 identifiziert das Optimierungsmodul 320 die am stärksten negative primale Variable der Basislösung BV. Bei 432 sichert das Optimierungsmodul 320 den Spaltenpositionsindex IC der entsprechenden dualen Variablen in dem Tableau. Diese Variable (und somit ihre Spalte des Tableaus) geht in die Basis für die nächste Iteration ein. Daraufhin wird die Regelung bei 436 fortgesetzt.
-
Bei 436 (entweder von 432 oder von 416) bestimmt das Optimierungsmodul 320 für jede der Komponenten, die den dualen Basisvariablen und den primalen Variablen, die identifiziert worden sind, entsprechen, Verhältnisse zwischen der Komponente der (aktuellen) Basislösung BV und der entsprechenden Komponente der Spalte IC des Tableaus. Bei 440 bestimmt das Optimierungsmodul 320, ob eines oder mehrere der bestimmten Verhältnisse positiv sind. Falls 440 falsch ist, gibt das Optimierungsmodul 320 an, dass bei 444 ein Fehler aufgetreten ist, und stellt es IRET auf einen zweiten vorgegebenen Wert (z. B. –3N) ein, der angibt, dass eine Variable nicht aus der Basis entfernt werden kann. Falls 440 wahr ist, wird die Regelung mit 448 fortgesetzt.
-
Bei 448 identifiziert das Optimierungsmodul 320 ein kleinstes positives der bestimmten Verhältnisse. Bei 452 speichert das Optimierungsmodul 320 den Spaltenpositionsindex IR in dem Tableau. Diese Variable (und somit ihre Spalte des Tableaus) verlässt die Basis für die nächste Iteration. Bei 456 aktualisiert das Optimierungsmodul das Tableau A und die Basislösung BV für die nächste Iteration und kehrt die Regelung zu 412 zurück, um die nächste Iteration der aktuellen Regelschleife zu beginnen. Das Beispiel aus 4 kann für jede Regelschleife ausgeführt werden.
-
Wie oben festgestellt wurde, ist das Optimierungsproblem von der Form, dass 1 / 2xTQx – hTx unter den Beschränkungen Cx ≤ d zu minimieren ist. Das Tableau und die Anfangsbasis des Problems in der dualen Formulierung sind jeweils gegeben durch: A = CQ–1CT und q = d – CQ–1h.
-
Diese optimale primale Variable x* kann wie folgt bestimmt werden: x* = Q–1(h – CTλ*), wobei λ* die optimale duale Variable ist.
-
Es sei sx eine invertierbare n×n-Matrix und sc eine m×m-Diagonalmatrix mit streng positiven diagonalen Einträgen, wobei das Optimierungsproblem so geschrieben werden kann als minimiere: 1 / 2x T Q x – h T x unter den Beschränkungen C x ≤ d mit Q = S T / xQSx, h = S T / xh, C = SCQSx und d = SCd . Dies ist eine Änderung von x und eine Skalierung der Beschränkungen. In diesem Fall sind das Tableau und die Anfangsbasis des Optimierungsproblems gegeben durch: As = (ScCSx)(S T / xQSx)–1(ScCSx)T = ScCQ–1CTSc = ScASc. qs = d – C Q –1 h = Scd – ScCSx(S T / xQSx)–1S T / xh = Scd – ScCQ–1h = Scq.
-
Es seien x* und λ* die optimale primale und duale Variable für das Optimierungsproblem, x* = (S T / xQSx)–1(S T / xh – (ScCSx)T λ*) = S –1 / xQ–1(h – CTSc λ*).
-
Somit ist x* = Q–1(h – CTSc λ*).
-
Ein Skalieren der Beschränkungen ist äquivalent dem Skalieren der dualen Variablen. Um die numerische Stabilität zu verbessern, skaliert das Optimierungsmodul
320 die Matrix S
c:
-
Die Skalierung engt den Bereich möglicher Werte ein und verbessert dadurch die Genauigkeit der Optimierungsergebnisse.
-
Ein Merkmal der MPC ist die Fähigkeit, künftige Ereignisse vorauszusehen und Regelaktionen dementsprechend einzustellen. Dies wird dadurch erreicht, dass eine Folge beschränkter QP-Probleme gelöst werden. Ob die MPC in einem eingebetteten Controller erfolgreich implementiert werden kann, hängt davon ab, wie gut die in diesen Optimierungsproblemen benötigten Daten gehandhabt werden können.
-
Wie oben diskutiert wurde, wird zum Lösen der QP-Probleme ein Dantzig-QP-Löser verwendet. Der Dantzig-QP-Löser manipuliert eine große Matrix, das Tableau genannt, die eine große Anzahl von Einträgen (z. B. mehrere Tausende) enthält, um die QP-Probleme zu lösen und um die optimale Lösung zu ermitteln. Das Tableau wird im ROM (Nur-Lese-Speicher) gespeichert. Der Dantzig-QP-Löser wird in jeder Regelschleife aufgerufen, um einen neuen Satz von QP-Problemen zu lösen, die von den aktuellen Zuständen und von den Beschränkungen des Systems abhängen. Um die Kostenfunktion und die Beschränkungen zu aktualisieren, können in dem ROM ebenfalls mehrere große Matrizen gespeichert sein.
-
In dem ROM könnten alle Matrizen einschließlich des gesamten Tableaus gespeichert sein und zur Verwendung kopiert werden, bevor der Dantzig-QP-Löser aufgerufen wird. Wegen der Größe dieser Matrizen erfordert die Ablage einen großen Speicherraum und ist die Speicherkopie zeitaufwändig. Diese Eigenschaften könnten die Leistungsfähigkeit und sogar die Implementierbarkeit der MPC beeinträchtigen.
-
Allerdings erzielt die vorliegende Anmeldung eine Verringerung der ROM-Nutzung. Das Tableau ist eine symmetrische Matrix. Somit braucht anstelle von m·m Einträgen, falls das Tableau m × m ist, nur der untere Dreiecksteil der Tableaumatrix, der die Diagonale enthält, im ROM gesichert zu werden, der m·(m + 1)/2 Einträge enthält. Der obere Dreiecksteil der Matrix wird durch das MPC-Modul 312 unter Verwendung der Symmetrie online konstruiert, während der untere Dreiecksteil kopiert wird.
-
Da die Symmetrie verwendet wird, wird durch Kopieren der Elemente von V2 an die richtige Position in V1 und Fertigstellen fehlender Einträge von V1 unter Verwendung der Symmetrie aus einem Vektor V2 der Größe m·(m + 1)/2 ein Vektor V1 der Größe m·m konstruiert. Falls V2 auf Standardweise wie etwa unter Verwendung des Stapelns von Spalten gespeichert wird und in V1 kopiert wird, um die ersten m·(m + 1)/2 Positionen zu belegen, sind nur die ersten m Einträge an den richtigen Positionen und müssen die verbleibenden m·(m – 1)/2 Elemente an ihre richtigen Positionen verschoben werden. In der vorliegenden Anmeldung wird V2 auf eine Nicht-Standard-Weise gespeichert, die die Anzahl der Elemente, die verschoben werden müssen, während V2 in V1 kopiert wird, minimiert.
-
Wie oben festgestellt wurde, entspricht V2 dem unteren Dreiecksteil der Tableaumatrix. Dieses rechtwinklige Dreieck wird das große Dreieck genannt. Die Idee ist, das große Dreieck vertikal ”zu schneiden”, um links ein rechtwinkliges Trapez und rechts ein kleines rechtwinkliges Dreieck zu erhalten, und daraufhin das kleine Dreieck um 180 Grad zu drehen und auf das Trapez zu setzen, um ein Rechteck zu bilden. Die Rechteckmatrix wird dann auf eine Standardweise gespeichert. Es kann gezeigt werden, dass anstelle von m·(m – 1)/2 nur (m·m – 1)/8 Elemente verschoben werden müssen, falls V2 unter Verwendung dieser Struktur gesichert wird.
-
Einige Matrizen werden verwendet, um den linearen Teil der Kostenfunktion zu aktualisieren. Genauer sind Kut und Kr zwei große Matrizen, die zum Aktualisieren des linearen Terms in der Kostenfunktion in jeder Regelschleife verwendet werden. Ihre speziellen Strukturen werden genutzt, um eine ROM-Verringerung zu erzielen.
-
Das Matrixprodukt aus Kut mit den Referenzwerten der Eingangssignale trägt zum Aktualisieren der Kostenfunktion bei. Die Produktergebnisse können viel effizienter durch direktes Multiplizieren der Referenzwerte mit ihren entsprechenden Gewichtungsparametern erhalten werden. In Übereinstimmung mit der vorliegenden Anmeldung wird die Matrix Kut nicht in dem ROM gespeichert und wird keine unnötige Multiplikation mit Null(en) ausgeführt. Die Matrix Kut wird auf der Grundlage einer oder mehrerer anderer Matrizen konstruiert.
-
Das Matrixprodukt von Kr mit den Referenzwerten der Ausgangssignale ist ebenfalls notwendig, um die Kostenfunktion zu aktualisieren. Die Matrix Kr weist eine Blockstruktur auf und wird (im Gegensatz dazu, im ROM gespeichert zu werden) durch Skalieren der Zeilen einer anderen Matrix mit den entsprechenden Ausgangsnachführungs-Gewichtungsparametern konstruiert. Somit sind die entsprechenden Zeilen in Kr über den Vorhersagehorizont ebenfalls gleich null, falls die Nachführungsgewichtung eines Ausgangssignals null ist. Somit ist es nicht notwendig, diese Zeilen zu speichern.
-
Einige Matrizen werden zum Aktualisieren der Beschränkungen verwendet. Die Beschränkungen des in jeder Regelschleife zu lösenden OP-Problems hängen von dem aktuellen Zustand des Systems, von den zuvor angewendeten Eingangssignalen sowie von dem erwarteten gemessenen Störungssignal über den Vorhersagehorizont ab. Somit werden drei große Matrizen Mx, Mu1 und Mv im ROM gespeichert und in jeder Regelschleife für die Aktualisierung verwendet. Unter Nutzung der folgenden Struktur wird eine ROM-Verringerung erzielt: Alle drei dieser Matrizen sind in vier Zeilenblöcken, die gemischten Beschränkungen, Ausgangsbeschränkungen, Eingangsbeschränkungen und Eingangsratenbeschränkungen entsprechen, strukturiert. Alle der Blockzeilen, die Eingangs- und Eingangsratenbeschränkungen entsprechen, können effizient wiedergewonnen werden (durch das MPC-Modul 312 konstruiert werden) und werden nicht im ROM gespeichert. Alle Zeilen, die Eingangsratenbeschränkungen entsprechen, sind null. Alle Zeilen, die Eingangsbeschränkungen entsprechen, enthalten entweder Nullen (Mx und Mv) oder Blöcke von Einheitsmatrizen (Mu1). Falls Ausgangssignale sowohl Untergrenzen- als auch Obergrenzenbeschränkungen aufweisen, unterscheiden sich ihre entsprechenden Zeilen in diesen drei Matrizen nur durch ein Minuszeichen. Somit braucht höchstens lediglich die Hälfte der den Ausgangsbeschränkungen entsprechenden Zeilen im ROM gespeichert zu werden.
-
Die oben diskutierten K Matrizen werden geändert, falls sich einer oder mehrere der Gewichtungswerte ändern. Wie oben beschrieben wurde, ist Kut = –W 2 / uJΔuJM nicht notwendig, um die Matrix Kut zu konstruieren. Was relevant ist, ist U T / refKut , d. h. eine Block-Zeilen-Matrix mit der Blockgröße p × nc. Falls die Move-Blocking-Struktur (p1, p2, ..., pnc) ist, ist die Position des i-ten Blocks gleich u T / ref(pi)w 2 / u + u T / ref(pi + 1)w 2 / u + ... + u T / ref(p)w 2 / u = [u T / ref(pi) + u T / ref(pi + 1) + ... + u T / ref(p)]w 2 / u.
-
Wie oben beschrieben wurde, ist Kr = –W 2 / ySuJm.
-
Das Multiplizieren von SuJm mit W 2 / y von links entspricht einer Zeilenskalierung von SuJm. Dadurch, dass Zeilen nicht mit 0 skaliert werden, was äquivalent dem Ignorieren aller y mit Gewichtungswerten von null ist, wird Recheneffizienz gewonnen.
-
Die Matrizen Mz, Mx, Mu1 und Mv können konstruiert und/oder im Speicher gespeichert werden. Anstelle von Mz kann MzKz-1 gespeichert werden. Mz kann gespeichert werden, falls sich die Gewichtungswerte in Echtzeit ändern. Allgemein gesagt hängt die Anzahl der Zeilen der M Matrizen, die gespeichert werden müssen, anstatt von der Gesamtzahl der Beschränkungen nur von der Anzahl der y-Beschränkungen ab.
-
Hinsichtlich der Matrix M
x ist
so dass nur diejenigen Zeilen von S
x, die den beschränkten y-Werten entsprechen, gespeichert werden können. Somit wird die Matrix durch Berechnen von M
x x(o), wobei x(0) die aktuellen Zustände repräsentiert, die durch das Zustandsschutzmodul
316 bereitgestellt werden, in Echtzeit aktualisiert. S
xx(0) kann zusammen mit einer Reihe von Multiplikationen mit null einmal anstatt zweimal ausgeführt werden.
-
Hinsichtlich der Matrix Mu1 ist
-
-
Ähnlich der Matrix M
x kann für M
u1 nur S
u1 gespeichert werden. Wenn M
u1(u – 1) berechnet wird, wobei u(–1) die Sollwerte der vorhergehenden Regelschleife repräsentiert, kann S
u1(–1) nur einmal als
berechnet werden.
-
Hinsichtlich der Matrix M
v ist
-
Dafür kann nur
gespeichert werden. Wenn
gesetzt wird, liefert dies
-
Nun in 5 ist ein Ablaufplan dargestellt, der ein beispielhaftes Verfahren zum Schätzen von Betriebsparametern und zum Regeln der Drosselklappe 112, des Einlassnocken-Phasenstellers 148, des Auslassnocken-Phasenstellers 150, des Ladedruckregelventils 162 (und somit des Turboladers) und des AGR-Ventils 170 unter Verwendung einer MPC (modellprädiktiven Regelung) zeigt. Die Regelung kann mit 504 beginnen, wo das Drehmomentanforderungsmodul 224 auf der Grundlage der eingestellten vorhergesagten Drehmomentanforderung und der eingestellten Sofortdrehmomentanforderung 263 und 264 die Luftdrehmomentanforderung 265 bestimmt. Bei 508 kann das Drehmomentumsetzungsmodul 304 die Luftdrehmomentanforderung 265 zur Verwendung durch das MPC-Modul 312 in die Basisluftdrehmomentanforderung 308 oder in einen anderen geeigneten Drehmomenttyp umsetzen. Bei 512 bestimmt das Zustandsschätzmodul 316 wie oben beschrieben die Zustände der Kraftmaschine 102 für die aktuelle Regelschleife. Das Zustandsschätzmodul 316 kann die Zustände z. B. unter Verwendung eines Kalman-Filters bestimmen.
-
Bei 516 löst das Optimierungsmodul 320 das Optimierungsproblem, um wie oben beschrieben das optimale Paar (x*, λ*) zum Bestimmen der Sollwerte 266–270 zu bestimmen. Bei 520 bestimmt das Optimierungsmodul 320 auf der Grundlage der Sollwerte 266–270 für die letzte Regelschleife bzw. der Delta-Werte von x* die Sollwerte 266–270 für die aktuelle Regelschleife. Nur beispielhaft bestimmt das Optimierungsmodul 320 die Sollwerte 266–270 durch Summieren der Deltawerte von x* jeweils mit den Sollwerten 266–270 für die letzte Regelschleife.
-
Bei 528 setzt das erste Umsetzungsmodul 272 die Soll-Ladedruckregelventil-Öffnungsfläche 266 in den Soll-Tastgrad 274 um, der an das Ladedruckregelventil 162 angelegt werden soll, und setzt das zweite Umsetzungsmodul 276 die Soll-Drosselöffnungsfläche 267 in den Soll-Tastgrad 278 um, der an die Drosselklappe 112 angelegt werden soll. Außerdem setzt das dritte Umsetzungsmodul 280 die Soll-AGR-Öffnungsfläche 268 bei 428 in den Soll-Tastgrad 282 um, der an das AGR-Ventil 170 angelegt werden soll. Das vierte Umsetzungsmodul kann ebenfalls den Soll-Einlassnocken-Phasenstellerwinkel und den Soll-Auslassnocken-Phasenstellerwinkel 279 und 270 in den Soll-Einlasstastgrad und in den Soll-Auslasstastgrad umsetzen, die an den Einlassnocken-Phasensteller und an den Auslassnocken-Phasensteller 148 bzw. 150 angelegt werden sollen.
-
Bei 532 regelt das Drosselaktuatormodul 116 die Drosselklappe 112, um die Soll-Drosselöffnungsfläche 267 zu erzielen, regelt das Phasenstelleraktuatormodul 158 den Einlass- und den Auslassnocken-Phasensteller 148 und 150, um den Soll-Einlassnocken-Phasenstellerwinkel und den Soll-Auslassnocken-Phasenstellerwinkel 269 bzw. 270 zu erzielen. Zum Beispiel kann das Drosselaktuatormodul 116 ein Signal bei dem Soll-Tastgrad 278 an die Drosselklappe 112 anlegen, um die Soll-Drosselöffnungsfläche 267 zu erzielen. Außerdem regelt das AGR-Aktuatormodul 172 bei 532 das AGR-Ventil 170, um die Soll-AGR-Öffnungsfläche 268 zu erzielen, und regelt das Ladedruckaktuatormodul 164 das Ladedruckregelventil 162, um die Soll-Ladedruckregelventil-Öffnungsfläche 266 zu erzielen. Zum Beispiel kann das AGR-Aktuatormodul 172 ein Signal an das AGR-Ventil 170 bei dem Soll-Tastgrad 282 anlegen, um die Soll-AGR-Öffnungsfläche 268 zu erzielen, und kann das Ladedruckaktuatormodul 164 ein Signal an das Ladedruckregelventil 162 bei dem Soll-Tastgrad 274 anlegen, um die Soll-Ladedruckregelventil-Öffnungsfläche 266 zu erzielen. Während 5 in der Weise gezeigt ist, dass sie nach 432 endet, veranschaulicht 5 eine Regelschleife, wobei Regelschleifen mit einer vorgegebenen Rate ausgeführt werden können.
-
Die vorstehende Beschreibung ist dem Wesen nach lediglich veranschaulichend und soll die Offenbarung, ihre Anwendung oder Verwendungen in keiner Weise einschränken. Die umfassenden Lehren der Offenbarung können in einer Vielzahl von Formen implementiert werden. Obwohl diese Offenbarung bestimmte Beispiele enthält, soll der wahre Umfang der Offenbarung somit nicht darauf beschränkt sein, da andere Änderungen beim Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche hervorgehen. Wie die Formulierung wenigstens eines von A, B und C hier verwendet ist, soll sie ein logisches (A ODER B ODER C) unter Verwendung eines nicht ausschließenden logischen ODER bedeuten und ist sie nicht in der Bedeutung ”wenigstens eines von A, wenigstens eines von B, wenigstens eines von C” zu verstehen. Es ist festzustellen, dass einer oder mehrere Schritte innerhalb eines Verfahrens in einer anderen Reihenfolge (oder gleichzeitig) ausgeführt werden können, ohne die Prinzipien der vorliegenden Offenbarung zu ändern.
-
In dieser Anmeldung einschließlich in den folgenden Definitionen kann der Begriff ”Modul” oder der Begriff ”Controller” durch den Begriff ”Schaltung” ersetzt werden. Der Begriff ”Modul” kann sich auf: eine anwendungsspezifische integrierte Schaltung (ASIC); auf eine digitale, analoge oder gemischt analog/digitale diskrete Schaltung; auf eine digitale, analoge oder gemischt analog/digitale integrierte Schaltung; auf eine Kombinationslogikschaltung; auf eine frei programmierbare logische Anordnung (FPGA); auf eine Prozessorschaltung (gemeinsam genutzt, dediziert oder Gruppe), die Code ausführt; auf eine Speicherschaltung (gemeinsam genutzt, dediziert oder Gruppe), die durch die Prozessorschaltung ausgeführten Code speichert; auf andere geeignete Hardwarekomponenten, die die beschriebene Funktionalität bereitstellen; oder auf eine Kombination einiger oder aller der Obigen wie etwa in einem Ein-Chip-System beziehen, ein Teil davon sein oder sie enthalten.
-
Das Modul kann eine oder mehrere Schnittstellenschaltungen enthalten. In einigen Beispielen können die Schnittstellenschaltungen verdrahtete oder drahtlose Schnittstellen enthalten, die mit einem lokalen Netz (LAN), mit dem Internet, mit einem Weitverkehrsnetz (WAN) oder mit Kombinationen davon verbunden sind. Die Funktionalität irgendeines gegebenen Moduls der vorliegenden Offenbarung kann auf mehrere Module, die über Schnittstellenschaltungen verbunden sind, verteilt sein. Zum Beispiel können mehrere Module einen Lastausgleich ermöglichen. In einem weiteren Beispiel kann ein Servermodul (auch als fernes Modul oder Cloud-Modul bekannt) einige Funktionalität im Auftrag eines Clientmoduls ausführen.
-
Der Begriff Code, wie er oben verwendet ist, kann Software, Firmware und/oder Mikrocode enthalten und kann sich auf Programme, Routinen, Funktionen, Klassen, Datenstrukturen und/oder Objekte beziehen. Der Begriff gemeinsam genutzte Prozessorschaltung umfasst eine einzelne Prozessorschaltung, die einen Teil des Codes oder allen Code von mehreren Modulen ausführt. Der Begriff Gruppenprozessorschaltung umfasst eine Prozessorschaltung, die einen Teil oder allen Code von einem oder von mehreren Modulen zusammen mit zusätzlichen Prozessorschaltungen ausführt. Bezugnahmen auf mehrere Prozessorschaltungen umfassen mehrere Prozessorschaltungen auf diskreten Chipplättchen, mehrere Prozessorschaltungen auf einem einzelnen Chipplättchen, mehrere Kerne einer einzelnen Prozessorschaltung, mehrere Threads einer einzelnen Prozessorschaltung oder eine Kombination des Obigen. Der Begriff gemeinsam genutzte Speicherschaltung umfasst eine einzelne Speicherschaltung, die einen Teil oder allen Code von mehreren Modulen speichert. Der Begriff Gruppenspeicherschaltung umfasst eine Speicherschaltung, die einen Teil oder allen Code von einem oder von mehreren Modulen zusammen mit zusätzlichen Speichern speichert.
-
Der Begriff Speicherschaltung ist eine Teilmenge des Begriffs computerlesbares Medium. Der Begriff computerlesbares Medium, wie er hier verwendet ist, umfasst keine vorübergehenden elektrischen oder elektromagnetischen Signale, die sich durch ein Medium ausbreiten (wie etwa eine Trägerwelle); somit kann der Begriff computerlesbares Medium als vorübergehend oder als nicht vorübergehend angesehen werden. Nicht einschränkende Beispiele eines nicht vorübergehenden, konkreten computerlesbaren Mediums sind nichtflüchtige Speicherschaltungen (wie etwa eine Flash-Speicherschaltung, eine löschbare, programmierbarere Nurlese-Speicherschaltung oder eine Masken-Nur-lese-Speicherschaltung), flüchtige Speicherschaltungen (wie etwa eine statische Schreib-Lese-Speicherschaltung oder eine dynamische Schreib-Lese-Speicherschaltung), magnetische Ablagemedien (wie etwa ein analoges oder digitales Magnetband oder ein Festplattenlaufwerk) und optische Ablagemedien (wie etwa eine CD, eine DVD oder eine Bluray-Disc.)
-
Die in dieser Anmeldung beschriebenen Vorrichtungen und Verfahren können teilweise oder vollständig durch einen durch Konfigurieren eines Universalcomputers zum Ausführen einer oder mehrerer bestimmter Funktionen, die in Computerprogramme verkörpert sind, erzeugten Spezialcomputer implementiert werden. Die Funktionsblöcke, Ablaufplankomponenten und anderen Elemente, die oben beschrieben sind, dienen als Softwarespezifikationen, die durch die Routinearbeit eines erfahrenen Technikers oder Programmierers in die Computerprogramme übersetzt werden können.
-
Die Computerprogramme enthalten durch einen Prozessor ausführbare Anweisungen, die in wenigstens einem nicht vorübergehenden, konkreten computerlesbaren Medium gespeichert sind. Außerdem können die Computerprogramme gespeicherte Daten enthalten oder sich auf sie stützen. Die Computerprogramme können ein Basis-Eingabe/Ausgabe-System (BIOS), das mit Hardware des Spezialcomputers zusammenwirkt, Vorrichtungstreiber, die mit bestimmten Vorrichtungen des Spezialcomputers zusammenwirken, eines oder mehrere Betriebssysteme, Anwenderanwendungen, Hintergrunddienste, Hintergrundanwendungen usw. enthalten.
-
Die Computerprogramme können enthalten: (i) beschreibenden Text, der zu parsen ist, wie etwa HTML (Hypertext Markup Language) oder XML (Extensible Markup Language), (ii) Assemblercode, (iii) Objektcode, der durch einen Compiler aus Quellcode erzeugt wird, (iv) Quellcode zur Ausführung durch einen Interpreter, (v) Quellcode zur Compilierung und Ausführung durch einen Just-in-time-Compiler usw. Nur als Beispiele kann Quellcode unter Verwendung einer Syntax aus Sprachen einschließlich C, C++, C#, Objective C, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5, Ada, ASP (Active Server Pages), PHP, Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua und Python® geschrieben sein
-
Sofern ein Element nicht ausdrücklich unter Verwendung der Formulierung ”Mittel zum” oder im Fall eines Verfahrensanspruchs unter Verwendung der Formulierungen ”Operation zum” oder ”Schritt zum” dargestellt ist, soll keines der dargestellten Elemente ein Mittel-plus-Funktion-Element in der Bedeutung des 35 USC §112(f) sein.