Anfangswertprobleme/Methoden zur Lösung von Anfangswertproblemen/Integration der Differentialbeziehung (IVP): Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Zeile 231: Zeile 231:
</tr>
</tr>
</table>
</table>




Zeile 245: Zeile 239:


* der Eigenwert sagt etwas über die Schwingungsperioden des Systems (und, bei Systemen mit erster Ableitung, über das Auf- und Abklingverhalten);
* der Eigenwert sagt etwas über die Schwingungsperioden des Systems (und, bei Systemen mit erster Ableitung, über das Auf- und Abklingverhalten);
* der Eigenvektor sagt etwas über die zum Eigenwert gehörige Form der Schwingung (hier: gleichphasig für λ1 und gegenphasig für λ2.
* der Eigenvektor sagt etwas über die zum Eigenwert gehörige Form der Schwingung (hier: gleichphasig für ''λ<sub>1</sub>'' und gegenphasig für ''λ<sub>2</sub>''.


Eine numerische Integration des Anfangswertproblems liefert immense Datenmengen, die man bei komplizierten Systemen nur mit sehr viel Aufwand verstehen kann.
Eine numerische Integration des Anfangswertproblems liefert immense Datenmengen, die man bei komplizierten Systemen nur mit sehr viel Aufwand verstehen kann.
}}
}}

Version vom 22. Februar 2021, 12:07 Uhr

Was ohne Computer geht ...

Ohne Computer interessieren uns meist nur Anfangswertprobleme, bei denen wir eine analytische Lösung des Anfangswertproblems angeben können.

Integration der Bewegungsgleichung

Die Bewegungsdifferentialgleichung eines Körpers im Erdschwerefeld sei - ohne Einflüsse der Luft - für die Koordinaten Wurf-Weite w und Wurf-Höhe h:

h¨(t)=0w¨(t)=g

Diese Differentialgleichung können wir - wie auch die Biegedifferentialgleichung des Euler-Bernoulli-Balkens - integrieren, und finden

h(t)=g2t2+ch,1t+ch,0,w(t)=cw,1t+cw,0

mit den Integrationskonstanten ch1, ch0, cw1, cw0.

Die Integrationsbedingungen können wir an "Randbedingungen" zu Zeitpunkten t1, t2 anpassen, meist aber interessiert uns die Lösung, wenn der Anfangszustand für vollständig durch Anfangsweg und Anfangsgeschwindigkeit beschrieben ist.

Die Lösungen sehen dann so aus:


/* equations of motion */
eom: ['diff(w(t),t,2)= 0,
      'diff(h(t),t,2)= -g];
 
/* solve eom */
wurf : solve(integrate(integrate(eom,t),t),[h(t),w(t)])[1];
wurf: subst([%c1 = V[w,0], %c3 = W[0],
             %c2 = V[h,0], %c4 = H[0]],wurf);
 
/* parameter */
par: [H[0] = 2*m, W[0] = 0*m,
      V[h,0] = 10*m/s, V[w,0] = 3*m/s,
      g=10*m/s^2];
 
/* plot results */
toPlot : append([parametric],
  subst([t=t*s],subst(par,subst(wurf, [w(t),h(t)]/m))),
  [[t,0,2.2]]);
/* Wurf-Parabel */
plot2d(toPlot, [legend, "wurf"],
  [style, [lines,3]],
  [x,0,8], [xlabel, "Weite w/m →"],
  [y,0,8], [ylabel, "Höhe h/m →"])$
/* Weg-Zeit-Diagramm */
plot2d([toPlot[2], toPlot[3]],[t,0,2.2],
  [legend, "w(t)", "h(t)"],
  [style, [lines,3]],
  [xlabel, "Zeit t/s →"],
  [ylabel, "Weg h/m, w/m →"])$
/* Geschwindigkeits-Zeit-Diagramm */
plot2d(diff([toPlot[2], toPlot[3]],t),[t,0,2],
  [legend, "dw/dt", "dh/dt"],
  [style, [lines,3]],
  [xlabel, "Zeit t/s →"],
  [ylabel, "Geschwindigkeit dh/dt/(m/s), dw/dt/(m/s) →"])$




Wurfparabel
Weg-Zeit-Diagramm
Geschwindigkeits-Zeit-Diagramm.

Diese Lösungsvariante spielt in Ingenieursproblemen praktisch keine Rolle, weil die Bewegungsgleichungen sich nicht geschlossen integrieren lassen.

Der eλt-Ansatz

Meist sind die Zustandsgrößen (Auslenkung, Geschwindigkeit) der Körper unseres Systems elastisch miteinander oder an eine Umgebung gekoppelt, die Koordinaten u kommen dann in der Bewegungsgleichungen in verschiedenen Zeitableitungen (Geschwindigkeit, Beschleunigung) vor. Dann sehen die Bewegungsgleichungen so aus:

M__u¨_+K__u_=f_

mit

u_: Koordinaten des SystemsM__: MassenmatrixK__: Steifigkeitsmatrix undf_: eingeprägte Lasten auf das System.

Für diese Systeme interessiert uns sehr oft nur die homogene Lösung (f=0). Für dieses System können wir die Lösung mit den Ansatz

u_(t)=u_^eλt

ansetzen (erraten). Dieser Ansatz führt auf ein Eigenwertproblem mit den Eigenwerten λ und den Eigenvektoren u.

Das schauen wir uns an dem schwingungsfähige System links an. Es besteht aus zwei Körper der Masse m sowie Federn der Steifigkeit k1=3/2 k und k2=k. Gesucht ist die Schwingung des Systems in Zeitbereich, wenn die untere Masse durch einen Schlag eine Anfangsgeschwindigkeit erfährt.

Beispiel: Zwei-Massen-Schwinger

Koordinaten der Bewegung.

Zur Lösung mit dem Prinzip der virtuellen Verrückungen und den Prinzip von d'Alembert brauchen wir zunächst Koordinaten der Bewegung:

Die Gleichgewichtsbedingung lautet

δW=mw¨1δw1mw¨2δw2:=δWak1w1δw1+k2(w2w1)(δw2δw1):=δΠ=!0

Aufgelöst nach den Koeffizienten der virtuellen Verrückungen folgt die gewöhnliche, lineare Differentialgleichung:

(m00m)(w¨1w¨2)+(52kkkk)(w1w2)=(00)

Dimensionslos machen wir die Bewegungsgleichung mit 

τ=tT und T=mk

Die Bezugszeit T ist das 2π-fache der Schwingungsperiode eines Ein-Masse Schwingers mit Masse m und Federsteifigkeit k.

Der eλτ-Ansatz mit

(w1w2)=q^_eλτ

liefert die nun dimensionslosen Eigenwerte

λ1=i2,λ2=3i mit i=1.

Aus dem charakteristischen Polynom 4.ter Ordnung kommen eigentlich 4 Nullstellen und damit Eigenwerte des Systems. Hier unterscheiden sich jeweils paarweise zwei Eigenwerte nur durch das Vorzeichen, was beim Quadrieren in der zweiten Zeitableitung allerdings zu gleichen Eigenwerten führt, nämlich

zu λ1=i2:q^=(12),zu λ2=3i:q^=(112).

Die Lösung lautet also mit den Integrationskonstanten Ci

(w1(t)w2(t))=C1q^_1eλ1τ+C2q^_2eλ2τ

Die Schreibweise sieht einfach aus, verbirgt aber das Wesen der Lösung: die λs sind komplex-wertig und nur durch "Zufall" (wie bei allen Bewegungsgleichungen ohne erste Zeitableitung) sind die Eigenvektoren rein reell-wertig. Dafür dürfen die Cjs nun auch komplex-wertig sein, also

C1=c1,R+ic1,I , C2=c2,R+ic2,I

und wir brauchen vier Anfangsbedingungen zu ihrer Bestimmung.

Die sind:

1)w1(0)=02)w2(0)=03)w˙1(0)=04)w˙2(0)=V0

und daraus kommt

c1,R=0,c1,I=2325,c2,R=0,c2,I=253.

/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 15.08.2                           */
/* author: Andreas Baumgart                            */
/* last updated:                                       */
/* ref: Gross e.a Aufg. 1.6 (räumliches Gleichgewicht) */
/* description                                         */
/*                                                     */
/*******************************************************/

/* declare variational variables - see 6.3 Identifiers */
declare("δW", alphabetic);
declare("δΠ", alphabetic);
declare("δw", alphabetic);

/*******************************************************/
/* declare variational variables - see 6.3 Identifiers */
declare("δW", alphabetic);
declare("δΠ", alphabetic);
declare("δw", alphabetic);
assume(k>0,m>0);

/* values to make eom dimensionless */
dims: [W = V[0]*T, T=sqrt(m/k)];

/* coordinates */
q : [[w[1](t),w[2](t)],[δw[1],δw[2]]];
/*** equations of motion ***/
/* princ. of virt. work */
PvV: [δW^a = -m*q[2].diff(q[1],t,2),
      δΠ   = 3/2*k*w[1](t)*δw[1] + k*(w[2](t)-w[1](t))*(δw[2]-δw[1])];
eom: makelist(coeff(-expand(subst(PvV,δW^a-δΠ)),δw[i]),i,1,2);

/* system matrices */
M : funmake('matrix,makelist(makelist(coeff(eom[i],diff(w[j](t),t,2)),j,1,2),i,1,2));
K : funmake('matrix,makelist(makelist(coeff(eom[i],     w[j](t)     ),j,1,2),i,1,2));

/*** solve eigenvalue problem ***/

/* characteristic polynomial */
charPoly : determinant((%lambda/T)^2*M+K)=0;

/* eigenvalues */
eigenVals: subst(dims,solve(charPoly, %lambda));
eigenVals: [eigenVals[2],eigenVals[4]];

/* eigenvevtors */
Q : matrix([1],[W[2]]);
eigenVects: ratsimp(subst(dims,subst(solve(((
                       (%lambda/T)^2*M+K).Q)[1][1],W[2]),Q)));
eigenVects: ratsimp(makelist(subst(eigenVals[i], eigenVects),i,1,2));

/* time-domain-solution */
solution: W*sum(subst(eigenVals[i],(c[i,R]+%i*c[i,I])*eigenVects[i]*%e^(%lambda*tau)),i,1,2);
initVals: append(makelist(realpart(subst([tau=0],solution)[i][1])=0,i,1,2),
                 makelist(realpart(subst([tau=0],diff(solution,tau)))[i][1]/T=[0,V[0]][i],i,1,2));
coeffs: solve(subst(dims,initVals), [c[1,R],c[1,I],c[2,R],c[2,I]])[1];

/*** post-processing ***/
toPlot : makelist(realpart(subst(coeffs,solution[i][1]/W)),i,1,2);

/* Weg-Zeit-Diagramm */
plot2d(toPlot,[tau,0,2*2*%pi],
  [legend, "w[1]", "w[2]"],
  [style, [lines,3]],
  [xlabel, "Zeit τ →"],
  [ylabel, "Auslenkung w/W →"])$
/* Geschwindigkeit-Zeit-Diagramm */
plot2d(diff(toPlot,tau),[tau,0,2*2*%pi],
  [legend, "w[1]", "w[2]"],
  [style, [lines,3]],
  [xlabel, "Zeit τ →"],
  [ylabel, "Geschwindigkeit dw/dτ →"])$
/* Phasen-Diagramm */
plot2d([[parametric, subst(t,tau,toPlot[1]), subst(t,tau,diff(toPlot[1],tau)), [t,0,8*2*%pi]],
  [parametric, subst(t,tau,toPlot[2]), subst(t,tau,diff(toPlot[2],tau)), [t,0,2*2*%pi]]],
  [legend, "w[1]", "w[2]"],
  [style, [lines,3]],
  [xlabel, "Auslenkung w/W →"],
  [ylabel, "Geschwindigkeit dw/dτ →"])$




Aufgetragen in Diagrammen erhalten wir dann diese analytische Lösung des Anfangswertproblem.

Weg-Zeit-Diagramm
Geschwindigkeits-Zeit-Diagramm.


Tipp:
Analytische Lösungen haben den Charme, dass wir sie durch zwei spezifische Werte verstehen können, ohne die Diagramme interpretieren zu müssen:
  • der Eigenwert sagt etwas über die Schwingungsperioden des Systems (und, bei Systemen mit erster Ableitung, über das Auf- und Abklingverhalten);
  • der Eigenvektor sagt etwas über die zum Eigenwert gehörige Form der Schwingung (hier: gleichphasig für λ1 und gegenphasig für λ2.
Eine numerische Integration des Anfangswertproblems liefert immense Datenmengen, die man bei komplizierten Systemen nur mit sehr viel Aufwand verstehen kann.