无限自由度体系的频率计算涉及偏微分方程及超越特征方程的求解,复杂且困难。工程应用中往往只关注若干个低阶自振频率。能量法和集中质量法是两种常用的计算频率的近似法。
能量法计算频率的依据是能量守恒原理。弹性结构发生无阻尼自由振动时具有两种形式的内在能量:一是结构因变形而引起的应变能 ;二是结构中的质量因发生运动而具有的动能 。这两种能量的总和在任一时刻是保持不变的,即
在结构往复振动过程中,当位移达到最大时其速度为零,也即当应变能达到最大值
以简支梁为例,设自由振动时梁的变形曲线为
式中
梁因弯曲变形引起的任一截面的曲率为
于是梁在任一时刻的弯曲应变能可写为
再将式(3)对时间求偏导,可得梁运动的速度为
由此得到梁的动能
结合(2)(5)(7)可得
如果除了分布质量,梁上还有集中质量
上述两式就是能量法近似求自振频率的计算式,这一计算频率的方法又称为瑞利法。计算时,关键一步是设定位移幅值函数
高斯积分的基本思想是:在积分区间内,精心选择一些非等距的积分点(高斯点),用这些点上的函数值乘以相应的权重系数后求和,来近似积分值。
对于一个在标准区间
其中:
重要特性:对于
根据被积函数
常用高斯点与权重表(
| | ||
|---|---|---|
| | | |
| | |
根据式(9),用高斯积分法计算积分
的步骤:
✅1 坐标变换
将积分区间从物理坐标
于是位移积分变为:
✅2定义被积函数
令:
✅3 计算积分近似值
利用公式:
一根简支梁,长
import numpy as np
def gauss_beam_frequency(L, EI, rhoA, n=3):
# 高斯积分点
if n == 2:
xi = np.array([-1/np.sqrt(3), 1/np.sqrt(3)])
w = np.array([1.0, 1.0])
elif n == 3:
xi = np.array([-np.sqrt(3/5), 0.0, np.sqrt(3/5)])
w = np.array([5/9, 8/9, 5/9])
else:
raise ValueError("n=2 or 3 only")
# 变换 x(xi) = L/2 (xi + 1)
# phi(x) = sin(pi x / L)
# phi''(x) = -(pi/L)^2 sin(pi x / L)
pi_val = np.pi
stiffness_integral = 0.0
mass_integral = 0.0
for i in range(n):
x = L/2 * (xi[i] + 1)
phi = np.sin(pi_val * x / L)
phi_xx = -(pi_val / L)**2 * phi
# dx/dxi = L/2
stiffness_integral += w[i] * (phi_xx**2) * (L/2)
mass_integral += w[i] * (phi**2) * (L/2)
K = EI * stiffness_integral
M = rhoA * mass_integral
omega1 = np.sqrt(K / M)
return omega1
# Example
L = 1.0
EI = 1.0
rhoA = 1.0
omega = gauss_beam_frequency(L, EI, rhoA, n=3)
print("omega1 =", omega)
print("exact =", np.pi**2 / L**2 * np.sqrt(EI/(rhoA)))