DiplomarbeitUntersuchungen zur transaktionsorientierten Modellierung in Simulink |
![]() ![]() |
![]() |
![]() |
1. Betreuer: 2. Betreuer: |
Prof. Dr.-Ing. Thorsten Pawletta Prof. Dr.-Ing. Sven Pawletta |
|
Renaldo Jörn, September 2005 |
EinleitungDie Begriffe Modellierung und Simulation sind eng miteinander verbunden. Die Modellierung beschreibt die Abstraktion vom Originalsystem zum Modell. Die Simulation ist die Ausführung dieses Modells. In der heutigen rechnergestützten Simulation stehen hierfür eine Vielzahl von Softwarepaketen zur Verfügung. Eines dieser Softwarepakete ist Matlab mit seinen Toolboxen. Die Simulink Toolbox ist eine dieser Toolboxen. Die Simulink Toolbox besitzt eine große Auswahl an Möglichkeiten um unterschiedliche dynamische Systeme mit Hilfe von graphischen Darstellungen zu modellieren. Für die graphische Darstellung der dynamischen Systeme stehen in Simulink verschiedene Bibliotheken bereit. In der Arbeit wird sich auf die User - Defined Functions - Bibliothek bezogen, welche selbst auszuprogrammierende S - Funktionen bereitstellt.
|
|
ZielstellungZiel der Diplomarbeit ist die Entwicklung von Lösungsansätzen zur Abbildung transaktionsorientierter Modelle mit Simulink. |
|
Transaktionsorientierte Modellierung und SimulationIn der transaktionsorientierten Simulation werden zwei Arten von Elementen unterscheiden. Die erste Art sind die dynamisch temporären Elemente, die in der transaktionsorientierten Simulation als Transaktionen bezeichnet werden. Die andere Art sind die permanent stationären Elemente, die als Blöcke bezeichnet werden. Die Blöcke bilden dabei die Knoten eines Graphen durch die die Transaktionen fließen.Eine allgemeine transaktionsorientierte Ablaufsteuerung besteht aus verschiedenen Phasen. Die Phasen beinhalten unterschiedliche Aufgaben. In der Initialisierungsphase werden unter anderem Zustandvariablen mit Startwerten definiert oder die Simulationsuhr auf Null gesetzt. Hingegen wird in der Zeitfortschaltungsroutine z.B. die Simulationsuhr auf den nächst höheren Bewegungszeitpunkt gesetzt. In der Transaktionsroutine werden z.B. die Transaktionen soweit wie möglich durch das Modell bewegt werden. |
|
LösungsansätzeBei den Lösungsansätzen wird zwischen zwei grundsätzlichen Ansätzen unterschieden: |
|
1. Nachbilden der Modellstruktur von transaktionsorientierten Modellen mit Simulink | |
2. S - Funktionen bilden die Funktion von transaktionsorientierten Blöcken ab - erste Strategie: S - Funktionen mit variabler Sample Time - zweite Strategie: S - Funktionen mit portbasierter Sample Time |
|
Die Lösungsansätze und Prototyp - Implementierungen beziehen sich auf die transaktionsorientierte Modellierungs- und Simulationssprache GPSS. | |
1. Nachbilden der Modellstruktur mit
Simulink In diesem Ansatz wird mit Simulink die Modellstruktur abgebildet. Die S - Funktionen repräsentieren die Blöcke aus der transaktionsorientierten Modellierungs- und Simulationstoolbox MatlabGPSS. Dafür ist eine Bibliothek in Simulink angelegt die alle Blöcke der MatlabGPSS Toolbox enthält. Die Bibliothek besteht aus drei Bereichen. Im ersten Bereich befinden sich Allgemeine - , im zweiten Spezielle - und im letzten Extra Simulink/GPSS - Blöcke. In dem Bereich Extra Simulink/GPSS - Blöcke sind Blöcken enthalten, die es in der MatlabGPSS Toolbox nicht gibt. In Simulink werden diese Blöcke benötigt um das Modell zu realisieren und auszuführen. Das Ausführen des Modells wird über die S - Funktion execute_ms realisiert. Die execute_ms ordnet und überführt das Modell in eine interne MatlabGPSS Modellstruktur. Danach erfolgt die Ausführung des Modells durch das Aufrufen des MatlabGPSS - Schedulers. Simulink wird in diesem Ansatz zur graphischen Darstellung des Modells genutzt. Das Modell wird nicht mit dem Simulink - Scheduler ausgeführt. |
|
2. S - Funktionen bilden die Funktion von transaktionsorientierten
Blöcken ab Der Ansatz wird in zwei Strategien unterschieden. Die erste Strategie beschäftigt sich mit S - Funktionen die eine variable Sample Time besitzen. Der andere mit S-Funktionen die eine portbasierte Sample Time besitzen. In beiden Strategien wird das Modell mit dem Simulink - Scheduler ausgeführt. 2.1 S - Funktionen mit variabler Sample Time Beim Ansatz mit S - Funktionen die eine variabler Sample Time besitzen, sollen diese den Zeitpunkt ihrer nächsten Aktivierung selbst bestimmen. Dafür es notwendig die t_next Bestimmung der einzelnen Blöcke zu kennen. Bei der Prototyp - Implementierung des Modells wird mit zwei globalen Feldern gearbeitet. In einem Feld sind alle Transaktionen enthalten die sich im System befinden. In dem zweiten Feld sind nur Transaktionen enthalten die zum aktuellen Zeitpunkt bewegt werden. In der transaktionsorientierten Simulation wird das zweite Feld als CEC (Current Event Chain) bezeichnet. das andere als FEC (Future Event Chain). Die komplizierte t_next Bestimmung bei komplexren Modellen ermöglicht keine allgemeine gültigen S - Funktionen. Daher ist in dieser Strategie nur eine individuelle Programmierung der S- Funktionen für jedes Modell möglich. |
|
2.2 S - Funktionen mit portbasierter Sample Time Beim Ansatz mit einer portbasierten Sample Time stößt ein Block einen anderen Block an, dabei entsteht eine treibende Simulation. Der generate Block hat die Aufgabe die Simulation anzutreiben. Der Block Verzögerung bekommt die Verweildauer der Transaktion vom advance Block übergeben und stößt diesen nach Ablauf der Verweildauer erneut an. Die Rückkoppelung von release zu seize bewirkt das erneute Anstoßen von seize. Damit wird seize bekannt gemacht, dass die Einrichtung wieder frei ist, die zuvor durch seize belegt wurde. Um einen Algebraic Loop in Simulink zu verhindern wird der Memory Block genutzt. Der Memory Block bewirkt eine von Max step size abhängige Verzögerung. Ein Anstoßen der nachfolgender Blöcke ist in Simulink nicht realisierbar. Wird ein Block mit portbasierter Sample Time angestoßen werden alle Ausgänge diese Blockes aktiviert, was zufolge hat das ein nachfolgender Block mit portbasierter Sample Time ebenfalls angestoßen wird. Dies stellt ein Problem dar, wenn ein Block mit portbasierte Sample Time aufgrund einer Bedingung nicht aktiviert werden darf. |
|
Zusammenfassung und AusblickEine transaktionsorientierte Modellierung mit Simulink ist möglich. Der erste Ansatz bietet die Möglichkeit Simulink als graphische Darstellungsumgebung für die MatlabGPSS Toolbox zu nutzen. Im Ansatz mit variabler Sample Time ist prinzipiell eine Modellierung von transaktionsorientierten Modellen möglich, aufgrund der Komplexität und der individuellen Programmierung der S - Funktionen stellt sich die Frage des Aufwandes und des Nutzen. Der Ansatz mit portbasierter Sample Time ermöglicht keine lauffähige Lösung. Eine lauffähige Lösung diese Ansatzes ist unter der Weiterentwicklung seitens Mathworks von S - Funktionen möglich. Die S - Funktionen müssen hierzu eine gezielte Steuerung der Ausgänge erlauben. Weiterhin müsste eine Veränderung der Sample Time zur Laufzeit ermöglicht werden.
|
|
![]() |