Gelöste Aufgaben/ODE1

Aus numpedia
Zur Navigation springen Zur Suche springen


Aufgabenstellung

Hier untersuchen wir systematisch ein System aus einem starren Pendel im Erdschwerefeld.


Lageplan

Gesucht sind Gleichgewichtslagen, Schwingungen um diese und die numerische Lösung der nichtlinearen Bewegungsgleichung.


Lösung mit Maxima

Header

Wir nehemn an: das Massenmoment des homogenen Stabes bzgl. A ist JA, der Schwerpunkt des Stabes liegt in seiner Mitte.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated:                                       */
/* ref: TM-C                                           */
/* description: solve the IVP, check for stability     */
/*******************************************************/




Declarations

Aus dem Prinzip der virtuellen Verrückungen kommt die Gleichgewichtsbeziehung für den Stab:

,

wobei

.

Mit der neuen, dimensionslosen Zeit

wird aus der Bewegungsgleichung

.

/* parameter */ 
params: [t[Bez]^2=J/(m*g*l/2)]; 


/* dimensionless equations of motion */ 
ode: J*'diff(phi,tau,2)/t[Bez]^2+m*g*l/2*sin(phi)=0; 
ode: expand(subst(params,ode*(t[Bez]^2/J)));




Equilibrium Conditions

Die Gleichung

ist erfüllt für

Gleichgewichtslagen

Die Funktion der Rückstell'kraft' sin(φ) schneidet die y-Achse dabei mit der Steigung +1 (z.B. bei φ1 = 0, φ3 = 2π) und mit der Steigung  -1 (z.B. bei φ2 = π).

Das Vorzeichen der Steigung wird über die Stabilität der Lösung entscheiden!


/* static equilibrium conditions ....*/
plot2d(lhs(subst(['diff(phi,tau,2)=0],ode)), 
          [phi,-0.2,2*%pi+0.2], [title, "Rückstell'kraft'"], 
          [y,-1.1,1.1], [xlabel, "φ→"], [ylabel, "sin(φ)→"])$




Stability of Equilibrium Positions

Die Stabilität jeder Gleichgewichtsbedingung "im Kleinen" - also in unmittelbarer Umgebung der Gleichgewichtslage - untersuchen wir am linearisierten System.

Die Taylor-Reihenentwicklung um die Gleichgewichtslagen φi herum liefert

Dies ist Ausgangspunkt für unsere Stabilitätsanalyse:

Für φ1 = 0 (= 2π ):

Der -Ansatz liefert

,

also eine Schwingungslösung. Diese Lösung ist damit nicht instabil (weil wir keine Energiedissipation eingebaut haben, klingt sie aber auch nicht ab).

Für φ3 = π):

Analog ist

,

mit einer exponential abklingenden (λ2=-1) und einer exponential aufklingenden (λ2=+1) Lösung. Dieser zweite Anteil der Lösung macht sie instabil.


/* stability in proximity of equilib. conditions */
linode : taylor (ode, phi, Phi, 1);




Solving

Das nichtlineare Anfangswertproblem lösen wir durch numerische Integration.

Dafür müssen wir die Bewegungsgleichung als gewöhnliche Differentialgleichung (ODE) erster Ordnung schreiben, also mit

als

.

Diese Bewegungsgleichung lösen wir mit den Anfangsbedingungen

.

und das für verschiedene Anfangsgeschwindigkeiten y1.

In der Nähe der stabilen Lösung finden wir periodische Lösungen:

Mit mehr "Anschwung" dreht die Stange "durch", die Lösung ist nicht mehr periodisch:

Lösung im Zeitbereich - die Stange "dreht durch".

/* solve initial value problem */
dudt : [omega,rhs(solve(dgl,'diff(phi,tau,2))[1])];
time : [ t, 0, 10, 0.01 ];
u0: [[0,0.6],[0,1.8],[0,2.2]];
u : [phi,omega];
samples : [];
for i:1 thru length(u0) do
   (set : rk (dudt, u, u0[i], time ),
    set : [makelist(set[j][1],j,1,length(set)),
           makelist(set[j][2],j,1,length(set)),
           makelist(set[j][3],j,1,length(set))],
    samples : append(samples, set),
    headline : [title, simplode(["u0 = ",u0[i]])], 
    plot2d([[discrete,set[1],set[2]],
            [discrete,set[1],set[3]]],
            headline,  [legend, "φ","ω"],
            [xlabel, "τ→"],[ylabel, "φ,ω→"]))$




Post-Processing

Phasendiagramm

Diese Ergebnisse können wir im Phasendiagramm (Geschwindigkeit über der Auslenkung) auftragen.


/* phase diagram*/
toPlot : makelist([discrete,samples[3*(i-1)+2],
                            samples[3*(i-1)+3]],i,1,length(u0))$
plot2d(toPlot, [x,-%pi,+%pi], [legend, false],
                      [title, "phase-diagram"],
                      [xlabel, "φ→"],[ylabel, "ω→"])$





Links

  • ...

Literature

  • ...