恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
深沟球轴承动力学建模:从赫兹接触到Matlab仿真实战
首页
资讯中心
/
深沟球轴承动力学建模:从赫兹接触到Matlab仿真实战
深沟球轴承动力学建模:从赫兹接触到Matlab仿真实战
发布时间:2026/10/14 5:53:14
深沟球轴承是全机械行业最常见的滚动轴承形式但很多人在学轴承动力学建模时一上来就啃论文研究各种坐标系变换和复杂的弹性流体润滑方程结果没几天就劝退了。实际上用Matlab搭建一个能跑出振动信号、能算通过保持架故障频率的深沟球轴承动力学模型并不需要那么高的门槛。本文就从一个初学者的视角把深沟球轴承动力学建模这件事彻底讲清楚——需要什么理论基础、如何从零搭建微分方程、怎么选求解器、怎么验证结果全部按一套可以直接抄作业的逻辑走一遍。这篇文章写给谁呢机械工程、车辆工程、自动化方向的在校学生刚入门设备故障诊断领域的工程师以及所有想把轴承振动这东西“亲手算出来”而不是只看理论公式的人。整个模型不追求全球最精密但追求逻辑完整从赫兹接触刚度到变刚度振动、再到频谱分析一环扣一环跑完你会有一种“原来轴承受力变化是这么回事”的通透感。1. 项目认知与整体设计思路1.1 为什么要从深沟球轴承开始轴承动力学建模这件事很多人踩过最大的坑就是“选错起点”。有人上来就研究圆柱滚子轴承结果接触线长度的积分公式把自己绕晕了有人想直接上角接触球轴承结果还要考虑轴向预紧和接触角动态变化。相比之下深沟球轴承是最适合入门的对象原因有三点。第一接触形式是最简单的点接触。球与滚道之间发生的是赫兹点接触载荷和变形的关系是清晰的三分之二幂次法则也就是接触变形的三次方与接触载荷的平方成正比关系公式简单物理意义直白。第二在纯径向载荷且忽略轴向窜动的假设下可以把模型降维成一个二维平面问题内圈中心的运动只需要描述水平和竖直两个方向的位移就足够了。第三深沟球轴承的故障特征频率理论非常成熟建模完成后有明确的校验标准你算出来的频谱对不对一对照理论公式就知道。我自己带过的很多初学者基本都是用深沟球轴承模型完成第一次“从公式到代码”的完整闭环。一旦把这个模型吃透再看圆柱滚子、角接触轴承、甚至更复杂的滑动轴承模型思路基本是沿袭的只是接触几何计算更复杂而已。1.2 建模需要储备哪些知识在动手写代码之前先盘一盘你需要具备的基础知识避免中途卡壳。这里我不是说要你把弹性力学学完才能动手恰恰相反真正动手所需的工具箱很精简。第一个是赫兹接触理论的基本直觉。你不需要会推导完整的椭圆积分但必须知道一件事球压在一个平面上压力和变形不是线性关系而是变形越大压力增长越剧烈。这个非线性关系正是轴承系统产生丰富振动特征的根源。第二个是牛顿第二定律和常微分方程。整个模型的核心就是几组二阶常微分方程每一组描述内圈在一个方向上的力平衡。如果你熟悉ode45这种求解器的用法那就已经赢了一半。第三个是基础的信号处理知识。模型跑完输出的是位移或加速度时间序列你需要用快速傅里叶变换把它变到频域然后对照理论特征频率验证是否有峰值。这里只需要知道采样频率、频率分辨率、混叠这几个基本概念就能过关。第四个是Matlab的基本语法包括函数文件、结构体、for循环和绘图命令。这些如果还不熟边查文档边写完全来得及。所以说白了真正的知识门槛在“物理直觉”和“微分方程概念”数学细节完全可以先放着用代码实践去倒逼理解。2. 核心理论基础与参数计算2.1 赫兹接触刚度模型的心脏深沟球轴承建模里最核心的物理关系就是钢球和滚道之间的接触力如何随接触变形变化。根据赫兹接触理论对于球与内圈滚道、球与外圈滚道的点接触接触载荷与接触变形之间满足Q K · δ^(3/2)其中Q是接触载荷δ是接触变形K是接触刚度系数。指数3/2看上去不起眼但它意味着一切都是非线性的滚动体越多、变形越大承载力分布越不均匀系统刚度也会周期性变化。接触刚度K的计算公式比较长依赖于接触体材料参数弹性模量、泊松比以及接触点处的曲率半径。对于我们最常见的轴承钢材料弹性模量E取208 GPa左右泊松比ν取0.3此时K的计算可以经过标准赫兹公式化简。实际编写代码时可以按以下逻辑处理计算钢球与内圈滚道接触时的等效曲率半径这需要知道钢球直径和沟曲率半径计算钢球与外圈滚道接触时的等效曲率半径用赫兹接触系数表或者经验公式插值得到椭圆积分参数代入赫兹刚度表达式得到内圈接触刚度Ki和外圈接触刚度Ko。如果觉得查曲线麻烦很多论文里给出了一个简化经验估计对于典型的深沟球轴承尺寸等效接触刚度K大约在1.2e10 N/m^1.5左右。我这里不推荐瞎猜还是建议按真实几何参数计算一遍顺便完成对赫兹理论的理解。补充一个很重要的点钢球和滚道之间只能承受正压力不能承受拉力。这意味着在模型中当你算出的接触变形为负数时该滚动体的接触力直接取零而不是把负数代进去继续计算。很多初学者在这个地方翻车导致模型跑出明显不符合物理的负力振荡。2.2 载荷分布游隙与承载区的奥秘实际轴承滚动体并不是全部同时参与承载的。由于径向游隙的存在载荷只分布在一个有限的角范围内这个范围叫承载区。理解这一点对后续动力学方程中“哪些滚动体提供接触力”的判断至关重要。设轴承径向游隙为Gr内圈中心相对外圈中心的径向位移为δr那么在第j个滚动体所处的角位置Ψj处该滚动体总的接触变形可以写成δ_j δr · cos(Ψj) - Gr/2只有当δ_j 0时这个滚动体才与内外滚道发生接触并传递载荷δ_j ≤ 0时滚动体与滚道分离接触力为零。于是第j个滚动体的接触力为Q_j K · [δ_j]₊^(3/2)其中[x]₊表示取x和0中的较大者这就是单边约束的数学表达。如果滚动体个数为Z径向载荷为Fr内圈达到力平衡时满足Fr Σ Q_j · cos(Ψj)关键在于Q_j本身又依赖于δr所以这是一个隐含的非线性代数方程。实际编程时如果在纯静力学分析中需要先迭代求解δr但如果在动力学仿真中δr是通过运动方程积分得到的不需要额外迭代它会随内圈运动自然演化出来。这一点的理解能帮初学者理清静力学分析和动力学分析之间的区别。2.3 运动学关系特征频率从哪来要想验证模型的正确性必须知道理论特征频率。典型的深沟球轴承运动学公式基于一个假设滚动体在滚道上做纯滚动无滑动。设内圈转速为ni转/分节圆直径为Dp钢球直径为Db接触角为α滚动体数量为Z。保持架转速即滚动体公转转速为nc ni/2 × (1 - Db·cos(α)/Dp)则单个滚动体通过外圈上固定一点的频率外圈故障特征频率BPFO为BPFO Z × nc Z × ni/2 × (1 - Db·cos(α)/Dp)同理通过内圈上固定一点的频率内圈故障特征频率BPFI为BPFI Z × ni/2 × (1 Db·cos(α)/Dp)滚动体自转故障频率BSF和保持架故障频率FTF也可以由类似公式给出。这些理论值就是你的验证标尺。模型建好后把仿真位移信号做FFT如果频谱在BPFO处出现明显的峰值就说明变刚度激励被建模对了。对于深沟球轴承接触角α在纯径向载荷下通常很小可以近似取0°来简化计算。这样的简化不会影响对核心传动机制的把握。2.4 模型参数从哪里来为了演示我使用一组典型的深沟球轴承参数钢球直径7.94 mm节圆直径39 mm滚动体数量9个接触角近似0°材料弹性模量208 GPa泊松比0.3径向游隙取5 μm这是一个比较典型的C0组游隙水平。最终模型选择的质量为内圈有效质量大约在1~2 kg范围。这套参数可以理解为某个标准6205型轴承的等效几何参数数据来源是手册做教学演示足够用。在这里我特别强调一个经验径向游隙不要取太大了。游隙取大之后承载滚动体数量变少模型的非线性振荡会变得极度剧烈数值求解需要极小的步长初学者很容易因为积分发散而丧失信心。初学时先把游隙设成1~5微米跑通了再逐步调大观察变化这样的学习路径最顺畅。3. Matlab实操从零搭建动力学模型3.1 模型的假设条件任何仿真模型都是一组假设条件下的近似表达。在这个入门模型中我做了以下几个明确假设后续扩展时你可以逐个放宽。第一外圈固定不动。这是最典型的安装工况假设也是分析滚动轴承故障特征频率时最常用的基准状态。第二纯径向载荷不考虑轴向力、倾覆力矩和力矩载荷。第三忽略滚动体的质量效应把问题集中在内圈和轴系的运动上。第四润滑力简化为线性阻尼。实际工况中润滑状态复杂得多但对教学入门线性阻尼足够展示系统的基本动力学行为。第五忽略保持架与滚动体之间碰撞等细节。这一点对故障诊断入门影响很小但对保持架失稳等课题有影响属于后面进阶的扩展方向。建模时内圈被当作一个集中质量有水平和竖直两个平移自由度旋转运动不参与模型的质点动力学计算。滚动体被视为无质量的力传递单元只在每一个瞬时根据几何关系计算与内圈之间的接触力。这样的处理方式在故障诊断文献里非常常见教学阶段完全够用。3.2 状态变量与运动微分方程模型有水平和竖直两个方向的位移因此状态变量向量可以定义为state [x, dx/dt, y, dy/dt]设内圈质量为m阻尼系数为c第j个滚动体位于角位置θj。此时第j个滚动体与内圈的接触变形为δ_j x · cos(θj) y · sin(θj) - Gr/2只有当δ_j 0时滚动体才提供接触力力的大小为Q_j K · δ_j^(3/2)这个力的水平分量为-Q_j·cos(θj)作用于内圈的方向需要仔细判断正负号竖直分量为-Q_j·sin(θj)。于是运动方程为m · ẍ c · ẋ Σ Q_j · cos(θj) Fx m · g_xm · ÿ c · ẏ Σ Q_j · sin(θj) Fy m · g_y其中Fx、Fy是外部施加的载荷分量g_x和g_y是重力加速度在水平方向和竖直方向的分量。如果模型只考虑竖直方向的重力则g_x0g_y-g或者g取决于坐标轴定义。3.3 滚动体运动位置的更新滚动体在保持架的带动下绕轴承中心公转。设保持架角速度为Ωcrad/s初始状态下第0个滚动体位于角度0处则第j个滚动体在t时刻的角位置为θj(t) Ωc · t j · (2π/Z)这个公式意味着所有滚动体等角距分布且保持架转速恒定是一个直观的简化。若想模拟滚动体打滑、变间距等细节则需要在这个循环中加入随机扰动量这属于更进阶的建模内容。在Matlab中这段逻辑放在状态方程函数内部。每次求解器调用函数时先读当前时间t与当前位移x、y然后循环计算9个滚动体的角位置、接触变形和接触力最后把合力写进加速度表达式。3.4 核心代码框架下面是状态方程函数的核心骨架为了方便阅读保留必要的注释。整套代码我建议初学者先不要追求一次写成先把结构搭出来逐步填充。function dstate bearing_model(t, state, params) % 状态变量解包 x state(1); xd state(2); y state(3); yd state(4); % 从参数结构体提取参数 K params.K; % 赫兹接触刚度 Gr params.Gr; % 径向游隙 m params.m; % 内圈等效质量 c params.c; % 等效阻尼 Z params.Z; % 滚动体数量 omega_c params.omega_c; % 保持架角速度 Fx params.Fx; % 水平外载荷 Fy params.Fy; % 竖直外载荷 g params.g; % 重力加速度 % 计算每个滚动体接触力 Qx 0; Qy 0; for j 0:Z-1 theta omega_c * t j * 2 * pi / Z; delta x * cos(theta) y * sin(theta) - Gr/2; if delta 0 Q K * delta^(3/2); Qx Qx Q * cos(theta); Qy Qy Q * sin(theta); end end % 状态方程 dstate zeros(4,1); dstate(1) xd; dstate(2) (Fx - c*xd - Qx) / m; dstate(3) yd; dstate(4) (Fy - c*yd - Qy - m*g) / m; end代码逻辑上有一个细节需要反复检查y方向的重力方向。如果你的坐标系是竖直向上为正那么重力项应该是 -m·g即状态方程中dstate(4)的表达式与这里略有差异。我倾向于把坐标定义为内圈静态平衡位置处向上为正这样Fy通常为正的径向力重力项向下取负号。3.5 主程序与求解参数设置主程序的逻辑分为四步定义参数、设置初始条件、调用ode45、后处理与画图。这里给出主程序的骨架。% 参数定义部分参数见2.4节说明 params.K 1.0e10; % 等效接触刚度单位 N/m^1.5 params.Gr 5e-6; % 径向游隙 5 微米 params.m 1.5; % 等效质量 kg params.c 500; % 等效阻尼 N·s/m params.Z 9; params.n_i 1800; % 内圈转速 rpm params.omega_c 2*pi*params.n_i/60*(1-7.94/39)/2; params.Fx 0; params.Fy 100; % 径向载荷 N params.g 9.81; % 初始条件 x0 0; xd0 0; y0 0; yd0 0; state0 [x0; xd0; y0; yd0]; % 求解时间区间 tspan [0 0.5]; % 仿真0.5秒 % 求解 opts odeset(RelTol,1e-6,AbsTol,1e-8); [t, state] ode45((t,state) bearing_model(t,state,params), tspan, state0, opts); % 提取结果 x state(:,1); y state(:,3);求解器选型方面我一般推荐采用变步长求解器。这套方程里滚动体周期性地进出接触导致系统刚度在短时间内剧烈变化是典型的刚性趋势问题。如果手头没有特殊偏好用ode45配合较严格的容差设置就能得到不错的结果如果你发现自己响应出现明显的高频振荡并且步长被压得极小那就换成ode15s这类刚性求解器。这里没有绝对标准以实际观测为准。3.6 关于阻尼的那些事阻尼是初学者最容易忽视却影响最大的参数。现实中轴承系统的阻尼来源非常复杂润滑油的黏性阻尼、材料内耗、支撑结构的等效阻尼、密封件的摩擦阻尼等。如果我们在模型中完全不设置阻尼系统会在外载荷阶跃作用下出现大幅振荡看上去像弹簧秤掉进水里一样难以稳定。线性比例阻尼的处理方式是最常见的设定一个等效阻尼系数c让接触力之外再叠加一个与速度成正比的阻力。阻尼值取多少合适呢没有万能的答案但有一个参考法观察自由衰减响应如果位移信号在滚动体公转周期的3~5个周期内衰减到原始幅度的10%以下则阻尼设置大体合理。对教学模型来说阻尼值取200~1000 N·s/m通常能获得直观又稳定的响应。4. 结果可视化与模型验证4.1 时域波形怎么看运行上面的代码后第一件该做的事是画出内圈中心的位移时间曲线。用plot(t, y)查看竖直方向的位移用plot(t, x)查看水平方向位移。竖直方向上你通常会看到静态偏置内圈在外载荷下下沉了一个微小距离量级在微米级别叠加高频波动。高频波动对应滚动体不断进出承载区引起的轴承总刚度周期性变化这就是所谓的变刚度振动。小提示由于模型的非线性接触力和滚动体离散分布竖直方向的位移波形并不是标准正弦波而是带有明显的“梳状”特征。越窄的承载区游隙越大或载荷越小这种波形特征越突出。4.2 频域验证特征频率对照时域波形跑通后对该数据做FFT变换然后在频谱图上标出理论BPFO、BPFI、FTF等频率线这一步是建模成功与否的关键验证。Matlab代码很简单fs 1/(t(2)-t(1)); % 采样率注意仿真自身是变步长的 % 为了FFT方便可以对结果插值到等时间步长 t_uniform linspace(0, t(end), length(t)*5); y_uniform interp1(t, y, t_uniform, linear); fs_uniform 1/(t_uniform(2)-t_uniform(1)); Y fft(y_uniform - mean(y_uniform)); f_axis (0:length(Y)-1) * fs_uniform / length(Y); plot(f_axis(1:floor(end/2)), abs(Y(1:floor(end/2))))这里有两个常见陷阱值得留意。第一ode45默认输出的是变步长结果直接对原始时间序列做FFT会导致频谱出错务必先插值重采样。第二直流分量均值要去掉否则零频处会出现巨大的峰值把低频段特征盖得看不清。对于上述参数内圈转速1800 rpm理论BPFO约为BPFO 9 × (1800/60) / 2 × (1 - 7.94/39) ≈ 107.8 Hz保持架故障频率FTF约为 12Hz。模型中变刚度激励以滚动体公转频率为基本频率同时会在频谱中出现BPFO的高次谐波这是离散滚动体分布导致的强非线性效应并不是外圈故障导致的。初学者如果观察到BPFO处峰值还要在谐波成分出现的基础上判断是否扰乱这在轴承故障诊断中很重要。4.3 载荷分布的可视化除了动态响应我还推荐一种静态可视化的分析方式固定内圈位移到某个平衡值然后画出每个滚动体的接触力随角度变化的柱状图。你会直观看到承载区到底覆盖了多少角度哪个滚动体承受的力最大。这个图能极大帮助理解“承载区”的概念也为后面做故障诊断的特征解释打基础。在Matlab里面实现这个逻辑非常方便定义角度从0到360按滚动体数量等分代入接触力公式用polarplot画极坐标图。对于初学者这个可视化效果远胜于纯理论讲述。5. 初学者常见问题与调试心得5.1 模型发散怎么办跑模型最常见的问题是发散位移越算越大很快就变成NaN或者Inf。这里有一个排查顺序我建议按这个顺序来。优先级最高的怀疑对象是初始条件。如果初始位移设为零而外载荷已经在瞬间施加到内圈上刚启动时接触力可能巨变导致求解器步长崩溃。解决办法是先做静平衡求解即暂时去掉惯性项和阻尼项迭代求得内圈中心在外载荷下的静平衡位移然后以此位置作为动力学仿真的初始条件相当于给系统一个缓启动。第二个需要检查的是游隙和刚度的组合。如果游隙大于静态变形量几个量级系统会陷入“大部分时间没有接触、少部分时间剧烈碰撞”的极端非线性状态这种场景对初学模型来说很难收敛。先调小游隙跑稳定后再去挑战大游隙工况。第三个是考虑刚性求解器。如果ode45已经发出“步长太小”的警告果断换成ode15s或ode23s很多看似无法解决的问题其实就是求解器类型不匹配。把relTol和absTol适当放宽比如1e-5和1e-7也能减小计算负担代价是精度略微下降在教学场景下完全可以接受。5.2 怎样判断模型对不对模型跑出结果后怎么判断它真的“对”我的经验是至少要过三关。第一关是静态平衡合理性。外载荷除以静刚度得出的位移偏量级应该在几到几十微米不该达到毫米级。第二关是频谱特征正确性。FFT图谱中BPFO处应当存在明显峰保持架频率处也应该存在峰两者幅度应在同一数量级或略低。第三关是物理直觉检查。增大载荷后频谱上的峰值幅度应当增加但峰值频率不应发生大变化增大游隙后非线性谐波应当变得更加丰富。这三关全过模型基本算是对了。5.3 从入门模型到进阶研究的几条扩展路径模型跑通且验证无误后你就可以大胆扩展了。我列几个常见方向按难度递增排序。最容易的是加入外圈故障或内圈故障。具体做法是在滚动体经过某一固定角度时将接触刚度降低模拟表面剥落造成的刚度损失。这会直接在频谱的对应特征频率处引发新峰值也是故障诊断课题最常见的起点。其次是加入变转速工况。让内圈转速不再是常量而是随时间变化比如加速升速过程。这样频谱会变成阶次谱需要做角域重采样分析难度上一个台阶。再进一步是加入滚动体打滑。在保持架角速度中引入一个白噪声随机扰动模拟润滑不良时的打滑现象。你会发现特征频率的频谱峰被展宽了峰变矮变胖。还可以把2自由度模型扩展到4自由度考虑内圈相对外圈的倾斜角或者把滚动体质量也纳入状态变量得到更多模态信息。我个人最推荐的第二步是加入局部故障的模拟。因为从纯振动动力学模型到故障诊断特征模拟这一步跨越能直接让建模和实际应用挂钩对本专业的学习和后续科研都有明显的激励效果。6. 写在最后的一点实操体会这套深沟球轴承动力学建模我前前后后带过不少同学上手最大的共同点是最初都败在姿态上——总觉得要把论文看完才开始动代码结果越看越不敢动。其实正确的路径是先跑起来一个简化模型哪怕初始条件粗糙一点、参数反正是拍脑袋取的先把整个链路打通再回头修正参数把细节优化到位。先求看见结果再求结果的准确这个顺序对于初学者极其重要。另一个体会是建模和信号处理两方面的能力要一起练。很多同学建完模型激动得不行结果卡在重采样和FFT上几天这很可惜。建议在建模型的同时就把频谱分析这些基本功同步补上两边交替着学你的进度反而会快得多。