Gelöste Aufgaben/SKER: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „j“)
 
Keine Bearbeitungszusammenfassung
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
j
[[Category:Gelöste Aufgaben]]
[[Category:Analytische Lösung]]
[[Category:Randwertproblem]]
[[Category:Biege-Belastung]]
[[Category:Euler-Bernoulli-Balken]]
[[Category:Dynamik‎]]
[[Category:Eigenvektor]][[Category:Eigenwert]][[Category:Eigenwertproblem‎]]
[[Category:Maxima‎]]
[[Category:Modalanalyse]]
[[Category:Schwingungen von Kontinua‎]]
 
 
==Aufgabenstellung==
Die Bewegung des Dehnstabes wird durch das Zusammenspiel von elastischen Verformungen und Trägheitskräften bestimmt. Man nennt das "Schwingungen von Kontinua" - diese untersuchen wir hier. Der zentrale Aufgabe besteht in der Berechnung der homogenen Lösung - und der Anpassung der Lösungsanteile an die Anfangsbedingungen.
 
<onlyinclude>
[[Datei:FEAB-01.png|85px|left|mini|Caption]]
Gesucht ist analytische Lösung für Schwingungen des Euler-Bernoulli-Balkens beim Loslassen aus der enspannten Ruhelage.
</onlyinclude>
 
== Lösung mit Maxima ==
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
|text=
Für die mathematische Behandlung - insbesondere der Auflösung quadratischer Gleichungen - setzen wir in Maxima voraus, dass
 
<math>E > 0,\;\;\;A>0,\;\;\;\ell_0>0;</math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/*******************************************************/
/* MAXIMA script                                      */
/* version: wxMaxima 16.04.2                          */
/* author: Andreas Baumgart                            */
/* last updated: 2018-01-17                            */
/* ref: oscillations of continuous media              */
/* description: analytic solutioun for Extension Rod  */
/*******************************************************/
/* settings */
workdir: "C:\\Users\\X...X\\plots\\";
/* assumptions */
assume(E>0,A>0,l[0]>0);
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Equations of Motion
|text=
In der Gleichgewichtsbeziehung für den Dehnstab setzen wir als eingeprägte, äußere Streckenlast ''n(x,t)'' die D'Alembert'sche Trägheitskraft und die Gewichtskraft an, also
 
::<math>n(x,t) = \varrho\;A\cdot g -\varrho\;A\cdot \ddot{u}(x,t)</math>
 
Die Lösung der partiellen Bewegungsgleichung
 
::<math>\varrho\,A\cdot\ddot{u}-E\,A\cdot u''  = \varrho\,A\cdot g</math>
 
setzt sich dann aus zwei Lösungsanteilen, der partikularen Lösung ''u<sub>p</sub>'' und der homogenen Lösung ''u<sub>h</sub>'', zusammen; wir schreiben
 
::<math>u_t(x,t) =  u_p(x,t) + u_h(x,t)  </math>.
|code=
<syntaxhighlight lang="lisp" line start=1>
/*******************************************************/
/* analytical solution for equations of motion              */
eom : 'E*A*diff(u(x,t),x,2)-rho*A*'diff(u(x,t),t,2) = rho*A*g;
</syntaxhighlight>
}}
 
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Particular Solution
|text=
Die partikulare Lösung ''u<sub>p</sub>'' erfüllt die "rechte Seite" der Bewegungsgleichung, also -''ϱ A⋅g'':
 
::<math>E\,A\cdot{u}''_p  = -\varrho\,A\cdot g</math>.
 
Die rechte Seite ist zeit-unveränderlich - so auch die partikulare Lösung:
 
Wir integrieren die Bewegungsgleichung zwei Mal und erhalten
 
::<math>\displaystyle A\,E\,\operatorname{u}(x)=-\frac{A\,g\,\rho\,{{x}^{2}}}{2}+{{C}_{1}}\,x+{{C}_{0}}</math>.
 
Die zwei Integrationskonstanten ''C<sub>i</sub>'' müssen wir nun an die Randbedingungen
 
::<math>\begin{array}{rl}u_p(0)&=0\\E\,A\,u_p'(\ell)&=0\end{array}</math>
 
anpassen, wir erhalten aus dem linearen Gleichungssystem
 
::<math>\begin{array}{l}0={{C}_{0}}\\0=-A\,g\,\varrho\,x+C_1\end{array}</math>
 
und damit die partikulare Lösung
 
::<math>\displaystyle E\,A\,u_p(x)=\varrho\,A\,g\,\ell^2 \left(\xi -\frac{\xi^2}{2} \right)</math>[[Datei:SKER-11.png|mini|Partikulare Lösung]]Die maximale Auslenkung - am rechten Rand - nutzen wir als Bezugslänge
 
::<math>\displaystyle u_s=\frac{\varrho\,A\,g\,\ell^2}{2\;E\,A}</math>
 
Und so sieht ''u<sub>p</sub>'' aus:
|code=
<syntaxhighlight lang="lisp" line start=1>
/***************************************************************************/
/* p a r t i c u l a r  s o l u t i o n                                  */
/***************************************************************************/
u[p] : subst([%c1=C[1],%c2=C[0]],integrate(integrate(E*A*diff(u(x),x,2)=-rho*A*g,x),x));
u[p] : subst(solve([subst([x= 0  ,      u(0)        =0], u[p]),
            subst([x=l[0], diff(u(l[0]),l[0])=0],diff(u[p],x))],[C[0],C[1]])[1],u[p]);
u[p] : solve(u[p],u(x));
 
 
/* system parameters and dimensionless time tau */
params: [t = T*tau, u[s] = subst([x=l[0]],subst(u[p],u(x)))];
 
plot2d(ratsimp(subst([x=xi*l[0]],subst(params,subst(u[p],u(x))/u[s]))),[xi,0,1], [y,-0.1,1.1],
                        [legend, "static solution"],
                        [style, [lines,3,1]], [xlabel, "ξ →"], [ylabel, "u →"])$
</syntaxhighlight>
}}
 
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Homogeneous Solution
|text=
Die homogene Bewegungsgleichung
 
::<math>\varrho\,A\cdot\ddot{u}-E\,A\cdot u''  = 0</math>
 
lässt Lösungen vom Typ
 
::<math>\displaystyle u_h( x, t) =U \cdot \sin(\kappa\,x)\cdot  \cos(\omega_0\,t)</math>
 
zu, die alle Rand- und Anfangsbedingungen erfüllen. Eigentlich müsste hier ein <math>U\cdot e^{j\,\omega_0\,t}\cdot e^{\kappa_0\,t}</math>-Ansatz stehen, beim dem auch ''U'' komplex wäre. Mit etwas Erfahrung dürfen wir es uns hier einfacher machen.
 
Einsetzten unseres speziellen Ansatzes liefert
 
::<math>\displaystyle \kappa^2 = \frac{\varrho\,A}{E\,A} \omega_0^2</math>.
 
Die Anpassung an die Randbedingungen
 
::<math>\begin{array}{rl} u_h(0,t) &= 0\\E\,A\,u_h(\ell,,t) &= 0\end{array}</math>
 
gestaltet sich einfach: unser besonderer Ansatz erfüllt bereits die erste Randbedingung (sin(0)=0), die zweite Randbedingung ''cos(κl)=0'' ist erfüllt, wenn
 
::<math>\displaystyle \kappa=\frac{2\pi\;i-\pi}{2\,\ell}</math>,
 
wir bekommen für jedes ''i'' eine Lösung, also unendlich viele.
 
Zu jedem ''κ'' gehört eine Eigenkreisfrequenzen
 
::<math>\displaystyle \omega_0^2 = \frac{\pi^2\,E}{\varrho\,\ell^2} \cdot \left( i-\frac{1}{2}\right)^2</math>.
 
Die unterste Eigenfrequenz nutzen wir, um eine Bewegungsgleichungen dimensionslos zu machen: die längste Schwingungsperiode ist damit die Bezugs-Zeit
 
::<math>\begin{array}{ll} T_{ref} &\displaystyle = \frac{2\pi}{\omega_{0,1}}\\&\displaystyle =4\,\ell\,\sqrt{\frac{\varrho}{E}}\end{array}</math>
 
Die Lösungen
 
::<math>\displaystyle \frac{u_{h,i}(t)}{U_i} = \underbrace{\sin(\kappa_i\, x))}_{\displaystyle :=\phi_i(x)} \cdot \cos(\omega_{0,i}\,t)</math>
 
mit Ihren Modal-Formen ''ϕ<sub>i</sub>'' und Eigenkreisfreuquenzen ''ω<sub>0,i</sub>'' sind hier aufgetragen.
 
<table class="wikitable" style="background-color:white;">
<tr>
<th>Mode</th><th>Modalform ϕ<sub>j</sub></th>
<th>Mode</th><th>Modalform ϕ<sub>j</sub></th></tr>
<tr>
<td>'''#1'''<br /><math>\displaystyle \omega_{0,1} =  1\cdot \frac{2 \pi}{T}</math></td><td>[[Datei:SKER-mode-1-animated.gif|rahmenlos]]</td>
<td>'''#2'''<br /><math>\displaystyle \omega_{0,2} =  3\cdot \frac{2 \pi}{T}</math></td><td>[[Datei:SKER-mode-2-animated.gif|rahmenlos]]</td>
</tr>
<tr>
<td>'''#3'''<br /><math>\displaystyle \omega_{0,3} =  5\cdot \frac{2 \pi}{T}</math></td><td>[[Datei:SKER-mode-3-animated.gif|rahmenlos]]</td>
<td>'''#4'''<br /><math>\displaystyle \omega_{0,4} =  7\cdot \frac{2 \pi}{T}</math></td><td>[[Datei:SKER-mode-4-animated.gif|rahmenlos]]</td>
</tr>
<tr>
<td>'''#5'''<br /><math>\displaystyle \omega_{0,5} =  9\cdot \frac{2 \pi}{T}</math></td><td>[[Datei:SKER-mode-5-animated.gif|rahmenlos]]</td>
<td>'''#6'''<br /><math>\displaystyle \omega_{0,6} = 11\cdot \frac{2 \pi}{T}</math></td><td>[[Datei:SKER-mode-6-animated.gif|rahmenlos]]</td>
</tr>
</table>
|code=
<syntaxhighlight lang="lisp" line start=1>
/***************************************************************************/
/* h o m o g e n e o u s  s o l u t i o n                                */
/***************************************************************************/
ansatz: u(x,t) = U * sin(kappa*x) * cos(omega[0]*t);
eom : subst(ansatz,eom);
eom : ratsimp(subst(ansatz,ev(eom,nouns)/u(x,t)));
/* boundary conditions */
sol[1] : solve(kappa*l[0] = (2*i-1)*%pi/2,kappa)[1];
sol[1] : [sol[1],ratsimp(solve(subst(sol[1],eom),omega[0]^2)[1])];
/* abbreviations */
abbrev : [omega[0,0]=2*%pi/T, omega[0,0]^2= subst([i=1],subst(sol[1],omega[0]^2))];
abbrev : append(abbrev, solve(abbrev,[omega[0,0],T])[2]);
/* plot snapshots for animation */
/* create png-figures for animation */
toPlot : makelist(subst([E=1,i=j],subst(abbrev,subst([x=xi*l[0], t=T*tau],
                  subst([omega[0]=sqrt(subst(sol[1],omega[0]^2))],
                                subst(sol[1],subst([omega[0]*t=2*%pi*tau],
                                    subst(ansatz,u(x,t)/U))))))),j,1,6);
titles : makelist(simplode(["ω=",sqrt(ratsimp(subst([i=j],subst(abbrev,
                                          subst(sol[1],omega[0]^2*T^2)))))/%pi,"Π"]),j,1,6);
fpprintprec: 3$
NSteps : 19$
for mode:1 thru 6 do
  for j:0 thru NSteps-1 do
      (tstep : simplode([if j<10 then "0" else "",j]),
      plot2d(subst([tau=j/NSteps],toPlot[mode]),[xi,0,1], [y,-1.1,1.1],
                        [title, titles[1]], [legend, simplode(["t/T=",float(j/NSteps+0.01)])],
                        [style, [lines,3,1]], [xlabel, "ξ →"], [ylabel, "u →"],
                        [png_file,simplode([workdir,"mode-",mode,"-step-",tstep,".png"])]))$
/* lowest eigenfreuquency */
print(omega[0,0] = sqrt(subst([i=1],subst(sol[1],omega[0]^2))));
</syntaxhighlight>
}}
 
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Adapt to Initial Conditions
|text=
Zum Zeitpunkt ''t=0'' soll
 
::<math>\underbrace{u_h(x,0)}_{\displaystyle = \sum_{i=1}^{\infty} U_i\cdot \phi_{i}(x)} + u_p(x) = 0</math>
 
gelten. Das kriegen wir hin, indem wir die (unendlich vielen) ''U<sub>i</sub>'' der homogenen Lösung passend wählend. Das klingt komplizierter als es ist - die Mathematik bereitet uns den Weg.
 
{{MyAttention|title=Spezieller Lösungsansatz|text=Wir können unseren speziellen Lösungsansatz mit <math>\cos(\omega_0 \,t)</math> übrigens nur deshalb an die Anfangsbedingungen anpassen, weil die Anfangsgeschwindigkeit des Stabes Null ist - das liefert der cos. Für eine von Null verschiedene Anfangsgeschwindigkeit bräuchten wir den sin-Anteil der Lösung.}}
Die Beziehung oben multiplizieren wir mit einer der Modalformen ''ϕ<sub>k</sub>'' und bilden das Integral über die Balken-Lange ''ℓ'', also
 
::<math>\displaystyle \left( \sum_{i=1}^{\infty} U_i\cdot \int_{0}^{\ell}\phi_{j}(x) \cdot \phi_{k}(x)\;dx \right) +  \int_{0}^{\ell} u_p(x)\cdot \phi_{k}(x)\;dx = 0</math>.
 
Wir projizieren also die Modalformen auf sich selbst und auf die partikulare Lösung. Und nutzen aus, dass diese Faltungs-Integrale der Modalformen eine besondere Eigenschaft haben:
 
::<math>\displaystyle \int_{0}^{\ell} \phi_j \cdot \phi_k \; dx \left\{ \begin{array}{l} =0 \text{ für } j\ne k \\                                                                                  \ne 0 \text{ für } j = k  \end{array} \right.</math>
 
Man sagt: die Funktionen sind zueinander verallgemeinert orthogonal. Damit berechnen wir
 
::<math>\displaystyle U_i = \frac{32}{\pi^3\left(8{{i}^{3}}-12{{i}^{2}}+6i-1\right)}</math>,
[[Datei:SKER-initial-value-solution-animation.gif|mini|Animation: Loslassen des Systems aus der unverformten Rugelage.]]
Anhand der numerischen Werte der Koeffizienten
 
::<math>\begin{array}{l}U_1=-1.03,\\U_2=-0.0382,\\U_3=-0.00826,\\U_4=-0.00301,\\U_5=-0.00142,\\U_6=-7.75\cdot 10^{-4}\end{array}</math>
 
sehen wir, dass nur die erste Modalform einen signifikanten Beitrag bei der Anpassung an die Anfangsbedingungen liefert. Wir nehmen bei der Auftragung der Gesamtlösung ''w<sub>t</sub>(x,t)'' trotzdem die ersten sechs Modalformen mit:
 
In der Animation sehen Sie das Loslassen des Stabes aus der unverformten, geraden Referenzlage für genau eine Periodenlänge ''T<sub>1</sub>'' der ersten Modalform. Die Schwingung, die entsteht ist ''T<sub>1</sub>''-periodisch - die anderen Modalformen leisten einen (kleinen) Beitrag, dessen Schwingungsperiode genau ein Vielfaches der Grundschwingung ist - die Darstellung der aneinandergestückelten Lösungen geht "ruckfrei" nach einer Periode ineinander über.
|code=
<syntaxhighlight lang="lisp" line start=1>
/***************************************************************************/
/* t o t a l  ( c o m p o s e d )  s o l u t i o n                      */
/***************************************************************************/
declare(i,integer);
u[p] : append(u[p],
ratsimp(solve(subst(sol[1],integrate(subst(params,subst(u[p],u(x)/u[s]))*sin(kappa*x) + U[i]*sin(kappa*x)*sin(kappa*x)=0,x,0,l[0])),U[i])));
 
/* analytiv solution */
analytic : append(sol[1],
          [omega[0]*t = sqrt(ratsimp(subst(abbrev,(subst(sol[1],omega[0]^2*T^2)))))*tau,
            x=l[0]*xi]);
sol[2] : append([ratsimp(subst([x=xi*l[0]],subst(params,subst(u[p],u(x)/u[s]))))],
makelist(subst([i=j],subst(u[p],subst(analytic,U[i]*sin(kappa*x)*cos(omega[0]*t)))),j,1,10));
 
/* plot snapshots for animation of total solution */
NSteps : 19$
fpprintprec: 4$
for j:0 thru 1*NSteps-1 do
  (tstep : simplode([if j<10 then "00" elseif j<100 then "0" else "",j]),
    plot2d(subst([tau=j/NSteps],sum(sol[2][i],i,1,length(sol[2]))),[xi,0,1], [y,-0.1,2.1],
                    [title, simplode(["t/T=",float(j/NSteps+0.01)])], [legend, "analytic"],
                    [style, [lines,1,1]], [xlabel, "ξ →"], [ylabel, "u →"],
                    [png_file,simplode([workdir,"initial-value-solution-step-",tstep,".png"])]))$
</syntaxhighlight>
}}
 
{{MyTip|title=Tipp|text=Die Grundform der homogenen Differentialgleichung
 
::<math>\ddot{u}-c^2\cdot u''  = 0 \;\;\;\;\text{ hier mit } \displaystyle c^2 = \frac{E}{\varrho}</math>
 
ist Basis für alle Musik-Instrumente - ob Saiten- oder Blas-Instrument. 
 
Denn die Bewegungsgleichung von Saiten- und Luft-in-Rohr-Resonanzen führen auf genau diese Bewegungsgleichung.
 
Überlegen Sie, welche Eigenschaft der homogenen Lösung dieser Bewegungsgleichung ihre besondere Bedeutug ausmacht!}}
 
<hr />
'''Links'''
* Schwingungen von Kontinua eines Euler-Bernoulli-Balkens ([[Gelöste Aufgaben/SKEB|SKEB]])
 
'''Literature'''
* ...

Aktuelle Version vom 11. November 2024, 20:02 Uhr


Aufgabenstellung

Die Bewegung des Dehnstabes wird durch das Zusammenspiel von elastischen Verformungen und Trägheitskräften bestimmt. Man nennt das "Schwingungen von Kontinua" - diese untersuchen wir hier. Der zentrale Aufgabe besteht in der Berechnung der homogenen Lösung - und der Anpassung der Lösungsanteile an die Anfangsbedingungen.


Caption

Gesucht ist analytische Lösung für Schwingungen des Euler-Bernoulli-Balkens beim Loslassen aus der enspannten Ruhelage.


Lösung mit Maxima

Header

Für die mathematische Behandlung - insbesondere der Auflösung quadratischer Gleichungen - setzen wir in Maxima voraus, dass

.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 16.04.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2018-01-17                            */
/* ref: oscillations of continuous media               */
/* description: analytic solutioun for Extension Rod   */
/*******************************************************/
 
/* settings */
workdir: "C:\\Users\\X...X\\plots\\";
 
/* assumptions */
assume(E>0,A>0,l[0]>0);




Equations of Motion

In der Gleichgewichtsbeziehung für den Dehnstab setzen wir als eingeprägte, äußere Streckenlast n(x,t) die D'Alembert'sche Trägheitskraft und die Gewichtskraft an, also

Die Lösung der partiellen Bewegungsgleichung

setzt sich dann aus zwei Lösungsanteilen, der partikularen Lösung up und der homogenen Lösung uh, zusammen; wir schreiben

.

/*******************************************************/
/* analytical solution for equations of motion               */
eom : 'E*A*diff(u(x,t),x,2)-rho*A*'diff(u(x,t),t,2) = rho*A*g;




Particular Solution

Die partikulare Lösung up erfüllt die "rechte Seite" der Bewegungsgleichung, also -ϱ A⋅g:

.

Die rechte Seite ist zeit-unveränderlich - so auch die partikulare Lösung:

Wir integrieren die Bewegungsgleichung zwei Mal und erhalten

.

Die zwei Integrationskonstanten Ci müssen wir nun an die Randbedingungen

anpassen, wir erhalten aus dem linearen Gleichungssystem

und damit die partikulare Lösung

Partikulare Lösung
Die maximale Auslenkung - am rechten Rand - nutzen wir als Bezugslänge

Und so sieht up aus:


/***************************************************************************/
/* p a r t i c u l a r   s o l u t i o n                                   */
/***************************************************************************/
u[p] : subst([%c1=C[1],%c2=C[0]],integrate(integrate(E*A*diff(u(x),x,2)=-rho*A*g,x),x));
u[p] : subst(solve([subst([x= 0  ,      u(0)         =0], u[p]),
             subst([x=l[0], diff(u(l[0]),l[0])=0],diff(u[p],x))],[C[0],C[1]])[1],u[p]);
u[p] : solve(u[p],u(x));


/* system parameters and dimensionless time tau */
params: [t = T*tau, u[s] = subst([x=l[0]],subst(u[p],u(x)))];

plot2d(ratsimp(subst([x=xi*l[0]],subst(params,subst(u[p],u(x))/u[s]))),[xi,0,1], [y,-0.1,1.1],
                        [legend, "static solution"],
                        [style, [lines,3,1]], [xlabel, "ξ →"], [ylabel, "u →"])$




Homogeneous Solution

Die homogene Bewegungsgleichung

lässt Lösungen vom Typ

zu, die alle Rand- und Anfangsbedingungen erfüllen. Eigentlich müsste hier ein -Ansatz stehen, beim dem auch U komplex wäre. Mit etwas Erfahrung dürfen wir es uns hier einfacher machen.

Einsetzten unseres speziellen Ansatzes liefert

.

Die Anpassung an die Randbedingungen

gestaltet sich einfach: unser besonderer Ansatz erfüllt bereits die erste Randbedingung (sin(0)=0), die zweite Randbedingung cos(κl)=0 ist erfüllt, wenn

,

wir bekommen für jedes i eine Lösung, also unendlich viele.

Zu jedem κ gehört eine Eigenkreisfrequenzen

.

Die unterste Eigenfrequenz nutzen wir, um eine Bewegungsgleichungen dimensionslos zu machen: die längste Schwingungsperiode ist damit die Bezugs-Zeit

Die Lösungen

mit Ihren Modal-Formen ϕi und Eigenkreisfreuquenzen ω0,i sind hier aufgetragen.

ModeModalform ϕj ModeModalform ϕj
#1
#2
#3
#4
#5
#6

/***************************************************************************/
/* h o m o g e n e o u s   s o l u t i o n                                 */
/***************************************************************************/
ansatz: u(x,t) = U * sin(kappa*x) * cos(omega[0]*t);
eom : subst(ansatz,eom);
eom : ratsimp(subst(ansatz,ev(eom,nouns)/u(x,t)));
/* boundary conditions */
sol[1] : solve(kappa*l[0] = (2*i-1)*%pi/2,kappa)[1];
sol[1] : [sol[1],ratsimp(solve(subst(sol[1],eom),omega[0]^2)[1])];
 
/* abbreviations */
abbrev : [omega[0,0]=2*%pi/T, omega[0,0]^2= subst([i=1],subst(sol[1],omega[0]^2))];
abbrev : append(abbrev, solve(abbrev,[omega[0,0],T])[2]);
 
/* plot snapshots for animation */
/* create png-figures for animation */
toPlot : makelist(subst([E=1,i=j],subst(abbrev,subst([x=xi*l[0], t=T*tau],
                  subst([omega[0]=sqrt(subst(sol[1],omega[0]^2))],
                                 subst(sol[1],subst([omega[0]*t=2*%pi*tau], 
                                     subst(ansatz,u(x,t)/U))))))),j,1,6);
titles : makelist(simplode(["ω=",sqrt(ratsimp(subst([i=j],subst(abbrev,
                                          subst(sol[1],omega[0]^2*T^2)))))/%pi,"Π"]),j,1,6);
fpprintprec: 3$
NSteps : 19$
for mode:1 thru 6 do
   for j:0 thru NSteps-1 do
      (tstep : simplode([if j<10 then "0" else "",j]),
       plot2d(subst([tau=j/NSteps],toPlot[mode]),[xi,0,1], [y,-1.1,1.1],
                        [title, titles[1]], [legend, simplode(["t/T=",float(j/NSteps+0.01)])],
                        [style, [lines,3,1]], [xlabel, "ξ →"], [ylabel, "u →"],
                        [png_file,simplode([workdir,"mode-",mode,"-step-",tstep,".png"])]))$
 
/* lowest eigenfreuquency */
print(omega[0,0] = sqrt(subst([i=1],subst(sol[1],omega[0]^2))));




Adapt to Initial Conditions

Zum Zeitpunkt t=0 soll

gelten. Das kriegen wir hin, indem wir die (unendlich vielen) Ui der homogenen Lösung passend wählend. Das klingt komplizierter als es ist - die Mathematik bereitet uns den Weg.

Spezieller Lösungsansatz:
Wir können unseren speziellen Lösungsansatz mit  übrigens nur deshalb an die Anfangsbedingungen anpassen, weil die Anfangsgeschwindigkeit des Stabes Null ist - das liefert der cos. Für eine von Null verschiedene Anfangsgeschwindigkeit bräuchten wir den sin-Anteil der Lösung.

Die Beziehung oben multiplizieren wir mit einer der Modalformen ϕk und bilden das Integral über die Balken-Lange , also

.

Wir projizieren also die Modalformen auf sich selbst und auf die partikulare Lösung. Und nutzen aus, dass diese Faltungs-Integrale der Modalformen eine besondere Eigenschaft haben:

Man sagt: die Funktionen sind zueinander verallgemeinert orthogonal. Damit berechnen wir

,
Animation: Loslassen des Systems aus der unverformten Rugelage.

Anhand der numerischen Werte der Koeffizienten

sehen wir, dass nur die erste Modalform einen signifikanten Beitrag bei der Anpassung an die Anfangsbedingungen liefert. Wir nehmen bei der Auftragung der Gesamtlösung wt(x,t) trotzdem die ersten sechs Modalformen mit:

In der Animation sehen Sie das Loslassen des Stabes aus der unverformten, geraden Referenzlage für genau eine Periodenlänge T1 der ersten Modalform. Die Schwingung, die entsteht ist T1-periodisch - die anderen Modalformen leisten einen (kleinen) Beitrag, dessen Schwingungsperiode genau ein Vielfaches der Grundschwingung ist - die Darstellung der aneinandergestückelten Lösungen geht "ruckfrei" nach einer Periode ineinander über.


/***************************************************************************/
/* t o t a l   ( c o m p o s e d )   s o l u t i o n                       */
/***************************************************************************/
declare(i,integer);
u[p] : append(u[p],
ratsimp(solve(subst(sol[1],integrate(subst(params,subst(u[p],u(x)/u[s]))*sin(kappa*x) + U[i]*sin(kappa*x)*sin(kappa*x)=0,x,0,l[0])),U[i])));

/* analytiv solution */
analytic : append(sol[1],
           [omega[0]*t = sqrt(ratsimp(subst(abbrev,(subst(sol[1],omega[0]^2*T^2)))))*tau,
            x=l[0]*xi]);
sol[2] : append([ratsimp(subst([x=xi*l[0]],subst(params,subst(u[p],u(x)/u[s]))))],
makelist(subst([i=j],subst(u[p],subst(analytic,U[i]*sin(kappa*x)*cos(omega[0]*t)))),j,1,10));

/* plot snapshots for animation of total solution */
NSteps : 19$
fpprintprec: 4$
for j:0 thru 1*NSteps-1 do
   (tstep : simplode([if j<10 then "00" elseif j<100 then "0" else "",j]),
    plot2d(subst([tau=j/NSteps],sum(sol[2][i],i,1,length(sol[2]))),[xi,0,1], [y,-0.1,2.1],
                     [title, simplode(["t/T=",float(j/NSteps+0.01)])], [legend, "analytic"],
                     [style, [lines,1,1]], [xlabel, "ξ →"], [ylabel, "u →"],
                     [png_file,simplode([workdir,"initial-value-solution-step-",tstep,".png"])]))$




Tipp:
Die Grundform der homogenen Differentialgleichung

ist Basis für alle Musik-Instrumente - ob Saiten- oder Blas-Instrument. 

Denn die Bewegungsgleichung von Saiten- und Luft-in-Rohr-Resonanzen führen auf genau diese Bewegungsgleichung.

Überlegen Sie, welche Eigenschaft der homogenen Lösung dieser Bewegungsgleichung ihre besondere Bedeutug ausmacht!

Links

  • Schwingungen von Kontinua eines Euler-Bernoulli-Balkens (SKEB)

Literature

  • ...