View
1
Download
0
Category
Preview:
Citation preview
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ��������������� �!�"#� �"$%��"�&
�������'������(�������)
Kombiniert diskret-kontinuierliche Simulation
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� *�������������� �!�"#� �"$%��"�&
�������'������(�������)
Kombiniert diskret-kontinuierliche Simulation
• kontinuierliches Verhalten spezifiziert mittels Differentialsystemen
• ereignisorientiertes Verhalten spezifiziert mittels diskreter
Ereignissysteme
• Kopplung von diskretem und kontinuierlichem Teil
– Veränderungen in den kontinuierlichen Zustandsvariablen lösen
Ereignisse aus
– sprunghafte Zustandsänderungen, bzw. Unstetigkeiten der
kontinuierlichen Variablen durch Ereignisse
DifferentialsystemeDiskrete Ereignissysteme
state1 state2
state3event2
Auslösen von
Ereignissen
diskrete
Veränderungen
event1
event3
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� +�������������� �!�"#� �"$%��"�&
�������'������(�������)
Zustandsereignisse (state events)
• Wesentlich bei der kombinierten Simulation sind die sogenannteZustandsereignisse
• Das sind Ereignisse, die aufgrund von Bedingungen spezifiziert für kontinuierliche Werte auftreten
• Beispiele:
– Erreichen von Schwellwerten
– Treffen von zwei Zustandsvariablen (Kollision)
– Ein/Austreten einer Zustandsvariablen in einen Bereich
state event
q
threshold
t T
threshold reached
discrete change
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,�������������� �!�"#� �"$%��"�&
�������'������(�������)
Diskrete Reaktionen bei Zustandsereignissen
• Zustand wird sprunghaft verändert
• (kontinuierliche) Dynamik ändert sich grundlegend, d.h. System hat andere Gleichungen und zeigt anderes Verhalten
• diskrete Reaktion eines Steuerungsalgorithmus
Anwendungen
• bei der kontinuierlichen Simulation allgemein:
– jede Änderung im Prozeßverlauf
– Phasenübergänge
• Anwendung Automatisierungstechnik (hybride Systeme):
– diskrete Steuerung und Regelung kontinuierlicher Systeme
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� -�������������� �!�"#� �"$%��"�&
�������'������(�������)
Beispiel „Bouncing Ball“
10
Q = {(x, v) | x, v ∈ ℜ}}
Kontinuierlicher Teil
dx / dt = v
dv / dt = -d*v / m - g
Diskreter Teil
if (x <= 0) then
v = -v * 0.8
• freier Fall modelliert mittels einer Differentialgleichung
• Aufprall modelliert durch ein diskretes Ereignis, bei dem die Geschwindigkeit reduziert und umgekehrt wird
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� .�������������� �!�"#� �"$%��"�&
�������'������(�������)
Beispiel „Wassertank“
Ein Modell eines einfachen Wassertanks mit Zufluss und Abfluss hat mehrere Ereignisse und unterschiedliche Verhaltensmuster
– normales Verhalten: Veränderung ergibt sich aus Zufluss minus Abfluss
dq / dt = inflow – outflow
– Überlauf: trotz Zufluss wird der Füllstand nicht verändert
dq / dt = min(0, inflow – outflow)
– Tank leer und Zufluss ist gleich dem Abfluss: Füllstand darf nicht unter 0 sinken
dq / dt = max(0, inflow – outflow)
full
empty
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� /�������������� �!�"#� �"$%��"�&
�������'������(�������)
Beispiel „Wassertank“: Modell
• Partition des Zustandsraums in einzelne Bereiche
• Phasenübergänge bei den einzelnen Bereichen durch Ereignisse
empty sensor
full sensor
overflow level
0 level
level
overflow phase
full phase
between phase
empty phase
zero phase
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� 0�������������� �!�"#� �"$%��"�&
�������'������(�������)
Modellierung mit Zustandsdiagrammen
• Phasen und Phasenübergängen bei Ereignissen lassen sich sehr gut mit Zustandsdiagrammen darstellen
• mit den Zuständen verbindet man unterschiedliches kontinuierliches Verhalten
d(level)/dt = min(0, inflow – outflow)
d(level)/dt = inflow – outflow
d(level)/dt = max(0, inflow – outflow)
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� �-�������������� �!�"#� �"$%��"�&
�������'������(�������)
Zustandsdiagramme für Steuerungszyklen
• Zustandsdiagramme können sehr gut für Steuerungszyklen verwendetwerden
– erhalten Ereignisse, z.B. Sensormeldungen, vom System
– erhalten Kommandos vom übergeordneten System
– modellieren den gewünschten Steuerungszyklus als Zustandsdiagramm
System Steuerung
Sensorsignale
Übergeord. Leitsystem
Kommandos
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� �.�������������� �!�"#� �"$%��"�&
�������'������(�������)
Beispiel „Solarheizung“
• Solarenergie wird in einem Kollektor gewonnen
• und in einem Speichertank gespeichert
• aus dem Speichertank wird Wärme entnommen, um das Haus zu heizen
• der Speichertank ist hierarchisch organisiert
– 3 Ventile auf der Kollektorseite können warmes Wasser in 3 unterschiedliche Schichten
einleiten
– 3 Ventile auf der Heizungsseite können warmes Wasser aus 3 unterschiedlichen
Schichten entnehmen
• Die Speicherstrategie ist so, daß
– immer in die möglichst oberste (wärmste) Schicht eingeleitet wird und
– immer aus der möglichst untersten (kältesten) Schicht entnommen wird
heating- control
collector- control
collector
storage-tankhouse
layer-1
layer-2
layer-3
collector-pump
heating-pump
layer_3
layer_2
layer_1
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� �/�������������� �!�"#� �"$%��"�&
�������'������(�������)
Beispiel „Solarhaus“: Heating-control
[house_temp < on_temp && temp(3) >= heating_temp]/current_layer = optimal_heating_layer();valve(current_layer).open();pump.on();
idle
sub_heatingheating [temp(3) > heating_temp]
[current_layer == 3 && temp(3) < heating_temp)]
[current_layer < 3 &&temp(current_layer) < heating_temp]/
valve(current_layer).close();current_layer = current_layer + 1;
valve(current_layer).open();
[house_temp > off_temp ]/valve(current_layer).close();current_layer = 0;pump.off();
[temp(3) < house_temp + min_diff]/valve(current_layer).close();
current_layer = 0;pump.off();
Continue heatingwith next higher layer
Start heating withlowest layer possible
Stop heating because warm enough
Not enough heat in storageto heat normally
enough heat in storageto heat normally
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� �1�������������� �!�"#� �"$%��"�&
�������'������(�������)
Simulation von kombinierten Systemen
• kontinuierliche Simulation von Ereignis zu Ereignis
• Erkennung von Zustandsereignissen während der numerischen Integration
• Ausführen der Ereignisse
Erkennung von Zustandsereignissen:
• Umformung der Bedingungen auf Nulldurchgänge (z.B.: x >= 10 ----> x - 10 >= 0)
• Erkennen der Nulldurchgänge bei der Integration
• Approximationsverfahren zum Auffinden der genauen Zeit des Zustandsereignisses
– Bisection-Methode: Sukzessive Halbierung des Integrationsintervalls und Test in welcher Hälfte der Nulldurchgang liegt
– Regula Falsi: Legen einer Geraden durch die zwei Integrationsstützpunkte
ti ti + h
Integrationsschritte
Bisection-Methode
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� *2�������������� �!�"#� �"$%��"�&
�������'������(�������)
Kombiniert diskret-kontinuierliche Simulation mit SIMULINK
• SIMULINK bietete eine Reihe von Bausteinen für kombinierte Simulation
– Erkennen von Ereignissen
– Generieren von Signalen
– Verarbeiten von Signalen
– Rücksetzen von Zuständen
– ...
• SIMULINK bietet auch eine Erweiterung für die Modellierung von Zustandsdiagrammen
� Stateflow
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� *��������������� �!�"#� �"$%��"�&
�������'������(�������)
Ereignisse in SIMULINK
Unterschiedliche Bausteine in SIMULINK erlauben die Modellierung von diskreten Ereignissen:
– Relational Operators
• vergleichen reelle Werte und liefern {0, 1}
• Genauigkeit auf Schrittweite begrenzt
– Hit-Crossing:
• triggert wenn Input einen eingestellten Wert passiert
• zur möglichst genauen Näherung an Ereigniszeitpunkt
• Ausgabe ist ein Boolscher Wert, der anzeigt, ob der Input über oder unter dem Wert liegt
– Backlash:
• modelliert ein System mit Spiel
• bei Vorzeichenwechsel des Inputs wird der neue Input um ein gewisse Zeit verzögert
– ...
<=
Input
Output
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� **�������������� �!�"#� �"$%��"�&
�������'������(�������)
SIMULINK: Logische Operatoren und Schalter
• Logical Operator
• Combinatorial Logic
• Switch Block
– Switch
– Manual Switch
– MultiSwitch
Switch
OutputControl
if control >= threshold
if control < threshold
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� *+�������������� �!�"#� �"$%��"�&
�������'������(�������)
SIMULINK: Reset und weitere Optionen beim Integrator
• Der Integrator-Baustein kennt mehrere wichtige nicht-lineare Optionen
– Grenzwerte (Saturation level)
– Port für den Initialwert (Zusammen mit IC-Block
– Port für Reset
IC
Reset
Initial
Output
Saturation
1s
State
[1]
Input
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� *,�������������� �!�"#� �"$%��"�&
�������'������(�������)
Bouncing Ball in SIMULINK
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� *0�������������� �!�"#� �"$%��"�&
�������'������(�������)
Diskrete und kombinierte Simulation in AnyLogic
• AnyLogic ist ein Simulationssystem für „hybride“ (= kombinierte) Systeme
• Verbindet
– Differentialsysteme und
– diskrete, ereignisorientierte Zustandsautomaten
• basiert auf UML-RT
– Strukturdiagramme
– Statecharts
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� *1�������������� �!�"#� �"$%��"�&
�������'������(�������)
UML-RT
• Erweiterung von UML für Real Time
• ursprünglich definiert in der Modellierungssprache ROOM
• UML Dynamikmodellierung
– Statecharts definieren Ereignisverhalten
+ Formalismus für Strukturdiagramme
– Capsules stellen Komponenten mit Schnittstellen dar
– Subcapsule sind enthaltene Komponenten
– Ports sind Schnittstellen über die Messages (Signale) fließen
– Connectors verbinden Ports und definieren den Signalfluss
– Protocols definieren eine bestimmte Form von Ereigniskommunikation; ähnlich Patterns
– Protocol Roles definieren die Input/Outputschnittstellen von in Protokollen beteiligten Komponenten
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� +2�������������� �!�"#� �"$%��"�&
�������'������(�������)
UML-RT Capsules, Ports, and Connectors
«capsule»
y:CapuleClassC«capsule»
c:CapuleClassC
CapsuleClassA
«capsule»
b:CapuleClassB
{plugin}
5
c[0..4]:PortC
b:PortC~a:PortA
a2:PortA2
a1:PortA1
capsuleport
conjugate port
state machine
sub-
capsule connection multiplicity
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� +-�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Modellierung
Aufbau von Systemen aus
– Active Models
– Ports
– Variables (kontinuierlich)
– Connectors
– Statecharts
– Event Objects
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� +.�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Strukturelemente
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� +/�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Message Passing
• Message Passing in AnyLogic passiert mittels
– Ports: Message-Schnittstellen
• können Messages empfangen (���������)
• und verschicken (����)
– Connectors: Message-Kopplungen
• bidirektionale Message-Channels
• Broadcast an alle Connectors
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� +0�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Verhalten von Ports
� �������������������� Verschicken einer Message
� ���������������������������������������� Empfangen einer Nachricht
� �� �� �� �������������� wird aufgerufen bei Senden
� ������� ������� ������� ����������� wird aufgerufen bei Empfang
Ports können eine Queue haben:
� ������������������������ Entnahme der nächsten Message
� ���������������������������� Lesen der nächsten Message
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,*�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts
AnyLogic StateCharts erlauben
• hierarchische Zustandsdiagramme
• Transitions mit unterschiedlichen Triggers
– Message an Port
– Zustandsbedingung
– Zeitspanne
– erzeugtes Ereignis
• beliebiger Java-Anweisungen als Aktionen
– Senden von Messages
– Aufbauen/Lösen von Kopplungen
– ...
• Zustände definieren Gleichungen (Equations)
– gelten nur solange man sich im Zustand befindet
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,+�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statechart-Diagramme
CompositeState
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,,�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: States und Nodes
• Initial State Pointer: zeigt den Anfangszustand an
• Final State: Endzustand ohne weitere Transition
• State: ein Zustand
• Composite State: Zusammenfassung mehrere Zustände
• Branch: Verzweigung
• Shallow history state: Es wird beim zuletzt verlassenen Zustand in diesem Composite State fortgesetzt
• Deep history state: Es wird beim zuletzt verlassenen Zustand in diesem Composite State fortgesetzt, wobei hier in die Tiefe der Zustände gegangen wird (siehe Folie „Verhalten History States“)
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,-�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Verhalten Composite State
• Composite States sind Vereinigungen von Zuständen
• Für unten dargestellten Diagramm ergibt sich folgendes Verhalten
– der Composite State vereint Zustände A und B
– wird der Composite State betreten, wird der Anfangszustand A betreten
– sowohl bei A als auch bei B können Transition 1 und 2 triggern
– bei Transition 1 ist der Folgezustand A
– die internal transition bewirkt keine Änderung des Zustands (nur Ereignis)
Transition 1
Transition 2
Transition 3
A
B
C
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,.�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Verhalten History State
• Bei einem History state wird der zuletzt verlassene Zustand wieder betreten; dabei wird nicht in die Tiefe gegangen, d.h. wurde einComposite state verlassen wird dieser über den Initial state betreten.
• Beim Deep history state wird zusätzlich in die Tiefe gegangen und der zuletzt verlassene einfache Zustand wieder betreten
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,/�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Transitions
Transitions haben 3 wesentliche Teile
• Trigger: spezifiziert das Ereignis, bei dem die Transition schalten soll
• Guard: eine zusätzliche Bedingung, die eine Transition erlaubt oder verhindert
• Action: Sequenz von Java-Anweisungen
Arten von Trigger:
• Zustandsereignis: Zustandsbedingung an kontinuierliche Werte
• Inputereignis: Port oder Message von Port
• Zeitereignis: Zeitspanne bis Transition triggern soll
• Dynamisches Ereignis: Ereignisobjekt
– durch Methode �������� generiertes Objekt
– oder Message-Objekt von einem gekoppelten Port
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,0�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Trigger
• Inputereignis • Zustandsereignis
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� ,1�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Trigger (2)
• Zeitereignis: Zeitspanne bis Transition triggern soll
– konstanter Wert,. Bsp.: 2.56
– oder Zufallsverteilung, welche eine zufällige Zeitspanne liefern sollBsp.: ���������� ��
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� -2�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Trigger (3)
• Dynamisches Ereignis:
– Ereignisobjekt erzeugt durch fireEventoder Message-Objekt von einem gekoppelten Port
– Vergleich mit Objekt im Trigger der Transition
• entweder gleiches Objekt (Vergleich über equals)
• oder gleiche Klasse
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� -��������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Actions bei Transitions
• Senden von Messages:
– Aufruf von ���� bei einem Port
� ������� ���������� ��!�"��!��"��#�
• Konsumieren von Messages:
– Aufruf von ����� bei einem Port mit Queue
• Feuern von dynamischen Ereignissen:
– Aufruf von ����������
� ����������������� $!������%&%��#�
• Kopplungen aufbauen und lösen
– Aufruf von � ���� ���� ���� ����������� bzw. ��� ������ ������ ������ ����������� bei Ports und Variablen
– Bsp.: � ����� ���� ����� ��'�� ���#
• jede andere Java-Anweisung
– z.B.: Setzen von Variablen
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� -*�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Statecharts: Actions und Equations bei States
• Actions
– Entry action: Folge von Anweisungen ausgeführt bei Betreten des Zustandes
– Exit action: Folge von Anweisungen ausgeführt bei Betreten des Zustandes
• Equations
– Differential equations
– Formulas
– Algebraic equations
aktiv, wenn man sich im Zustand befindet !!!!
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� -+�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Beispiel: Tank mit einfacher Steuerung
Es wird ein Tank modelliert mit einer Steuerung, die den Tank in einem Zyklus füllt und wieder entleert
– Strukturdiagramm
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� -,�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Beispiel: Tank mit einfacher Steuerung
Tank
Controller
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� --�������������� �!�"#� �"$%��"�&
�������'������(�������)
AnyLogic Beispiel: Tank mit einfacher Steuerung
Simulationslauf
Ko
mb
inie
rte
Sim
ula
tio
n
����������������� ������������������� ��������� -.�������������� �!�"#� �"$%��"�&
�������'������(�������)
Zusammenfassung Kombinierte Simulation
• Modellierung von kontinuierlichem Verhalten mittels Differentialgleichungen
– funktionale Modellierung
• Modellierung von ereignisorientiertem Verhalten mittels ereignisorientierter Formalismen
– Zustandsereignisse
– Unstetigkeiten
– Zustandsautomaten
• Multimodelle:
– Differentialgleichungen ändern sich mit den diskreten Zuständen
• Hybride Systeme:
– kontinuierliche Systeme
– disrete, ereignisorientierte Steuerungen
Recommended