多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

齿轮箱故障诊断中的传递路径分析:原理、Matlab实现与工程应用

齿轮箱故障诊断中的传递路径分析:原理、Matlab实现与工程应用 前阵子有朋友拿来一组齿轮箱振动数据说频谱图上能看到好几个啮合频率边带但就是说不清振动到底是从啮合点直接传出来的还是先传到轴承、再经过箱体共振放大出来的。这个问题其实特别典型——齿轮箱故障诊断里传感器只能装在箱体表面测到的信号是激振源经过多条结构路径之后的叠加结果。光是看频谱你很难区分“源强”和“路径放大”各自贡献了多少。这正是传递路径分析TPA要解决的事。这篇内容就围绕齿轮系统的TPA展开讲清楚它的原理骨架、在齿轮故障诊断场景下的使用方法以及一套可以直接参考的Matlab代码实现框架适合正在做故障诊断、状态监测或者刚接触TPA想找切入点的人。我自己在Matlab里把这一套流程完整跑通过从数据采集、角度域重采样到频响函数估算、路径贡献量计算一步一步踩了不少坑。接下来的内容会按“为什么需要TPA—原理拆解—传感器与数据准备—代码实现架构—实测中的坑—如何把结果用起来”这个顺序来讲尽量让没有接触过模态测试的读者也能照着搭起来。1. 为什么传统频谱分析在齿轮故障诊断中不够用1.1 传感器测到的信号是“混合产物”先看一个实际场景。一台两级平行轴齿轮箱输入端转速1500 r/min输出端转速大约375 r/min。你在箱体顶部吸一个加速度计测到的时域信号里主要成分是啮合频率GMF及其谐波同时还有边带。问题是这个信号里的某条边带到底来自齿轮局部缺陷比如断齿、点蚀在啮合点产生的冲击还是来自滚动轴承外圈故障引发的周期性脉冲又或者只是因为某个安装螺栓松动导致箱体局部刚度下降、把某个固有频率附近的振动放大了如果只看包络谱你确实能看到故障特征频率但看不到“振动能量是通过哪条路径传到传感器位置的”。在一台复杂齿轮箱里传递路径包括齿轮啮合点→轴→轴承→轴承座→箱体壁→传感器安装面。每一条路径的刚度和阻尼都不一样对同一激励的放大系数完全不同。换句话说传感器测到的是所有路径响应的矢量和而矢量和的大小不但取决于源还取决于路径。1.2 频域计算无法回答“源强”与“路径贡献”的分解问题传统的频谱分析只能告诉你“频率成分是什么”给出的是系统输出端的最终观测结果。而TPA回答的是另外两个问题激励源有多强力/加速度/声源的等效源强度每个传递路径贡献了多少响应对目标点的响应贡献量。在维护决策上这两个问题直接决定了维修方向。如果是源的问题优先检查齿轮本身如果是路径的问题优先检查轴承、轴承座配合、箱体连接刚度。一个是“换齿轮”一个是“紧螺栓”差非常多。1.3 TPA在齿轮系统上的特殊难点齿轮系统的TPA比一般结构复杂主要有三点激励源是内部源不像发动机悬置那样有明确的“源—路径—接受体”界面你没法直接把力传感器放在啮合点上激励力是非平稳、宽频的转速变化时啮合频率会漂移路径之间存在强耦合因为轴—轴承—箱体是连续的机械结构路径和路径之间没有清晰边界。所以齿轮箱TPA通常不采用经典的“载荷—路径—响应”全分解方法而采用基于工况响应和频响函数FRF的“快速TPA”或“运行TPA”思想把齿轮箱作为一个线性时不变系统在运行工况下同时测量参考响应和目标响应通过频响函数来估计源强度和贡献量。这也是Matlab代码实现里最实用的路径。2. 齿轮箱TPA的理论骨架关键假设与核心公式2.1 两个关键假设TPA的理论基础是线性叠加原理。对于齿轮箱通常做以下假设假设一箱体结构在感兴趣的频率范围内是线性的不会因为载荷大小改变频响函数假设二各个激励源之间相互独立或者在数学上可以通过相干分析去除耦合。这两个假设在物理上不是完全成立的但在工程上基本可用。齿轮啮合激励确实与载荷有关不过在小范围的工况波动下比如额定载荷的50%到110%箱体的频响函数变化不大。源之间的耦合则可以通过多参考点测量和传递函数矩阵求逆来处理。2.2 传递路径分析的基本方程把齿轮箱的目标响应点设为传感器安装位置坐标为r把内部激励源的位置设为若干个等效参考点坐标为q。系统在每个频率下的响应可以写成Y_r(ω) Σ_i H_ri(ω) · F_i(ω)其中Y_r(ω)是目标点的响应谱加速度谱或力谱H_ri(ω)是从第i个激励点到目标点的频响函数加速度/力F_i(ω)是第i个路径上等效激励力谱。理论上只要知道每个路径上的激励力就能算出每个路径的贡献量P_i H_ri(ω) · F_i(ω)。问题在于齿轮内部的激励力不能直接测。所以工程上改用“工作参考响应”来替代力Y_r(ω) Σ_i T_i(ω) · X_i(ω)这里的X_i(ω)是运行工况下第i个参考点比如轴承座的实测振动响应T_i(ω)是“传递率”或“转换函数”它把参考点响应和目标点响应联系起来。T_i(ω)不需要知道内激励力只需要在做离线测试时测量参考点到目标点的频響函数T_i(ω) H_ri(ω) / H_ii(ω)H_ii(ω)是激励点自身到参考点的频响函数原点频响H_ri(ω)是激励点到目标点的跨点频响。2.3 路径贡献量的计算流程在Matlab实现中整条计算链路可以整理成以下步骤对参考点x_i(t)和目标点y(t)同时进行加窗FFT得到X_i(ω)和Y(ω)用多段平均法计算输入/输出之间的互谱S_xi_y(ω)和自谱S_xi_xi(ω)计算传递率估计值H_v(ω) S_xi_y(ω)/S_xi_xi(ω)这相当于用H1估计器求平滑传递函数用实测的运行响应X_i计算各路径贡献量P_i(ω) H_ri(ω) / H_ii(ω) · X_i(ω)合成总响应Y_pred(ω) Σ_i P_i(ω)与实测Y(ω)对比验证吻合度。这里有个很实际的注意点在很多论文里步骤3和步骤4会合并直接用“参考响应×传递率”来算贡献量。做Matlab代码时我建议把“频响函数估计”和“贡献量计算”分两个函数模块来做因为频响函数估计算法H1、H2、Hv有不同适用场景分开了后面调试方便很多。2.4 一个齿轮啮合频率边带的实例计算为了有个直观感受我拿一组实际测过的数据来演算数值已经做了脱敏处理。某齿轮箱输入轴齿数23输出轴齿数92输入转速1470 r/min。啮合频率f_m 23 × 1470/60 ≈ 563.5 Hz。在第五级啮合谐波附近2817.5 Hz附近做TPA识别出两条主要传递路径路径A输入轴齿轮啮合点→输入轴轴承→前轴承座→箱体表面传感器路径B输出轴齿轮啮合点→输出轴轴承→后轴承座→箱体表面传感器。频响函数测量结果是路径A在该频段的跨点频响幅值约为2.8 (m/s²)/N路径B约为1.6 (m/s²)/N。运行工况下等效激励力谱的幅值在2817.5 Hz处分别为0.45 N和0.72 N通过参考点自谱反推得到。于是路径A贡献响应2.8 × 0.45 1.26 (m/s²)路径B贡献响应1.6 × 0.72 1.152 (m/s²)合成总响应同相约2.41 (m/s²)实测传感器响应约2.15 (m/s²)。两者有约12%的偏差原因来自路径之间的相位差和箱体结构非线性。这个偏差在工程上是可以接受的说明路径识别基本到位。如果偏差超过30%就需要检查是不是漏了某个主要路径或者频响函数测量时激励位置和实际激励位置偏差过大。3. 传感器布置与数据采集TPA中最容易被低估的一环3.1 参考点到底该放几个、放在哪里TPA的实际精度一半取决于算法另一半取决于参考点和目标点的布置。参考点太少会漏路径参考点太多会引入病态矩阵导致传递率估计不稳定。对于两级平行轴齿轮箱我的经验是参考点数量不少于主要轴承座数量的1.5倍。具体来说输入轴前轴承座、输入轴后轴承座、输出轴前轴承座、输出轴后轴承座4个主要位置优先布置如果箱体是剖分式的建议在剖分面上下各加一个参考点因为剖分面的连接刚度往往是最薄弱的传递路径目标点也就是最终需要诊断的传感器安装点布置在靠近啮合区正上方的箱体平面且尽量避开加强筋边缘和螺栓孔附近。在每个测点优先测量互相垂直的三个方向X、Y、Z但考虑到通道数有限实际项目中可以先做一次预试验用锤击法测各方向FRF保留对目标频段贡献最大的方向。这能省下一半通道。测点类型布置位置作用建议数量目标点响应点箱体表面靠近啮合区最终诊断位置1~2参考点A输入轴轴承座路径A内源参考2~3方向参考点B输出轴轴承座路径B内源参考2~3方向附加参考点剖分面/箱体加强筋补充路径23.2 采样参数设置的实用建议做TPA分析时频率分辨率直接决定你能否分离相邻的边带成分。齿轮边带间隔等于轴频对输入轴大约24.5 Hz如果频率分辨率小于轴频的一半就基本够用。我建议设置为轴频的1/5到1/10这样在频谱图上边带之间有足够多的线便于包络分析。如果关注最高到10 kHz的频段按抗混叠原则采样率至少20 kHz实际建议25.6 kHz。FFT点数则根据分辨率倒推比如要2 Hz分辨率FFT点数N 采样频率 / 分辨率 25600 / 2 12800取最接近的2的幂就是16384。另一个容易被忽略的是抗混叠滤波器的阶数。测试时一定要确认数采设备内置的抗混叠滤波器在通带边缘没有过多衰减否则会直接影响FRF幅值精度。我在实验室常用的是带内置抗混叠的24位采集卡配合IEPE型加速度计灵敏度100 mV/g。3.3 同步采集比什么都重要TPA依赖多通道之间的相位关系各通道必须同步采样。这个不是建议是强制要求。如果采集系统本身不支持多通道同步比如用多个独立USB采集器拼接那计算出来的互谱相位会完全乱掉后面的路径贡献量计算毫无意义。实际测试中我碰过一次用两台四通道采集卡分别采前轴承座和后轴承座没有做硬件同步后来用互谱分析时发现相位一直对不上检查了半天才发现是两卡时钟不同步。后来改成单台八通道同步采集问题才解决。项目初期选设备时一定要确认“同步采样”这几个字是硬件级的而不是软件启动时间相同。4. Matlab代码实现框架从原始数据到路径贡献量4.1 整体模块划分我建议把整个实现拆成四个独立模块而不是写一个几百行的主脚本模块一数据导入与截取导入多通道时域数据按转速窗口截取稳态段模块二频响函数估计FRF estimation支持H1/H2/Hv估计模块三工况响应与互谱计算计算参考点和目标点的自谱、互谱模块四路径贡献量合成与可视化输出贡献量谱、合成响应对比。模块化最大的好处是换一组数据不用改算法改算法不用动数据预处理排查问题的时候能直接定位到某个环节。4.2 模块一数据导入与截取要点原始数据一般是从采集软件导出的CSV或MAT文件每列一个通道。截取稳态段的原则是选择转速波动在±1%以内的数据段。齿轮啮合激励对转速很敏感转速如果有较大波动相当于把一个非平稳信号塞进了基于线性时不变假设的TPA公式结果会失真。这里给一个简单的截取建议代码框架function [data_seg, t_seg, rpm_seg] extract_stationary(data, t, rpm, t_start, t_end) % 按时间区间截取数据 idx t t_start t t_end; data_seg data(idx, :); t_seg t(idx) - t_start; rpm_seg rpm(idx); % 校验转速波动 rpm_mean mean(rpm_seg); rpm_std std(rpm_seg); if rpm_std / rpm_mean 0.01 warning(转速波动超过1%%建议重新选择稳态段); end end别小看这段代码实际项目中很多TPA结果异常追根溯源就是转速段没选好。多花10分钟看转速曲线能省下后面几小时的调参时间。4.3 模块二频响函数估计的Matlab实现逻辑离线FRF测量通常用锤击法或激振器法。锤击法简单快捷但信噪比在低频段较差激振器法线性度和信噪比更好但安装麻烦。对于齿轮箱这种多路径结构我建议优先激振器法激励位置取轴承座刚度较大的位置激励方向与研究路径主方向一致。Matlab里FRF估计可以用tfestimate函数但要注意窗函数选择。随机激励或锤击激励下推荐使用指数窗抑制泄漏稳态正弦激励下则可以用汉宁窗。下面是我常用的H1估计实现思路function [frf, f] estimate_frf(x_ref, y_resp, fs, nfft, overlap, win) % x_ref: 激励力信号或参考响应信号 % y_resp: 目标响应信号 [Sxy, f] cpsd(x_ref, y_resp, win, overlap, nfft, fs); [Sxx, ~] pwelch(x_ref, win, overlap, nfft, fs); frf Sxy ./ Sxx; % H1估计 endH1估计的优点是能抑制响应端噪声缺点是会低估频响函数幅值对于参考点噪声较大的测试环境可以考虑H2估计用功率谱的倒数形式。在实际齿轮箱测试中如果测点附近没有明显强噪声源H1就够了。重点是计算FRF时激励信号和响应信号必须是同一个时间基准采集的否则相位信息又会出问题。4.4 模块三运行工况响应与互谱计算运行时TPA最关键的输入是运行工况下的参考点响应谱和互谱矩阵。这里要注意齿轮箱在运行状态下的振动中含有大量的确定性周期成分轴频谐波、啮合谐波这些成分会在互谱矩阵中引入强相关性导致矩阵求逆时出现病态。我的做法是先对时域信号做一次线性趋势去除和均值去除再进行加窗FFT。窗函数选汉宁窗重叠率75%平均段数不少于32段。段数太少随机误差降不下来段数太多计算量增加但精度提升有限。经验上在典型齿轮箱数据下32段到64段平均后的互谱曲线已经相当平滑。计算互谱的Matlab管道大概是这样[Sxy, f] cpsd(x_i, y_target, hann(nfft), ceil(0.75*nfft), nfft, fs); [Sxx, ~] pwelch(x_i, hann(nfft), ceil(0.75*nfft), nfft, fs);4.5 模块四路径贡献量合成与可视化在得到传递率T_i和运行参考谱X_i后路径贡献量就是两者相乘。需要注意最终可视化时要分“幅值谱贡献”和“相位谱贡献”两部分看。直接用幅值相乘会丢失相位信息导致合成结果对不上。% 假设T_i已经算好X_i为运行参考响应谱 for i 1:n_paths P_i T_i(:,:,i) .* X_i(:,i); % 频率点×路径 total_response total_response P_i; end合成的总响应幅值谱要和实测目标点响应幅值谱放在同一张图上做对比如果偏差小于25%路径识别合格如果偏差大先把各路径贡献量排序手工核查前五名的路径是否存在明显的共振放大现象再回头检查测点布置。5. 实测中容易踩的坑相位、窗函数和路径遗漏5.1 相位校准问题TPA对相位的要求远高于普通频谱分析。普通频谱分析关心幅值相位信息用得少TPA本质是矢量叠加相位错了路径贡献量合成结果可以直接翻转方向。我自己吃过一次亏当时用加速度计测响应用力锤的力信号做FRF结果发现FRF相位曲线在几个频点附近有180度翻转。排查后发现是数据采集时力通道和响应通道的接线方向不一致一个用正极性一个用负极性相当于把互谱取了个反。后来统一检查所有通道的极性问题消失。建议在项目启动时做一个简单的“正负方向测试”用已知方向的激励锤击检查FRF虚部的正负号和理论方向是否一致。5.2 窗函数对边带幅值的影响齿轮故障诊断中边带幅值的变化是核心诊断指标。但在TPA链路中窗函数的选择会影响边带幅值。汉宁窗的幅度恢复系数是2能量恢复系数是1.633如果后续要计算宽带RMS值或窄带边带能量必须把窗函数影响校正回去。具体做法是在频谱计算时对幅值谱除以窗函数的相干增益汉宁窗为0.5并乘以2倍恢复系数。Matlab中的pwelch函数默认对功率谱做了归一化但如果你手动用fft计算幅值谱这块最容易漏。漏掉的话TPA算出来的路径贡献量会有系统性偏差虽然各路径之间的相对排序不变但绝对幅值会差一截和实测总响应的对比就不好看。5.3 漏掉“等效路径”齿轮箱里有一条路径非常容易漏通过润滑油膜的液体路径。齿轮啮合点的振动会通过润滑油传递到轴承座附近再通过油路或端盖传递到箱体表面。在中低频段这条路径的能量很低在2000 Hz以上特别是油膜刚度较高时它可能贡献可观察的响应。判断是否存在漏路径最简单的方法是做“残差分析”把算出来所有已知路径的贡献矢量相加与实测总响应求差值。这个残差如果在中高频段还有明显的谱峰而不是随机噪声形态就说明还有未识别的路径。此时需要在漏峰对应的频率上反查箱体模态振型看该频率下箱体哪个位置的振动最剧烈把那里补成新的参考点。5.4 载荷变化对FRF的影响严格来说齿轮箱在不同载荷下轴承刚度会随预紧状态变化导致箱体等效频响函数有一定变化。如果离线FRF是在空载状态下测的而运行TPA是在满载工况下做的两者匹配度可能下降。解决方法是在有条件的情况下让齿轮箱分别在25%、50%、75%、100%载荷下运行在每个载荷下测参考点和目标点的工作响应离线FRF也在对应载荷下测。然后用“工作载荷下的FRF”做TPA。我在实际项目中对比过75%载荷下测的FRF与满载时的FRF在啮合谐波频率附近的幅值差异约为8%相比空载时的差异可达20%以上改进是很明显的。6. 从TPA结果到故障判据路径贡献量怎么指导维修决策6.1 路径贡献谱的主成分提取当TPA把几条路径的贡献量算出来之后下一步是把这些贡献量整理成可读的判据。最直观的指标是“路径贡献占比”C_i Σ_f |P_i(f)| / Σ_f |Y_total(f)| × 100%频段可以根据故障特征定义如果关注的是啮合频率基频附近就只取f_m ± 3Δf的频带如果关注边带就取边带对应的窄带范围。这样可以很清楚地看出哪个频带的能量主要由哪条路径贡献。拿我前面提到的那组脱敏数据来说在2817.5 Hz附近的窄带内路径A贡献了42%的能量路径B贡献了36%其余路径合计约14%残差约8%。这说明输入轴侧的路径是当前频段的主导路径重点检查输入轴轴承配合状态是有依据的。6.2 TPA与包络分析、边带分析的衔接TPA本身不替代包络分析而是给包络分析提供“聚焦”的方向。实际操作中我建议这样的分析流程先用TPA识别主导路径锁定主导路径对应的传感器测点再对该测点的时域信号做带通滤波带通中心频率选啮合谐波带宽覆盖边带范围、Hilbert包络解调最后在包络谱里找故障特征频率判断齿轮还是轴承问题。这样做的逻辑是TPA告诉你“振动从哪里来的”包络谱告诉你“振动的调制源是谁”。两者结合基本能覆盖齿轮箱故障诊断中“哪条路径最严重”和“故障是什么类型”两个核心问题。6.3 TPA结果在齿轮修配和轴承调整中的应用更好的场景是TPA结果直接用来指导结构修改。比如某次诊断发现在f_m 563.5 Hz附近的响应主要由输出轴轴承路径贡献而且该路径在560 Hz附近有局部共振峰可能是因为轴承座刚度不足。那么维修方向就不是更换齿轮而是提高轴承座刚度或增加阻尼处理。反过来如果路径贡献显示能量大部分在啮合点直接传播路径上且边带能量明显升高那大概率是齿轮本身存在点蚀或早期断齿。我在自己的项目里把TPA贡献量和激光对中仪数据结合使用对中不良会导致某些路径的参考点振动明显增大但TPA会把这种增大归因到“路径贡献量异常”方便进一步核查轴系对中状态。这个组合诊断思路比单独看测点振动绝对值和频谱要灵敏得多。6.4 补充一点关于代码部署的建议整个Matlab代码框架在实验室环境跑通之后如果要在现场长期部署建议把计算核心封装成函数通过脚本批量处理多组数据并把输出的贡献量谱、合成响应对比图、路径贡献占比表自动导出为PDF报告。我自己用matlab report generator生成过这类报告配合定时任务可以让现场工程师每天自动获取一份“路径贡献量日报”比传统频谱日报多了一个“定位路径”的维度故障响应速度提升明显。7. 结尾一点个人经验这套TPA流程我从一开始的不信任到现在的常用工具中间的转折点就是第一次把路径贡献量算完、和实测总响应做对比的那一刻——吻合度居然还不错。后面只要发现某个频段不吻合我都会先怀疑数据质量问题其次才是算法参数问题最后才是路径遗漏。这个排查顺序在绝大多数情况下都成立。如果你现在刚起步建议先用一组实验室齿轮箱数据跑通全流程再去碰现场数据。实验室数据里的转速波动小、载荷平稳能让你更快聚焦在TPA本身而不是被各种现场干扰分散精力。等代码和流程稳定了再去处理现场复杂工况心里就有底了。
返回列表