Beruflich Dokumente
Kultur Dokumente
Einführung in Modelica
TU Berlin
Systeme erster Ordnung
System erster Ordnung
↪ of x toward 1.0";
0.5
5 end FirstOrderDocumented;
Erläuterung (Startwerte)
Zur numerischen Lösung können/müssen zusätzlich noch
sogenannte Startwerte festgelegt werden. Diese geben dem
Numerischen-Löser (Solver) die Möglichkeit – bei einer guten
Wahl der Startwerte – schneller eine (nichtlineare) Lösung zu
finden, da weniger Iterationen benötigt werden. Des Weiteren
kann es nötig sein Startwerte vorzugeben, um überhaupt die
die gesuchte Lösung zu finden.
Modelica Implementierung
Anfangswerte können in Modelica durch einen initial
equation-Block vorgegeben werden. Die Startwerte werden
durch ein in Klammern eingefasstes (start=x0) festgelegt, das
hinter die entsprechende Variable geschrieben wird. Einen
Sonderfall bildet die Varianten mit einem zusätzlichen
fixed=true-Wert, der mit in den Klammerausdruck (start=x0,
fixed=true) geschrieben wird. Der Startwert wird für diese
Variante in jedem Fall auch als Anfangswert gesetzt.
model zw model zw
parameter Real x0=10; parameter Real x0=10;
Real x; Real x(start=x0);
initial equation equation
x = x0; ...
equation end zw;
...
end zw;
Startwerte dienen
model zw ausschließlich dem
parameter Real x0=10;
Real x(start=x0, fixed=true); Numerischen-Löser und
equation
... werden, wenn der Löser es als
end zw;
„sinnvoll“ erachtet, als
„fallback“ Anfangswerte
verwendet.
𝑥̇ = (1 − 𝑥) 1 model FirstOrderExperiment
↪ "Defining experimental
AW: 𝑥 = 2 ↪ conditions"
2 Real x "State variable";
3 initial equation
4 x = 2 "Used before simulation
2.0 to compute initial
Zustandsgröße x
↪
↪ values";
1.5 5 equation
6 der(x) = 1-x "Drives value of
1.0 ↪ x toward 1.0";
0 2 4 6 8 7 annotation(experiment(
Zeit t/s ↪ StartTime=0,
↪ StopTime=8));
8 end FirstOrderExperiment;
𝑇∞ = 25; 𝑇0 = 90; 𝛼 = 0, 7; 𝐴 = 1, 0; 𝑚 = 0, 1; 𝑐𝑝 = 1, 2
Systeme
pulseCounter
idealSensor
d=0.2 d=1
damper1 damper2
Vb V J=0.4 J=1
inertia1 inertia2
c=11 c=5
spring1 spring2
Lösbarkeit
DGL-System:
Das Modell des Systems
𝑈 = 𝑖R 𝑅 besteht aus vier unbekannten
d𝑈 Variablen (𝑈 , 𝑖R , 𝑖C , 𝑖L ), die
𝐶 = 𝑖C durch vier Gleichungen gelöst
d𝑡
d𝑖 werden müssen!
𝐿 L = (𝑈b − 𝑈 )
d𝑡
Algebraische-Gleichung
(Kirchoffsches-Gesetz):
Ub U
𝑖L = 𝑖R + 𝑖C
𝑈b = 24 V; 𝐿 = 1 H; 𝑅 = 100 Ω; 𝐶 = 1 ⋅ 10−3 F
40
Batterie-Spannung Ub
35 Ausgangs-Spannung U
30
Spannung U/V
25
20
15
10
pulseCounter
idealSensor
d=0.2 d=1
damper1 damper2
J=0.4 J=1
inertia1 inertia2
c=11 c=5
spring1 spring2
DGL-System:
𝜔1 = 𝜑̇ 1
d(𝜑2 − 𝜑1 )
𝐽1 𝜔̇1 = 𝑐1 (𝜑2 − 𝜑1 ) + 𝑑1
d𝑡
𝜔2 = 𝜑̇ 2
d(𝜑1 − 𝜑2 )
𝐽2 𝜔̇2 = 𝑐1 (𝜑1 − 𝜑2 ) + 𝑑1 − 𝑐2 𝜑2 − 𝑑2 𝜑̇ 2
d𝑡
pulseCounter
idealSensor
d=0.2 d=1
damper1 damper2
J=0.4 J=1
inertia1 inertia2
c=11 c=5
spring1 spring2
𝐽1 = 0,4 kg m2 ; 𝐽2 = 1 kg m2 ; 𝑐1 = 11 N m/rad;
𝑐2 = 5 N m/rad; 𝑑1 = 0,2 N m s/rad; 𝑑2 = 1 N m s/rad
Initialisierungswerte: Initialisierungswerte:
𝜑1 = 0 rad; 𝜑2 = 1 rad; 𝜑1 = 1 rad; 𝜑2 = 1 rad;
𝜔1 = 0 rad s−1 ; 𝜔2 = 0 rad s−1 𝜔1 = 0 rad/s; 𝜔2 = 0 rad/s
4 4
ϕ1 /rad
ϕ2 /rad
2 ω1 /rad s−1 2
ω2 /rad s−1
0 0
ϕ1 /rad
ϕ2 /rad
−2 −2
ω1 /rad s−1
ω2 /rad s−1
−4 −4
0 1 2 3 4 5 0 1 2 3 4 5
Zeit t/s Zeit t/s
Das Lotka-Volterra-Modell
nDGL-System:
𝛼 = 0, 1; 𝛽 = 0, 02; 𝛾 = 0, 4; 𝛿 = 0, 02
𝑥 = 10; 𝑦 = 10
40
35
30
25
Anz. Beute
20
Anz. Räuber
15
10
0
0 20 40 60 80 100 120 140
Zeit t/s
Phasendiagramm
Räuber
Beute
zu
20
18
16
14
Anz. Beute
12 Anz. Räuber
10
Anz. Beute
0.04 Anz. Räuber
0.02
0.00
−0.02
−0.04