首页/文章/ 详情

从一根梁到一块板:矩形薄板的理论振动模态是怎样计算出来的?

14天前浏览383
梁的振型主要沿一个方向展开,而板的振型要同时描述两个方向。从悬臂梁走向矩形薄板,本质上是从一维连续体振动进入二维连续体振动。
矩形薄板尺寸与坐标系

矩形薄板尺寸与坐标系

1. 为什么学完梁之后,下一步应该看板?

悬臂梁是理解结构模态最合适的起点。它的横向位移通常写成:
也就是说,梁的空间变化主要由一个坐标描述。
矩形薄板则不同。板上的每一点都由两个坐标确定,因此横向位移写成:
这看起来只是多了一个变量,但它带来了三个重要变化:
  1. 振型不再只是沿一条线起伏,而是在一个平面内形成波峰、波谷和节线;
  2. 模态编号通常需要两个整数;
  3. 结构的长宽比、边界条件和几何对称性会显著影响模态排序。
因此,板振动是连接梁理论、壳体理论、有限元分析和实验模态分析的重要中间环节。

2. 本文分析什么样的板?

本文选择最适合教学入门的模型:
  • 均匀、各向同性矩形薄板;
  • 长度为,宽度为,厚度为;
  • 四条边均为简支边界;
  • 只考虑小挠度线性振动;
  • 采用 Kirchhoff–Love 经典薄板理论;
  • 忽略横向剪切变形和转动惯量。
算例参数取为:

参数

本文分析什么样的板;">数值

长度

300 mm

宽度

200 mm

厚度

1 mm

弹性模量

70 GPa

密度

2700 kg/m³

泊松比

0.33


这相当于一块较薄的铝合金矩形板。
适用性:当板不够薄、频率较高或横向剪切效应不可忽略时,应改用 Mindlin–Reissner 板理论。本文的目标是建立基础概念,因此采用经典薄板模型。

3. 薄板为什么能够弯曲?

梁有抗弯刚度,板也有对应的弯曲刚度。对于均匀各向同性薄板,其弯曲刚度为:
其中:
  • 为弹性模量;
  • 为板厚;
  • 为泊松比;
  • 的单位为 N·m。
这一公式中最值得注意的是:
板厚增加一倍,弯曲刚度将增加到原来的八倍。
但固有频率并不会增加八倍,因为质量也会增加。对于几何形状不变的薄板,可以粗略看出:
也就是说,在经典薄板理论下,板的弯曲固有频率通常与厚度近似成正比。

4. 矩形薄板的自由振动控制方程

Kirchhoff–Love 薄板的横向自由振动方程为:
其中双调和算子为:
与梁方程相比,板方程多出了关于的导数以及、的耦合项。
这说明板上任意一点的弯曲状态,不只受到一个方向曲率的影响。

5. 将时间和空间分开

对线性无阻尼自由振动,可以假设位移由空间函数和时间函数相乘得到:
对于某一个简谐模态,时间项可写为:
因此:
其中:
  • 描述振型;
  • 是固有圆频率;
  • 是初相位。
模态分析要解决的核心问题就是:
找到哪些空间函数可以在不改变自身形状的情况下做简谐振动,以及每个振型对应多高的固有频率。

6. 四边简支边界条件

矩形板区域为:
理想简支边界不只要求边界处的横向位移为零,还要求边界法向弯矩为零。
在和两条边上:
在和两条边上:
正弦函数在四条边上天然满足位移为零;代入后也满足相应的弯矩条件,因此可以构造出四边简支矩形板的振型:
其中:
这两个整数就是矩形板的模态编号。

7. 模态编号 到底表示什么?

振型:
可以理解为两个方向振型的乘积。
  • 描述沿方向的半波数量;
  • 描述沿方向的半波数量。
内部节线的位置满足振幅为零。
沿方向的内部节线为:
沿方向的内部节线为:
因此:
  • 没有内部节线;
  • 有一条平行于轴的内部节线;
  • 有一条平行于轴的内部节线;
  • 有两条相互垂直的内部节线;
  • 有两条向分区节线和一条向分区节线。

8. 第一阶振型

简支矩形板振型11
第一阶振型中,整块板只有一个主要波腹。
四条边位移为零,板中心附近振幅最大。整个板面在同一时刻基本同相运动,因此这是最容易被均匀分布载荷或中心附近点激励激发的模态之一。
需要注意:图中的正、负只表示相位相反。模态振型本身可以整体乘以,物理意义不变。

9. 振型:长度方向出现一条节线

    
简支矩形板振型21
模态在处形成一条内部节线。
节线两侧的板面反相运动:
  • 一侧向上时;
  • 另一侧向下;
  • 中间节线处理论位移始终为零。
因此,如果传感器恰好安装在节线上,该模态在该测点可能几乎不可见。

10. 振型:宽度方向出现一条节线


简支矩形板振型12
与的外观相似,但两者的节线方向不同。
对于本文的矩形板:
  • 长度方向较长;
  • 宽度方向较短;
  • 在短边方向增加半波通常需要更高空间曲率;
  • 因而的固有频率高于。
这说明模态编号的大小不能直接代表频率排序。频率同时取决于、和长宽比。

11. 振型:两个方向都有节线

简支矩形板振型22
模态将板面分成四个主要区域,相邻区域反相运动。
此时板的空间变化明显比一阶模态复杂,局部曲率增大,因此固有频率进一步提高。

12. 更高阶振型: 与

简支矩形板振型31
简支矩形板振型13
与都包含三个半波,但半波排列方向不同。
对于非正方形板,两者通常具有不同的固有频率。短边方向上的高阶变化会带来更大的曲率,因此频率更高。
这也是为什么仅看振型的波腹数量还不够,还要结合板的实际尺寸。

13. 节线图比三维振型图更适合观察什么?

振型32节线图
振型32节线图
三维振型图适合观察整体起伏,二维等值图更适合判断:
  • 节线的位置;
  • 波腹的分区;
  • 相邻区域的相位关系;
  • 激励点和测点是否靠近节线;
  • 扫描测振网格是否足以分辨高阶模态。
在图中,振幅为零的线就是节线。对于理想简支矩形板,节线是平行于边界的直线。
实际结构中,如果存在局部质量、开孔、加强筋、边界不对称或材料不均匀,节线可能弯曲、偏移甚至发生局部畸变。

14. 固有频率公式是怎样得到的?

将振型函数代入薄板控制方程,可得到:
因此特征方程为:
解得固有圆频率:
对应的固有频率为:
也可以合并写成:

15. 从频率公式中可以直接读出什么?

15.1 尺寸越大,频率越低

频率中包含:
因此长度或宽度增大,固有频率下降。
如果板的两个平面尺寸同时按比例放大,而厚度不变,弯曲模态频率大致按尺寸平方的倒数下降。

15.2 厚度越大,频率越高

由于:
而面密度为:
所以:
在经典薄板模型下,固有频率与板厚近似成正比。

15.3 材料越硬,频率通常越高

频率主要受比刚度控制:
不能只比较弹性模量,也不能只比较密度。

16. 本算例前12阶固有频率

本算例前12阶固有频率/顺序

模态编号

固有频率 / Hz

1

88.32

2

169.85

3

271.76

4

305.73

5

353.29

6

489.17

7

495.97

8

577.50

9

659.03

10

679.41

11

740.55

12

794.91


前12阶理论固有频率
前12阶理论固有频率
这张图说明了一个容易被忽略的问题:
模态编号是空间波数编号,模态阶次则是按固有频率排序后的顺序,两者并不等价。
例如,某个模态可能比更早出现,也可能更晚出现,具体取决于板的长宽比。

17. 为什么正方形板会出现重根模态?

对于正方形板:
频率公式变为:
因此交换和不会改变频率:
例如:
正方形板重根模态
正方形板重根模态
这类具有相同理论固有频率的模态称为重根模态或简并模态。
实际试验中,由于:
  • 边界不完全对称;
  • 材料参数存在偏差;
  • 板厚不均匀;
  • 传感器或激励器附加质量;
  • 加工误差;
  • 安装预紧力不同;
理论上的一个重根频率往往会分裂成两个非常接近的频率峰。

18. 模态振型为什么可以整体乘任意常数?

振型函数满足线性齐次特征方程。
如果是一个振型,那么:
同样是这个模态的振型,其中可以是任意非零常数。
因此理论模态图通常进行归一化,例如令:
模态振型本身只描述相对空间分布,不能直接给出结构在实际激励下会振动多少毫米。
实际振幅还取决于:
  • 激励幅值;
  • 激励位置;
  • 激励方向;
  • 阻尼;
  • 频率距离;
  • 模态参与因子;
  • 测点位置。

19. 固有模态与ODS不能混为一谈

固有模态是结构自身特征值问题的解。
运行变形形态 ODS 则是在某个实际激励频率下,结构各测点响应的空间分布。
当激励频率接近某一阶固有频率,并且该模态被充分激发时,ODS 可能与该阶模态很相似。
但在一般情况下,ODS 可能是多个模态响应的叠加:
因此:
  • 一张振动云图不一定就是模态;
  • 一个共振峰附近也可能同时存在多个模态贡献;
  • 仅凭动画外观不能严格完成模态识别。

20. MATLAB一键运行代码

将下面代码保存为:
rectangular_plate_modes.m
直接在 MATLAB 中运行即可。
%% rectangular_plate_modes.m%四边简支矩形薄板:理论固有频率与振型%直接运行本脚本即可生成频率表和若干阶振型图clear;clc;closeall;%% 1.几何与材料参数a=0.300;%长度, mb=0.200;%宽度, mh=0.001;%厚度, mE=70e9;%弹性模量, Parho=2700;%密度, kg/m^3nu=0.33;%泊松比%薄板弯曲刚度D=E*h^3/(12*(1-nu^2));%% 2.计算前若干阶固有频率Mmax=5;Nmax=5;modeData= [];form=1:Mmaxforn=1:Nmaxomega_mn=pi^2*sqrt(D/(rho*h))*((m/a)^2+ (n/b)^2);f_mn=omega_mn/(2*pi);modeData= [modeData;m,n,f_mn];%#okendendmodeData=sortrows(modeData,3);disp('前12阶理论模态:');disp(array2table(modeData(1:12,:),...'VariableNames', {'m','n','Frequency_Hz'}));%% 3.建立空间网格Nx=121;Ny=101;x=linspace(0,a,Nx);y=linspace(0,b,Ny);[X,Y] =meshgrid(x,y);%% 4.绘制指定振型selectedModes= [11;21;12;22;31;13];fork=1:size(selectedModes,1)m=selectedModes(k,1);n=selectedModes(k,2);W=sin(m*pi*X/a).*sin(n*pi*Y/b);omega_mn=pi^2*sqrt(D/(rho*h))*((m/a)^2+ (n/b)^2);f_mn=omega_mn/(2*pi);figure('Color','w');surf(X*1000,Y*1000,W,'EdgeColor','none');xlabel('x / mm');ylabel('y / mm');zlabel('归一化振幅');title(sprintf('简支矩形板振型 (%d,%d), f = %.1f Hz',m,n,f_mn));axistight;view(135,28);gridon;colorbar;end%% 5.绘制节线图:示例(3,2)m=3;n=2;W=sin(m*pi*X/a).*sin(n*pi*Y/b);figure('Color','w');contourf(X*1000,Y*1000,W,31,'LineColor','none');holdon;contour(X*1000,Y*1000,W, [00],'k','LineWidth',2);holdoff;xlabel('x / mm');ylabel('y / mm');title('振型 (3,2):黑线为内部节线');axisequaltight;colorbar;gridon;%% 6.绘制前12阶频率排序figure('Color','w');bar(modeData(1:12,3));xticks(1:12);xticklabels(compose('(%d,%d)',modeData(1:12,1),modeData(1:12,2)));xtickangle(45);xlabel('模态编号 (m,n)');ylabel('固有频率 / Hz');title('前12阶理论固有频率');gridon;%% 7.可选:简单振型动画m=2;n=1;W=sin(m*pi*X/a).*sin(n*pi*Y/b);figure('Color','w');forphase=linspace(0,2*pi,120)Wt=W*cos(phase);surf(X*1000,Y*1000,Wt,'EdgeColor','none');xlabel('x / mm');ylabel('y / mm');zlabel('归一化振幅');title(sprintf('振型 (%d,%d) 动画',m,n));axis([0a*10000b*1000-11]);view(135,28);gridon;drawnow;end

21. Python一键运行代码

运行环境需要:
pip install numpy matplotlib
将下面代码保存为:
rectangular_plate_modes.py
然后运行:
python rectangular_plate_modes.py
完整代码如下:

rectangular_plate_modes.py#四边简支矩形薄板:理论固有频率与振型#依赖:numpy、matplotlib#运行:python rectangular_plate_modes.pyfrom pathlib import Pathimport numpy as npimport matplotlib.pyplot as plt# 1.几何与材料参数a =0.300# mb =0.200# mh =0.001# mE =70e9# Parho =2700.0# kg/m^3nu =0.33D = E * h3/ (12 (1- nu2))def natural_frequency(m: int, n: int) ->float:"""返回(m,n)阶模态的固有频率,单位Hz。"""omega = np.pi**2 np.sqrt(D / (rho * h)) * ((m / a)**2+ (n / b)*2)return omega / (2 np.pi)# 2.计算并排序前若干阶频率mode_data = []for m inrange(1, 6):for n inrange(1, 6):mode_data.append((m, n, natural_frequency(m, n)))mode_data.sort(key=lambda item: item[2])print("前12阶理论模态:")print("Order(m,n)Frequency/Hz")for order, (m, n, freq) inenumerate(mode_data[:12], start=1):print(f"{order:>5d}({m},{n}){freq:>12.3f}")# 3.建立空间网格x = np.linspace(0, a, 121)y = np.linspace(0, b, 101)X, Y = np.meshgrid(x, y)output_dir = Path("plate_mode_figures")output_dir.mkdir(exist_ok=True)# 4.绘制指定振型selected_modes = [(1,1), (2,1), (1,2), (2,2), (3,1), (1,3)]for m, n in selected_modes:W = np.sin(m * np.pi * X / a) * np.sin(n * np.pi * Y / b)freq = natural_frequency(m, n)fig = plt.figure(figsize=(8, 5.8))ax = fig.add_subplot(111, projection="3d")ax.plot_surface(X *1000,Y *1000,W,rstride=3,cstride=3,linewidth=0.25,antialiased=True,)ax.set_xlabel("x / mm")ax.set_ylabel("y / mm")ax.set_zlabel("Normalized amplitude")ax.set_title(f"Mode ({m},{n}), f = {freq:.1f} Hz")ax.view_init(elev=28, azim=-135)fig.tight_layout()fig.savefig(output_dir /f"mode_{m}{n}_surface.png",dpi=220,bbox_inches="tight",)# 5.节线图m, n =3, 2W = np.sin(m * np.pi * X / a) * np.sin(n * np.pi * Y / b)fig = plt.figure(figsize=(7.6, 5.2))ax = fig.add_subplot(111)filled = ax.contourf(X *1000, Y *1000, W, levels=31)ax.contour(X *1000, Y *1000, W, levels=[0], linewidths=2)fig.colorbar(filled, ax=ax, label="Normalized amplitude")ax.set_aspect("equal", adjustable="box")ax.set_xlabel("x / mm")ax.set_ylabel("y / mm")ax.set_title("Mode (3,2): nodal lines and antinodes")fig.tight_layout()fig.savefig(output_dir /"mode_32_nodal_lines.png",dpi=220,bbox_inches="tight",)# 6.前12阶频率排序labels = [f"({m},{n})"for m, n, _ in mode_data[:12]]frequencies = [freq for _, _, freq in mode_data[:12]]fig = plt.figure(figsize=(9, 5.5))ax = fig.add_subplot(111)ax.bar(labels, frequencies)ax.set_xlabel("Mode index (m,n)")ax.set_ylabel("Natural frequency / Hz")ax.set_title("First 12 natural frequencies")ax.tick_params(axis="x", rotation=45)ax.grid(True, axis="y")fig.tight_layout()fig.savefig(output_dir /"first_12_frequencies.png",dpi=220,bbox_inches="tight",)plt.show()

22. 如何修改代码做自己的板?

只需要修改以下六个参数:
a=0.300;b=0.200;h=0.001;E=70e9;rho=2700;nu=0.33;
或 Python 中对应的参数:
a =0.300b =0.200h =0.001E =70e9rho =2700.0nu =0.33
建议依次尝试以下变化。

23. 理论结果如何与有限元结果核对?

可以在有限元软件中建立同尺寸、同材料参数的薄板模型,并采用四边简支约束。
核对时至少检查以下内容:
  1. 单位制是否一致;
  2. 材料密度是否输入;
  3. 厚度是否正确;
  4. 边界条件是否真的等效于简支;
  5. 单元类型是否适合薄板弯曲;
  6. 网格是否收敛;
  7. 模态是否按频率正确配对;
  8. 重根模态是否发生线性组合。
需要特别注意,有限元软件中的简支实现并不总是等同于理论中的理想简支边界。
如果约束了过多自由度,模型可能更接近固支;如果约束不足,则可能出现刚体模态。

24. 理论结果如何与实验模态结果核对?

实验中建议至少测量:
  • 激励力;
  • 多点响应;
  • 频率响应函数;
  • 振型幅值;
  • 振型相位。
对于矩形板,可以使用:
  • 加速度计阵列;
  • 扫描式激光多普勒测振仪;
  • 高速相机;
  • 数字图像相关;
  • 频闪相位扫描;
  • 激光位移传感器阵列。
测点布置需要避免只在节线上测量。
高阶模态的空间波长更短,因此测量网格必须足够密。否则可能出现空间混叠,将高阶振型误判成低阶振型。

25. 本文模型没有考虑哪些因素?

本文是理想解析模型,没有考虑:
  • 材料阻尼;
  • 空气阻尼;
  • 边界柔度;
  • 预应力;
  • 大挠度非线性;
  • 横向剪切变形;
  • 转动惯量;
  • 材料各向异性;
  • 局部附加质量;
  • 加强筋和孔洞;
  • 板壳耦合;
  • 声固耦合。
因此,理论频率与实际试验结果存在一定偏差是正常的。
理论模型的主要价值不是保证每个频率与实验完全一致,而是建立:
  • 参数变化与频率变化之间的关系;
  • 模态编号与节线之间的关系;
  • 边界条件与振型之间的关系;
  • 解析解、有限元和实验结果之间的对应框架。

26. 从梁到板,真正增加了什么?

从悬臂梁进入矩形板,增加的不只是一个空间坐标。
更重要的是,读者开始接触以下概念:
  • 二维模态;
  • 双下标模态编号;
  • 节线;
  • 模态重根;
  • 模态分裂;
  • 空间采样;
  • 测点与节线的关系;
  • 模态排序与几何长宽比的关系。
这些内容将直接通向圆形板、薄壁壳体、复杂组合结构以及有限元模态分析。

27. 小结

四边简支矩形薄板的理论振型为:
其固有频率为:
其中:
可以将核心规律概括为:
  1. 板的振型由两个方向共同决定;
  2. 分别表示两个方向上的半波数量;
  3. 模态内部的零位移线称为节线;
  4. 板越厚、材料比刚度越高,固有频率通常越高;
  5. 平面尺寸越大,固有频率通常越低;
  6. 非正方形板的与通常频率不同;
  7. 正方形板容易出现重根模态;
  8. 理论振型只描述相对空间形状,不代表实际振幅;
  9. ODS 与固有模态需要严格区分;
  10. 理论、有限元和实验结果应通过频率与振型共同核对。

来源:兵哥讲力学
振动非线性MATLABpythonUM理论CST材料控制Alias试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-08-11
最近编辑:14天前
兵心依旧
博士 兵哥出品,必是精品
获赞 81粉丝 521文章 51课程 3
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈