Voraussetzungen
Statische Modellierung einer Highline (Modellierung einer Highline)
mathematische Grundlagen von Eigenwerten und Eigenvektoren
Lerninhalte
Berechnung von Schwingungsmoden mithilfe der Steifigkeits- und Massematrix
Schwingungsmoden eines eindimensionalen Balkens#
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.
Für die Modellierung diskretisieren wir den Balken mit \(N\) Massepunkten der Masse \(m\) und verbinden diese mit Federn der Steifigkeit \(k\). Wir vernachlässigen zur Vereinfachung Torsionssteifigkeiten und betrachten das System bei Schwerelosigkeit.
Die Modellgleichungen#
Das Bild kommt uns bekannt vor! Wir können dieselben Modellgleichungen wie in dem Kapitel Modellierung einer Highline verwenden, allerdings vernachlässigen wir die externe Kraft, die Schwerkraft und die Dämpfung.
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
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
\(M\) ist die Massematrix und \(K\) die Steifigkeitsmatrix des gekoppelten Systems. Dazu führen wir folgende Bezeichungen ein:
Was hat das mit Eigenwerten und Eigenvektoren zu tun?#
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)\):
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
Durch Einsetzen unseres Ansatzes in die Differentialgleichung und Multiplizieren von \(M^{-1}\) von links erhalten wir
\(\boldsymbol{\phi}\) ist also ein Eigenvektor von \(M^{-1}K\) zum Eigenwert \(\omega^2\).
Es gibt \(n\) Paare \((\omega_j, \boldsymbol{\phi}_j)\), wobei \(n=\text{rang}(M^{-1}K)\)
\(\omega_j\) nennt man Eigenfrequenz des Systems
\(\boldsymbol{\phi}_j\) nennt man Schwingungsmode oder Schwingungsform des Systems.
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.
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.
Hinweis
Wegen der Animation kann das Skript nicht interaktiv ausgeführt werden, laden Sie es sich herunter.
clear
saveImages = false;
%%
T =10*pi; % total animation time [s] per mode
dt=pi/5; % time step size for the animation [s]
L = 10; % length of the rod [m]
N = 20; % number of mass points of the rod
k = 4e6*N; % stiffness of each rod segment [N/m]
m = 10/N; % mass of each mass point
%% construct stiffness matrix
n = 2*N; % dimension of the problem is 2D
% construct matrix S as a sparse matrix
nnz = n + 2*(n-2); % number of nonzeros
row = zeros(nnz,1); %preallocate memory
column = zeros(nnz,1);
value = zeros(nnz,1);
j=0;
for i=1:n %for all rows
if ( i>2 && i<n-1 )
j=j+1; row(j)=i; column(j)=i; value(j)=2; %diagonal element
else
j=j+1; row(j)=i; column(j)=i; value(j)=1; %diagonal element
end
if i>2
j=j+1; row(j)=i; column(j)=i-2; value(j)=-1; % +2 diagonal
end
if i<n-1
j=j+1; row(j)=i; column(j)=i+2; value(j)=-1; % -2 diagonal
end
end
S = sparse(row,column,value,n,n);
% stiffness matrix (no need for mass matrix)
K = k*S;
%% calculate eigenfrequencies
[V, D] = eig(full(K/m));
eigfreqs = sqrt(diag(D));
%% animate the i--th frequency mode
k=0;
for i=1:12
% get the modal shapes (eigenvectors)
qi = V(:,i)';
for t=0:dt:T
k=k+1;
%position of mass points = displacement + initial position
% also scale the x-direction displacements
positions_x = 2*qi(1:2:n)*sin(t)+L*linspace(1/N,1-1/N,N);
positions_y = qi(2:2:n)*sin(t);
%% plot the animation of the rod
cla;
hold on
plot(positions_x,positions_y,'k','Marker','o','LineWidth',5,'MarkerSize',15);
box on
ylim([-1,1]);
xlim([-0.1*L,1.1*L]);
xticks([]);
yticks([]);
title(['mode ',num2str(i),', freq = ',num2str(eigfreqs(i)/(2*pi),'%1.2f'),' Hz'],'fontsize',20)
drawnow
if saveImages
disp(['mode ',num2str(i), ', total image number ',num2str(k)])
filename = ['rod_modes_',num2str(k,'%04.0f'),'.png'];
saveas(gcf,filename)
end
end
end
Die ersten beiden Schwingungsmoden zum Eigenwert 0 (genauer: Singulärewert) sind die sogenannte Starrkörpermoden, bei denen keine Verformung stattfindet.
Aufgabe 1: Interpretation der Schwingungsmoden und -frequenzen#
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!
Aufgabe 2: Manipulation der Physik des schwingungsfähigen Systems#
Modifizieren Sie das Skript so, dass der eindimensionale Balken
- einseitig eingespannt ist.
- beidseitig eingespannt ist.
Tipp
Nehmen Sie Änderungen an der Matrix \(S\) vor. Gegebenenfalls müssen Sie sich mehr als 12 Schwingungsmoden ausgeben lassen.