Verlocity Verlet Verfahren - Zusammenstoß zweier Kugeln

2 Ansichten (letzte 30 Tage)
Lea Hilfert
Lea Hilfert am 17 Jun. 2023
Bearbeitet: Lea Hilfert am 19 Jun. 2023
Ich soll die Bewegung beider Partikel durch die Gravitations und Auftriebskraft und die Kollisionskraft berechnen mit dem Velocity Verlet-Verfahren. Erstellen sie für die Kräfte Matlab Funktionen, die die jeweilige Kraft als Ausgabeparameter haben.
Ich stecke immer noch bei Aufgabe 1 fest, erstmal weiß ich nicht wie man überhaupt eine Geschwindigkeit berechnen kann wenn man erstmal die Widerstandskraft nach Stokes vernachlässigen soll. Weiterhin verstehe ich nicht ganz wie ich in der overlap Funktion die Geschwindigkeit de Partikel einfügen soll
%% Zeitsimulation - Velocity Verlet Verfahren
for g = 1:n-2
v_p1 = Geschwindigkeit_1 (m_1, V_K,r1)
v_p2 = Geschwindigkeit_2 (m_2, V_K,r2)
x_p2(g+1,:) = x_p2(g,:) + v_p2(g,:) * dt + 0.5 * a_p2(g,:) * dt * dt;
overlap(g) = betrag(overlapping(x_p1(g,:), x_p2(g,:), r1, r2));
if(betrag(overlapping(x_p1(g,:), x_p2(g,:), r1, r2)) > 0 && coll_flag)
coll_flag = false;
waitfor(msgbox("Beginn der Kollision"));
end
end
%% Überlappungsfunktion
function [d] = overlapping(x1, x2, r1, r2)
delta_x = x1 - x2;
d_betrag = betrag(delta_x) - (r1 + r2);
if(d_betrag > 0)
d_betrag = 0;
end
d = delta_x ./ norm(delta_x) * d_betrag;
end
%% Betragsfunktion
function l = betrag(x)
l = sqrt(x(1)^2 + x(2)^2);
end
%% Funktion Geschwindigkeit 1
function v_p1 = Geschwindigkeit_1 (m_1, V_K,r1)
g = 9.81;
roh_fluid = 1000;
eta = 0.001;
v_p1 = ((m_1 * g) - (roh_fluid * V_K * g))/ (6 * pi *eta * r1)
end
Es kommt folgender Fehler:
Output argument "v_p1" (and possibly others) not assigned a value in the execution with
"Versuch_NEU>Geschwindigkeit_2" function.
Error in Versuch_NEU (line 63)
v_p2 = Geschwindigkeit_2 (m_2, V_K,r2)

Antworten (1)

Andreas Goser
Andreas Goser am 19 Jun. 2023
Bearbeitet: Andreas Goser am 19 Jun. 2023
Die Fehlermeldung bedeutet zunächst, dass die Übergabeparameter die die Funktion erwartet nicht im Workspace vorhanden sind. Also eine Variable (noch) nicht zugewiesen ist.
Da sich die Fragestellung nach einer Art Hausaufgabe anhört stellt sich die Frage, ob der Code von einer anderen Person übernommen wurde oder selbst entwickelt.
  1 Kommentar
Andreas Goser
Andreas Goser am 19 Jun. 2023
Weiterhin fällt mir auf, dass im Codefragment die Funktion Geschwindigkeit_2 gar nicht vorkommt, Geschwindigkeit_1 aber zweimal...

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!