Gelöste Aufgaben/SKER: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:


<onlyinclude>
<onlyinclude>
[[Datei:FEAB-01.png|100px|left|mini|Caption]]
[[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.
Gesucht ist analytische Lösung für Schwingungen des Euler-Bernoulli-Balkens beim Loslassen aus der enspannten Ruhelage.
</onlyinclude>
</onlyinclude>


== Lösung mit Maxima ==
== Lösung mit Maxima ==
==tmp==


<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Header
|text=
Für die mathematische Behandlung - insbesondere der Auflösung quadratischer Gleichungen - setzen wir in Maxima voraus, dass
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> .<!-------------------------------------------------------------------------------->
<math>E > 0,\;\;\;A>0,\;\;\;\ell_0>0;</math>.
 
{{MyCodeBlock|title=Header
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+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>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->
 
{{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
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>
::<math>n(x,t) = \varrho\;A\cdot g -\varrho\;A\cdot \ddot{u}(x,t)</math>


Die Lösung der partiellen Bewegungsgleichung  
Die Lösung der partiellen Bewegungsgleichung  


<math>\varrho\,A\cdot\ddot{u}-E\,A\cdot u''  = \varrho\,A\cdot g</math>
::<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
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><!-------------------------------------------------------------------------------->
::<math>u_t(x,t) =  u_p(x,t) + u_h(x,t)  </math>.
 
{{MyCodeBlock|title=Equations of Motion
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+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>
</syntaxhighlight>
}}
}}


==tmp==
 
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Particular Solution
|text=
Die partikulare Lösung ''u<sub>p</sub>'' erfüllt die "rechte Seite" der Bewegungsgleichung, also -''ϱ A⋅g'':
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>.
::<math>E\,A\cdot{u}''_p  = -\varrho\,A\cdot g</math>.


Die rechte Seite ist zeit-unveränderlich - so auch die partikulare Lösung:
Die rechte Seite ist zeit-unveränderlich - so auch die partikulare Lösung:
Zeile 65: Zeile 80:
Wir integrieren die Bewegungsgleichung zwei Mal und erhalten
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>.
::<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
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>
::<math>\begin{array}{rl}u_p(0)&=0\\E\,A\,u_p'(\ell)&=0\end{array}</math>


anpassen, wir erhalten aus dem linearen Gleichungssystem
anpassen, wir erhalten aus dem linearen Gleichungssystem


<math>\begin{array}{l}0={{C}_{0}}\\0=-A\,g\,\varrho\,x+C_1\end{array}</math>  
::<math>\begin{array}{l}0={{C}_{0}}\\0=-A\,g\,\varrho\,x+C_1\end{array}</math>  


und damit die partikulare Lösung
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 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>
::<math>\displaystyle u_s=\frac{\varrho\,A\,g\,\ell^2}{2\;E\,A}</math>


Und so sieht ''u<sub>p</sub>'' aus:
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)))];


{{MyCodeBlock|title=Particular Solution
plot2d(ratsimp(subst([x=xi*l[0]],subst(params,subst(u[p],u(x))/u[s]))),[xi,0,1], [y,-0.1,1.1],
|text=Text
                        [legend, "static solution"],
|code=
                        [style, [lines,3,1]], [xlabel, "ξ →"], [ylabel, "u →"])$
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
</syntaxhighlight>
}}
}}


==tmp==
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Homogeneous Solution
 
|text=
 
 
Die homogene Bewegungsgleichung
Die homogene Bewegungsgleichung


<math>\varrho\,A\cdot\ddot{u}-E\,A\cdot u''  = 0</math>
::<math>\varrho\,A\cdot\ddot{u}-E\,A\cdot u''  = 0</math>


lässt Lösungen vom Typ
lässt Lösungen vom Typ


<math>\displaystyle u_h( x, t) =U \cdot \sin(\kappa\,x)\cdot  \cos(\omega_0\,t)</math>
::<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.
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.
Zeile 111: Zeile 131:
Einsetzten unseres speziellen Ansatzes liefert
Einsetzten unseres speziellen Ansatzes liefert


<math>\displaystyle \kappa^2 = \frac{\varrho\,A}{E\,A} \omega_0^2</math>.
::<math>\displaystyle \kappa^2 = \frac{\varrho\,A}{E\,A} \omega_0^2</math>.


Die Anpassung an die Randbedingungen
Die Anpassung an die Randbedingungen


<math>\begin{array}{rl} u_h(0,t) &= 0\\E\,A\,u_h(\ell,,t) &= 0\end{array}</math>
::<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
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>,
::<math>\displaystyle \kappa=\frac{2\pi\;i-\pi}{2\,\ell}</math>,


wir bekommen für jedes ''i'' eine Lösung, also unendlich viele.
wir bekommen für jedes ''i'' eine Lösung, also unendlich viele.
Zeile 125: Zeile 145:
Zu jedem ''κ'' gehört eine Eigenkreisfrequenzen
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>.
::<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
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>
::<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  
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>
::<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;">
mit Ihren Modal-Formen ''ϕ<sub>i</sub>'' und Eigenkreisfreuquenzen ''ω<sub>0,i</sub>'' sind hier aufgetragen.
 
<table class="wikitable" style="background-color:white;">
<tr>
<tr>
<th>Mode</th><th>Modalform ϕ<sub>j</sub></th>
<th>Mode</th><th>Modalform ϕ<sub>j</sub></th>
Zeile 152: Zeile 174:
</tr>
</tr>
</table>
</table>
<!-------------------------------------------------------------------------------->{{MyCodeBlock|title=Homogeneous Solution
|text=Text
|code=
|code=
<syntaxhighlight lang="lisp" line start=1>
<syntaxhighlight lang="lisp" line start=1>
1+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>
</syntaxhighlight>
}}
}}


==tmp==


[[Datei:SKER-initial-value-solution-animation.gif|mini|Animation: Loslassen des Systems aus der unverformten Rugelage.|alternativtext=|ohne]]Zum Zeitpunkt ''t=0'' soll
<!-------------------------------------------------------------------------------->
{{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>
::<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.
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.
Zeile 174: Zeile 226:
Die Beziehung oben multiplizieren wir mit einer der Modalformen ''ϕ<sub>k</sub>'' und bilden das Integral über die Balken-Lange ''ℓ'', also
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>.
::<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:
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>
::<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
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>,
::<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.]]
[[Datei:SKER-initial-value-solution-animation.gif|mini|Animation: Loslassen des Systems aus der unverformten Rugelage.]]
Anhand der numerischen Werte der Koeffizienten
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>
::<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:
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.
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
{{MyTip|title=Tipp|text=Die Grundform der homogenen Differentialgleichung
Zeile 201: Zeile 280:


Überlegen Sie, welche Eigenschaft der homogenen Lösung dieser Bewegungsgleichung ihre besondere Bedeutug ausmacht!}}
Überlegen Sie, welche Eigenschaft der homogenen Lösung dieser Bewegungsgleichung ihre besondere Bedeutug ausmacht!}}
<!-------------------------------------------------------------------------------->
{{MyCodeBlock|title=Adapt to Initial Conditions
|text=Text
|code=
<syntaxhighlight lang="lisp" line start=1>
1+1
</syntaxhighlight>
}}


<hr />
<hr />

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

  • ...