Skip to content

Commit

Permalink
Merge pull request #514 from hbrs-cse/513-add-understanding-exercises…
Browse files Browse the repository at this point in the history
…-to-eigenwerte-balken

added exercise for understanding of eigenmodes
  • Loading branch information
PhiSpel authored Nov 10, 2023
2 parents 7305b49 + 931d615 commit 041f4e5
Showing 1 changed file with 38 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,42 +28,42 @@
"(beam_eigen_modes)=\n",
"# Schwingungsmoden eines eindimensionalen Balkens\n",
"\n",
"Wir wollen einen flexiblen Balken simulieren. Dazu diskretisieren wir ihn durch $N$ Massepunkte der Masse $m$ und verbinden diese mit Federn der Steifigkeit $k$. \n",
"Wir wollen einen flexiblen Balken simulieren und hinsichtlich Eigenschwingungen und Eigenfrequenzen analysieren. Wird eine Struktur mit einer Eigenfrequenz angeregt schwingt sie mit und die Amplitude der Schwingung nimmt zu. Das Phänomen wird Resonanz genannt und kann zur Resonanzkatastrophe (Zerstörung der Struktur) führen. \n",
"\n",
"Für die Modellierung diskretisieren wir den Balken mit $N$ Massepunkten der Masse $m$ und verbinden diese mit Federn der Steifigkeit $k$. \n",
"Wir vernachlässigen zur Vereinfachung Torsionssteifigkeiten und betrachten das System bei Schwerelosigkeit.\n",
"\n",
"```{image} images/rod.png\n",
":align: center\n",
"```\n",
"\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Die Modellgleichungen\n",
"\n",
"Das Bild kommt uns bekannt vor! Wir können dieselben Modellgleichungen wie in dem Kapitel {ref}`highline_static` verwenden, allerdings vernachlässigen wir die externe Kraft und die Dämpfung.\n",
"\n",
"Gehen Sie von einem *\"Urzustand\"* aus, in dem alle Massepunkte auf einer Linie liegen. Durch die Schwerkraft und das Einwirken äußerer Kräfte entstehen Verschiebungen \n",
"\n",
"\n",
"$$ \\mathbf{u}_i = \\begin{bmatrix} x_i(t) \\\\ y_i(t) \\end{bmatrix} $$ \n",
"\n",
"\n",
"der Massepunkte weg von diesem Urzustand. Die Kräftebilanzierung ergibt\n",
"Das Bild kommt uns bekannt vor! Wir können dieselben Modellgleichungen wie in dem Kapitel {ref}`highline_static` verwenden, allerdings vernachlässigen wir die externe Kraft, die Schwerkraft und die Dämpfung.\n",
"\n",
"Gehen Sie von einem *\"Urzustand\"* aus, in dem alle Massepunkte auf einer Linie liegen. Bei einer Verschiebung $\\dot{x_i}$ und $\\dot{y_i}$ der Massepunkte wirken bswp. auf den ersten Massepunkt die Federkräfte $F_{1x} = k($\\dot x_2$-$\\dot x_1$)$ und $F_{1y} = k($\\dot y_2$-$\\dot y_1$)$. Auf die mittleren Punkte wirken jeweils Federkräfte von links und rechts. Die Kräftebilanzierung mit der Zusammenfassung $\\mathbf{z}_i := \\begin{bmatrix} x_i(t) \\\\ y_i(t) \\end{bmatrix}$ ergibt\n",
"\n",
"$$\n",
"\\begin{align}\n",
" m \\ddot{\\mathbf{u}}_1 &= -k(\\mathbf{u}_1-\\mathbf{u}_2) \\notag \\\\\n",
" m \\ddot{\\mathbf{u}}_i &= k(\\mathbf{u}_{i-1}-\\mathbf{u}_{i}) - k(\\mathbf{u}_{i}-\\mathbf{u}_{i+1}) , \\hskip4em \\text{für } i=2,...,N-1 \\notag \\\\\n",
" m \\ddot{\\mathbf{u}}_N &= k(\\mathbf{u}_{N-1}-\\mathbf{u}_N) . \\notag \\\\\n",
" m \\ddot{\\mathbf{z}}_1 &= -k(\\mathbf{z}_1-\\mathbf{z}_2) \\notag \\\\\n",
" m \\ddot{\\mathbf{z}}_i &= k(\\mathbf{z}_{i-1}-\\mathbf{z}_{i}) - k(\\mathbf{z}_{i}-\\mathbf{z}_{i+1}) , \\hskip4em \\text{für } i=2,...,N-1 \\notag \\\\\n",
" m \\ddot{\\mathbf{z}}_N &= k(\\mathbf{z}_{N-1}-\\mathbf{z}_N) . \\notag \\\\\n",
"\\end{align}\n",
"$$\n",
"\n",
"Diese Gleichungen lassen sich in eine kompaktere Matrixschreibweise bringen. Wir stellen alle Gleichungen nach links um (bswp. $m \\ddot{\\mathbf{z}}_1 + k(\\mathbf{z}_1-\\mathbf{z}_2) = 0)$ und sammeln alle Ortsvektoren $\\mathbf{z}_i$ in $\\mathbf{z}$. Wir erhalten die Differentialgleichung\n",
"\n",
"Diese Gleichungen lassen sich in eine kompaktere Matrixschreibweise bringen. Dazu führen wir folgende Bezeichungen ein:\n",
"\n",
"$$M \\ddot{\\mathbf{z}} + K\\mathbf{z} = \\boldsymbol{0} .$$\n",
"\n",
"$$ \\mathbf{u}=\\left[ \\begin{array}{c} \\mathbf{u}_1 \\\\ \\vdots \\\\ \\mathbf{u}_N \\end{array} \\right] \\in \\mathbb{R}^{2N},, \\quad M = \\left[ \\begin{array}{cccc} m & 0 & \\cdots & 0 \\\\ 0 & m & \\ddots & \\vdots \\\\ \\vdots & \\ddots & \\ddots & 0 \\\\ 0 & \\cdots & 0 & m \\end{array} \\right] \\in \\mathbb{R}^{2N \\times 2N} \\quad \\text{und} $$ \n",
"$M$ ist die *Massematrix* und $K$ die *Steifigkeitsmatrix* des gekoppelten Systems. Dazu führen wir folgende Bezeichungen ein:\n",
"\n",
"$$S = \\left[ \\begin{array}{rrrrrrr}\n",
"$$\\mathbf{z}=\\left[ \\begin{array}{c} \\mathbf{z}_1 \\\\ \\vdots \\\\ \\mathbf{z}_i \\\\ \\vdots \\\\ \\mathbf{z}_N \\end{array} \\right]=\\left[ \\begin{array}{c} x_1 \\\\ y_1 \\vdots \\\\ x_i \\\\ y_i \\vdots \\\\ x_N \\\\ y_N \\end{array} \\right] \\in \\mathbb{R}^{2N}, \\quad M = \\left[ \\begin{array}{cccc} m & 0 & \\cdots & 0 \\\\ 0 & m & \\ddots & \\vdots \\\\ \\vdots & \\ddots & \\ddots & 0 \\\\ 0 & \\cdots & 0 & m \\end{array} \\right] \\in \\mathbb{R}^{2N \\times 2N} \\quad \\text{,} $$ \n",
"$$K = k \\cdot S \\text{ und } S = \\left[ \\begin{array}{rrrrrrr}\n",
"1 & 0 & -1 & 0 & \\cdots & \\cdots & 0 \\\\\n",
"0 & 1 & 0 & -1 & \\ddots & & \\vdots \\\\\n",
"-1 & 0 & 2 & 0 & \\ddots & \\ddots & \\vdots \\\\\n",
Expand All @@ -73,41 +73,37 @@
"0 & \\cdots & \\cdots & 0 & -1 & 0 & 1\n",
"\\end{array} \\right] \\in \\mathbb{R}^{2N \\times 2N}.$$\n",
"\n",
"\n",
"$M$ ist die *Massematrix* und $K = k \\cdot S$ die *Steifigkeitsmatrix* des gekoppelten Systems. Zusammengesetzt ergibt sich folgende Differentialgleichung:\n",
"\n",
"$$M \\ddot{\\mathbf{z}} + K\\mathbf{z} = \\boldsymbol{0} .$$\n",
"\n",
"\n",
"## Was hat das mit Eigenwerten und Eigenvektoren zu tun?\n",
"\n",
"Wir erkennen die harmonische Schwingungsgleichung und machen einen entsprechenden Ansatz für die Lösung $\\mathbf{u}$:\n",
"\n",
"Wir möchten das System hinsichtlich Schwingungen analysieren und kennen die harmonische Schwingungsgleichung. Dementsprechend machen wir einen Ansatz für die Lösung $\\mathbf{z}(t)$:\n",
"\n",
"$$\n",
"\\mathbf{u}(t) = \\boldsymbol{\\phi} \\cdot e^{i \\omega t},\n",
"\\mathbf{z}(t) = \\boldsymbol{\\phi} \\cdot e^{i \\omega t},\n",
"$$\n",
"\n",
"wobei $\\boldsymbol{\\phi} \\in \\mathbb{R}^{2N}$ die *zeitunabhängige* Amplitude der beiden Komponenten jedes einzelnen Massepunktes beschreibt. Leiten wir $\\mathbf{z}(t)$ ab, erhalten wir\n",
"\n",
"wobei $\\boldsymbol{\\phi} \\in \\mathbb{R}^{2N}$ die *zeitunabhängige* Amplitude der beiden Komponenten jedes einzelnen Massepunktes beschreibt. Durch Einsetzen unseres Ansatzes in die Differentialgleichung erhalten wir \n",
"$$\n",
"\\dot{\\mathbf{z}}(t) = i \\omega \\cdot \\boldsymbol{\\phi} \\cdot e^{i \\omega t},\n",
"$$\n",
"$$\n",
"\\ddot{\\mathbf{z}}(t) = - \\omega^2 \\cdot \\boldsymbol{\\phi} \\cdot e^{i \\omega t}\n",
"$$\n",
"\n",
"Durch Einsetzen unseres Ansatzes in die Differentialgleichung und Multiplizieren von $M^{-1}$ von links erhalten wir \n",
"\n",
"$$\n",
"M^{-1}K \\boldsymbol{\\phi} = \\omega^2 \\boldsymbol{\\phi}.\n",
"$$\n",
"\n",
"\n",
"$\\boldsymbol{\\phi}$ ist also ein **Eigenvektor** von $M^{-1}K$ zum **Eigenwert** $\\omega^2$.\n",
"\n",
"\n",
" - Es gibt $n$ Paare $(\\omega_j, \\boldsymbol{\\phi}_j)$, wobei $n=\\text{rang}(M^{-1}K)$\n",
" - $\\omega_j$ nennt man **Eigenfrequenz** des Systems\n",
" - $\\boldsymbol{\\phi}_j$ nennt man **Schwingungsmode** oder **Schwingungsform** des Systems.\n",
" \n",
" \n",
"Das System hat also viele Eigenfrequenzen. Wenn wir es mit einer bestimmten Eigenfrequenz anregen, stellt sich eine bestimmte Schwingungsform ein, die im Amplitudenvektor $\\boldsymbol{\\phi}$ kodiert ist. Jede Bewegung die das System ausführen kann, lässt sich als Superposition der Schwingungsmoden darstellen.\n",
"\n",
"\n",
"Zur Anschauung einzelner Schwingungsmoden $\\boldsymbol{\\phi}_j$ animiert man sie oft mit einer festen Frequenz $a \\neq \\omega_j$ und ohne Phasenverschiebung. Das folgende Skript berechnet die Eigenfrequenzen und Schwingungsmoden, in dem das entsprechende Eigenwertproblem gelöst wird, und animiert die Schwingungsmoden. \n",
"\n",
"```{admonition} Hinweis\n",
Expand Down Expand Up @@ -162,7 +158,6 @@
"% stiffness matrix (no need for mass matrix)\n",
"K = k*S;\n",
"\n",
"\n",
"%% calculate eigenfrequencies\n",
"[V, D] = eig(full(K/m));\n",
"eigfreqs = sqrt(diag(D));\n",
Expand Down Expand Up @@ -215,7 +210,11 @@
"\n",
"Die ersten beiden Schwingungsmoden zum Eigenwert 0 *(genauer: Singulärewert)* sind die sogenannte **Starrkörpermoden**, bei denen keine Verformung stattfindet.\n",
"\n",
"## Ihre Aufgabe\n",
"## Aufgabe 1: Interpretation der Schwingungsmoden und -frequenzen\n",
"\n",
"Lassen Sie sich die Variablen `V`, `D` und `eigenfreqs` im Workspace ausgeben. Wie viele Eigenmoden hat das System (= in wie vielen Formen kann das System schwingen)? Ordnen Sie die Einträge der Variablen dem Verhalten der Ausgaben zu!\n",
"\n",
"## Aufgabe 2: Manipulation der Physik des schwingungsfähigen Systems\n",
"\n",
"Modifizieren Sie das Skript so, dass der eindimensionale Balken\n",
"\n",
Expand All @@ -224,15 +223,11 @@
" <li>beidseitig eingespannt ist.</li>\n",
"</ol>\n",
"\n",
"**Tipp:** Nehmen Sie Änderungen an der Matrix $S$ vor."
"```{admonition} Tipp\n",
":class: tip\n",
"Nehmen Sie Änderungen an der Matrix $S$ vor. Gegebenenfalls müssen Sie sich mehr als 12 Schwingungsmoden ausgeben lassen.\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
Expand Down

0 comments on commit 041f4e5

Please sign in to comment.