

一句话介绍: 这套程序针对一根矩形截面简支梁,先用解析公式计算前 4 阶固有频率和振型,再施加两个不同位置、不同频率的简谐点载荷,通过模态叠加计算指定测点的时程位移,以及指定时刻整根梁的空间变形。
一根梁受到动态载荷以后,不会只产生一个静态挠度。
载荷会不断随时间变化,梁本身又具有固有频率和固有振型,因此最终响应取决于:
梁有多长、多硬、多重;动载荷施加在哪里;
载荷以多大频率变化;当前观察梁上的哪个位置;考虑哪些振动模态。
这套程序把问题分成两部分:
梁参数 → 固有频率 / 固有振型
再进一步:
两个简谐点载荷 → 前 4 阶模态响应 → 线性叠加 → 测点时程 / 某时刻梁的空间变形
所以它既能回答“这根梁自己容易以什么频率振动”,也能回答“给定动载荷后,它实际会怎样运动”。
1. 当前程序建立了怎样的梁模型?
源码中的梁参数如下:
参数 | 当前值 | 含义 |
|---|---|---|
梁长 L | 1 m | 两端简支 |
截面宽 b | 0.03 m | 矩形截面 |
截面高 h | 0.10 m | 矩形截面 |
弹性模量 E | 2.1×10¹¹ Pa | 材料抗弯刚度参数 |
材料密度 ρ | 7600 kg/m³ | 用于计算单位长度质量 |
矩形截面的惯性矩为:I = b·h³ / 12
代入当前参数:I = 2.5×10⁻⁶ m⁴
因此梁的抗弯刚度为:EI = 5.25×10⁵ N·m²
单位长度质量为:ρbh = 22.8 kg/m
这些量共同决定了梁的固有振动特性。
2. 为什么简支梁的振型是正弦形?
对于均匀、两端简支的 Euler–Bernoulli 梁,模态函数可以写成:
φₙ(x) = sin(nπx / L)
其中:n:模态阶次;x:梁上的位置;L:梁长。
这个表达式天然满足简支边界条件:
x = 0 和 x = L 时,φₙ(x) = 0
也就是说:梁两端的振型位移始终为零,而梁中间可以发生弯曲。
3. 程序怎样计算固有频率?
源码使用的第 n 阶固有圆频率为:
ωₙ = (nπ / L)² × √[EI / (ρbh)]
再换算成普通频率:
fₙ = ωₙ / (2π)
从公式可以直接看出几个物理规律:
EI 越大 → 梁越硬 → 固有频率越高;
ρbh 越大 → 梁越重 → 固有频率越低;
梁长 L 增加 → 固有频率明显下降;
对当前均匀简支梁,频率近似随 n² 增长。
5. 前 4 阶振型分别代表什么?
当前程序绘制的振型本质上是:
sin(πx/L)、sin(2πx/L)、sin(3πx/L)、sin(4πx/L)
它们表示不同阶次下梁的相对变形形状。
第一阶整体只有一个主要弯曲波腹;
第二阶在梁中点出现内部节点;
第三、第四阶继续增加内部节点和空间波动。
需要注意:
这些曲线是归一化的相对模态形状,不是某一真实载荷下的实际位移值。
源码纵轴写成“相对振幅 w/m”,但正弦模态本身是无量纲相对形状,把它理解为“相对振型幅值”更准确。
6. 程序施加了什么动载荷?
固有特性计算以后,程序在梁上施加两个简谐点载荷。
载荷 | 位置 | 幅值 | 圆频率 |
载荷 a | xₐ = 0.3 m | 1000 N | Ωₐ = 2 rad/s |
载荷 b | xᵦ = 0.6 m | 1000 N | Ωᵦ = 5 rad/s |
因此两个载荷可以理解成:
Fₐ(t) = 1000 sin(2t)
Fᵦ(t) = 1000 sin(5t)
两个载荷同时作用在同一根梁上,但位置和激励频率不同。
7. 单个简谐点载荷怎样激发梁的不同模态?
程序对每一个模态分别计算响应。
对于位于 x_f 的一个简谐点载荷,代码对应的第 n 阶响应可以概括为:
wₙ(x,t) = [2F₀ / (ρbh)] × sin(nπx_f/L) × sin(nπx/L) / (ωₙ²-Ω²) × [sin(Ωt) - (Ω/ωₙ)sin(ωₙt)]
其中:
F₀:载荷幅值;Ω:激励圆频率;x_f:载荷作用位置;
x:观察位置;ωₙ:第 n 阶固有圆频率。
这个公式包含三个非常重要的信息。
sin(nπx_f/L)
表示载荷施加位置和第 n 阶振型之间的耦合程度。
如果载荷刚好作用在某阶振型的节点上,这一项可能接近 0,那么该模态就很难被这个载荷激发。
sin(nπx/L)
表示当前观察位置在该阶振型上的幅值。
如果测点正好处于某阶节点,即使该模态实际存在,这个测点也可能几乎测不到。
公式中存在:1 / (ωₙ² - Ω²)
这说明激励频率接近固有频率时,理想无阻尼模型的响应会迅速增大。
这就是结构共振的理论来源之一。
8. 当前程序为什么不会出现明显共振?
当前第一阶固有圆频率已经达到:
ω₁ ≈ 1497.66 rad/s
而两个外部激励只有:Ωₐ = 2 rad/s、Ωᵦ = 5 rad/s
它们都远低于第一阶固有频率。
因此按照当前默认参数:
程序研究的是明显低于结构第一阶共振频率的周期激励,而不是近共振工况。
如果想研究共振附近的响应,可以把激励频率逐渐调高到接近某个 ωₙ。
不过当前模型没有阻尼,因此不能直接把 Ω 精确设置为 ωₙ,否则公式中的分母会趋近 0,理想模型会出现奇异问题。
9. 为什么程序只计算前 4 阶模态?
连续梁理论上存在无限多个振动模态。
实际计算时通常不会把无限阶全部求和,而是进行模态截断:
w(x,t) ≈ Σ(n=1→4) wₙ(x,t)
当前程序只保留前 4 阶。
这样做的意义是:
用少量主要低阶模态近似真实动态响应,显著减少计算量。
对于低频激励,低阶模态通常更重要,所以这种截断比较符合当前 2 rad/s 和 5 rad/s 的低频载荷。
但如果研究高频激励或局部快速变化,仅保留 4 阶可能不够。
10. 两个载荷为什么可以直接相加?
程序先分别计算:a 点载荷响应 ya、b 点载荷响应 yb
最后:y = ya + yb
这利用了线性结构动力学中的叠加原理。
因为当前梁模型是线性的,所以:
载荷 A 单独产生的响应 + 载荷 B 单独产生的响应 = 两个载荷同时作用时的总响应。
这也是整个程序结构非常清楚的原因:先分开算,再直接叠加。
11. 程序可以回答哪两类动态响应问题?
程序先让用户输入:x = 0~1 m
然后计算:t = 0~10 s
范围内该点的位移响应。
因此可以回答:
“梁中点在两个周期载荷共同作用下,10 秒内怎样上下振动?”
例如按照源码公式,如果输入:x = 0.5 m
则 0~10 s 内当前四模态近似响应的最大绝对位移约为:
6.78×10⁻⁵ m ≈ 0.0678 mm
这个数值是按程序默认参数直接计算得到的示例。
程序随后让用户输入:t = 1~10 s
并在:x = 0、0.1、0.2、…、1 m
这些位置计算瞬时位移。
因此可以回答:
“在第 5 秒时,整根梁各个位置的位移分布是什么样?”
这其实是一个瞬时空间变形曲线。
12. 为什么不能只做静力分析?
如果只按静力学计算挠度,相当于默认载荷不随时间变化,也不会考虑结构自身的振动频率。
而当前程序中:
载荷按照 sin(Ωt) 周期变化;
不同模态具有各自的 ωₙ;
响应中同时包含激励频率和结构固有频率。
所以它比简单静力挠度多回答了一个关键问题:
结构的位移怎样随时间持续变化。
13. 为什么不直接求整根梁的一个“总振型”?
固有振型和动态变形不是同一个概念。
固有振型 φₙ(x) 描述:结构如果以第 n 阶固有频率自由振动,会呈现什么空间形状。
动态响应 w(x,t) 描述:在给定外部载荷作用下,某个具体时刻结构实际变成什么形状。
动态响应通常是多个固有振型的叠加。
所以程序先求模态,再利用模态叠加求真实受迫响应,这个流程在理论上是连贯的。
14. 这种方法理论上为什么适合简支梁?
φₙ(x) = sin(nπx/L) 天然满足两端位移为 0。
因此不需要额外做复杂数值约束,就能直接得到简支梁的标准模态形状。
原本梁的位移同时依赖空间 x 和时间 t。
模态展开以后,可以把复杂响应表示成若干振型的叠加,每一阶只需要计算对应的时间响应。
这使问题更容易理解和计算。
公式同时包含:
sin(nπx_f/L) 和 sin(nπx/L)
因此程序能够体现:
载荷放在哪里会不会激发某阶模态;
传感器放在哪里能不能观测到某阶模态。
这对结构振动测试中的激励点和测点布置非常重要。
对于当前低频载荷,前几阶模态通常已经能够描述主要响应趋势。
相比建立复杂有限元模型,解析模态法结构清楚、参数少,非常适合教学和基础振动分析。
15. 这个程序适合用在哪里?
可以直接观察梁长、截面、弹性模量和密度怎样影响固有频率。
给定周期点载荷的位置、幅值和频率,可以快速研究梁上某一点的时程响应。
通过修改 xa、xb 和用户输入的 x,可以观察振型节点怎样影响模态激励和测量结果。
逐渐提高 wa 或 wb,观察激励频率接近某阶固有频率后公式中的响应放大趋势。
程序把“固有频率 → 固有振型 → 单模态响应 → 多模态叠加”完整串在一个文件里,适合理解结构动力学的基本逻辑。
16. 怎么运行?
当前压缩包中 demo.m。
程序会先计算并显示前 4 阶固有频率和振型,然后依次要求输入:
梁上的响应位置 x,提示范围 0~1 m;
希望观察空间响应的时刻 t,提示范围 1~10 s。
18. 当前源码有哪些重要限制?
程序实际上已经预先给定:
载荷位置;载荷幅值;载荷频率。
随后由这些已知载荷正向计算梁的响应。
因此当前代码真正实现的是:已知动载荷下的梁动态响应计算
而不是根据测得响应反推出未知载荷的“反问题载荷识别”。
响应公式中没有阻尼项。
因此程序不能模拟:
阻尼导致的振幅衰减;
有限的共振峰值;
不同阻尼比对动态响应的影响。
在实际结构中,阻尼通常不可忽略。
当前动态响应使用 4 阶模态截断。
对于当前低频激励比较合理,但高频载荷下可能遗漏高阶响应。
这种模型主要考虑弯曲变形。
它没有显式考虑:剪切变形;转动惯量效应;复杂边界柔度;截面变化;材料非线性。
对于细长、均匀简支梁非常适合,但不能直接代表所有梁结构。
19. 一句话看懂这个项目
这是一个 MATLAB 简支梁模态与受迫振动计算程序:它根据矩形梁的 E、I、密度和长度,用 φₙ(x)=sin(nπx/L) 求出前 4 阶振型,用 ωₙ=(nπ/L)²√[EI/(ρbh)] 求出前 4 阶固有频率,再把位于 0.3 m 和 0.6 m、幅值均为 1000 N 的两个简谐点载荷分别投影到前 4 阶模态并线性叠加,从而得到指定位置的 0~10 s 位移时程和指定时刻整根梁的瞬时变形。当前前 4 阶固有频率约为 238.36、953.44、2145.23 和 3813.75 Hz。