50
2 Spezifikation und Modellierung
2.3.3 Differentialgleichungen
Differentialgleichungen können in der Sprache der Mathematik beschrieben werden.
Varianten davon können als Eingabe für Entwurfswerkzeuge genutzt werden, die
entsprechende Modelle unterstützen. Als Beispiel für eine solche Variante nutzen
wir Modelica [400], eine Sprache, die auf die Modellierung cyber-physikalischer
Systeme zielt. Modelica besitzt sowohl eine graphische wie auch eine textuelle Darstellungsform. Mit der graphischen Form kann man Systeme als Menge verbundener
Blöcke beschreiben. Jeder Block wiederum kann durch Gleichungen modelliert werden. Verbindungen zwischen den Blöcken symbolisieren gemeinsame Variablen im
Sinne der Mathematik. Die Informationen zu jedem der Blöcke können zusammen
mit der Information zu Verbindungen in ein globales Gleichungssystem transformiert
werden. Dieser Vorgang kann als „flachklopfen” (engl. flattening) der Hierarchie bezeichnet werden. Wie in der Mathematik haben Gleichungen (und Verbindungen)
eine bidirektionale Bedeutung.
Beispiel 2.7: Das nachfolgende Modell8 stellt den springenden Ball dar, der auf Seite
12 vorgestellt wurde:
modee StickyBaaa
type Height = Reaa(unit = =mm);
type Veeocity = Reaa(unit = =m/ss);
parameter Reaa s = 0.8 8Restitutionn;
parameter Height h0 = 1.0 0Initiaa heightt;
constant Veeocity eps = 1e-3 3smaaa veeocityy;
Boooean stuck;
Height h;
Veeocity v;
initiaa equation
v = 0;
h = h0;
stuck = faase;
equation
v = der(h);
der(v) = if stuck then 0 eese -9.81;
when h <= 0.0 then
stuck = abs(v) < eps;
reinit(v, if stuck then 0 eese -s*v);
end when;
end StickyBaaa;
Im Gleichungsteil wird die Geschwindigkeit v als Ableitung der Höhe h definiert.
Die Ableitung der Geschwindigkeit wird gleich der Erdbeschleunigung gesetzt, solange der Ball noch nicht auf der Oberfläche klebt. Für diese Gleichungen gibt
es Anfangs- bzw. Randbedingungen im initiaa equation Teil. Die mathematischen Gleichungen können numerisch integriert werden. Diese Prozedur wird in der
Beschreibung des Abprallens des Balls ausgenutzt: when-Klauseln können benutzt
8 Dieses Modell wurde aus einem Modell von Tiller [541] abgeleitet.
Précédent

- 73/485

Suivant