Beruflich Dokumente
Kultur Dokumente
Start aus der Ruhe aus einer Lage, die nur geringfügig von der statischen Gleichgewichtslage (GGL) abweicht. chi ist das Verhältnis von Masse 2
zu Masse 1. L ist die Gesamtlänge des Seils (die für die Dynamik des Systems nicht relevant ist, sondern nur für die konkrete Position der Massen).
Hinweis: Der Programmcode sieht möglicherweise kompliziert aus. Machen Sie sich klar, dass ein Großteil mit "copy-and-paste" übernommen
werden kann, wenn ein anderes System mit Freiheitsgrad 1 und zwei Koordinaten simuliert werden soll. Insbesondere die Differentiationsformeln
in der Funktion für den Zwang können wiederverwendet werden.
struct Systemparameter
g::Float64
chi::Float64
b::Float64
L::Float64
end
param = Systemparameter(9.81,2.0,4.0,12.0)
function zwang(a1,z,p)
# Es wird der Zwang dividiert durch m1/2 betrachtet
f(y) = p.L - sqrt(y^2 + p.b^2)
Psi(q) = f(q[1]) - q[2]
y1 = z[1]
v1 = z[2]
y2 = f(y1)
q = [y1; y2]
G = ForwardDiff.gradient(Psi,q)
H = ForwardDiff.hessian(Psi,q)
v2 = -G[1]/G[2]*v1
a2 = - (G[1]*a1 + H[1,1]*v1^2 + (H[1,2] + H[2,1])*v1*v2 + H[2,2]*v2^2)/G[2]
return ((a1 - p.g)^2 + p.chi*(a2 - p.g)^2)
end
function dgl!(F,z,param,t)
Z(a1) = zwang(a1,z,param)
erg = optimize(Z, -10.0,10.0)
F[1] = z[2]
F[2] = Optim.minimizer(erg)
end
y1GGL = param.b/sqrt(3)
https://lms.bht-berlin.de/mod/page/view.php?id=995140 1/2
04.02.23, 20:19 22W_TM3_MB-CED: Julia-Code für die Lösung des Schwingers aus Aufgabe 10.3
y1_start = y1GGL + param.b/50
v1_start = 0.0
z_start = [y1_start; v1_start]
tspan = (0.0,7.0)
prob = ODEProblem(dgl!,z_start,tspan,param)
sol = solve(prob)
Seguir para...
Berliner Hochschule für Technik | Datenschutz- und Einwilligungserklärung | Hinweise zum Urheberrecht | Impressum
https://lms.bht-berlin.de/mod/page/view.php?id=995140 2/2