Gelöste Aufgaben/FEAG: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 82: | Zeile 82: | ||
===== '''System-Parameter des FEM-Modells''' ===== | ===== '''System-Parameter des FEM-Modells''' ===== | ||
Für die Diskretisierung wählen wir als Anzahl der Finiten Elemente (Number Of Elements): | Für die Diskretisierung wählen wir als Anzahl der Finiten Elemente (Number Of Elements): | ||
<math>\displaystyle I = 4 \;\;\;(\text{ im Matlab-Code: } NOE)</math> | |||
und damit je Element | und damit je Element | ||
. | <math>\displaystyle \ell_i = \frac{\ell_0}{I}</math>. | ||
Wir wählen die kubische Ansatzfunktionen aus dem Abschnitt [[Sources/Anleitungen/FEM-Formulierung für den Euler-Bernoulli-Balken|Finite Elemente Methode]] je Element, also | |||
<math>\begin{array}{crc} \phi_1 = & \left( \xi-1\right)^2 \cdot \left( 1+2\cdot \xi\right) \\ \phi_2 = & \left( \xi-1\right)^2 \cdot \xi \cdot \ell_{i} \\ \phi_3 = & \left( \xi^2 \cdot \left( 3-2 \cdot \xi\right) \right)\\ \phi_4 = & \left( \left( \xi-1\right) \cdot \xi^2 \cdot \ell_i \right)\end{array}</math> | |||
Für die numerisch Implementierung stört in dieser Darstellung das Element-spezifische '' | Für die numerisch Implementierung stört in dieser Darstellung das Element-spezifische ''ℓ<sub>i</sub>'' - die Elementlänge. Wir behelfen uns, indem wir die Ansatzfunktionen schreiben als | ||
, | <math>\displaystyle \underbrace{ \left( \begin{array}{c} \phi_1\\ \phi_2\\ \phi_3\\ \phi_4 \end{array} \right)}_{\displaystyle =: \underline{\phi}} = \underbrace{ \left( \begin{array}{cccc} 1&0&0&0\\ 0&\ell_i&0&0\\ 0&0&1&0\\ 0&0&0&\ell_i\\ \end{array}\right)}_{\displaystyle =:\underline{\underline{d}}} \cdot \underbrace{ \left( \begin{array}{c} \left( \xi-1\right)^2 \cdot \left( 1+2\cdot \xi\right) \\ \left( \xi-1\right)^2 \cdot \xi \\ \left( \xi^2 \cdot \left( 3-2 \cdot \xi\right) \right)\\ \left( \left( \xi-1\right) \cdot \xi^2 \right)\end{array} \right)}_{\displaystyle =:\underline{\tilde{\phi}}}</math>, | ||
wobei wir die Ansatz-Polynome in verpacken. | wobei wir die Ansatz-Polynome in <math>\underline{\tilde{\phi}}</math> verpacken. | ||
Das schaut unnötig komplex aus - allerdings stecken wir die Diagonal-Matrizen ''d'' (für jedes Element eine) in eine Matlab-Variable, so dass sie dort nicht weiter auffällt. | Das schaut unnötig komplex aus - allerdings stecken wir die Diagonal-Matrizen ''d'' (für jedes Element eine) in eine Matlab-Variable, so dass sie dort nicht weiter auffällt. | ||
Zeile 99: | Zeile 103: | ||
Die abhängigen Koordinaten des FEM-Modells sind dann zunächst - bis zum Einarbeiten der Randbedingungen - diese: | Die abhängigen Koordinaten des FEM-Modells sind dann zunächst - bis zum Einarbeiten der Randbedingungen - diese: | ||
. | <math>\underline{Q}_t = \left(\begin{array}{c}W_0(t)\\\Phi_0(t)\\W_1(t)\\\vdots \\\Phi_I(t)\\W_I(t)\\ \end{array}\right)</math>. | ||
{{MyNoncodeBlock|title= | {{MyNoncodeBlock|title=Equilibrium Conditions | ||
|text=xffsd | |text=xffsd | ||
}} | }} | ||
<!-------------------------------------------------------------------------------->{{MyNoncodeBlock|title=Equilibrium Conditions | <!--------------------------------------------------------------------------------> | ||
Die Gleichgewichtsbedingung mit dem [[Werkzeuge/Gleichgewichtsbedingungen/Arbeitsprinzipe der Analytischen Mechanik/Prinzip der virtuellen Verrückungen|Prinzip der virtuellen Verrückungen]] setzen sich additiv aus | |||
<math>\displaystyle \delta W = \sum_{i=1}^I \left(\delta W^a_i - \delta \Pi_i \right) + \delta W^a_R</math>, | |||
zusammen - also den virtuellen Arbeiten je Element zuzüglich von virtuellen Arbeiten am Rand. In unserem Beispiel haben wir allerdings keine eingeprägten, äußeren Lasten am Rand, also ist | |||
<math>\delta W^a_R = 0</math>. | |||
Je Element erfassen wir die virtuellen Arbeiten durch Element-Matrizen. So ist z.B. für die virtuelle Formänderungsenergie (vgl. [[Randwertprobleme/Methoden zur Lösung von Randwertproblemen/Finite Elemente Methode|Finite Elemente Methode]]) | |||
<math>\delta \Pi_i = \left(\delta W_{i-1}, \delta \Phi_{i-1}, \delta W_{i} , \delta \Phi_{i}\right) \cdot \underline{\underline{K}}_i\cdot \left(\begin{array}{c}W_{i-1}(t)\\\Phi_{i-1}(t)\\W_{i}(t)\\\Phi_{i}(t) \end{array}\right)</math> | |||
mit der Element-Steifigkeitsmatrix <math>\underline{\underline{K}}_i</math>. | |||
Aus der [[Sources/Anleitungen/FEM-Formulierung für den Euler-Bernoulli-Balken|FEM-Formulierung für den Euler-Bernoulli-Balken]] könnten wir die Element-Matrizen der virtuellen Arbeit der [[Sources/Lexikon/D'Alembert'sche Trägheitskraft|D'Alembert'schen Trägheitskraft]] sowie der [[Sources/Lexikon/Virtuelle Formänderungsenergie|Virtuelle Formänderungsenergie]] herauskopieren. Auch die "rechte Seite" mit der virtuelle Arbeit der Gewichtskraft aus | |||
<math>\displaystyle \delta W^{a,g}_i = \int_{\ell_i} \varrho\; A \; g \cdot \delta w(x) \;dx_i</math>, | |||
könnten wir als Element-Lastmatrix (Spaltenmatrix) abspeichern. | |||
<math>\displaystyle \underline{G}_i = \frac{\varrho\,A\, g\, \ell_i}{2} \cdot \left(\begin{array}{c}+1\\\displaystyle +\frac{\ell_i}{6}\\+1\\\displaystyle -\frac{\ell_i}{6}\end{array}\right)</math>. | |||
Dass es auch anders geht,sehen Sie in der Definition der Matlab-Klasse FEM_Element_Modell, bei der die Element direkt aus den Trial-Functions - hier den | |||
<math>\underline{\tilde{\phi}}</math> - | |||
hergeleitet. werden: | |||
{| class="wikitable" | |||
| | |||
: | |||
K(row,col) = diff(... | |||
polyval(... | |||
polyint(... | |||
conv(polyder(self.phi(row,:)),polyder(self.phi(col,:)))),... | |||
[0,1])); | |||
: | |||
|} | |||
===== Komponieren der System-Matrizen ===== | |||
Die System-Matrizen des Gesamt–Systems komponieren wir nun durch Hinzuaddieren der Anteile je Element. | |||
Beispiel: die Gesamt-Steifigkeitsmatrix für I=2: | |||
Die Beiträge der zwei Elemente sind hier in rot bzw. grün eingefärbt. | |||
Dieses "Hinzuaddieren" passiert in Matlab hier: | |||
{| class="wikitable" | |||
| | |||
: | |||
e = 0;% counter for all elements of all sections | |||
for section = 1: length(element.noe) | |||
: | |||
for i = 1:element.noe(section) | |||
e = e+1; | |||
: | |||
j = 2*(e-1)+1; | |||
: | |||
K(j:j+3,j:j+3) = K(j:j+3,j:j+3)+b* d(:,:,e)*element.K*d(:,:,e); | |||
: | |||
end | |||
: | |||
|} | |||
In Matrix-Schreibweise lautet die Bewegungsgleichung des Gesamt-Systems jetzt: | |||
. | |||
Die Randbedingungen arbeiten wir ein, indem wir zeilenweise (für ''δW'' und ''δΦ'') und spaltenweise (für ''W'' und ''Φ'') streichen. | |||
Hier sind es | |||
* die erste Zeile/Spalte für ''W<sub>0</sub>'' (blau) und | |||
* die zweite Zeile / Spalte für ''Φ<sub>0</sub>'' (grün). | |||
{{MyNoncodeBlock|title=Equilibrium Conditions | |||
|text=xffsd | |text=xffsd | ||
}} | }} |
Version vom 25. Februar 2021, 07:39 Uhr
Aufgabenstellung
Analog zu FEAF untersuchen wir hier die Schwingungen eines Kontinuums beim Loslassen aus der entspannten Rugelage. Hier nicht mit einem Dehnstab, sondern einem Euler-Bernoulli-Balken.
Gesucht ist die Schwingung eines Euler-Bernoulli-Balkens beim Loslassen aus der Ruhelage. Wir gehen nach dem Standardrezept der Finite Elemente Methode vor, arbeiten also mit dem Sources/Lexikon/Prinzip der virtuellen Arbeit.
Lösung mit Matlab
Interessant ist hier, dass - im Gegensatz zu Stablängsschwingungen - die Eigenfrequenz nicht ein gerades Vielfaches der untersten Eigenfrequenz ist. Falls Sie ein Saiteninstrument spielen, verstehen Sie sofort, warum das wichtig ist.
Maxima können wir hier nicht gut gebrauchen: die Gleichungen werden zu umfangreich. Wir arbeiten also mehr mit numerischen Verfahren, da ist Matlab geeigneter. Allerdings können wir Matlab-Inhalte nicht gut auf dieser Seite unterbringen - deshalb gibt es dafür die Seite FEAG-Matlab, die der gleichen Struktur folgt.
Header
Im Programm arbeiten wir mit einer dimensionslosen Formulierung - wir brauchen dafür eine Bezugszeit tBez und eine Bezugslänge lBez.
Dazu nehmen wir eine "Anleihe" bei der analytischen Lösung des Schwingungsproblems (vgl. Aufgabe SKEB):
Analytische Lösung: homohener Lösungsanteil |
Analytische Lösung: partikularer Lösungsanteil |
---|---|
Die homogene Bewegungsgleichung des Euler-Bernoulli-Balkens hat Lösungen vom Typ Wir bekommen zu jedem ω0 vier κ Das α ist eine praktische Abkürzung, hinter der wir ω0 verstecken. Anders als beim Dehnstab (SKER) finden wir hier keine analytische Beziehung, sondern nur die numerischen Beziehungen, für die unsere Randbedingungen erfüllt sind: Die langsamste Eigenmode gehört zu α1 mit der Periodendauer
Also wählen wir . |
Die zugeordnete inhomogene Bewegungsgleichung des Euler-Bernoulli-Balkens hat die partikulare Lösung Die statische Auslenkung am unteren Ende ist demnach
Wir wählen \ell_{Bez} := w_s. |
System-Parameter des FEM-Modells
Für die Diskretisierung wählen wir als Anzahl der Finiten Elemente (Number Of Elements):
und damit je Element
.
Wir wählen die kubische Ansatzfunktionen aus dem Abschnitt Finite Elemente Methode je Element, also
Für die numerisch Implementierung stört in dieser Darstellung das Element-spezifische ℓi - die Elementlänge. Wir behelfen uns, indem wir die Ansatzfunktionen schreiben als
,
wobei wir die Ansatz-Polynome in verpacken.
Das schaut unnötig komplex aus - allerdings stecken wir die Diagonal-Matrizen d (für jedes Element eine) in eine Matlab-Variable, so dass sie dort nicht weiter auffällt.
Die abhängigen Koordinaten des FEM-Modells sind dann zunächst - bis zum Einarbeiten der Randbedingungen - diese:
.
Equilibrium Conditions
xffsd
Die Gleichgewichtsbedingung mit dem Prinzip der virtuellen Verrückungen setzen sich additiv aus
,
zusammen - also den virtuellen Arbeiten je Element zuzüglich von virtuellen Arbeiten am Rand. In unserem Beispiel haben wir allerdings keine eingeprägten, äußeren Lasten am Rand, also ist
.
Je Element erfassen wir die virtuellen Arbeiten durch Element-Matrizen. So ist z.B. für die virtuelle Formänderungsenergie (vgl. Finite Elemente Methode)
mit der Element-Steifigkeitsmatrix .
Aus der FEM-Formulierung für den Euler-Bernoulli-Balken könnten wir die Element-Matrizen der virtuellen Arbeit der D'Alembert'schen Trägheitskraft sowie der Virtuelle Formänderungsenergie herauskopieren. Auch die "rechte Seite" mit der virtuelle Arbeit der Gewichtskraft aus
,
könnten wir als Element-Lastmatrix (Spaltenmatrix) abspeichern.
.
Dass es auch anders geht,sehen Sie in der Definition der Matlab-Klasse FEM_Element_Modell, bei der die Element direkt aus den Trial-Functions - hier den
-
hergeleitet. werden:
: K(row,col) = diff(... polyval(... polyint(... conv(polyder(self.phi(row,:)),polyder(self.phi(col,:)))),... [0,1])); : |
Komponieren der System-Matrizen
Die System-Matrizen des Gesamt–Systems komponieren wir nun durch Hinzuaddieren der Anteile je Element.
Beispiel: die Gesamt-Steifigkeitsmatrix für I=2:
Die Beiträge der zwei Elemente sind hier in rot bzw. grün eingefärbt.
Dieses "Hinzuaddieren" passiert in Matlab hier:
: e = 0;% counter for all elements of all sections for section = 1: length(element.noe) : for i = 1:element.noe(section) e = e+1; : j = 2*(e-1)+1; : K(j:j+3,j:j+3) = K(j:j+3,j:j+3)+b* d(:,:,e)*element.K*d(:,:,e); : end : |
In Matrix-Schreibweise lautet die Bewegungsgleichung des Gesamt-Systems jetzt:
.
Die Randbedingungen arbeiten wir ein, indem wir zeilenweise (für δW und δΦ) und spaltenweise (für W und Φ) streichen.
Hier sind es
- die erste Zeile/Spalte für W0 (blau) und
- die zweite Zeile / Spalte für Φ0 (grün).
Equilibrium Conditions
xffsd
Solving
xffsd
Adapt to Initial Conditions
xffsd
Post-Processing
xffsd
Header
xffsd
Header
xffsd
Links
- ...
Literature
- ...
| ||
| ||
|