Ich versuche mich an der mathematischen Beschreibung einer Bewegungsgleichung in den üblichen 7 Phasen.
Die Phasen kann man hier nachlesen.
In der Wikipedia gibts ein Übersichtsbild dazu.
Dabei wird Ruck, Beschleunigung, Geschwindigkeit und Weg vorgegeben.
Mathematisch kann man nun recht einfach ausrechnen, zu welchem Zeitpunkt man welche Geschwindigkeit hat.
Als Hilfsmitel nutze ich das freie Softwarepaket wxMaxima (Matheprogramm Maxima + GUI)
Basis-Formeln:
j=Ruck
a=Beschleunigung, a0= Bestehende Beschleunigung am Anfang der Phase
v=Geschwindigkeit, v0= Bestehende Geschwindigkeit am Anfang der Phase
s=Weg, s0=bereits gefahrener Weg am Anfang der Phase
t=Zeit, t0=Zeitpunkt des Anfangs der Phase
In Phase 3, um die es hier geht, wird die Beschleunigung a kontinuierlich um den Ruck j bis auf 0 reduziert.
Die Formel E1, die beschreibt welche Geschwindigkeit man zu welchem Zeitpunkt hat, habe ich aufgestellt:
Code: Alles auswählen
E1: v(t) = v0 + a0 * (t-t0) - 0.5 * j * (t-t0)^2 //Anfangsgeschwindigkeit + bestehende Beschleunigung - Reduzierung der Beschleunigung um den Ruck
Die Formel E2, die beschreibt welche Position man zu welchem Zeitpunkt in Phase 3 hat ist auch noch handhabbar:
Code: Alles auswählen
E2: s(t) = s0 + v0*(t-t0) + a0/2 * (t-t0)^2 - j/6 * (t-t0)^3
Ich suche eine Formel, die mir v(s) liefert.
Ich dachte, ich löse E2 nach t auf und erhalte ET: t(s). Die Lösung setze ich in E1 ein und erhalte das gewünschte v(s). Schnell gemacht.
DENKSTE!
Das ist leider nicht so einfach, da wxMaxima mir als Lösung von ET: solve(E2,t) drei verflixt komplizierte Lösungen anbietet, von denen 2 einen komplexen Anteil (%i, also Wurzel(-1)) enthalten und die dritte Lösung als erstes einen Wurzel-Term enthält, in dem beim Einsetzen positiver Werte für v,a,j,s ein negativer Wert unter der Wurzel steht. Hä?
Um die Sache minimal einfacher zu halten, habe ich statt (t-t0) einfach t geschrieben und s steht für (s-s0). Ich definiere also den Anfang von Phase3 als Zeitpunkt 0 und Weg 0.
Hier die 3 Ergebnisse:
Code: Alles auswählen
--> [b]ET:[/b] solve(E2,t);
(%o3) [t=((-1)/2-(sqrt(3)·[b]%i[/b])/2)·
(sqrt(-8·j·v_0^3-3·a_0^2·v_0^2-18·a_0·j·s·v_0+9·j^2·s^2-6·a_0^3·s)/j^2+((3·a_0·(6·v_0))/(j·j)-(3·(6·s))/j)/6+a_0^3/j^3)^(1/3)-
(((sqrt(3)·[b]%i[/b])/2+(-1)/2)·(-(6·v_0)/(3·j)-a_0^2/j^2))/(sqrt(-8·j·v_0^3-3·a_0^2·v_0^2-18·a_0·j·s·v_0+9·j^2·s^2-6·a_0^3·s)/j^2+((3·a_0·(6·v_0))/(j·j)-(3·(6·s))/j)/6+a_0^3/j^3)^(1/3)+(3·a_0)/(3·j),
t=((sqrt(3)·[b]%i[/b])/2+(-1)/2)·
(sqrt(-8·j·v_0^3-3·a_0^2·v_0^2-18·a_0·j·s·v_0+9·j^2·s^2-6·a_0^3·s)/j^2+((3·a_0·(6·v_0))/(j·j)-(3·(6·s))/j)/6+a_0^3/j^3)^(1/3)-
(((-1)/2-(sqrt(3)·[b]%i[/b])/2)·(-(6·v_0)/(3·j)-a_0^2/j^2))/(sqrt(-8·j·v_0^3-3·a_0^2·v_0^2-18·a_0·j·s·v_0+9·j^2·s^2-6·a_0^3·s)/j^2+((3·a_0·(6·v_0))/(j·j)-(3·(6·s))/j)/6+a_0^3/j^3)^(1/3)+(3·a_0)/(3·j),
t=
(sqrt(-8·j·v_0^3-3·a_0^2·v_0^2-18·a_0·j·s·v_0+9·j^2·s^2-6·a_0^3·s)/j^2+((3·a_0·(6·v_0))/(j·j)-(3·(6·s))/j)/6+a_0^3/j^3)^(1/3)-
(-(6·v_0)/(3·j)-a_0^2/j^2)/(sqrt(-8·j·v_0^3-3·a_0^2·v_0^2-18·a_0·j·s·v_0+9·j^2·s^2-6·a_0^3·s)/j^2+((3·a_0·(6·v_0))/(j·j)-(3·(6·s))/j)/6+a_0^3/j^3)^(1/3)+(3·a_0)/(3·j)]
Die weiteren Maxima-Kommandos lauten:
Code: Alles auswählen
[b]E3:[/b] %o3[3]; Nimm die 3. Lösung der obigen Gleichungen (Alternativ eine der beiden anderen probieren)
[b]E4:[/b] subst(rhs(E3),t,E1); Ersetze t in E1 durch den rechten Teil der Lösung E3
[b]E5:[/b] cabs(E4); Absolutwert eines komplexen Ausdrucks bilden
Gruß,
Zabex