Beispiel 1: Schwach gedämpfter Oszillator
Problemstellung
Ein Masse-Feder-System mit \(m = 1\,\text{kg}\) , \(k = 100\,\text{N/m}\) und \(c = 2\,\text{Ns/m}\) wird aus der Ruhelage um \(x_0 = 0.1\,\text{m}\) ausgelenkt und dann losgelassen. Bestimmen Sie die Bewegung des Systems.
Lösung
Zunächst berechnen wir die charakteristischen Parameter: \[
\omega_0 = \sqrt{\frac{k}{m}} = \sqrt{\frac{100}{1}} = 10\,\text{rad/s}
\]
\[
\gamma = \frac{c}{2m} = \frac{2}{2 \cdot 1} = 1\,\text{s}^{-1}
\]
Da \(\gamma = 1 < \omega_0 = 10\) , liegt schwache Dämpfung vor. Die gedämpfte Frequenz ist: \[
\omega_d = \sqrt{\omega_0^2 - \gamma^2} = \sqrt{100 - 1} = \sqrt{99} \approx 9.95\,\text{rad/s}
\]
Die allgemeine Lösung für schwache Dämpfung lautet: \[
x(t) = A e^{-\gamma t} \cos(\omega_d t + \phi)
\]
Mit den Anfangsbedingungen \(x(0) = 0.1\) und \(\dot{x}(0) = 0\) ergibt sich: \[
A = 0.1\,\text{m}, \quad \phi = 0
\]
Die Lösung ist daher: \[
x(t) = 0.1 e^{-t} \cos(9.95t)\,\text{m}
\]
Code
import numpy as np
import matplotlib.pyplot as plt
# Parameter
m = 1.0 # kg
k = 100.0 # N/m
c = 2.0 # Ns/m
omega_0 = np.sqrt(k/ m)
gamma = c/ (2 * m)
omega_d = np.sqrt(omega_0** 2 - gamma** 2 )
# Anfangsbedingungen
x0 = 0.1 # m
v0 = 0.0 # m/s
# Zeit
t = np.linspace(0 , 5 , 1000 )
# Lösung
x = x0 * np.exp(- gamma * t) * np.cos(omega_d * t)
# Einhüllende
envelope_upper = x0 * np.exp(- gamma * t)
envelope_lower = - x0 * np.exp(- gamma * t)
plt.figure(figsize= (7 , 4 ))
plt.plot(t, x, 'b-' , linewidth= 2 , label= '$x(t)$' )
plt.plot(t, envelope_upper, 'r--' , linewidth= 1.5 , alpha= 0.7 , label= 'Einhüllende' )
plt.plot(t, envelope_lower, 'r--' , linewidth= 1.5 , alpha= 0.7 )
plt.axhline(y= 0 , color= 'k' , linestyle= '-' , linewidth= 0.5 )
plt.xlabel('Zeit $t$ (s)' , fontsize= 12 )
plt.ylabel('Auslenkung $x(t)$ (m)' , fontsize= 12 )
plt.title('Schwach gedämpfter Oszillator' , fontsize= 14 )
plt.grid(True , alpha= 0.3 )
plt.legend(fontsize= 11 )
plt.show()
Beispiel 2: Stark gedämpfter Oszillator
Problemstellung
Dasselbe System wie oben, aber mit erhöhter Dämpfung \(c = 30\,\text{Ns/m}\) .
Lösung
Die charakteristischen Parameter sind: \[
\omega_0 = 10\,\text{rad/s}, \quad \gamma = \frac{30}{2} = 15\,\text{s}^{-1}
\]
Da \(\gamma = 15 > \omega_0 = 10\) , liegt starke Dämpfung vor. Die Lösungen der charakteristischen Gleichung sind: \[
\lambda_{1,2} = -\gamma \pm \sqrt{\gamma^2 - \omega_0^2} = -15 \pm \sqrt{225 - 100} = -15 \pm \sqrt{125}
\]
\[
\lambda_1 \approx -3.82, \quad \lambda_2 \approx -26.18
\]
Die allgemeine Lösung lautet: \[
x(t) = C_1 e^{\lambda_1 t} + C_2 e^{\lambda_2 t}
\]
Mit den Anfangsbedingungen \(x(0) = 0.1\) und \(\dot{x}(0) = 0\) ergibt sich nach Einsetzen: \[
x(t) = 0.117 e^{-3.82t} - 0.017 e^{-26.18t}\,\text{m}
\]
Code
import numpy as np
import matplotlib.pyplot as plt
# Parameter für starke Dämpfung
m = 1.0
k = 100.0
c = 30.0
omega_0 = np.sqrt(k/ m)
gamma = c/ (2 * m)
# Charakteristische Werte
lambda1 = - gamma + np.sqrt(gamma** 2 - omega_0** 2 )
lambda2 = - gamma - np.sqrt(gamma** 2 - omega_0** 2 )
# Anfangsbedingungen
x0 = 0.1
v0 = 0.0
# Koeffizienten aus Anfangsbedingungen
C2 = (v0 - lambda1* x0)/ (lambda2 - lambda1)
C1 = x0 - C2
# Zeit
t = np.linspace(0 , 2 , 1000 )
# Lösung
x = C1 * np.exp(lambda1 * t) + C2 * np.exp(lambda2 * t)
plt.figure(figsize= (7 , 4 ))
plt.plot(t, x, 'b-' , linewidth= 2 , label= '$x(t)$' )
plt.axhline(y= 0 , color= 'k' , linestyle= '-' , linewidth= 0.5 )
plt.xlabel('Zeit $t$ (s)' , fontsize= 12 )
plt.ylabel('Auslenkung $x(t)$ (m)' , fontsize= 12 )
plt.title('Stark gedämpfter Oszillator (Kriechfall)' , fontsize= 14 )
plt.grid(True , alpha= 0.3 )
plt.legend(fontsize= 11 )
plt.show()
Beispiel 3: Kritisch gedämpfter Oszillator
Problemstellung
Das System mit kritischer Dämpfung \(c = 2\sqrt{mk} = 2\sqrt{1 \cdot 100} = 20\,\text{Ns/m}\) .
Lösung
Für kritische Dämpfung gilt: \[
\gamma = \frac{20}{2} = 10\,\text{s}^{-1} = \omega_0
\]
Die charakteristische Gleichung hat eine Doppelwurzel \(\lambda = -\gamma = -10\) . Die allgemeine Lösung lautet: \[
x(t) = (C_1 + C_2 t) e^{-\gamma t}
\]
Mit den Anfangsbedingungen \(x(0) = 0.1\) und \(\dot{x}(0) = 0\) ergibt sich: \[
C_1 = 0.1, \quad C_2 = \gamma C_1 = 1
\]
Die Lösung ist: \[
x(t) = (0.1 + t) e^{-10t}\,\text{m}
\]
Code
import numpy as np
import matplotlib.pyplot as plt
# Parameter für kritische Dämpfung
m = 1.0
k = 100.0
c_crit = 2 * np.sqrt(m* k)
omega_0 = np.sqrt(k/ m)
gamma = c_crit/ (2 * m)
# Anfangsbedingungen
x0 = 0.1
v0 = 0.0
C1 = x0
C2 = v0 + gamma* x0
# Zeit
t = np.linspace(0 , 1 , 1000 )
# Lösung
x_crit = (C1 + C2* t) * np.exp(- gamma* t)
plt.figure(figsize= (7 , 4 ))
plt.plot(t, x_crit, 'b-' , linewidth= 2 , label= 'Kritische Dämpfung' )
plt.axhline(y= 0 , color= 'k' , linestyle= '-' , linewidth= 0.5 )
plt.xlabel('Zeit $t$ (s)' , fontsize= 12 )
plt.ylabel('Auslenkung $x(t)$ (m)' , fontsize= 12 )
plt.title('Kritisch gedämpfter Oszillator (aperiodischer Grenzfall)' , fontsize= 14 )
plt.grid(True , alpha= 0.3 )
plt.legend(fontsize= 11 )
plt.show()
Beispiel 4: Vergleich der Dämpfungsregime
Wir vergleichen alle drei Regime mit denselben Anfangsbedingungen.
Code
import numpy as np
import matplotlib.pyplot as plt
m = 1.0
k = 100.0
omega_0 = np.sqrt(k/ m)
# Anfangsbedingungen
x0 = 0.1
v0 = 0.0
t = np.linspace(0 , 2 , 1000 )
# Schwache Dämpfung
c_under = 2.0
gamma_under = c_under/ (2 * m)
omega_d = np.sqrt(omega_0** 2 - gamma_under** 2 )
x_under = x0 * np.exp(- gamma_under* t) * np.cos(omega_d* t)
# Kritische Dämpfung
c_crit = 2 * np.sqrt(m* k)
gamma_crit = c_crit/ (2 * m)
C1_crit = x0
C2_crit = v0 + gamma_crit* x0
x_crit = (C1_crit + C2_crit* t) * np.exp(- gamma_crit* t)
# Starke Dämpfung
c_over = 30.0
gamma_over = c_over/ (2 * m)
lambda1 = - gamma_over + np.sqrt(gamma_over** 2 - omega_0** 2 )
lambda2 = - gamma_over - np.sqrt(gamma_over** 2 - omega_0** 2 )
C2_over = (v0 - lambda1* x0)/ (lambda2 - lambda1)
C1_over = x0 - C2_over
x_over = C1_over * np.exp(lambda1* t) + C2_over * np.exp(lambda2* t)
plt.figure(figsize= (7 , 4 ))
plt.plot(t, x_under, 'b-' , linewidth= 2 , label= 'Schwache Dämpfung ($ \\ gamma < \\ omega_0$)' )
plt.plot(t, x_crit, 'r-' , linewidth= 2 , label= 'Kritische Dämpfung ($ \\ gamma = \\ omega_0$)' )
plt.plot(t, x_over, 'g-' , linewidth= 2 , label= 'Starke Dämpfung ($ \\ gamma > \\ omega_0$)' )
plt.axhline(y= 0 , color= 'k' , linestyle= '-' , linewidth= 0.5 )
plt.xlabel('Zeit $t$ (s)' , fontsize= 12 )
plt.ylabel('Auslenkung $x(t)$ (m)' , fontsize= 12 )
plt.title('Vergleich der Dämpfungsregime' , fontsize= 14 )
plt.grid(True , alpha= 0.3 )
plt.legend(fontsize= 10 )
plt.show()
Beispiel 5: Resonanzkurve
Wir betrachten einen schwach gedämpften Oszillator unter harmonischer Anregung und untersuchen die Amplitude als Funktion der Anregungsfrequenz.
Parameter
\[
m = 1\,\text{kg}, \quad k = 100\,\text{N/m}, \quad c = 2\,\text{Ns/m}, \quad F_0 = 10\,\text{N}
\]
Die Amplitude der stationären Schwingung ist: \[
A(\omega) = \frac{F_0/m}{\sqrt{(\omega_0^2 - \omega^2)^2 + (2\gamma\omega)^2}}
\]
Code
import numpy as np
import matplotlib.pyplot as plt
m = 1.0
k = 100.0
c = 2.0
F0 = 10.0
omega_0 = np.sqrt(k/ m)
gamma = c/ (2 * m)
# Frequenzbereich
omega = np.linspace(0.1 , 20 , 1000 )
# Amplitude
A = (F0/ m) / np.sqrt((omega_0** 2 - omega** 2 )** 2 + (2 * gamma* omega)** 2 )
# Resonanzfrequenz
omega_res = np.sqrt(omega_0** 2 - 2 * gamma** 2 )
A_res = (F0/ m) / np.sqrt((omega_0** 2 - omega_res** 2 )** 2 + (2 * gamma* omega_res)** 2 )
plt.figure(figsize= (7 , 4 ))
plt.plot(omega, A, 'b-' , linewidth= 2 )
plt.axvline(x= omega_0, color= 'r' , linestyle= '--' , linewidth= 1.5 , alpha= 0.7 , label= f'Eigenfrequenz $ \\ omega_0 = { omega_0:.1f} $ rad/s' )
plt.axvline(x= omega_res, color= 'g' , linestyle= '--' , linewidth= 1.5 , alpha= 0.7 , label= f'Resonanzfrequenz $ \\ omega_ {{ res }} = { omega_res:.1f} $ rad/s' )
plt.plot(omega_res, A_res, 'go' , markersize= 8 )
plt.xlabel('Anregungsfrequenz $ \\ omega$ (rad/s)' , fontsize= 12 )
plt.ylabel('Amplitude $A( \\ omega)$ (m)' , fontsize= 12 )
plt.title('Resonanzkurve des gedämpften Oszillators' , fontsize= 14 )
plt.grid(True , alpha= 0.3 )
plt.legend(fontsize= 10 )
plt.xlim([0 , 20 ])
plt.show()
Die Resonanzkurve zeigt das Maximum der Amplitude bei der Resonanzfrequenz. Bei schwacher Dämpfung liegt diese nahe der Eigenfrequenz. Je stärker die Dämpfung, desto breiter und flacher wird das Resonanzmaximum.