Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SIGNAL FLOW-BASED COMPUTER PROGRAM WITH DIRECT FEEDTHROUGH LOOPS
Document Type and Number:
WIPO Patent Application WO/2018/020051
Kind Code:
A1
Abstract:
The aim of the invention is to provide a method for controlling the course of a signal flow-based computer program on a computing unit of a technical system in order to control, regulate, automate, or simulate a technical function of the technical system, in particular in order to develop a vehicle or a vehicle component, wherein the signal flow-based computer program consists of interconnected software components and has at least one DF loop. According to the invention, this is achieved by the following method steps: a) identifying the at least one DF loop and the DF components which form the at least one DF loop, each said DF component instantaneously imaging at least one DF input signal present at at least one component input onto at least one output signal present at at least one component output, whereby the at least one DF input signal and the at least one output signal are part of the at least one DF loop, b) determining the maximum possible change of the values of the DF input signals for each unit of time from at least one property of the respective DF input signal, c) activating a delay element in front of the component input where a DF input signal is present whose value has the smallest maximum possible change, and d) running the computer program in accordance with the connection of the software components ascertained in steps a) to c).

Inventors:
PRILLER PETER (AT)
PÖLZLBAUER FLORIAN (AT)
Application Number:
PCT/EP2017/069322
Publication Date:
February 01, 2018
Filing Date:
July 31, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
AVL LIST GMBH (AT)
KOMPETENZZENTRUM - DAS VIRTUELLE FAHRZEUG FORSCHUNGSGESELLSCHAFT MBH (AT)
International Classes:
G06F9/44; G05B19/042; G05B19/05; G06F17/50
Other References:
ANONYMOUS: "Algebraic Loops - MATLAB & Simulink - MathWorks Deutschland", 1 July 2016 (2016-07-01), pages 1 - 15, XP055424845, Retrieved from the Internet [retrieved on 20171114]
MAO ZIFANG: "MODELING AND SIMULATION OF ELECTRIC VEHICLE ALGEBRAIC LOOP PROBLEMS REGARDING BATTERY AND FUEL CELLS", 1 August 2014 (2014-08-01), XP055424940, Retrieved from the Internet [retrieved on 20171114]
Attorney, Agent or Firm:
PATENTANWÄLTE PINTER & WEISS OG (AT)
Download PDF:
Claims:
Patentansprüche

1 . Verfahren zum Steuern des Ablaufs eines signalflussbasierten Computerprogramms (1 ) auf einer Recheneinheit (2) einer technischen Anlage (3) zum Steuern, Regeln Automatisieren oder Simulieren einer technischen Funktion der technischen Anlage (3), insbesondere zur Entwicklung eines Fahrzeuges bzw. einer Fahrzeugkomponente wobei das Computerprogramm (1 ) aus miteinander verbundenen Software-Komponenten (K1 , K2, K3, K4, K5, K6) besteht und zumindest eine DF-Schleife aufweist, bestehend aus folgenden Schritten: a) Identifizieren der zumindest einen DF-Schleife und der DF-Komponenten (K3, K4, K5), welche die zumindest eine DF-Schleife bilden, wobei die DF-Komponenten (K3, K4, K5) jeweils zumindest ein an zumindest einem Komponenteneingang anliegendes DF-Eingangssignal auf zumindest ein an zumindest einem Komponentenausgang anliegendes Ausgangssignal unverzögert abbilden, womit das zumindest eine DF-Eingangssignal und das zumindest eine Ausgangssignal Teil der zumindest einen DF-Schleife sind,

b) Bestimmen der maximal möglichen Änderung pro Zeiteinheit der Werte der DF- Eingangssignale (Ε3', Ε4', E4", E5) aus zumindest einer Eigenschaft des jeweiligen DF-Eingangssignals (Ε3', Ε4', E4", E5),

c) Hinzuschalten eines Verzögerungsglieds (1/zN) vor jenen Komponenteneingang, an welchem ein DF-Eingangssignal (Ε3', Ε4', E4", E5) anliegt, dessen Wert die geringste maximal mögliche Änderung aufweist,

d) Ausführen des Computerprogramms 1 nach der in Schritt a) bis c) ermittelten Verbindung der Software-Komponenten.

2. Verfahren zum Steuern, Regeln, Automatisieren oder Simulieren einer technischen Funktion einer technischen Anlage (3), insbesondere zur Entwicklung eines Fahrzeuges bzw. einer Fahrzeugkomponente, mittels eines signalflussbasierten Computerprogramms (1 ), wobei das Computerprogramm (1 ) aus miteinander verbundenen Software- Komponenten (K1 , K2, K3, K4, K5, K6) besteht, zumindest eine DF-Schleife aufweist und auf einer Recheneinheit (2) der technischen Anlage (3) ausgeführt wird, bestehend aus folgenden Schritten:

a) Identifizieren der zumindest einen DF-Schleife und der DF-Komponenten (K3, K4, K5), welche die zumindest eine DF-Schleife bilden, wobei die DF-Komponenten (K3, K4, K5) jeweils zumindest ein an zumindest einem Komponenteneingang anliegendes DF-Eingangssignal auf zumindest ein an zumindest einem Komponentenausgang anliegendes Ausgangssignal unverzögert abbilden, womit das zumindest eine DF-Eingangssignal und das zumindest eine Ausgangssignal Teil der zumindest einen DF-Schleife sind,

b) Bestimmen der maximal möglichen Änderung pro Zeiteinheit der Werte der DF- Eingangssignale (Ε3', Ε4', E4", E5) aus zumindest einer Eigenschaft des jeweiligen DF-Eingangssignals (Ε3', Ε4', E4", E5),

c) Hinzuschalten eines Verzögerungsglieds (1/zN) vor jenen Komponenteneingang, an welchem ein DF-Eingangssignal (Ε3', Ε4', E4", E5) anliegt, dessen Wert die geringste maximal mögliche Änderung aufweist,

d) Ausführen des Computerprogramms 1 nach der in Schritt a) bis c) ermittelten Verbindung der Software-Komponenten um die technische Funktion der technischen Anlage (3) zu steuern, regeln, automatisieren oder simulieren.

3. Verfahren nach Anspruch 1 oder 2, wobei der Schritt c) wiederholt wird, bis keine DF- Schleife im Computerprogramm (1 ) vorhanden ist.

4. Verfahren nach Anspruch 2, wobei vor jedem Wiederholen des Schritts c) auch der Schritt a) wiederholt wird.

5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die mögliche Änderung des Werts des zumindest einen DF-Eingangssignals (Ε3', Ε4', E4", E5) jeweils mit einem Penalty-Wert bewertet und die Penalty-Werte verglichen werden.

6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die mögliche Änderung des Werts der DF-Eingangssignale (Ε3', Ε4', E4", E5) anhand einer physikalischen Einheit der jeweiligen DF-Eingangssignale (Ε3', Ε4', E4", E5) bestimmt werden.

7. Verfahren nach einem der Ansprüche 1 bis 6, wobei die mögliche Änderung des Werts der DF-Eingangssignale (Ε3', Ε4', E4", E5) anhand eines Datentyps der jeweiligen DF- Eingangssignale (Ε3', Ε4', E4", E5) bestimmt werden.

8. Computerprogrammprodukt, das Anweisungen enthält, die, wenn sie auf einer Steuereinrichtung, insbesondere einer elektronischen Steuerung eines Prüfstands ausgeführt werden, ein Verfahren nach einem der Ansprüche 1 bis 7 durchführen.

9. Computerlesbares Medium, auf welchem ein Computerprogrammprodukt nach Anspruch 8 gespeichert ist.

Description:
Signalflussbasiertes Computerprogramm mit Direct-Feedthrough-Schleifen

Die gegenständliche Erfindung betrifft ein Verfahren zum Steuern des Ablaufs eines signal- flussbasierten Computerprogramms auf einer Recheneinheit einer technischen Anlage zum Steuern, Regeln, Automatisieren oder Simulieren einer technischen Funktion der techni- sehen Anlage, insbesondere zur Entwicklung eines Fahrzeuges bzw. einer Fahrzeugkomponente, wobei das signalflussbasierte Computerprogramm aus miteinander verbundenen Software-Komponenten besteht und zumindest eine DF-Schleife aufweist. Ferner betrifft die Erfindung ein Verfahren zum Steuern, Regeln, Automatisieren oder Simulieren einer technischen Funktion einer technischen Anlage mittels eines solchen signalflussbasierten Compu- terprogramms und ein Computerprogrammprodukt, das diese Verfahren realisiert und ein computerlesbares Medium mit einem solchen Computerprogrammprodukt.

In der Recheneinheit einer technischen Anlage werden in der Regel durch ein signalflussbasiertes Computerprogramm eine oder mehrere Eingangsgrößen der technischen Anlage auf eine oder mehrere Ausgangsgrößen der technischen Anlage abgebildet. Die technische An- läge kann z.B. einen Prüfstand darstellen, der eine technische Funktion, oder einen Teil davon, steuert, regelt, automatisiert oder auch simuliert. Insbesondere eine Simulation der technischen Funktion bringt einige Vorteile: Eine Simulation ist beliebig oft wiederholbar und direkte Messungen am technischen System, also z.B. auf einem Prüfstand, sind nicht notwendig. Bei einem signalflussbasierten Computerprogramm ist es bekannterweise notwendig vor der Ausführung des Computerprogramms vorab die Abarbeitungsreihenfolge von Software-Komponenten des Computerprogramms zu bestimmen. In weiterer Folge werden die Software-Komponenten des Computerprogramms bei der Ausführung des Computerprogramms nach der ermittelten Abarbeitungsreihenfolge abgearbeitet. Dies erfolgt üblicherweise zyklisch und in fest vorgegebenen Intervallen, unter Umständen sogar in Echtzeit. Die einzelnen Software-Komponenten des Computerprogramms bilden in der Regel zumindest ein Eingangssignal an einem Komponenteneingang auf zumindest ein Ausgangssignal an einem Komponentenausgang ab. Es sind natürlich auch Software-Komponenten ohne Komponenteneingang oder ohne Komponentenausgang möglich, derartige Software- Komponenten sind bei der folgenden Problemstellung jedoch nicht relevant. Die Software- Komponenten sind also über deren Komponenteneingänge und/oder Komponentenausgänge miteinander verbunden, sodass sich insgesamt das signalflussbasiertes Computerprogramm, oder ein Teil davon, als Summe der beteiligten Software-Komponenten und deren Verbindung ergibt.

Das signalflussbasierte Computerprogramm wird also grundsätzlich in drei Phasen behan- delt: Erstellen der einzelnen Software-Komponenten des Computerprogramms und Verschalten zum Computerprogramm, Bestimmen einer Abarbeitungsreihenfolge der Software- Komponenten, und darauffolgend das Ausführen des Computerprogramms entsprechend der ermittelten Abarbeitungsreihenfolge der Software-Komponenten. Die Phasen der Erstellung der Software-Komponenten und der Ermittlung der Abarbeitungsreihenfolge ebendieser erfolgen normalerweise„offline", also vor der tatsächlichen Ausführung des Computerpro- gramms.

Es kann bei der Bestimmung der Abarbeitungsreihenfolge der Software-Komponenten jedoch ein Problem entstehen, wenn Software-Komponenten eine Schleife, also eine Rückkopplung, bilden. Bei einer Schleife wird typischerweise ein Komponentenausgang einer betrachteten Software-Komponente direkt oder über andere Software-Komponenten auf ei- nen Komponenteneingang derselben Software-Komponente rückgekoppelt. Eine Schleife stellt also einen zyklischen Signalpfad dar. Wenn also in einer Schleife Software- Komponenten vorhanden sind, die mehrere Komponenteneingänge und Komponentenausgänge aufweisen, so wird die Schleife natürlich nur über je einen Komponenteneingang und je einen zugehörigen Komponentenausgang der jeweiligen Software-Komponenten gebildet. Natürlich können auch mehrere Schleifen vorhanden sein, womit mehrere Komponenteneingänge einer Software-Komponente gemeinsam mit einem Komponentenausgang dieser Software-Komponente mehrere Schleifen bilden können. In diesem Fall bildet die Software- Komponente mehrere Eingangssignale auf ein Ausgangssignal ab. Es können auch mehrere Schleifen über eine Komponenteneingang und mehrere Komponentenausgänge dieser einen Software-Komponente gebildet werden. In diesem Fall bildet die Software-Komponente ein Eingangssignal auf mehrere Ausgangssignale ab. Auch eine Abbildung mehrerer Eingangssignale auf mehrere Ausgangssignale durch eine Software-Komponente und die Bildung von mehreren Schleifen ist denkbar. Für jede einzelne Schleife sind jedoch nur der Komponenteneingang und der Komponentenausgang der Software-Komponente, die die betrachtete Schleife bilden, relevant. Natürlich kann die Abbildung des Komponenteneingangs auf den Komponentenausgang auch durch andere Parameter, z.B. einen weiteren Komponenteneingang derselben Komponente, beeinflusst werden.

Eine Schleife kann Software-Komponenten aufweisen, die eine sogenannte "non-direct- feedthrough" (NDF) Eigenschaft aufweisen. Das bedeutet, dass sich Änderungen des Ein- gangssignals am betrachteten Komponenteneingang der NDF-Komponente nicht sofort und im gleichen Zyklus der Abarbeitung des Computerprogramms auf das Ausgangssignal am zugehörigen Komponentenausgang dieser Software-Komponente auswirken. Eine NDF- Schleife beinhaltet also zumindest eine Software-Komponente, die als Teil der Schleife ein an zumindest einem Komponenteneingang anliegendes N DF-Eingangssignal auf zumindest ein an zumindest einem Komponentenausgang anliegendes Ausgangssignal abbildet. Es ist also die Softwarekomponente samt dem zumindest einen NDF-Eingangssignal und das zugehörige Ausgangssignal Teil der NDF-Schleife. Es sind einige Methoden zur Behandlung von signalflussbasierten Computerprogrammen mit NDF-Schleifen bekannt. Die bekannte Software Simulink von The MathWorks zur Modellierung von Systemen, beispielsweise, handhabt NDF-Schleifen derart, dass Eingangssignale, welche an einem NDF-Eingang anliegen, bei der Ermittlung der Abarbeitungsreihenfolge der Software-Komponenten schlicht ignoriert werden. Die US 8,849,641 B1 ermöglicht andererseits ein automatisches Bestimmen der Abarbeitungsreihenfolge der Software-Komponenten von NDF-Schleifen.

Im Gegensatz dazu bedeutet eine DF („direct-feedthrough")-Eigenschaft eines Komponenteneingangs einer Software-Komponente, dass sich Änderungen des Eingangssignals am betrachteten Komponenteneingang im selben Zyklus auf ein Ausgangssignal am zugehöri- gen Komponentenausgang dieser Software-Komponente auswirken, womit sich eine zyklische Datenabhängigkeit ergeben kann. Eine derartige Software-Komponente, die ein DF- Eingangssignal an einem Komponenteneingang unverzögert auf ein Ausgangssignal an einem Komponentenausgang abbildet, wird fortan als DF-Komponente bezeichnet. Eine DF- Schleife liegt dann vor, wenn sämtliche Software-Komponenten, welche die DF-Schleife auf- spannen, DF-Komponenten sind. Teil der DF-Schleife sind nur die DF-Eingangssignale an den Komponenteneingängen und die Ausgangssignale an den Komponentenausgängen der DF-Komponenten die die DF-Schleife aufspannen. Diese Komponenteneingänge mit DF- Eingangssignalen wirken sich direkt und im selben Zyklus auf die Ausgangssignale am zugehörigen Komponentenausgang der betrachteten DF-Komponente aus. Die DF- Komponenten, die zwar DF-Eingangssignale und Ausgangssignale als Teil der Schleife aufweisen, können natürlich auch NDF-Eingangssignale aufweisen oder DF- Eingangssignale, die nicht Teil der betrachteten Schleife sind, sondern Teil einer weiteren DF-Schleife, einer NDF-Schleife oder gar keiner Schleife. Wichtig für die Eigenschaft einer DF-Schleife ist, dass im Signalpfad der DF-Schleife keine NDF-Komponenten als Abbildung von NDF- Eingangssignalen auf Ausgangssignale vorhanden sind.

Ist im Computerprogramm zumindest eine DF-Schleife, bestehend aus DF-Komponenten, vorhanden, so sind spezielle Methoden zum Auffinden der DF-Komponenten der DF-Schleife anzuwenden. Zu diesem Zweck seien insbesondere die Methoden der "depth-first search" (DFS) oder "breadth-first search" (BFS) zu nennen. Diese Methoden stellen bekannte Algo- rithmen aus der Graphen-Theorie dar. Im Falle der DFS-Methode werden ausgehend von einem Start-Knoten alle Vorgängerknoten besucht. Vorgängerknoten sind Knoten von welchem der betreffende Knoten abhängig ist (z.B. durch den notwendigen Datenfluss), die sich also in einer ersten Vorebene befinden. Ausgehend von den ersten Vorgänger-Knoten in der ersten Vorebene weitersuchend, geht man zu dessen Vorgängerknoten (zweite Vorebene) über. Dies wird so lange wiederholt bis es keinen Vorgänger-Knoten mehr gibt, oder man zu einem Knoten gelangt, welcher im Zuge der Suche schon einmal besucht wurde. In diesem Fall gilt eine zyklische Abhängigkeit als gegeben. Der durchlaufene Suchpfad enthält somit jene Knoten welche die Schleife darstellen. Bei der DFS-Methode wird immer jeweils ein Vorgängerknoten der Vorebene besucht, man geht somit zuerst "in die Tiefe", bis kein Vorgängerkoten existiert. Bei der BFS-Methode werden zuerst alle Vorgänger-Knoten der aktuellen Vorebene besucht (man geht also "in die Breite"), bevor man anschließend einen weite- ren Schritt in die Tiefe geht.

Es gibt auch Algorithmen welche das Auffinden von Schleifen etwas effizienter als soeben genannte Methoden lösen, wobei auf D.B.Johnson (1975), "Finding all the elementary cir- cuits of a directed graph" in Siam J. Comput, Vol.4, No1 und H.Lui and J.Wang (2006), "A new way to enumerate cycles in graph", State Key Lab of Intelligent Technology and System Department of Computer Science and Technology, Tsinghua University Beijing 100084, China verwiesen sei.

Methoden zur Identifikation von DF-Schleifen sind somit bekannt, die Auflösung der DF- Schleifen benötigt allerdings meist einen Eingriff durch den Benutzer. In der US

2005/0060129 A1 wird die Abarbeitungsreihenfolge der Software-Komponenten geändert, um damit die DF-Schleife zu lösen. Dabei handelt es sich um Schleifen, die durch hierarchische Modelle innerhalb der Software-Komponenten zustande kommen und nach Transformation in ein flaches Modell nicht mehr existieren - das heißt, dass es sich nicht um reale DF-Schleifen handelt und die in der US 2005/0060129 A1 beschriebene Lösung auf DF- Schleifen im herkömmlichen Sinn nicht anwendbar ist.

In M.Benedikt und F. R. Holzinger (2016),„Automated Configuration for Non-Iterative Co- Simulation" wird die automatisierte Konfiguration einer nicht-iterativen Co-Simulation beschrieben. Hierbei wird jede Software-Komponente innerhalb eines eigenen Solver gerechnet. Dadurch hat jede Software-Komponente ihre eigene lokale Simulationszeit. Die Abarbeitungsreihenfolge der Software-Komponenten wird dynamisch zur Laufzeit der Co-Simulation ermittelt und adaptiert. Es wird jeweils immer jene Software-Komponente gerechnet, dessen lokale Simulationszeit die älteste ist. Ist die lokale Simulationszeit ident (wie z.B. zum Simulationszeitpunkt t=0) wird jene Software-Komponente gerechnet, welche die geringste Anzahl von Komponenteneingängen aufweist. Dieses Verfahren ist jedoch nicht anwendbar, wenn alle Software-Komponenten in derselben Recheneinheit laufen, und dieselbe Simulationszeit haben.

Wenn DF-Schleifen eines signalflussbasierten Computerprogramms nicht behandelt werden, so ist die Abarbeitungsreihenfolge der Software-Komponenten aufgrund der zyklischen Abhängigkeit der DF-Komponenten in der DF-Schleife nicht eindeutig und das Computerprogramm kann nicht ausgeführt werden. Für die Abarbeitung des signalflussbasierten Compu- terprogramms mit einer DF-Schleife muss daher die DF-Schleife aufgelöst werden, um die Abarbeitungsreihenfolge der Software-Komponenten, einschließlich der DF-Komponenten, eindeutig ermitteln zu können.

Es ist daher die Aufgabe der vorliegenden Erfindung ein Verfahren zur Abarbeitung eines signalflussbasierten Computerprogramms, das zumindest eine Direct-Feedthrough-Schleife aufweist, zu realisieren.

Diese Aufgabe wird durch ein Verfahren zum Steuern des Ablaufs eines signalflussbasierten Computerprogramms auf einer Recheneinheit einer technischen Anlage zum Steuern, Regeln Automatisieren oder Simulieren einer technischen Funktion der technischen Anlage, insbesondere zur Entwicklung eines Fahrzeuges bzw. einer Fahrzeugkomponente wobei das Computerprogramm aus miteinander verbundenen Software-Komponenten besteht und zumindest eine DF-Schleife aufweist, bestehend aus folgenden Schritten, gelöst:

a) Identifizieren der zumindest einen DF-Schleife und der DF-Komponenten, die die zumindest eine DF-Schleife bilden, wobei die DF-Komponenten jeweils zumindest ein an zumindest einem Komponenteneingang anliegendes DF-Eingangssignal auf zumindest ein an zumindest einem Komponentenausgang anliegendes Ausgangssignal unverzögert abbilden, womit das zumindest eine DF-Eingangssignal und das zumindest eine Ausgangssignal Teil der zumindest einen DF-Schleife sind, b) Bestimmen der maximal möglichen Änderung pro Zeiteinheit der Werte der DF- Eingangssignale aus zumindest einer Eigenschaft des jeweiligen DF- Eingangssignals,

c) Hinzuschalten eines Verzögerungsglieds vor jenen Komponenteneingang, an welchem ein DF-Eingangssignal anliegt, dessen Wert die geringste maximal mögliche Änderung aufweist,

d) Ausführen des Computerprogramms nach der in Schritt a) bis c) ermittelten Verbindung der Software-Komponenten.

Weiters wird die Aufgabe durch ein Verfahren zum Steuern, Regeln, Automatisieren oder Simulieren einer technischen Funktion einer technischen Anlage, insbesondere zur Entwicklung eines Fahrzeuges bzw. einer Fahrzeugkomponente, mittels eines signalflussbasierten Computerprogramms, wobei das Computerprogramm aus miteinander verbundenen Software-Komponenten besteht, zumindest eine DF-Schleife aufweist und auf einer Recheneinheit der technischen Anlage ausgeführt wird, bestehend aus folgenden Schritten gelöst: a) Identifizieren der zumindest einen DF-Schleife und der DF-Komponenten, die die zumindest eine DF-Schleife bilden, wobei die DF-Komponenten jeweils zumindest ein an zumindest einem Komponenteneingang anliegendes DF-Eingangssignal auf zumindest ein an zumindest einem Komponentenausgang anliegendes Ausgangs- signal unverzögert abbilden, womit das zumindest eine DF-Eingangssignal und das zumindest eine Ausgangssignal Teil der zumindest einen DF-Schleife sind, b) Bestimmen der maximal möglichen Änderung pro Zeiteinheit der Werte der DF- Eingangssignale aus zumindest einer Eigenschaft des jeweiligen DF- Eingangssignals, c) Hinzuschalten eines Verzögerungsglieds vor jenen Komponenteneingang, an welchem ein DF-Eingangssignal anliegt, dessen Wert die geringste maximal mögliche Änderung aufweist, d) Ausführen des Computerprogramms nach der in Schritt a) bis c) ermittelten Verbindung der Software-Komponenten, um die technische Funktion der technischen Anlage zu steuern, regeln, automatisieren oder simulieren.

Jede DF-Komponente weist zumindest einen Komponenteneingang und zumindest einen Komponentenausgang auf. An jeder DF-Komponente liegt an zumindest einem Komponenteneingang zumindest ein DF-Eingangssignal an und an zumindest einem Komponenten- ausgang dieser DF-Komponente zumindest ein Ausgangssignal. Durch Verbindung dieser Komponenteneingänge und Komponentenausgänge wird das Ausgangssignal einer DF- Komponente an eine weitere DF-Komponente geführt, wo es als DF-Eingangssignal anliegt und wiederum auf ein Ausgangssignal abgebildet wird. Dies erfolgt so lange, bis eine DF- Schleife gebildet ist. Mehrere DF-Komponenten, bzw. jeweils ein Komponenteneingang und ein Komponentenausgang der DF-Komponenten spannen also eine DF-Schleife auf. Sind mehrere DF-Schleifen vorhanden, so können DF-Komponenten, bzw. deren Komponenteneingang und/oder Komponentenausgang auch Teil mehrerer Schleifen sein.

Es werden die im signalflussbasierten Computerprogramm enthaltenen Software- Komponenten, insbesondere DF-Komponenten also in den Schritten a) bis c) bereits vor Beginn der Abarbeitung des signalflussbasierten Computerprogramms erstellt, bzw. modifiziert und die Abarbeitungsreihenfolge der Software-Komponenten samt DF-Komponenten ermittelt.

Die durch das Verzögerungsglied erzeugte Verzögerung stellt somit in der im Schritt d) folgenden Abarbeitung des signalflussbasierten Computerprogramms für den jeweilig aktuellen Taktschritt ein Auftrennen der zugehörigen DF-Schleife vor dem Komponenteneingang des betreffenden DF-Eingangssignals dar. Damit ist die betreffende DF-Schleife für den aktuellen Taktschritt an dieser Stelle aufgelöst und wurde quasi zu einer NDF-Schleife umgeändert. Durch das Einfügen von Verzögerungsgliedern an der ermittelten Stelle wird also eine DF- Schleife in eine NDF-Schleife umgewandelt. Das Ausgangssignal, das von der davor liegen- den DF-Komponente erzeugt wird, wird der danach folgenden DF-Komponente erst verzögert als DF-Eingangssignal zur Verfügung gestellt. Die dabei entstandene NDF-Schleife kann dann mit bewährten Verfahren gehandhabt werden. Durch die erzeugte Verzögerung wird während des Ablaufs des Computerprogramms im aktuellen Taktschritt der Wert des DF-Ausganssignals der davor liegenden DF-Komponente eines vorherigen Taktschritt eingelesen - beispielsweise im Falle der Verzögerung um einen Taktschritt der Wert des vorheri- gen Taktschritts. Essentiell für die Bestimmung welcher Komponenteneingang mit einem Verzögerungsglied versehen wird, ist dabei die Ermittlung der innerhalb einer Zeiteinheit, z.B. eines Taktschritts, maximal möglichen Änderung des Werts des zumindest einen (un- verzögerten) DF-Eingangssignals dieses Komponenteneingangs aus zumindest einer Eigenschaft des DF-Eingangssignals. Die Stärke, mit der sich der Wert eines DF-Eingangssignals an einer DF-Komponente ändern könnte, wird gemeinhin als maximale Signaldynamik des DF-Eingangssignals bezeichnet, weswegen in weiterer Folge die Bezeichnung Signaldynamik für„maximal mögliche Änderung des Werts" verwendet wird. Ist im signalflussbasierten Computerprogramm nur eine DF-Schleife mit einer DF-Komponente, deren DF-Ausgang auf den DF-Eingang der selben DF-Komponente rückgekoppelt ist, vorhanden, so wird trivialer- weise dieser eine Komponenteneingang mit einem Verzögerungsglied versehen, woraufhin das signalflussbasierten Computerprogramm keine DF-Schleifen mehr aufweist. Sind jedoch mehrere DF-Komponenten mit DF-Eingangssignalen in einer DF-Schleife vorhanden, so wird die Signaldynamik der vorhandenen DF-Eingangssignale ermittelt. Jener Komponenteneingang, an dem ein DF-Eingangssignal mit der geringsten Signaldynamik anliegt ist mit einem Verzögerungsglied zu versehen und damit die eine DF-Schleife zu einer NDF-Schleife gewandelt. Treten in der einen Schleife mehrere DF-Eingangssignale mit derselben Signaldynamik auf, so wird ein Komponenteneingang, der eines dieser DF-Eingangssignale aufweist, mit dem Verzögerungsglied versehen.

Die Signaldynamik des zumindest einen DF-Eingangssignals kann jeweils mit einem Penal- ty-Wert bewertet werden, woraufhin die Penalty-Werte verglichen werden.

Im Prinzip sollte zum Lösen einer DF-Schleife jenes DF-Eingangssignal verzögert werden, welches durch die Verzögerung den geringsten Fehler am Ausgang des signalflussbasierten Computerprogramms hervorruft. Um diese jeweiligen durch das Verzögern der einzelnen DF-Eingangssignale am Ausgang des signalflussbasierten Computerprogramms verursach- ten Fehler zu bestimmen, können theoretisch die Komponenteneingänge, an denen die DF- Eingangssignale der DF-Komponenten, die die DF-Schleifen bilden, während der Ausführung des signalflussbasierten Computerprogramms testweise einzeln unterbrochen werden. Daraufhin könnten die DF-Eingangssignale bestimmt werden, welche den geringsten Fehler am Ausgang verursachen. Als Fehler würde also beispielsweise die Abweichung des Signals am Ausgang ohne Verzögerung des der DF-Eingangssignale vom Signal am Ausgang mit Unterbrechung des betrachteten DF-Eingangssignals bezeichnet. So würde also bestimmt werden, wie groß der Fehler am Ausgang werden könnte, wenn das DF- Eingangssignalsignal am Komponenteneingang der betrachteten DF-Komponente um zumindest einen Taktschritt verzögert wird, also wie erwähnt die DF-Schleife am betrachteten Komponenteneingang im aktuellen Taktschritt als aufgeschnitten gilt. Nachteilig ist jedoch, dass mit dieser Methode die Signaldynamik der DF-Eingangssignale an den Komponenten- eingängen erst während der Ausführung des Computerprogramms ermittelt werden könnte. Da diese Information zur Bestimmung der Abarbeitungsreihenfolge der Software- Komponenten, insbesondere der DF-Komponenten im signalflussbasierten Computerprogramm bereits vor der eigentlichen Durchführung des signalflussbasierten Computerprogramms benötigt wird, muss vor dem Ausführen des Computerprogramms eine Schätzung (bzw. Näherung) der Signaldynamik der DF-Eingangssignale der DF-Komponenten erfolgen. Daraufhin wird der Komponenteneingang, an dem das DF-Eingangssignal mit der geringsten geschätzten Signaldynamik anliegt, ausgewählt, und vor den Komponenteneingang ein Verzögerungsglied 1/z eingesetzt. Sofern Penalty-Werte verwendet werden, ist der Penalty-Wert dabei umso höher, je größer die geschätzte Signaldynamik ist. Eine hohe geschätzte Signal- dynamik würde im Falle einer Verzögerung einen großen Fehler ergeben.

Indem die DF-Schleife an der Stelle des Komponenteneingangs mit dem DF-Eingangssignal, das die geringste Signaldynamik aufweist, mit einem Verzögerungsglied versehen ist, wurde diese DF-Schleife zu einer NDF-Schleife gewandelt. Sofern noch weitere DF-Schleifen im Computerprogramm vorhanden sind, können diese auch mit dem erfindungsgemäßen Ver- fahren, oder aber mit anderen Verfahren (z.B. manuell) behandelt werden.

Es kann jedoch auch der Verfahrensschritt c), also das Hinzuschalten des Verzögerungsglieds vor das DF-Eingangssignal, dessen Wert die geringste Signaldynamik aufweist, wiederholt werden, um eine weitere DF-Schleife zu einer NDF-Schleife zu wandeln. Die DF- Schleifen werden also nacheinander an der Stelle der DF-Eingangssignale mit der gerings- ten Signaldynamik aufgetrennt. Dies kann so lange durchgeführt werden, bis keine DF- Schleife im Computerprogramm vorhanden ist, womit auch beliebig verschachtelte DF- Schleifen gelöst werden können. Das bedeutet, dass jegliche DF-Schleifen aufgelöst, d.h. zu NDF-Schleifen umgewandelt, wurden, und damit alle zyklischen Datenabhängigkeiten beseitigt wurden. Die Auflösung der DF-Schleifen ist abermals von der Signaldynamik der (unver- zögerten) DF-Eingangssignale innerhalb eines Taktschritts abhängig. Es ist natürlich auch möglich die weiteren DF-Schleifen auf andere Art, als soeben beschrieben zu lösen. Zu beachten ist, dass die DF-Eingangssignale die vormals zu einer DF-Schleife gehörten, welche jedoch aufgelöst, d.h. zur NDF-Schleife gewandelt wurden, und daraufhin kein Teil einer (weiteren) DF-Schleife sind, keine DF-Eingangssignale mehr darstellen. Damit ist die Signal- dynamik dieser vormaligen DF-Eingangssignale für eine weitere Behandlung, bzw. Auflösung der ggf. noch vorhandenen DF-Schleifen nicht von Relevanz. Wenn in mehreren DF- Schleifen jeweils DF-Eingangssignale mit derselben Signaldynamik auftreten, so wird in ei- nem ersten Schritt ein Komponenteneingang, der eines dieser DF-Eingangssignale mit derselben Signaldynamik aufweist, mit dem Verzögerungsglied versehen. In einem weiteren Schritt wird ein weiterer Komponenteneingang (einer weiteren noch vorhandenen DF- Schleife), der eines dieser DF-Eingangssignale (mit derselben Signaldynamik) aufweist, mit einem Verzögerungsglied versehen - natürlich nur, sofern das DF-Eingangssignal nach dem ersten Schritt noch ein DF-Eingangssignal ist. Es wäre natürlich auch möglich zwei voneinander unabhängige DF-Schleifen gleichzeitig aufzutrennen, indem in der jeweiligen DF- Schleife jeweils der Komponenteneingang mit dem DF-Eingangssignale mit der geringsten Signaldynamik innerhalb der betreffenden Schleife mit einem Verzögerungsglied versehen wird. Die Abarbeitungsreihenfolge des Computerprogramms ergibt sich schlussendlich aus der Verbindung der Software-Komponenten und enthält nun lediglich Signale in NDF- Schleifen.

Es wird bei Verwendung von Penalty-Werten also nachdem die DF-Eingangssignale der DF- Komponente mit Penalty-Werten versehen wurden das DF-Eingangssignal mit dem gerings- ten Penalty-Wert ermittelt und der zugehörige Komponenteneingang mit einem Verzögerungsglied versehen, womit die betreffende DF-Schleife aufgetrennt ist. Nach Ermittlung des nächsten unverzögerten DF-Eingangssignals (das noch Teil einer weiteren DF-Schleife ist) mit dem nächsthöherem Penalty-Wert wird abermals der zugehörige Komponenteneingang mit einem Verzögerungsglied versehen und damit die weitere DF-Schleife aufgetrennt, usw. Der Verfahrensschritt b) wird im Verfahren vorteilhafterweise einmalig durchgeführt. Eine Neu-Bestimmung der Signaldynamik der noch vorhandenen unverzögerten DF- Eingangssignale ist nicht erforderlich, jedoch auch möglich. Es ist jedoch zu beachten, dass durch eine Neu-Bestimmung der Signaldynamik die Optimalität der Lösung ggf. nicht mehr garantiert werden könnte. Es kann jedoch zu beliebigen Zeitpunkten das Vorhandensein von DF-Schleifen und DF-Komponenten wie im Verfahrensschritt a) beschrieben, überprüft werden. Gerade nach dem Behandeln eines DF-Eingangssignals nach dem erfindungsgemäßen Verfahren kann es (insbesondere bei verschachtelten DF-Schleifen) hilfreich sein, die noch vorhandenen DF-Schleifen, DF-Komponenten und DF-Eingangssignale des Computerprogramms erneut zu identifizieren.

Bei der Bestimmung der Signaldynamik des zumindest einen DF-Eingangssignals wird zusätzliche Information zum betrachteten DF-Eingangssignal verwendet. Ein DF- Eingangssignal repräsentiert im Allgemeinen eine physikalische Größe. Aus dieser kann somit in vielen Fällen die zu erwartende Signaldynamik des DF-Eingangssignals geschätzt werden. Vorteilhafterweise wird die Signaldynamik des jeweiligen DF-Eingangssignals an- hand der physikalischen Einheit (z.B. Temperatur, Stromstärke, Distanz, etc.) des jeweiligen DF-Eingangssignals bestimmt. Die Verwendung einer physikalischen Einheit ist insbesondere vorteilhaft, da die physikalische Einheit statisch ist, d.h. schon vor dem Abarbeiten des Computerprogramms bekannt ist und zudem in vielen Computerprogrammen gleichermaßen verwendet wird. Jeder physikalischen Einheit (welche beispielsweise aus den Sl-Einheiten abgeleitet sind) werden hierbei vorteilhafterweise geschätzte Fehler, bzw. Signaldynamiken hinterlegt, welche wiederum einen geschätzten Fehler ergeben, falls jenes Eingangssignal verzögert werden würde. Diese Zusammenhänge ergeben sich aus der Tatsache, dass sich gewisse Größen (wie z.B. Temperatur, Distanz) langsam ändern, wohingegen sich andere Größen (wie z.B. Stromstärke, Lichtintensität) schnell ändern können. Weiters kann die Signaldynamik des jeweiligen DF-Eingangssignals anhand des Datentyps des jeweiligen DF- Eingangssignals geschätzt werden. Dies ist vor allem dann anzuwenden, wenn für DF- Eingangssignale keine physikalische Einheit definiert ist, bzw. wenn das DF-Eingangssignal keine Einheit hat (z.B. eine Enum-Variable). Der Datentyp des DF-Eingangssignals kann beispielsweise durch Boolean, Integer oder Float repräsentiert sein, wobei die Signaldynamik von Boolean größer ist als Integer und Float die geringste Dynamik aufweist. Weiters könnte die Datentyp-Bandbreite (z.B. 8, 16, 32, 64 bit) in die Schätzung der Signaldynamik einflie- ßen. In einem Prüfstand ist möglicherweise noch mehr Information zu den DF-

Eingangssignalen vorhanden, beispielsweise welchen physikalischen Bereich ein Signal annehmen kann. Auch aus diesem Signalbereich kann eine maximale Änderungsgeschwindigkeit abgeschätzt und zur Berechnung der Signaldynamik des zumindest einen DF- Eingangssignals herangezogen werden.

Vorteilhafterweise wird ein Mix aus Einheit und Datentyp der DF-Eingangssignale für die Bestimmung der Signaldynamik des zumindest einen DF-Eingangssignals verwendet, da damit eine genauere Näherung möglich ist.

NDF-Schleifen werden vorteilhafterweise berücksichtigt, indem NDF-Eingangssignale an einem NDF-Komponenteneingang ignoriert werden. Damit sind nur noch die DF-Schleifen von Relevanz und müssen erfindungsgemäß behandelt werden.

Die gegenständliche Erfindung wird nachfolgend unter Bezugnahme auf die Figuren 1 bis 3d näher erläutert, die beispielhaft, schematisch und nicht einschränkend vorteilhafte Ausgestaltungen der Erfindung zeigen. Dabei zeigt

Fig.1 eine beispielhafte Direct-Feedthrough-Schleife

Fig.2 ein signalflussbasiertes Computerprogramm mit einer Non-Direct-Feedthrough-

Schleife

Fig.3a ein signalflussbasiertes Computerprogramm mit zwei verschachtelten Direct- Feedthrough-Schleifen

Fig.3b das signalflussbasierte Computerprogramm, deren Direct-Feedthrough- Schleifen mit Penalty-Werten versehenen sind Fig.3c das signalflussbasierte Computerprogramm mit einer zu einer Non-Direct - Feedthrough-Schleife gewandelten Direct-Feedthrough-Schleife

Fig.3d das signalflussbasierte Computerprogramm mit beiden zu einer Non-Direct - Feedthrough-Schleife gewandelten Direct-Feedthrough-Schleifen

Fig.1 zeigt beispielhaft eine technische Anlage 3 mit einer Recheneinheit 2, die ein konkretes Ausführungsbeispiel eines signalflussbasiertes Computerprogramms 1 ausführt. Die technische Anlage 3 ist beispielsweise ein Prüfstand für ein Fahrzeug oder eine Fahrzeugkomponente (Verbrennungsmotor, Antriebsstrang, etc.) als Prüfling mit einer Recheneinheit 2, beispielsweise als Teil einer elektronischen Steuerung des Prüfstandes, auf der das signal- flussbasierte Computerprogramm 1 ausgeführt wird, um eine technische Funktion des Prüfstandes zu steuern, zu regeln, zu automatisieren oder zu simulieren, insbesondere zur Durchführung eines definierten Prüflaufes am Prüfstand mit dem Prüfling.

Die Recheneinheit 2 weist einen Eingang E auf, über den dem signalflussbasierten Computerprogramm 1 eine Solldrehzahl n_soll zugeführt wird. Weiters weist die Recheneinheit ei- nen Ausgang A auf, über den das Computerprogramm 1 eine Ist-Drehzahl nj ' st ausgibt. Das signalflussbasierte Computerprogramm 1 weist die Software-Komponenten P-Regler KP, Regelstrecke KR, Drehzahlsensor KS und Konvertierkomponente KK auf, die eine DF- Schleife bilden. Das signalflussbasierte Computerprogramm 1 bildet in diesem Ausführungsbeispiels also einen geschlossenen Regelkreis zur Regelung der Regelstrecke KR ab. Die Solldrehzahl n_soll wird dem P-Regler KP zugeführt. Der P-Regler gibt einen Strom I als Stellgröße aus, welcher der Regelstrecke KR als Eingangssignal zur Verfügung stellt. Die Regelstrecke KR liefert die Ist-Drehzahl n_ist, die am Ausgang A anliegt. Zudem wird der Komponentenausgang der Regelstrecke KR über den Drehzahlsensor KS und die Konvertierkomponente KK auf den Komponenteneingang des P-Reglers KP und damit auf den Ein- gang E rückgekoppelt. Der Drehzahlsensor KS erhält am Komponenteneingang somit die Ist- Drehzahl n_ist und gibt eine zur Ist-Drehzahl njst proportionale Spannung U aus, welche am Komponenteneingang der Konvertierkomponente KK anliegt. Die Konvertierkomponente KK wiederum konvertiert die Spannung U zu einer Drehzahl n, welche auf den Eingang E und damit den Komponenteneingang des P-Reglers KP rückgekoppelt wird. Damit liegen am P-Regler KP die Solldrehzahl n_soll und die Drehzahl n an. Da keine der Komponenten KP, KR, KS, KK ein Verzögerungselement 1/z (in zeitdiskreter Schreibweise nach z- Transformation) aufweisen, liegt eine DF-Schleife vor.

Fig.2 stellt eine technische Anlage 3 mit einer Recheneinheit 2, auf dem ein abstrakteres, verallgemeinertes signalflussbasiertes Computerprogramm 1 ausgeführt wird, dar. Darin sind einige Ausgangssignale A1 , A2, A3, A4 an den Komponentenausgängen der Software- Komponenten K1 , K2, K3, K4 jeweils mit Eingangssignalen E2, E2', E3, E4 an den Kompo- nenteneingängen der Software-Komponenten K1 , K2, K3, K4 über die als Pfeile dargestellten Signalpfade verbunden. Ein Ausgangssignal A1 , A2, A3, A3', A4 einer Software- Komponente K1 , K2, K3, K4 kann also, je nach Verbindung, ein Eingangssignal E1 , E2, E2', E3, E4 einer anderen Software-Komponente K1 , K2, K3, K4 sein. Eine Software- Komponente K1 , K2, K3, K4 bildet einen Teil des signalflussbasierten Computerprogramms 1 und alle Software-Komponenten K1 , K2, K3, K4 zusammen und deren Verschaltung über die Signalpfade bilden das signalflussbasierte Computerprogramm 1. Eine Software- Komponente K1 , K2, K3, K4 kann ein beliebiges mathematisches, analytisches, empirisches oder physikalisches Modell in beliebiger Codierung oder ein beliebiger Softwarecode sein und bildet den zumindest einen Komponenteneingang auf den zugehörigen zumindest einen Komponentenausgang der Software-Komponente K1 , K2, K3, K4 ab. Beim Ablauf des signalflussbasierten Computerprogramms 1 wird in einem Taktschritt der Abarbeitung von jeder Software-Komponente K1 , K2, K3, K4 ein Eingangssignal E1 , E3, E4, bzw. auch zwei oder mehr Eingangssignale E2, E2' auf ein Ausgangsignal A1 , A2, A4, oder auch auf mehrere Ausgangssignale A3, A3', abgebildet. Wie erwähnt kann die Anzahl der Eingangssignale E1 , E2, E2', E3, E4 und Ausgangssignale A1 , A2, A3, A3', A4 pro Software-Komponente K1 , K2, K3, K4 beliebig sein. Das signalflussbasierte Computerprogramm 1 erhält über den Eingang E der Recheneinheit 2 das Eingangssignal E1 an der ersten Software-Komponente K1 , und gibt über einen Komponentenausgang der letzten Software-Komponente K3 ein Ausgangs- signal A3' an den Ausgang A der Recheneinheit 2 aus. Der Komponentenausgang der Software-Komponente K1 ist mit dem Komponenteneingang der Software-Komponente K2 verbunden, wodurch die Software-Komponente K2 von der Software-Komponente K1 ein Ausgangssignal A1 als Eingangssignal E2 empfängt. Der Komponentenausgang der Software- Komponente K2 ist weiter mit dem Eingang der Software-Komponente K3 verbunden, wodurch die Software-Komponente K3 ein Ausgangssignal A2 als Eingangssignal E3 empfängt. Wie ersichtlich ist, wird über die Software-Komponente K4 eine NDF-Schleife als Rückkopplung zwischen den Komponenten K3 und K2 gebildet, was durch das Verzögerungssymbol 1/z angedeutet wird. Ein Ausgangssignal A3 der Software-Komponente K3 wird also um einen Taktschritt t der Abarbeitung des signalflussbasierten Computerprogramms 1 verzögert. Als Eingangssignal E4 der Software-Komponente K4 dient somit nicht das Ausgangssignal A3 der Software-Komponente K3 im aktuellen Taktschritt t sondern aus dem vorherigen Taktschritt t-1 , womit die Abbildung des Eingangssignals E4 auf das Ausgangssignal A4 durch die Software-Komponente K4 verzögert wird. Die Abbildung basiert also auf dem Ausgangssignal A3 der Software-Komponente K3 aus dem vorherigen Takt t-1 . Dies ist die Eigenschaft einer NDF-Schleife. Die Abarbeitungsreihenfolge der Eingangssignale E1 , E2, E2', E3, E4, und Ausgangssignale A1 , A2, A3, A3', A4 der Software-Komponenten K1 , K2, K3, Κ4 nach dem Muster Ausgangssignal zum Zeitpunkt t A(t) = Abbildung durch Software-Komponenten des Eingangssignals zum Zeitpunkt t K{E(t)} wäre also:

A1 (t)=K1 {E1 (t)}

E2(t)=A1 (t)

A2(t)=K2{[E2(t),E2'(t)]}

E3(t)=A2(t)

E2'(t)=A4(t)

A3(t)=K3'{E3(t)}

E4(t)=A3(t-1 )

A4(t)=K4{E4(t)}

A=K3'{E3(t)}

Die gültige sequentielle Abarbeitungsreihenfolge der Softwarekomponenten K1 , K2, K3, K4 wäre also K1 , 1/z, K4, K2, K3 oder alternativ auch 1/z, K4, K1 , K2, K3. Es ist in diesem Fall lediglich wichtig, dass das Verzögerungsglied 1/z vor der Software-Komponente K4 abgear- beitet wird und dass weiterhin die Software-Komponente K1 und die Software-Komponente K4 vor der Software-Komponente K2 abgearbeitet wird. Trivialerweise wird die Software- Komponente K3 in diesem Beispiel als letztes abgearbeitet.

Wäre die Software-Komponente K4 hingegen eine DF-Komponente, dann würde das Ausgangssignal A3 der Software-Komponente K3 nicht durch das Verzögerungsglied 1/z verzö- gert werden. Damit würde im selben Taktschritt t das dem Ausgangssignal A3 der Software- Komponente K3 entsprechende Eingangssignal E4 an der Software-Komponente K4 anliegen. Das Ausgangssignal A2 der Software-Komponente K2, das das Eingangssignal E3 der Software-Komponente K3 entspricht, wird aber benötigt, um das Ausgangssignal A3 der Software-Komponenten K3 zu ermitteln, was zu einer zyklischen Abhängigkeit führt und wo- mit eine DF-Schleife vorliegt. Damit wären die Software-Komponenten K2, K3 und K4 DF- Komponenten, da als Teil einer DF-Schleife an deren Komponenteneingängen, die DF- Eingangssignale Ε2', E3 und E4 und an deren Komponentenausgängen die DF- Ausgangssignale A2, A3, A4 anliegen würden. Man beachte, dass der Komponenteneingang mit dem Eingangssignal E2 kein Teil der DF-Schleife ist, da darüber keine DF-Schleife auf- gespannt wird.

Eine solche DF-Schleife wird erfindungsgemäß aufgetrennt, indem die maximal mögliche Änderung pro Zeiteinheit der Werte der DF-Eingangssignale der DF-Komponenten (die die Schleife bilden) aus zumindest einer Eigenschaft des jeweiligen DF-Eingangssignals ermittelt wird. Es wird ein Verzögerungsglieds1/z vor den Komponenteneingang, an dem das zumin- dest eine DF-Eingangssignal, dessen Wert die geringste maximal mögliche Änderung pro Zeiteinheit aufweist, anliegt, geschaltet. Damit wird die DF-Schleife zu einer NDF-Schleife gewandelt.

Treten jedoch mehrere DF-Schleifen auf, so müssen im Allgemeinen mehrere Signalpfade an den geeigneten Stellen verzögert werden. Fig.3a zeigt ein auf einer Recheneinheit 2 ausgeführtes signalflussbasiertes Computerprogramm 1 mit den Software-Komponenten K1 , K2, K3, K4, K5, K6, wobei zwei verschachtelte DF-Schleifen gebildet werden. Die Eingänge E', E" des Computerprogramms 1 sind jeweils mit den Komponenteneingängen der Software- Komponenten K1 , K2 verbunden, die somit die Eingangssignale E1 , E2 erhalten. Die Kom- ponentenausgänge der Software-Komponenten K1 , K2 sind mit den Komponenteneingängen der Software-Komponenten K4, K3 verbunden, welche somit die Ausgangssignale A1 und A2 als Eingangssignale E3 und E4 erhalten. Der Komponentenausgang der Software- Komponente K3 ist wiederum mit dem Komponenteneingang der Software-Komponente K4 verbunden, womit die Software-Komponente K4 das Ausgangssignal A3 der Software- Komponente K3 als weiteres Eingangssignal E4' erhält. Der Komponentenausgang der Software-Komponente K4 ist mit dem Komponenteneingang der Software-Komponente K5 verbunden, wodurch dieser das Ausgangssignal A4 der Software-Komponente K4 das Eingangssignal E5 erhält. Über eine nicht verzögerte Rückkopplung sind die Komponentenausgänge der Software-Komponente K5 wiederum mit weiteren Eingängen der Komponenten K3, K4 verbunden, womit diese die Ausgangssignale A5, A5' der Software-Komponente K5 als weitere Eingangssignale Ε3', E4" erhalten. Damit werden durch diese unverzögerten Rückkoppelungen zwei DF-Schleifen A und B gebildet. Die DF-Schleife A wird von den DF- Komponenten K3, K4 und K5 mit den DF-Eingangssignalen Ε3', E4' und E5 gebildet. Die DF-Schleife B wird von den DF-Komponenten K4 und K5 mit den DF-Eingangssignalen E5 und E4" gebildet. Das DF-Eingangssignal E3', das Ausgangssignal A3, das DF- Eingangssignal E4', das Ausgangssignal A4, das DF-Eingangssignal E4", das DF- Eingangssignal E5, das Ausgangssignal A5 und das Ausgangssignal A5' spannen somit zwei DF-Schleifen auf, sind also Teil der zwei DF-Schleifen. Die Eingangssignale E3 und E4 beispielsweise bilden keine DF-Schleife, und sind somit kein Teil der DF-Schleife, obwohl sie Teil der DF-Komponenten K3 und K4 sind. Natürlich können Eingangssignale, die nicht Teil der DF-Schleife in diesem Sinne sind, Einfluss auf Ausgangssignale einer DF-Komponente haben, sind jedoch für die erfindungsgemäße Bestimmung der Signaldynamik bzw. Auftrennung von DF-Schleifen nicht wesentlich. Zudem ist ein Komponentenausgang der Software- Komponente K5 mit dem Komponenteneingang der Software-Komponente K6 verbunden, womit die Software-Komponente K6 das Ausgangssignal A5" der Software-Komponente K5 als Eingangssignal E6 erhält. Weiters ist der Komponentenausgang der Software- Komponente K6 mit dem Ausgang A der Recheneinheit 2 verbunden. Um nun zu ermitteln, welche der Signalpfade der DF-Schleifen A und B (zuerst) aufgeschnitten werden sollen, werden die Werte der DF-Eingangssignale E3', E4', E5, E4" der DF- Komponenten K3, K4, K5 der DF-Schleifen A und B, erfindungsgemäß auf Signaldynamik untersucht, d.h. auf die größtmögliche Änderung pro Zeiteinheit des Werts des DF- Eingangssignals, in diesem Fall innerhalb eines Taktschrittes t, und mit einer Penalty bewertet. Ein geringer Penalty-Wert bedeutet z.B. eine geringe Signaldynamik. Beispielsweise ergeben sich die Werte für die Penalty wie in Fig. 3b bei den Signalpfaden dargestellt, wobei das DF-Eingangssignal E4' am Komponenteneingang der DF-Komponent K4 offensichtlich gegenüber dem DF-Eingangssignal E4" an einem Komponenteneingang der DF- Komponente K4, dem DF-Eingangssignal E3' des Komponenteneingangs der DF-

Komponente K3, sowie des DF-Eingangssignals E5 des Komponenteneingangs der DF- Komponente K5 eine geringe Signaldynamik aufweisen, da das DF-Eingangssignal E4' den Penalty-Wert von Eins (gegenüber Penalty-Werten von Zwei, Drei, bzw. Fünf) aufweist.

Die Penalty-Werte können sich beispielsweise aus dem Datentyp der Werte des DF- Eingangssignals ergeben, z.B. mit der Definition der Penalty-Werte: Boolean: 9, Byte: 7, Integer: 5, Float: 1. Der Hintergrund hierfür ist der, dass sich der Wert eines Float-Wertes pro Zeiteinheit deutlich geringer verändern kann, als der Wert eines Boolean-Wertes, womit die mögliche Signaldynamik eines Float-Wertes kleiner ist. Die Penalty-Werte können auch nach der physikalischen Einheit der DF-Eingangssignale ermittelt werden, z.B. mit der Definition der Penalty-Werte: Temperatur: 1 , Massenfluss: 3, Umdrehungen pro Minute: 5, Druck: 7. Dabei nutzt man eine physikalische Interpretation der DF-Eingangssignale. Die Temperatur wird sich in einem technischen System deutlich langsamer ändern können, als der Druck, womit man mit einer geringeren Signaldynamik rechnen kann. Man kann verschiedene Kriterien zu Ermittlung der Penalty-Werte auch kombinieren. Also beispielsweise zuerst die Be- Stimmung der physikalischen Einheit und dann innerhalb einer physikalischen Einheit eine weitere Unterteilung gemäß des Datentyps.

Der Signalpfad mit dem geringsten Penalty-Wert von Eins, also das DF-Eingangssignal E4', wird somit aufgetrennt, hier also zwischen der DF-Komponente K3 und K4. Das heißt, dass das Ausgangssignal A3 der DF-Komponente K4 um einen Taktschritt t verzögert als Ein- gangssignal E4' zur Verfügung steht. Damit wird das DF-Eingangssignal E4' zu einem NDF- Eingangssignal, womit die vormalige DF-Schleife A nun eine NDF-Schleife ist. Das DF- Eingangssignal E5 bleibt jedoch ein DF-Eingangssignal, das weiterhin die DF-Schleife B bildet.

Die DF-Schleife B kann nun in einem weiteren Schritt behandelt werden, vorzugsweise ebenso nach dem Verfahrensschritt 1 c). So wird in der noch vorhandenen DF-Schleife B der Signalpfad mit dem geringsten Penalty-Wert, bestimmt - in Fig.3c also der Penalty-Wert von Zwei am Signalpfad vom Ausgangssignal A5 zum DF-Eingangssignal E4" gegenüber dem höheren Penalty-Wert von Fünf am Signalpfad vom DF-Ausganssignal A4 zum DF- Eingangssignal E5. Demnach wird das Ausgangssignal A5 um einen Taktschritt t verzögert und steht der DF-Komponente K4 um diesen verzögerten Taktschritt t als NDF- Eingangssignal E4" zur Verfügung. Damit stellt die vormalige DF-Schleife B nun ebenfalls eine NDF-Schleife dar. Man beachte, dass das Eingangssignal E4 der DF-Komponente K4 nicht aufgetrennt werden muss, da es nicht mit der DF-Schleife verknüpft ist bzw. nicht Teil der DF-Schleife ist. Daher muss auch die Signaldynamik des Eingangssignals E4 gar nicht bestimmt werden.

Es ist zu beachten, dass das Auftrennen einer DF-Schleife nicht bedeutet, dass die DF- Komponenten, die die DF-Schleifen gebildet hatten, automatisch NDF-Komponenten hinsichtlich aller Komponenteneingänge und Komponentenausgänge werden, wie auch in Fig. 3b i.V.m. Fig. 3a anhand der DF-Komponente K4 mit den DF-Eingangssignalen E4, E4' und E4" ersichtlich. Dies wäre lediglich der Fall, wenn diese DF-Komponenten keine weitere DF- Schleife bilden, also keine weiteren Komponenteneingänge mit DF-Eingangssignalen, die Teil einer anderen DF-Schleife sind, aufweisen. Falls eine DF-Schleife aufgetrennt wurde, werden lediglich die DF-Eingangssignale, die die DF-Schleife gebildet hatten, zu NDF- Eingangssignalen - weitere DF-Eingangssignale, die eine andere DF-Schleife bilden, bleiben DF-Eingangssignale, da diese andere DF-Schleife (bis zu einem eventuellen weiteren Auflösen ebendieser) bestehen bleibt.

Laut Fig.3d liegen nach Auftrennen der Signalpfade keine DF-Schleifen mehr vor. Wenn weitere DF-Schleifen vorhanden wären, so würden als nächstes die Signalpfade mit der nächsthöheren Dynamik durch Einfügen eines Verzögerungsglieds 1/z aufgetrennt werden. Auf diese Weise werden die zyklischen Abhängigkeiten aufgelöst und das signalflussbasierten Computerprogramm kann gemäß der damit feststehenden Abarbeitungsreihenfolge abgear- beitet werden. Dabei ist es selbstverständlich, dass von der verzögerten Eingangssignalen die vergangenen Werte zwischengespeichert werden müssen. Das Verfahren kann zum Auflösen aller DF-Schleifen des signalflussbasierten Computerprogramms 1 verwendet werden. Dazu wird die Signaldynamik des zumindest einen DF-Eingangssignals E3', E4', E4", E5 ermittelt und daraufhin vor den Komponenteneingang, an dem das DF-Eingangssignal E3', E4', E4", E5, das die geringste Signaldynamik aufweist, anliegt ein Verzögerungsglied 1/z geschaltet und damit um zumindest einen Taktschritt t verzögert, bis keine DF-Schleife im signalflussbasierten Computerprogramm 1 mehr vorhanden ist.

Für das signalflussbasierte Computerprogramm 1 ist es wichtig, dass alle DF-Schleifen aufgelöst werden, um die Abarbeitungsreihenfolge festzulegen. Für die gegenständliche Erfin- dung ist es aber ausreichend, wenn zumindest eine dieser DF-Schleifen mit dem oben beschriebenen Verfahren aufgelöst wird. Die anderen DF-Schleifen können auch mit anderen Methoden aufgelöst werden. Vorzugsweise werden aber natürlich alle DF-Schleifen mit dem erfindungsgemäßen Verfahren aufgelöst.

Ebenso muss nicht unbedingt immer um einen Taktschritt t (1/z) verzögert werden, sondern es kann auch eine andere Verzögerung gewählt werden. Allgemein wird also ein Verzöge- rungsglied 1/z N eingefügt, um eine DF-Schleife aufzulösen.