-
Alles simuliert - aber wie?
Es gibt verschiedene Arten eine Gitarrensaite zu simulieren.
Eine davon ist das Masse-Feder-Modell:
Der schwingende Körper - hier unsere Gitarrensaite - wird in einzelne Massepunkte aufgeteilt.
Um die Biegsamkeit des Körpers zu simulieren, werden die Massepunkte durch Federn miteinander verbunden.
Unsere Gitarrensaite lässt sich als eine Kette (1D) an Massen und Federn simulieren, die Membran einer Trommel hingegen als ein Gitter (2D).
Je nach gewünschter Genauigkeit und zu simulierenden Körper, werden Bewegungen der Massen in eine oder mehrere Dimensionen betrachtet.
Für unsere Gitarrensaite reicht es aus, die Bewegung der Massepunkte entlang einer Richtung (vertikal) zu betrachten.
-
Wie wird aus einer Kette aus Massen und Federn eine Bewegung?
Die Massen haben ein Gewicht. Die Federn bewirken die elastische Verbindung zweier Massen, sind aber selbst massenlos.
Die Kraft, die auf eine Masse wirkt, berechnet sich mit Hilfe des Hooke'schen Gesetzes:
\[F = -\lambda \cdot \frac{\Delta l}{l},\]
wobei $\lambda$ die Federsteifigkeit, $l$ die Länge der Feder im entspannten Zustand und $\Delta l$ die Differenz der Federlänge bezeichnet.
Die Kraft, die eine Feder auf die Masse ausübt, ist also proportional zur Dehnung bzw. Stauchung der Feder.
In unserer Kette sind immer zwei Federn mit einer Masse verbunden. Wir erhalten daher für die resultierende Kraft
\[ F_{\text{gesamt}}=-\lambda \cdot (\frac{\Delta l_1}{l}+ \frac{\Delta l_2}{l} ) \]
bei gleicher Federsteifigkeit $\lambda$ und gleicher Länge im entspannten Zustand $l$.
Da sich die Massen in unserem Modell nur in $y$-Richtung (vertikal) bewegen dürfen, betrachten wir vereinfacht die $y$-Komponente zur Berechnung von $\Delta l_{1/2}$.
-
Wir erhalten folgendes Bild:
Ausgelenkte Längen sind mit $^{'}$ gekennzeichnet.
Festgelegt, dass die Massen im unausgelenkten Zustand (Stillstand) die Koordinate $y=0$ besitzen, können wir die Kraft, die auf eine Masse $m_i$ mit den Koordinaten $(x_i,y_i)$ wirkt, folgendermaßen berechnen
\[ F_{i} = -\lambda \cdot \frac{(y_{i} - y_{i-1})+(y_{i}-y_{i+1})}{\Delta x},\]
wobei $\Delta x = x_{i}-x_{i-1} = x_{i+1}-x_{i}= l$.
-
Mit Newtons 2. Gesetz stellen wir einen Zusammenhang zwischen der Kraft, die auf eine Masse wirkt, und ihrer Beschleunigung $a(t)$ her,
\[F(t)= m \cdot a(t).\]
Von Ort $y(t)$ zu Geschwindigkeit $v(t)$ zu Beschleunigung $a(t)$
Die Ableitung der Strecke $y(t)$ ist die Geschwindigkeit $v(t)$, d.h.
\[ v(t) = \frac{dy(t)}{dt} = y{'}(t).\]
Die Ableitung der Geschwindigkeit bzw. die zweite Ableitung der Strecke ist die Beschleunigung $a(t)$, d.h.
\[ a(t) = \frac{dv(t)}{dt} = \frac{d^2y(t)}{dt^2}=y''(t). \]
Wir schreiben $F(t) = m \cdot a(t) = m \cdot v'(t) = m \cdot y''(t)$ als System zweier Differentialgleichungen (DGLs) der 1. Ordnung (abh. von 1. Ableitung):
\[ \begin{pmatrix} y(t) \\ v(t) \end{pmatrix}^{'} = \begin{pmatrix}v(t)\\\frac{F(t)}{m}\end{pmatrix}.\]
-
Die Differentialgleichungen lassen sich analytisch lösen oder numerisch annähern, wie in unserem Fall.
Die Größen Geschwindigkeit und Ort des nächsten Schrittes $n+1$ berechnen sich aus den Größen des aktuellen Schrittes $n$ wie folgt,
\[ \begin{pmatrix} y_{n+1}\\ v_{n+1} \end{pmatrix} = \begin{pmatrix} y_n\\v_n \end{pmatrix} + \Delta t \cdot \begin{pmatrix}v_{n+1}\\ \frac{F_n}{m} \end{pmatrix}.\]
Je kleiner $\Delta t$ gewählt wird, desto genauer ist die Annäherung.
In der Realität kommt es immer zu Verlusten z.B. in Form von Reibung. Das modellieren wir mittels Dämpferelementen zwischen den Massen.
Die Dämpfung ist abhängig von der Geschwindigkeit. Es gilt:
\[ \begin{pmatrix} y_{n+1}\\ v_{n+1} \end{pmatrix} = \begin{pmatrix} y_n\\v_n \end{pmatrix} + \Delta t \cdot \begin{pmatrix}k\cdot v_{n+1}\\ \frac{F_n}{m} \end{pmatrix}\]
mit Dämpfungskonstante $k$.
Quellen
Mark Pearson. Synthesis of organic sounds for electroacoustic music: cellular models and the TAO computer music program. 1996
Sadjad Siddiq. Die rechnerische Nachbildung der Sitar. 2010
DonMorgan and Sanzheng Qiao. Analysis of DampedMass-Spring Systems for Sound Synthesis. 2008