-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft Modellberechnungseinheiten für Steuergeräte, in denen datenbasierte Funktionsmodelle zur hardwaremäßigen Durchführung von Funktionen, insbesondere zur Steuerung von Motorsystemen, implementiert sind. Die vorliegende Erfindung betrifft weiterhin Verfahren zur Berechnung von datenbasierten Funktionsmodellen in solchen Modellberechnungseinheiten.
-
Stand der Technik
-
Aus dem Stand der Technik sind Steuergeräte mit einer Hauptrecheneinheit und einer separaten Modellberechnungseinheit zur Berechnung von datenbasierten Funktionsmodellen bekannt. So zeigt beispielsweise die Druckschrift
DE 10 2010 028 266 A1 ein Steuergerät mit einer zusätzlichen Logikschaltung als Modellberechnungseinheit, die hardwaremäßig für die Berechnung von Exponentialfunktionen ausgebildet ist. Dies ermöglicht es, Bayes-Regressionsverfahren, die insbesondere für die Berechnung von Gauß-Prozessmodellen benötigt werden, in einer Hardware-Einheit zu unterstützen.
-
Die Modellberechnungseinheit ist insgesamt ausgelegt, mathematische Prozesse zur Berechnung des datenbasierten Funktionsmodells basierend auf Parametern und Stützstellen bzw. Trainingsdaten durchzuführen. Insbesondere ist die Modellberechnungseinheit hardwaremäßig zur effizienten Berechnung von Exponentialfunktionen ausgebildet, so dass es ermöglicht wird, Gauß-Prozessmodelle mit einer höheren Rechengeschwindigkeit zu rechnen als dies in der Hauptrecheneinheit möglich ist. In der Regel werden Konfigurationsdaten, die Parameter und Stützstellen zur Berechnung des datenbasierten Funktionsmodells enthalten, vor der Berechnung in der Modellberechnungseinheit in diese eingelesen und anschließend die auf den Konfigurationsdaten basierenden Berechnungen durch die Hardware der Modellberechnungseinheit vorgenommen. Die bisherige Implementierung der Hardware einer solchen Modellberechnungseinheit kann jedoch im Fall von ungünstigen Konfigurationsdaten zu numerischen Problemen bei der Berechnung führen, so dass sich nicht alle offline bestimmten datenbasierten Funktionsmodelle stabil auf der Modellberechnungseinheit berechnen lassen.
-
Offenbarung der Erfindung
-
Erfindungsgemäß sind die Modellberechnungseinheit zur Berechnung eines datenbasierten Funktionsmodells in einem Steuergerät mit einem Rechenkern gemäß Anspruch 1 sowie das Steuergerät und das Verfahren zur Berechnung eines datenbasierten Funktionsmodells gemäß den nebengeordneten Ansprüchen vorgesehen.
-
Weitere vorteilhafte Ausgestaltungen der vorliegenden Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Gemäß einem ersten Aspekt ist eine Modellberechnungseinheit als Hardwareeinheit zur Berechnung eines datenbasierten Funktionsmodells in einem Steuergerät, wobei die Modellberechnungseinheit ein Rechenkern aufweist, wobei der Rechenkern umfasst:
- – eine Multiplikationseinheit zur hardwaremäßigen Durchführung einer Multiplikation;
- – eine Additionseinheit zur hardwaremäßigen Durchführung einer Addition;
- – eine Exponentialfunktionseinheit zum hardwaremäßigen Berechnen einer Exponentialfunktion;
- – ein Konfigurationsregister oder Speicher zum Speichern von Hyperparametern und Stützstellendaten des zu berechnenden datenbasierten Funktionsmodells; und
- – eine Logikschaltung zum hardwaremäßigen Steuern des Berechnungsablaufs in der Multiplikationseinheit, der Additionseinheit, der Exponentialfunktionseinheit und dem Konfigurationsregister oder Speicher, um das datenbasierte Funktionsmodell zu ermitteln.
-
Bei der Modellberechnungseinheit handelt es sich um eine Logikeinheit, die eine Hardware enthält, die zur hardwaremäßigen Durchführung bestimmter Berechnungen für datenbasierte Funktionsmodelle insbesondere zur gemeinsamen Integration mit einem Rechenkern ausgebildet ist. Mithilfe dieser Logikeinheit wird ein vorab trainiertes und auf der Hardware gespeichertes Berechnungsverfahren für ein Bayes-Regressionsmodell online durchgeführt. Die Verwendung eines Gauß-Prozessmodells als datenbasiertes Funktionsmodell ermöglicht es, insbesondere durch Transformation der Eingangsnormierung eines Testpunkts, bei dem ein Modellwert ermittelt werden soll, sowie durch Transformation des Exponentialterms den Modellwert des Gauß-Prozessmodells als eine Folge von Additionen und Multiplikationen sowie einer Exponentialfunktion zu ermitteln.
-
Insbesondere kann die Modellberechnungseinheit ausschließlich aus den obigen Einheiten bestehen.
-
In Hardware ist es möglich, einen Hardware-Funktionsblock, einen so genannten MAC-Block (MAC = Multiplier-Accumulator, auch deutsch: MAK = Multiplikationsakkumulator) für Integer-Berechnungen oder FMA-Block (FMA: fused multiply-add, auch als FMAC-Block bezeichnet (FMAC: fused multiply accumulate) für Fließkomma-Berechnungen, zu realisieren. Dieser Hardware-Funktionsblock wird in dieser Beschreibung für Integer als auch Fließkomma-Berechnungen als MAC-Einheit bezeichnet. Die MAC-Einheit kann die Operation a + b × c durch direkte Realisierung in Hardware besonders effizient und somit schnell ausführen. Dies ist unter Umständen innerhalb weniger Taktzyklen, und in Spezialfällen auch innerhalb eines Taktzyklus, möglich.
-
Durch das separate Vorsehen einer derartigen Modellberechnungseinheit mit einer in Hardware realisierten MAC-Einheit und einer in Hardware realisierten Exponentialfunktionseinheit zur ausschließlichen Berechnung einer Exponentialfunktion ist es möglich, eine besonders effiziente Logikschaltung zur Verfügung zu stellen, die als Modellberechnungseinheit integriert mit einem Rechenkern (der zur Ausführung von Software geeignet ist) in einem Steuergerät zum Ermitteln von Modellwerten für datenbasierte Funktionsmodelle, insbesondere Gauß-Prozessmodelle, Verwendung finden kann.
-
Weiterhin können die Multiplikationseinheit und die Additionseinheit separat oder kombiniert in einer MAC-Einheit realisiert sein.
-
Gemäß einer Ausführungsform können mehrere Rechenkerne vorgesehen sein, wobei mehrere der mehreren Rechenkerne eine gemeinsame Exponentialfunktionseinheit und/oder eine gemeinsame MAC-Einheit aufweisen. Alternativ kann auch vorgesehen sein, dass jeder Rechenkern eine eigene Exponentialfunktionseinheit und eine eigene MAC-Einheit aufweist.
-
Es kann vorgesehen sein, dass das Funktionsmodell einen Modellwert mehreren Eingangsgrößen zuweist, wobei der Berechnungsablauf ausgebildet ist, um jeweils für eine Berechnung einer Eingangsnormierung der Eingangsgrößen mithilfe der MAC-Einheit eine Multiplikation und eine Addition sowie für eine Berechnung einer Ausgangsnormierung der Ausgangsgröße mithilfe der MAC-Einheit eine Multiplikation und eine Addition durchzuführen.
-
Gemäß einer Ausführungsform kann das Funktionsmodell die Berechnung eines Terms ((x)i – u)2 vorsehen, wobei xi den Stützstellen des datenbasierten Funktionsmodells und u den Eingangsgrößen entsprechen, wobei die Logikschaltung die Additionseinheit und Multiplikationseinheit bzw. die MAC-Schaltung ansteuert, um die Berechnung des Terms durch eine Additions- und eine Multiplikationseinheit oder durch eine MAC-Einheit durchzuführen.
-
Gemäß einem weiteren Aspekt ist ein Steuergerät, insbesondere für ein Motorsystem mit einem Verbrennungsmotor, vorgesehen, das eine Recheneinheit und die obige Modellberechnungseinheit umfasst.
-
Gemäß einem weiteren Aspekt ist ein Verfahren zur Berechnung eines datenbasierten Funktionsmodells, insbesondere eines Gaußprozessmodells, in der obigen Modellberechnungseinheit vorgesehen, wobei das Funktionsmodell durch nacheinander durchgeführte Rechenschritte vollständig berechnet wird, wobei die Rechenschritte nur eine kombinierte Multiplikation und Addition sowie eine Berechnung einer Exponentialfunktion umfassen.
-
Kurzbeschreibung der Zeichnungen
-
Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
-
1 eine schematische Darstellung einer Hardwarearchitektur für ein Steuergerät zum Steuern eines physikalischen Systems;
-
2 eine Blockdarstellung zur Ermittlung des Modellwerts für ein Gauß-Prozessmodell für einen D-dimensionalen Eingangswert eines Eingangsgrößenvektors;
-
3 eine detailliertere Darstellung eines Rechenkerns in einer Modellberechnungseinheit des Steuergeräts;
-
4 eine schematische Darstellung einer Hardwarearchitektur für zwei Rechenkerne, die gemeinsam eine MAC-Einheit und eine Exponentialfunktionseinheit nutzen; und
-
5 eine schematische Darstellung einer weiteren Hardwarearchitektur für zwei Rechenkerne mit separaten MAC-Einheiten und einer gemeinsamen Exponentialfunktionseinheit.
-
Beschreibung von Ausführungsformen
-
1 zeigt eine schematische Darstellung einer Hardwarearchitektur für ein integriertes Steuergerät 1, in dem eine Recheneinheit 2 und eine Modellberechnungseinheit 3 zur hardwaremäßigen Berechnung eines datenbasierten Funktionsmodells in integrierter Weise vorgesehen sind. Die Recheneinheit 2 und die Modellberechnungseinheit 3 stehen über einen Systembus 4 miteinander in Kommunikationsverbindung.
-
Grundsätzlich weist die Modellberechnungseinheit 3 lediglich Hardware (hartverdrahtet) auf und ist vorzugsweise nicht dazu ausgebildet, Softwarecode auszuführen. Aus diesem Grunde ist es auch nicht notwendig, in der Modellberechnungseinheit 3 einen Prozessor vorzusehen. Dies ermöglicht eine ressourcenoptimierte Realisierung einer solchen Modellberechnungseinheit 3.
-
Die Modellberechnungseinheit 3 kann einen oder mehrere Rechenkerne 31, einen internen Speicher 32 und eine DMA-Einheit 33 (DMA = Direct Memory Access) umfassen. Die Rechenkerne 31, der interne Speicher 32 und die DMA-Einheit 33 stehen über eine interne Kommunikationsverbindung 34 miteinander in Verbindung.
-
Die Verwendung von nicht parametrischen, datenbasierten Funktionsmodellen basiert auf einem Bayes-Regressionsverfahren. Die Grundlagen der Bayes-Regression sind beispielsweise in C. E. Rasmusen et al., „Gaussian Processes for Machine Learning", MIT Press 2006, beschrieben. Die Bayes-Regression ist ein datenbasiertes Verfahren, das auf einem Modell basiert. Zur Erstellung des Modells sind Messpunkte von Trainingsdaten sowie zugehörige Ausgangsdaten einer Ausgangsgröße erforderlich. Das Modell wird erstellt, indem Stützstellendaten die den Trainingsdaten ganz oder teilweise entsprechen oder aus diesen generiert werden, verwendet werden. Weiterhin werden abstrakte Hyperparameter bestimmt, die den Raum der Modellfunktionen parametrisieren und effektiv den Einfluss der einzelnen Messpunkte der Trainingsdaten auf die spätere Modellvorhersage gewichten.
-
Die abstrakten Hyperparameter werden durch ein Optimierungsverfahren bestimmt. Eine Möglichkeit für ein solches Optimierungsverfahren besteht in einer Optimierung einer Marginal Likelihood p(Y|H,X). Die Marginal Likelihood p(Y|H,X) beschreibt die Plausibilität der gemessenen y-Werte der Trainingsdaten, dargestellt als Vektor Y, gegeben die Modellparameter H und die x-Werte der Trainingsdaten. Im Modelltraining wird p(Y|H,X) maximiert, indem geeignete Hyperparameter gesucht werden, mit denen die Daten besonders gut erklärt werden können. Zur Vereinfachung der Berechnung wird der Logarithmus von p(Y|H,X) maximiert, da der Logarithmus die Stetigkeit der Plausibilitätsfunktion nicht verändert.
-
Das Optimierungsverfahren sorgt dabei automatisch für einen Trade-off zwischen Modellkomplexität und Abbildungsgenauigkeit des Modells. Zwar kann mit steigender Modellkomplexität eine beliebig hohe Abbildungsgenauigkeit der Trainingsdaten erreicht werden, dies kann jedoch gleichzeitig zu einer Überanpassung des Modells an die Trainingsdaten und damit zu einer schlechteren Generalisierungseigenschaft führen.
-
Die Berechnung des Gauß-Prozessmodells erfolgt entsprechend den Schritten, die in
2 schematisch dargestellt sind. Die Eingangswerte für einen Testpunkt u (Eingangsgrößenvektor) werden zunächst normiert, und zwar entsprechend der folgenden Formel:
-
Dabei entsprechen mx der Mittelwertfunktion bezüglich eines Mittelwerts der Eingangswerte der Stützstellendaten und sy der Varianz der Eingangswerte der Stützstellendaten.
-
Als Ergebnis der Erstellung des nicht parametrischen Funktionsmodells erhält man:
-
Der so ermittelte Modellwert v wird mithilfe einer Ausgangsnormierung normiert, entsprechend der Formel: v ~ = vsy + my
-
Dabei entsprechen v einem normierten Modellwert (Ausgangswert) an einem normierten Testpunkt u (Eingangsgrößenvektor der Dimension D), v ~ einem (nicht normierten) Modellwert (Ausgangswert) an einem (nicht normierten) Testpunkt u ~ (Eingangsgrößenvektor der Dimension D), xi einer Stützstelle der Stützstellendaten, N der Anzahl der Stützstellen der Stützstellendaten, D der Dimension des Eingangsdaten-/Trainingsdaten-/Stützstellendatenraums, sowie ld und σf den Hyperparametern aus dem Modelltraining. Der Vektor Qy ist eine aus den Hyperparametern und den Trainingsdaten berechnete Größe. Weiterhin entsprechen my der Mittelwertfunktion bezüglich eines Mittelwerts der Ausgangswerte der Stützstellendaten und sy der Varianz der Ausgangswerte der Stützstellendaten.
-
Die Eingangs- und Ausgangsnormierung erfolgt, da die Berechnung des Gauß-Prozessmodells typischerweise in einem normierten Raum stattfindet.
-
Zum Start einer Berechnung weist die Recheneinheit 2 die DMA-Einheit 33 an, die das zu berechnende Funktionsmodell betreffenden Konfigurationsdaten aus dem Speicher 5 in den internen Speicher 32 zu laden und in dem Rechenkern 31 die Berechnung zu starten, die mithilfe der Konfigurationsdaten durchgeführt wird. Die Konfigurationsdaten umfassen die Hyperparameter eines Gauß-Prozessmodells sowie Stützstellendaten.
-
Die sich aus
2 ergebende Verarbeitungskette ist für eine numerische Berechnung ungünstig und kann sich im vorliegenden Fall unter Umständen nicht stabil in der Modellberechnungseinheit
3 berechnen lassen. Es ist daher vorgesehen, den Rechenkern
31 so auszubilden, dass die Berechnungen in einfacherer Weise schnell und/oder numerisch stabil ausgeführt werden können. Dazu wird die Eingangsnormierung ersetzt durch:
-
Weiterhin kann die Vorhersage des Bayes-Regressionsmodells ersetzt werden durch:
-
Die innere Summenschleife summiert die Produkte von mit den Quadratdifferenzen zwischen den Stützstellendaten und dem Testpunkt u online. Die Length-Scales sind typischerweise für jedes Modell verschieden. Die Transformation der Eingangsnormierung und die Umformulierung des Bayes-Regressionsmodells führen dazu, dass der Rechenkern 31 wiederholt Operationen der Form a + b × c zur Berechnung des Modellwerts verwenden kann.
-
Bei einer Hardwareimplementierung ist eine Berechnung der Form a + b × c in besonders effizienter Weise mithilfe einer so genannten MAC-Einheit möglich. Eine solche MAC-Einheit lässt sich in Hardware realisieren, um innerhalb weniger Taktzyklen eine entsprechende Berechnung durchführen zu können. Unter Umständen kann die Berechnung sogar innerhalb eines Taktzyklus erfolgen. Weiterhin führt die oben angegebene Transformation und Umformung zu einer numerisch stabilen Berechnung des Modellwerts in dem Rechenkern
31. Die Berechnung wird in Hardware realisiert, wie es in dem beigefügten Pseudo-C-Code angegeben ist.
-
Es ist darauf zu achten, dass die Length-Scale l'
d immer positiv ist, da die Exponentialfunktion nur im negativen Eingangsbereich numerisch genau sein und daher entsprechend optimiert werden kann, d. h.
-
Weiterhin kann der Gewichtungsfaktor ½ in der Length-Scale l'd = ½ld auch flächengünstig in Hardware implementiert werden, so dass die gespeicherte Length-Scale nur in reziproker Form gespeichert werden kann.
-
Durch die obige Umformulierung kann der Rechenprozess, der in 2 dargestellt ist, mit folgenden Einheiten in dem Rechenkern 31, der detaillierter in 3 dargestellt ist, durchgeführt werden. Der Rechenkern 31 umfasst dazu eine Exponentialfunktionseinheit 41, eine Multiplikationseinheit 43, eine Additionseinheit 42 oder deren bekannte zusammengefügte Form einer MAC-Einheit 44. Um die Flexibilität der Hardware gewährleisten zu können, sind die benötigten Parameter, nämlich der Testpunkt u, die Stützstellendaten xi, die Anzahl der Dimensionen D, die Anzahl der Trainingsdaten N, konfigurierbar. Diese sind in einem Konfigurationsregister oder Speicher zusammengefasst gespeichert und können beispielsweise als Register 45 und Zeigerregister dargestellt werden, die von der Recheneinheit 2 beschrieben werden können.
-
Der obige im Pseudo-C-Code angegebene Berechnungsablauf wird durch eine Logikschaltung 46 gesteuert. Die Logikschaltung 46 stellt eine entsprechende Verdrahtung und Ablaufsteuerung dar.
-
Weiterhin ermöglicht die Umformulierung, die vollständige Berechnung des Gauß-Prozessmodells in Hardware zu implementieren. Die Berechnung kann im Wesentlichen mithilfe der MAC-Einheit 44 und der Exponentialfunktionseinheit 41 durchgeführt werden. Die Verwendung der Blöcke ist in dem obigen Pseudo-C-Code auf der rechten Seite angegeben.
-
Die Berechnung ((xi)d – ud)2 kann aber auch in einer dedizierten Additionseinheit und Multiplikationseinheit durchgeführt werden, so dass die Berechnung schnell läuft.
-
Wie in 1 dargestellt, können in der Modellberechnungseinheit 3 mehrere Rechenkerne 31 vorgesehen sein, um mehrere Gauß-Prozessmodelle bzw. Teilmodelle unabhängig voneinander und parallel zu berechnen. Wie in 4 dargestellt, hat jeder Rechenkern 31 ein eigenes Konfigurationsregister, bzw. einen eigenen Speicher, in das die Eingangswerte des Testpunkts u, die Stützstellendaten xi und alle anderen Parameter geladen werden. Die Realisierung mehrerer Rechenkerne 31 kann beispielsweise durch Pipeline-Technik realisiert werden.
-
Weiterhin besteht auch die Optimierungsmöglichkeit, dass ein oder mehrere Teile der Modellberechnungseinheit 3 nur einmal implementiert und von mehreren Rechenkernen 31 genutzt werden, um Hardwareressourcen zu schonen. So können beispielsweise die Rechenkerne 31 auf eine gemeinsame MAC-Einheit 44 oder eine gemeinsame Exponentialfunktionseinheit 41 zugreifen.
-
Die Realisierung mehrerer Rechenkerne 31 kann beispielsweise durch eine (Zeit-)Multiplex-Technik optimiert werden. Bei der Zeit-Multiplex-Technik besteht eine konstante Takt-Zuordnung zu den Einheiten, z.B. zu zwei Rechenkernen 31, d.h. gerade Takte und ungerade Takte werden einem entsprechenden von z.B. zwei Rechenkernen zugeordnet.
-
Im Allgemeinen wird bei der Multiplex-Technik die Zuordnung der Rechenkerne 31 nach Bedarf (z.B. mit Hilfe der Logikschaltung 46) vorgenommen. Weiterhin kann die Multiplex-Technik eine Redundanz vorsehen, bei der bei einem Ausfall eines Rechenkerns dessen Berechnungen von einem weiteren Rechenkern durchgeführt werden.
-
Die Realisierung der 5 zeigt dagegen zwei Rechenkerne 31 mit jeweils einer eigenen MAC-Einheit 44, die auf eine gemeinsame Exponentialfunktionseinheit 41 zugreifen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102010028266 A1 [0002]
-
Zitierte Nicht-Patentliteratur
-
- C. E. Rasmusen et al., „Gaussian Processes for Machine Learning“, MIT Press 2006 [0026]