Matheproblem: Bewegungsgleichung

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
Benutzeravatar
Zabex
Beiträge: 633
Registriert: Di 2. Jul 2013, 08:45
Wohnort: Aldenhoven
Kontaktdaten:

Matheproblem: Bewegungsgleichung

Beitrag von Zabex »

Vorgeschichte:
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
Problem:
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)]
Ich habe die Lösungen mal in E1 eingesetzt und dann den Betrag bilden lassen. Ein Abenteuer: Die Lösung ist ein gut 10k langer Formelbandwurm, den ich hier nicht posten werde. Ich habe den mal in mein Simulationsprogramm überführt und dort plotten lassen. Das Ergebnis ist völliges Chaos. Vermutlich habe ich beim konvertieren Mist gebaut.
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
Hat jemand von Euch eine Idee, was ich anders machen muss, um an v(s) zu kommen?

Gruß,
Zabex
Benutzeravatar
Raider
Beiträge: 1121
Registriert: Fr 11. Jul 2014, 16:58
Wohnort: Ellerhoop

Re: Matheproblem: Bewegungsgleichung

Beitrag von Raider »

Dürfte nicht möglich sein, da dein s(t) nicht injektiv ist wenn man als Definitionsbereich alle Zahlen annimmt. Und damit existiert auch keine Umkehrfunktion t(s). Entweder du schränkst deine Variablen und dein t soweit ein, dass die Funktion injektiv wird (keine Extrema sozusagen), oder du näherst das ganze Problem mit irgendwelchen Vereinfachungen. Vielleicht funktioniert das einigermaßen wenn du s(t) als linear annimmst für den Bereich zwischen 2 und 3, sieht zumindest auf den Diagrammen so aus als wenn das nicht zu übel ist. Dann dürfte das gehen.
Benutzeravatar
Zabex
Beiträge: 633
Registriert: Di 2. Jul 2013, 08:45
Wohnort: Aldenhoven
Kontaktdaten:

Re: Matheproblem: Bewegungsgleichung

Beitrag von Zabex »

Hm, wenn alle Variablen >0 sind müsste die Gleichung doch injektiv sein. Ich weiß bloß nicht, wie mir das bei Maxima hilft. Ich habe die Befehle assume(*>0) mit *=j,a,v,s,t (also für alle Variablen) durchgeführt. Ändert nix. Wird wohl nur beim Integrieren berücksichtigt.
Weißt Du, wie man mit diesen Einschränkungen zu einer Formel ohne Imaginäranteil kommt?
Benutzeravatar
Henrik_V
Beiträge: 829
Registriert: Mo 31. Jul 2017, 02:09

Re: Matheproblem: Bewegungsgleichung

Beitrag von Henrik_V »

Da beim Zeitpunkt t_1 die Beschl. a(t_1)=0 sein soll , mit t_1>t_0 , folgt
t_1=-a_0/j mit t_0=0 ;)

Für t> t_1 gilt j(t)=0, a(t)=0, v(t)=const, s(t)=s_1 + v(t_1)*t .

Bleibt der Zeitraum t_0 bis t_1 ,
j ist const und hat anderes Vorzeichen als a_0
a ist linear mit a(t) = j*t + a_0
v(t)= v_0 + integral (a(t) ,0 bis t_1=-a_0/j)
s(t) = s_0 + integral (v(t), 0 bis t_1=-a_0/j)

setzen wir unser Beobachtungssystem auf s_0=0 und v_0 =0 ist s(t) stetig monoton und damit eindeutig in v(s) umrechenbar. (immer bei Newton..) andere s_0 und v_0 lassen sich dann transformieren...
Antworten