### 用MATLAB进行单自由度系统机械振动试验
#### 概述
本文主要探讨了如何使用MATLAB软件对单自由度阻尼系统的受迫机械振动特性进行仿真试验。通过建立数学模型,不仅可以进行定量分析,还能获得振动方程的解析解,并能够直观地展示振动方程和幅频特性的几何描述。
#### 单自由度阻尼系统的数学模型
单自由度阻尼系统的振动方程可以表示为:
\[ m\ddot{z} + c\dot{z} + k z = H \sin(\omega t) \]
化简后得到:
\[ \ddot{z} + 2\xi\omega_n\dot{z} + \omega_n^2 z = H \sin(\omega t) \]
其中,\(m\) 是质量,\(c\) 是阻尼系数,\(k\) 是弹簧刚度,\(\omega_n = \sqrt{\frac{k}{m}}\) 是无阻尼自然频率,\(\xi = \frac{c}{2\sqrt{mk}}\) 是阻尼比,\(H\) 是激振力的幅度,\(\omega\) 是激振力的频率。振动方程的解可以表示为:
\[ z(t) = A e^{-\xi\omega_nt}\sin(\omega_d t + \phi) + B \sin(\omega t - \psi) \]
这里,\(A\) 和 \(B\) 分别代表自由振动和受迫振动的幅值,\(\phi\) 和 \(\psi\) 是相应的相位角,\(\omega_d\) 是阻尼自由振动频率,定义为 \(\omega_d = \omega_n \sqrt{1-\xi^2}\)。
#### MATLAB仿真试验
在不同的阻尼条件和激振力频率下,受迫振动的幅频特性会有所不同。为了更直观地理解这一现象,我们可以通过MATLAB进行仿真试验。
##### 示例分析
**案例1**: 当 \(\omega = 0.02\)(远小于 \(\omega_n\))时,系统的振动方程变为:
\[ \ddot{z} + 0.4\dot{z} + z = \sin(0.02t) \]
通过MATLAB求解得到:
\[ z(t) = 1.06e^{-0.002t}\sin(0.98t + 0.079) + \sin(0.02t - 0.008) \]
这个解包括两部分:第一部分是衰减振动(瞬态解),第二部分是受迫振动(稳态解)。
MATLAB程序设计如下:
```matlab
clear; wn = 1; w = 0.02; tf = 600; x0 = 0; v0 = 1; zeta = 0.2;
wd = wn * sqrt(1 - zeta^2);
b = sqrt(1 / ((wn^2 - w^2)^2 + (2*zeta*wn + w)^2));
pi2 = atan2(2*zeta*wn + w, wn^2 - w^2);
temp1 = wd + (x0 + b*sin(pi2));
temp2 = v0 - b*w*cos(pi2) + zeta*wn + (x0 - b*sin(pi2));
pil = atan2(temp1, temp2);
a = (x0 + b*sin(pi2)) / sin(pil);
t = 0:tf/1000:tf;
X = a*exp(-zeta*wn*t) + sin(wd*t + pil) + b*sin(w*t - pi2);
plot(t, X)
xlabel('t');
ylabel('X');
```
执行上述程序后,可以看到计算结果与振动曲线如图所示。
**案例2**: 当 \(\omega\) 取其他值时,例如 \(\omega = 0.5\) 或者 \(\omega = 1.5\),只需要调整MATLAB程序中的相关变量即可得到新的仿真结果。
通过上述案例可以看出,使用MATLAB进行仿真试验能够有效地帮助理解和分析单自由度阻尼系统的受迫振动特性,尤其是对于不同参数下的幅频特性变化具有非常直观的展示效果。这种方法不仅减少了计算量,还提高了准确性,对于实际工程应用具有重要的参考价值。