Robert Neumann, P&G Manufactring GmbH:"nach anfänglicher Skepsis bin ich sehr überzeugt von den Möglichkeiten der Software. Meine Erfahrung mit Simulations -Software im Speziellen ist dabei zwar recht beschränkt, jedoch bin ich der Meinung, dass extendsim zahllose Möglichkeiten
bietet und ich für unsere Zwecke (Simulation von Packing-Linien) mir nichts vorstellen kann, dass nicht möglich wäre. Vor allem das User Manual und die vielen Beispiele sind dabei sehr hilfreich!"
|
|
(TM) Extend and ExtendSim is a trademark of Imagine That, Inc., San Jose, CA, USA
|
|
ExtendSim ist eine Software zur Simulation von Prozessen/Modellen.
Der hier folgende Text ist eine abstrahierende Beschreibung der Arbeit mit ExtendSim.
Am Anfang stehen Definitionen; diese macht der Anfänger auf jeden Fall - und andere auch noch- in der Regel grafisch und/oder über Dialoge.
- Definition der betrachteten Progressgrößen. Hier handelt es sich entweder um Funktionen der Zeit (stetige Simulation), bzw. der "Items"- im Grunde sind das Datensätze oder records (diskrete Simulation)
- modulare Definition des Prozesses. Diese erfolgt bei ExtendSim in der Regel erst einmal grafisch durch Definition von einzelnen Bausteinen des Prozesses, in ExtendSim heissen Sie "Blöcke".
Ähnlich wie in einem Flussdiagramm werden einzelne Stufen oder Stadien des Prozesses definiert und miteinander verbunden. Dadurch entsteht eine Anordnung oder Verlinkung der einzelnen Blöcke.
Ein Block hat
- Namen
- Inputs und Output-Konnektoren , diese vermitteln Information in/aus dem Block
- ein Interface ("Dialog" genannt) zur "Parametrisierung" des Block-Verhaltens,
- Code, der die Operation des Blocks definiert (oder auch seine Einwirkung auf andere Blöcke)
- Icon (das Bild, das Sie auf der Arbeitsfläche sehen)
- Animation
Die Funktionalität eines Prozesses wird also entscheidend bestimmt durch den Programm-Code eines Blockes. Man kann Blöcke auch selber programmieren und den Code von programmierten Blöcken editieren. ExtendSim verwendet dafür standardmäßig eine Sprache ModL, die man sich so ähnlich wie C, Pascal, Fortran oder Basic vorstellen sollte. Es können auch die anderen erwähnten Sprachen verwendet werden (muss man aber nicht).
Die meisten Anwender werden kaum Blöcke selber programmieren, sondern die mitgelieferten Standardblöcke (geordnet in Bibliotheken) verwenden.
Im Fall der stetigen Simulation:
Aus Anfangs- und Endzeit der Simulation und der Anzahl Schritte wird erst einmal ein Zeit-Delta berechnet. Ohne Diskretisierung geht das nicht.
Dann wird die Simulationsreihenfolge (der Blöcke) festgelegt (definierbar!).
Danach wird eine Simulationsschleife durchlaufen, pro Zeitpunkt einmal alle Blöcke der Reihe nach.
Bei der ereignisdiskreten Modellierung betrachtet man im Grunde Datensätze, die durch eine Kette von Blöcken laufen, man denke an Fluggäste, die von zuhause bis zum Flugzeug durch Türen, Verkehrsmittel , diverse Kontrollen etc. geschleust werden, an jeder Station wird evtl nur ein Attribut des individuellen Datensatzes (Fluggast) bearbeitet.
Hinzu kommt: während die Zeit im stetigen Fall geichmäßig abläuft, können die Zeit-Intervalle zwischen den Ereignissen (z.B. die Fahrtzeit mit dem Taxi von zuhause zum Flugplatz) ungleich sein. Der Zustand des Gesamtmodells wird nur dann neu festgestellt, wenn ein Ereignis eintritt (wie: Passagier in der Passkontrolle eingetroffen).
Zur Kopplung von kontinuierlicher und diskreter (genauer ereignisdiskreter) Simulation:
Die Blöcke der kontinuierlichen Bibliothek können auch in ereignisgesteuerten Simulationen verwendet werden, umgekehrt geht das nicht. Verwendet man "diskrete" Blöcke, so wird das ganze Modell ereignisgesteuert.
Stetige Böcke in einem diskreten Prozess werden nur dann "rechnen", wenn sie durch ein Ereignis dazu angeregt werden, in der Regel wird zB. ein diskreter Block dem stetigen einen Befehl dazu senden. Diese Messages laufen über Konnektoren.
Weiterhin möglich ist die ereignisgesteuerte Nutzung von Datenbanken und die Parametrisierung von Blöcken durch Datenbankeinträge.
|
|