-
Technisches Gebiet
-
Die Erfindung betrifft ein Verfahren zum Analysieren eines Signalverarbeitungsnetzwerks gemäß dem Oberbegriff von Anspruch 1. Die Erfindung betrifft ferner ein System, ein Computerprogramm und ein computerlesbares Medium gemäß den abhängigen Ansprüchen.
-
Stand der Technik
-
Signalverarbeitungsnetzwerke wie Sensoren und Verarbeitungseinheiten in einem Auto weisen komplexe Abhängigkeiten auf und ihre Dimensionen sind nicht mehr transparent.
-
Wenn es dazu kommt, ein Signalverarbeitungsnetzwerk in einem Auto zum Beispiel im Hinblick auf Borddiagnostiksoftware zur Emissionsanalyse zu analysieren, kann es notwendig werden, alle Pfade in einer solchen Software zu analysieren, um unerwünschtes Verhalten der Software zu vermeiden. Für die Anforderung, jeden Borddiagnostik- bzw. OBD-relevanten oder OBD-verdächtigen Pfad zu analysieren, müssen alle potentiellen Signaleinflüsse der insgesamten in dem Signalverarbeitungsnetzwerk laufenden Software auf die Emission bestimmt werden.
-
Durch die Komplexität solcher Signalverarbeitungsnetzwerke und die resultierende Komplexität der diese Netzwerke ausführenden Software wird es äußerst kompliziert, zeitaufwendig und umständlich, eine solche Analyse auszuführen.
-
Offenbarung der Erfindung
-
Die Aufgabe der Erfindung ist die Überwindung oder zumindest Minderung der oben erwähnten Nachteile.
-
Das Problem wird gelöst durch ein Verfahren zum Analysieren eines Signalverarbeitungsnetzwerks, wobei das Verfahren einen Iterationsprozess umfasst, während dessen ein Softwareprogramm, das das Signalverarbeitungsnetzwerk repräsentiert, iteriert wird, um ein Modell zu definieren, das das Signalverarbeitungsnetzwerk repräsentiert, wobei der Iterationsprozess das Modell als seine Ausgabe liefert.
-
Der Ausdruck „Signalverarbeitungsnetzwerk“ ist als sich auf mehrere Vorrichtungen beziehend zu verstehen, wie etwa Sensoren und/oder Verarbeitungseinheiten, die in einem technischen System enthalten sind, wie etwa einem Fahrzeug, z. B. einem Auto. Ein solches Signalverarbeitungsnetzwerk umfasst typischerweise auch Software, die typischerweise auf mindestens einigen oder allen der Vorrichtungen läuft und die typischerweise die Funktionsweise des Signalverarbeitungsnetzwerks laufen lässt und/oder koordiniert. Der Ausdruck „Softwareprogramm, das das Signalverarbeitungsnetzwerk repräsentiert“ ist als sich typischerweise auf eine derartige Software, die das Signalverarbeitungsnetzwerk laufen lässt, beziehend zu verstehen. Der Ausdruck „Modell, das ein Signalverarbeitungsnetzwerk repräsentiert“ ist als sich typischerweise auf eine Repräsentation des Signalverarbeitungsnetzwerks beziehend zu verstehen, die verglichen mit dem ursprünglichen Signalverarbeitungsnetzwerk verringerte Komplexität aufweist. Ein solches Modell ist typischerweise ein computerisiertes Modell.
-
Bei bevorzugten Ausführungsformen wird eine Menge von anfänglichen Zuständen des Signalverarbeitungsnetzwerks dem Softwareprogramm am Anfang des Iterationsprozesses als Eingabe zugeführt. Die Menge von anfänglichen Zuständen wird typischerweise auf der Basis von Expertenwissen am Anfang des Verfahrens definiert. Es ist möglich, dass die Menge von anfänglichen Zuständen nur einen anfänglichen Zustand umfasst.
-
Bei bevorzugten Ausführungsformen umfasst der Iterationsprozess eine Ausführung, vorzugweise mehrere Ausführungen, eines Softwareobjekts, wobei das Softwareobjekt als Eingabe eine Ausgabe des Softwareprogramms empfängt, wobei das Softwareobjekt vorzugsweise als eine Eingabe die Menge von anfänglichen Zuständen empfängt, wobei das Softwareobjekt vorzugsweise seine Ausgabe als Eingabe dem Softwareprogramm zuführt. Das „Softwareobjekt“ kann auch als „zweites Softwareprogramm“ bezeichnet werden.
-
Bei bevorzugten Ausführungsformen umfasst das Verfahren einen Kompilierschritt, während dessen das Softwareprogramm mittels einer Kompilierung auf der Basis eines Quellcodes erstellt wird.
-
Bei bevorzugten Ausführungsformen umfasst das Verfahren einen Empfindlichkeitsanalyseprozess, während dessen mehrere Pfadgewichte für mehrere Pfade des Modells berechnet werden, wobei jeder Pfad vorzugsweise einer Abhängigkeit zwischen einer Eingabe des Modells und einer Ausgabe des Modells entspricht. Die Verwendung solcher Pfadgewichte hat den Vorteil, die Analyse der Abhängigkeiten zwischen Eingaben und Ausgaben des Modells zu standardisieren und dadurch die Analyse von Abhängigkeiten von Variablen des Signalverarbeitungsnetzwerks unkomplizierter und leichter zu machen. Bei typischen Ausführungsformen umfassen die Pfadgewichte ein Durchschnittsempfindlichkeitsgewicht und/oder ein Großes-Gewicht-Hervorhebungs-Durchschnittsempfindlichkeitsgewicht und/oder ein Maximalempfindlichkeitsgewicht.
-
Bei bevorzugten Ausführungsformen umfasst das Verfahren einen Graph-Erzeugungsschritt, während dessen ein Graph auf der Basis der mehreren Graphgewichte und/oder auf der Basis des Quellcodes und/oder auf der Basis des Modells erzeugt wird. Der Ausdruck „Graph“ ist als sich typischerweise auf eine standardisierte, typischerweise computerisierte Repräsentation des Modells beziehend zu verstehen.
-
Bei bevorzugten Ausführungsformen umfasst das Verfahren einen Softwareanalyseprozess, während dessen ein Pfad oder mehrere Pfade im Quellcode und/oder in dem Softwareprogramm und/oder in dem Softwareobjekt mittels des Graphen und/oder eines oder mehrerer Pfadgewichte gesichert wird/werden, und/oder während dessen instabile und/oder empfindliche Regionen in dem Quellcode und/oder in dem Softwareprogramm und/oder in dem Softwareobjekt mittels des Graphen und/oder eines oder mehrerer Pfadgewichte entdeckt werden, und/oder während dessen Variablen und/oder redundante Pfade in dem Quellcode und/oder in dem Softwareprogramm und/oder in dem Softwareobjekt mittels des Graphen und/oder eines oder mehrerer Pfadgewichte geprüft werden.
-
Im Allgemeinen sind die oben erwähnten Verfahren typischerweise computerimplementierte Verfahren.
-
Das Problem wird ferner gelöst durch ein System zum Ausführen eines Verfahrens zum Analysieren eines Signalverarbeitungsnetzwerks, wobei das System vorzugsweise dafür ausgelegt ist, ein Verfahren zum Analysieren eines Signalverarbeitungsnetzwerks nach einem der vorherigen Ausführungsformen mindestens teilweise auszuführen und/oder zu koordinieren und/oder zu steuern.
-
Bei typischen Ausführungsformen umfasst das System ein Iterationsmodul und/oder ein Modellliefermodul und/oder ein Liefermodul anfänglicher Zustände und/oder ein Softwareprogramm-Ausführungsmodul und/oder ein Softwareobjekt-Ausführungsmodul und/oder ein Compilermodul und/oder ein Empfindlichkeitsanalysemodul und/oder ein Pfadgewichts-Berechnungsmodul und/oder ein Grapherzeugungsmodul und/oder ein Pfadsicherungsmodul und/oder ein Entdeckungsmodul instabiler Regionen und/oder ein Entdeckungsmodul empfindlicher Regionen und/oder ein variables Prüfmodul und/oder ein Redundante-Pfade-Prüfmodul.
-
Bei typischen Ausführungsformen wird mindestens eines dieser Module bzw. werden vorzugsweise alle diese Module mittels Softwarecode implementiert. Das System umfasst typischerweise Mittel zum Ausführen mindestens eines Verfahrens gemäß beliebigen der oben erwähnten Ausführungsformen, insbesondere Computer-Hardwaremittel, wie etwa Verarbeitungseinheiten, Speichervorrichtungen oder dergleichen zur Teilnahme an den verschiedenen Verfahren und/oder Prozessen und/oder Teilprozessen und/oder Routinen und/oder Prüfungen und/oder Schritten, die oben skizziert werden.
-
Ein Computerprogramm umfasst bei einer typischen Ausführungsform der Erfindung Anweisungen, die, wenn das Programm durch einen Computer ausgeführt wird, bewirken, dass der Computer ein Verfahren nach einer der oben erwähnten Ausführungsformen ausführt. Der Ausdruck „Computer“ ist als sich auf eine beliebige Vorrichtung oder Struktur beziehend zu verstehen, die in der Lage ist, die Anweisungen auszuführen. Das Computerprogramm kann auch als Computerprogrammprodukt bezeichnet werden.
-
Ein computerlesbares Medium umfasst bei einer Ausführungsform der Erfindung Computerprogrammcode zum Ausführen eines Verfahrens nach einem der oben erwähnten Ausführungsformen und/oder umfasst ein Computerprogramm gemäß der oben erwähnten Ausführungsform. Der Ausdruck „computerlesbares Medium“ kann als sich insbesondere, aber nicht ausschließlich, auf Festplatten und/oder Server und/oder Speichersticks und/oder Flash-Laufwerke und/oder DVDs und/oder BLU-Ray-Datenträger und/oder CDs beziehend verstanden werden. Ferner kann sich der Ausdruck „computerlesbares Medium“ auf einen Datenstrom beziehen, der zum Beispiel hergestellt wird, wenn ein Computerprogramm und/oder ein Computerprogrammprodukt vom Internet heruntergeladen wird.
-
Kurze Beschreibung der Zeichnungen
-
Im Folgenden wird die Erfindung mittels der Figuren erläutert. Es zeigt:
- 1: eine schematische Darstellung eines Verfahrens zum Analysieren eines Signalverarbeitungsnetzwerks nach einer Ausführungsform der Erfindung.
-
Beschreibung bevorzugter Ausführungsformen
-
1 zeigt eine schematische Darstellung eines Verfahrens zum Analysieren eines Signalverarbeitungsnetzwerks nach einer Ausführungsform der Erfindung. Das Verfahren umfasst einen Iterationsprozess 1. Bei diesem Iterationsprozess 1 werden das Softwareprogramm p und das Softwareobjekt q ausgeführt, typischerweise jeweils mehrmals. 1 zeigt ferner mehrere Pfadgewichte 2, einen Graphen 3, einen Quellcode 4 und einen anfänglichen Zustand x0. Das Softwareprogramm p ist typischerweise eine Software, die ein Signalverarbeitungsnetzwerk, wie etwa ein Signalverarbeitungsnetzwerk, das einen Teil eines Fahrzeugs bildet (Signalverarbeitungsnetzwerk und Fahrzeug in 1 nicht gezeigt), betreibt und/oder koordiniert und/oder laufen lässt. Flüsse von Informationen und/oder Eingaben und Ausgaben sind in 1 mittels gestrichelter Pfeile schematisch angegeben.
-
Am Anfang des Verfahrens wird der Quellcode 4 kompiliert, um das Softwareprogramm p zu erzeugen. Das Softwareprogramm p empfängt als erste Eingabe den anfänglichen Zustand x0, der typischerweise auf der Basis von Expertenwissen definiert wird. Dann wird das Softwareprogramm p einmal ausgeführt. Die Ausgabe dieser ersten Ausführung des Softwareprogramms p wird als Eingabe zu dem Softwareobjekt q gesendet. Der anfängliche Zustand x0 wird auch dem Softwareobjekt q als Eingabe zugeführt. Das Softwareobjekt q wird dann mit diesen Eingaben einmal ausgeführt, und die resultierende Ausgabe wird als Eingabe in das Softwareprogramm p rückgekoppelt. Dieser Prozess, nämlich die Ausführung des Softwareprogramms p und des Softwareobjekts q, wird dann typischerweise mindestens einmal und typischerweise für eine Vielzahl von Malen wiederholt. Diese Iteration der Ausführungen des Softwareprogramms p und des Softwareobjekts q führt an einem Punkt zu der Erzeugung eines Modells, das das Signalverarbeitungsnetzwerk repräsentiert (das Modell selbst ist in 1 nicht gezeigt) und zu der Erzeugung mehrerer Pfadgewichte 2 für Pfade dieses Modells. Bei der in 1 abgebildeten Ausführungsform werden diese mehreren Pfadgewichte 2 und der Quellcode dann verwendet, um den Graphen 3 zu erzeugen. Mittels des Graphen 3 kann das Modell (und deshalb das Signalverarbeitungsnetzwerk) dann analysiert werden.
-
Im Folgenden werden mathematische Einzelheiten des Verfahrens gemäß einer Ausführungsform der Erfindung ausführlicher beschrieben:
- Das gewünschte Modell des Signalverarbeitungsnetzwerks, das zu analysieren ist, wird typischerweise aus einem Softwareprogramm p abgeleitet, das auf allen Systemen und Verarbeitungseinheiten des Signalverarbeitungsnetzwerks läuft. Das Softwareprogramm p kann in einem bestimmten Zustand x0 initialisiert werden, und nach einem vollen Zyklus von Berechnungen erreicht das Softwareprogramm p einen Zustand mit allen Ausgaben, der in Analogie zu einer mathematischen Funktion als p(x0) bezeichnet wird. Der Raum von Eingangsparametern ℝn ist definiert als ein n-dimensionaler Raum reeller Werte (wobei es sich um eine Übermenge diskreter oder binärer Zahlen handelt). Der Ausgabenraum dieses Softwareprogramms p ist definiert als ℝm als ein ein m-dimensionaler Raum reeller Werte (wobei es sich um eine Übermenge diskreter oder binärer Zahlen handelt).
-
Eine Menge von anfänglichen Zuständen auf der Basis von Expertenwissen dient typischerweise als Eingabe für das Softwareprogramm p.
-
NR ist die Anzahl, wie oft das Softwareprogramm p wiederholt (oder anders ausgedrückt, interiert) werden sollte.
-
Der Eingangszustand x1 des Softwareprogramms p kann von der zuvor erzeugten Ausgabe p(x0) abhängen. Diese Abhängigkeit wird mit einem anderen „funktionsartigen“ Objekt q erfasst, das den neuen Eingangszustand als x1 = q(x0, p(x0)) ∈ ℝn berechnet. Dieses „funktionsartige“ Objekt q wird auch als Softwareobjekt q bezeichnet.
-
Für jede Eingabedimension des Verfahrens, insbesondere des Softwareprogramms p, wird eine Menge von Skalenparametern gi für i ∈ {1, ..., n} definiert.
-
In dem Signalverarbeitungsnetzwerk, das durch das Softwareprogramm p repräsentiert wird, existieren die Nv Vertexindizes Eine geordnete Liste von Eingangsvertizes wird definiert, um den geordneten Dimensionen des anfänglichen Zustandsraums ℝn zu entsprechen. Eine geordnete Liste von Ausgangsvertizes wird definiert, um den geordneten Dimensionen des Ausgangszustandsraums ℝm zu entsprechen.
-
Bevor das Modell definiert werden kann, ist es notwendig, das Softwareprogramm p und das Softwareobjekt q miteinander dergestalt zu verketten, dass sie immer ℝn → ℝm abbilden. Für diesen Zweck werden auf rekursive Weise die Funktionen fn definiert: wobei x ∈ ℝn ist und zum Beispiel f2(x) = p(q(x, p(x))) im Wesentlichen zweimal die Anwendung des Softwareprogramms p ist. Dies ergibt das Modell M := fNR für die wiederholte Anwendung des Softwareprogramms p und des Softwareobjekts q.
-
Es ist nun möglich, eine Empfindlichkeitsanalyse durchzuführen, und zwar hier über diskrete Ableitungen. Es wird folgendermaßen eine diskrete Jacobimatrix J(x) über ihre Elemente definiert: wobei hi := h · gi ist und h als eine kleine, aber numerisch nicht problematische Zahl gesetzt wird.
-
Es ist dann möglich, die Pfadgewichte auf der Basis verschiedener Annahmen zu berechnen:
- Wenn es einem um die Durchschnittsempfindlichkeit geht, kann ein Durchschnittsempfindlichkeitsgewicht folgendermaßen berechnet werden:
- Wenn es einem um die Durchschnittsempfindlichkeit geht, aber große Ereignisse schwerer gewichtet werden sollen, kann ein Großes-Gewicht-Hervorhebungs-Ourchschnittsempfindlichkeitsgewicht folgendermaßen berechnet werden:
- Wenn es einem um die maximale Empfindlichkeit geht, kann ein Maximalempfindlichkeitsgewicht folgendermaßen berechnet werden:
-
Das Signalverarbeitungsnetzwerk wird bestimmte Pfade pi,j aufweisen, die die Eingangsvertizes mit den Ausgangsvertizes verbinden. Es ist nun möglich, die Wichtigkeit dieser Pfade durch die oben erwähnten Gewichte Wi,j zu gewichten. Dies gibt die Relevanz der Pfade für weitere Analyse, wie etwa die Emissionsrelevanz.
-
Bei bevorzugten Ausführungsformen sind zusätzlich zu oder in Kombination mit den bereits erwähnten Arten von Analyse die folgenden Arten von Analyse möglich:
- Sichern von Pfaden von i nach j mit größtem Wi,j für Emissionen oder Signalzuverlässigkeit.
-
Entdeckung von instabilen/empfindlichen Regionen, was bedeutet, dass sie großes Wi,j aufweisen.
-
Ermöglichung einer genauen Prüfung von Variablen und redundanten Pfaden, die für viele Ergebnisvariablen wichtig sind.
-
Die Erfindung ist nicht auf die hier beschriebenen bevorzugten Ausführungsformen beschränkt. Der Schutzumfang wird durch die Ansprüche definiert.
-
Ferner ist anzumerken, dass die in der Beschreibung oder in den Ansprüchen offenbarten Verfahren und Prozesse durch eine Vorrichtung implementiert werden können, die Mittel zum Ausführen jedes der jeweiligen Schritte dieser Verfahren und/oder Prozesse aufweisen.
-
Liste der Bezugszeichen
-
- 1
- Iterationsprozess
- 2
- mehrere Pfadgewichte
- 3
- Graph
- 4
- Quellcode
- p
- Softwareprogramm
- q
- Softwareobjekt
- x0
- anfänglicher Zustand