尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

变转速故障诊断:脉冲转速与阶次分析全流程指南

变转速故障诊断:脉冲转速与阶次分析全流程指南 简介面向变转速机械故障诊断与信号处理需求的MATLAB阶次分析与阶次跟踪源码包适用于风力发电、电动汽车电机等旋转机械的状态监测与故障特征提取也可作为相关课题实验的参考实现。压缩包内含2个M脚本文件整体仅4KB代码简洁紧凑可直接运行或按需修改适合有一定MATLAB基础的学习者对照分析。该资源已有1060人浏览学习适合正在研究变转速设备故障诊断的工程师、科研人员和相关专业学生。两个脚本完整覆盖脉冲转速事件识别、等角度时刻计算、数字跟踪滤波与样条差值等关键流程能帮助读者在变转速工况下构建稳定的阶次谱定位与转速相关的故障特征。运行后可直观理解阶次跟踪的实现细节并可进一步迁移到实际设备数据中进行验证为后续维护策略优化提供依据。1. 变转速是故障诊断的第一道坎锁不住转频就锁不住故障特征把加速度传感器贴在变转速设备上最直观的感受是频谱像雾一样散开1 倍频从一条线变成一个宽包边带间隔也不再固定。这不是传感器松动或共振而是转速在测量窗口内持续变化FFT 假设恒定转速当转频从 10 Hz 升到 20 Hz同一故障阶次对应的绝对频率被拉成斜线平均后能量摊平。标题里的四个词是一条完整链路变转速是故障工况变转速故障是诊断对象脉冲转速是提供真实转角的传感器信号阶次分析与阶次跟踪是把振动从时间的函数换成角度的函数。适合旋转机械状态监测、振动分析和故障诊断工程师也适合被变速数据折磨的算法从业者。走通这条链路关键在转速基准与角域重采样的精度。2. 脉冲转速信号预处理从齿盘脉冲到瞬时转速曲线2.1 脉冲转速信号为什么能当阶次分析的基准设备上能拿到的转速信号最常见的不是模拟转速电压而是一串脉冲光电编码器的 A 相/Z 相、磁电式测速探头对着齿盘、霍尔传感器对着磁钢统一产出“每转 N 个方波脉冲”。这里的 N 是每转脉冲数PPR它直接决定转速测量的刷新率。PPR1 时你只能每转更新一次转速PPR60 时每个齿的间隔都能算一次转速曲线就平滑得多。脉冲间隔反比于瞬时转速fr 1 / (Δt × PPR) RPM 60 / (Δt × PPR)变转速故障诊断里脉冲转速和振动信号地位同等重要阶次分析最终是把振动幅值按 1 阶、2 阶这类相对频率展开而阶次绝对频率/转频转频就来自脉冲间隔。脉冲信号一旦有误后面所有角域重采样都会跟着错。所以第一步不是上算法而是把脉冲序列变成一条干净的瞬时转速曲线。常见做法是让采集系统用高速计数器给每个上升沿打时间戳时间戳精度要到微秒级秒级采样的数据或直接读示波器波形都不适合做转速来源。2.2 从脉冲时间戳计算瞬时转速的 Python 实现import numpy as np from scipy.interpolate import interp1d # edge_times上升沿时刻数组单位 s实际数据由计数器/采集软件导出 # PPR每转脉冲数由编码器线数或齿盘齿数决定 edge_times np.array([ 0.00000, 0.00417, 0.00851, 0.01302, 0.01770, 0.02257, 0.02763, 0.03289 ]) PPR 60 delta_t np.diff(edge_times) # 相邻脉冲间隔 t_mid (edge_times[:-1] edge_times[1:]) / 2.0 # 间隔中点时刻 # 瞬时转速(RPM)1/PPR 圈除以时间间隔再折算到分钟 rpm_raw 60.0 / (delta_t * PPR) # 相邻转速突变门限超过 20% 视为丢脉冲或毛刺 ratio np.abs(np.diff(rpm_raw) / rpm_raw[:-1]) ok np.r_[True, ratio 0.2] t_clean t_mid[ok] rpm_clean rpm_raw[ok] # 三次样条插值到统一时间网格供后续角域重采样查表 t_grid np.linspace(t_clean[0], t_clean[-1], len(t_clean) * 20) f_rpm interp1d(t_clean, rpm_clean, kindcubic, fill_valueextrapolate) rpm_uniform f_rpm(t_grid)这段代码把上升沿时间戳转成非均匀分布的转速点。delta_t是相邻脉冲间隔t_mid取间隔中点是因为这个转速值代表的是这一小段间隔内的平均速度放在中点比放在端点更准确。rpm_raw是瞬时转速PPR 越大相邻点间隔越密转速曲线越接近真实变化。20% 突变门限是经验值适合绝大多数升降速过程如果设备本身有扭振阈值要放宽到 30% 以上否则真实的转速脉动会被当成异常剔除。插值到统一时间网格是必须的后半段振动信号重采样时要按任意时刻查询转速不能拿着散点逐段比对。三次样条在曲线两端容易过冲fill_valueextrapolate只适合两侧短暂外推不要让重采样区间超出转速数据覆盖范围太多。提示每转脉冲数 PPR 只决定转速测量分辨率不决定阶次分辨率。阶次分辨率由参与 FFT 的总转数决定这两个概念不要混为一谈。2.3 丢脉冲、顿挫转速和电磁干扰下的清洗策略齿盘脏污、编码器光栅局部损坏、变频器高频干扰都会让脉冲序列出现异常间隔。最典型的症状是相邻脉冲间隔突然变成正常值的 2 倍或 0.5 倍对应的瞬时转速表现出一个尖峰或凹坑。这个尖峰一旦进入后面的角域重采样就会投影成一串假阶次边带而且位置恰好落在真实故障附近极难区分。| 干扰现象 | 典型来源 | 建议处理 | 容易犯的错 | | 单个间隔约为正常值 2 倍 | 丢失一个脉冲 | 删除该间隔并插值补偿 | 保留后产生转速凹坑 | | 间隔抖动在 ±几微秒 | 编码器光栅沾染 | 中值滤波或降低 PPR | 直接对转速平均丢失变速信息 | | 与振动冲击同步的转速跳变 | 扭振/联轴器冲击 | 保留并单独标记 | 误判为丢脉冲被剔除 | | 间隔呈周期性 1 转变化 | 齿盘偏心 | 对转速做 FFT 检查 1 阶分量 | 忽略后在角域产生 1 阶假边带 |我一般按三步清洗第一步用突变门限找出异常间隔第二步看异常是否与振动冲击同步若同步则优先怀疑扭振最好用独立转速源交叉验证第三步删除异常点后用 PCHIP 插值。PCHIP 在每个区段内单调不会像三次样条那样因为局部异常值产生上下过冲适合齿盘信号这种带测量噪声的曲线。把上一节代码里的kindcubic换成PchipInterpolator即可。齿盘缺齿的设备会在固定位置出现周期性的间隔异常清洗时按已知缺齿位补偿而不是直接删点。3. 阶次分析与阶次跟踪把时域振动信号重采样到角域3.1 阶次的定义与变转速下频谱展宽的定量解释阶次的定义是振动频率与转频的比值O f / fr一台设备从 1000 RPM 均匀升到 3000 RPM测量窗口内转频从约 16.7 Hz 升到 50 Hz。如果存在稳定的 1 阶振动分量它的绝对频率会从 16.7 Hz 升到 50 Hz如果存在 3 阶分量频率变化范围就是 50 Hz 到 150 Hz。一个 FFT 窗只能给出固定的频率轴把这段信号做一次 FFT 或多次平均每个阶次峰都被摊开到与“阶次 × 转速变化范围”等宽的包里。转速变化 33 Hz1 阶峰宽 33 Hz12 阶的齿轮啮合峰可以摊到 400 Hz 宽这个量级的涂抹足以把故障特征埋进噪声。这就是“变转速故障”难以用常规频谱诊断的根因。阶次分析换了一个坐标系不问“这个峰的频率是多少”只问“这个峰是转频的几倍”。在阶次域里齿轮啮合永远固定出现在齿数阶次上轴承外圈通过频率固定出现在由滚动体个数与直径比决定的阶次上无论转速是 800 还是 3000 RPM。剩下要做的就是把等时间采样的振动信号改造成等转角采样这个过程就是阶次跟踪。3.2 计算阶次跟踪的重采样流程与代码骨架最常用的是计算阶次跟踪流程分四段从脉冲转速得到瞬时转速曲线对瞬时转速积分得到转角随时间的函数在转角上布置等间隔网格反查每个等角网格对应的时间点再对振动信号插值。相位计算公式为φ(t) 2π ∫ fr(t) dtimport numpy as np from scipy.interpolate import interp1d # 沿用上一节清洗后的转速曲线t_grid, rpm_uniform # 振动波形 x_vib 和时间轴 t_vib 由采集系统给出单位 s fr_hz rpm_uniform / 60.0 dt t_grid[1] - t_grid[0] phase 2.0 * np.pi * np.cumsum(fr_hz) * dt # 相位累积单位 rad SPP 512 # 每转采样点数 dphi 2.0 * np.pi / SPP phi_target np.arange(phase[0], phase[-1], dphi) # 相位反查时间给定目标转角寻找对应的时刻 f_phi interp1d(phase, t_grid, kindlinear, fill_valueextrapolate) t_target f_phi(phi_target) # 振动信号在 t_target 处插值得到角域波形 x_angle np.interp(t_target, t_vib, x_vib) # 角域 FFT横轴单位为阶次 win np.hanning(len(x_angle)) X_order np.fft.rfft(x_angle * win) order_axis np.arange(len(X_order)) / len(x_angle) * SPP order_amp 2.0 * np.abs(X_order) / np.sum(win)phase是绝对转角数值上等于累计圈数乘以 2π。phi_target从起始相位开始每转均匀取 SPP 个点。f_phi完成“相位→时间”的反查np.interp在原始振动波形上取对应时刻的幅值。这一小段代码就是计算阶次跟踪的核心几乎所有商业软件里的 COT 模块做的都是同一件事。参数含义SPP 相当于角域采样率最大可分析阶次是 SPP/2对应奈奎斯特频率。取 512 时最高到 256 阶工程上齿轮齿数、轴承故障阶次一般都在 100 阶以内留足余量。整段数据的转数决定阶次分辨率分辨率1/总转数。order_amp用窗函数和做了幅度修正不修正的话角域谱幅值会比真实值低。SPP 不是越大越好过大会把转速扰动和插值误差放大阶次谱上出现大量毛刺。3.3 阶次分析、计算阶次跟踪与阶次跟踪滤波的选型表| 方法 | 输入要求 | 输出形式 | 适合工况 | 主要限制 | | 计算阶次跟踪(COT) | 整段时域波形瞬时转速 | 角域 FFT 阶次谱/瀑布图 | 离线精密诊断 | 转速曲线误差直接映射到阶次 | | Gabor 阶次跟踪 | 时域波形转速 | 阶次-幅值随时间变化 | 快速扫频、在线监测 | 窗长与转速变化率互相制约 | | Vold-Kalman 阶次滤波 | 时域波形转速指定阶次 | 各阶次幅值与相位时间历程 | 高精度幅值/相位提取 | 需要预设带宽带宽过窄易发散 | | 短时傅里叶转速归一化 | 时域波形转速 | 时频图按转速拉伸 | 初步观察 | 频率与时间分辨率矛盾 |实际选择上我一般会先用短时傅里叶快速扫一眼时频图确认哪些斜线是阶次、哪些竖线是共振再用 COT 离线算阶次谱需要提取单个阶次幅值随时间的变化时再上 Vold-Kalman。COT 是工程里默认的“阶次分析”入口因为它只需要脉冲转速和振动两组数据不需要预设滤波器带宽调参风险最低。4. 变转速故障诊断实战齿轮与轴承的阶次特征识别4.1 齿轮故障的阶次特征齿轮箱在变转速工况下最稳定的特征是啮合阶次正常啮合阶次等于小齿轮齿数 z1输出轴齿轮对应 z2。轮齿局部损坏后振动以该齿轮转频为调制频率在啮合阶次两侧出现间隔恰好为 1 阶的边带。恒定转速频谱里这个边带间隔是绝对频率等于转频转速一变化边带随啮合峰一起移动常规平均频谱会糊成一片。只有阶次域能稳定看到“啮合阶次 ±1 阶”。具体做法是在阶次谱中先找啮合阶次主峰再看主峰两侧是否有一阶间隔的边带对比较左右边带幅值。局部磨损往往单边带明显均匀磨损则高阶啮合谐波幅值整体上升。行星齿轮箱的啮合阶次复杂度会高很多太阳轮齿数与行星轮齿数组合会产生多个阶次分量建议直接结合行星齿轮通过阶次和时域冲击位置判断不要只依赖单张阶次谱。4.2 轴承故障阶次的解析公式与包络阶次谱流程滚动轴承特征频率除以当前转频所得阶次基本恒定这是变转速下轴承诊断的数学基础。设滚动体个数 n、滚动体直径 d、节圆直径 D、接触角 α常见故障阶次为| 故障位置 | 阶次计算公式 | | 外圈 | 0.5·n·(1 - d/D·cos α) | | 内圈 | 0.5·n·(1 d/D·cos α) | | 滚动体 | 0.5·D/d·(1 - (d/D·cos α)²) | | 保持架 | 0.5·(1 - d/D·cos α) |这些阶次只与轴承参数有关与转速无关。但直接用振动信号做阶次谱往往看不到轴承特征因为故障脉冲的能量集中在轴承固有共振频带基频特征先被调制再被结构衰减。常见做法是先带通滤波取出共振频带再做 Hilbert 包络最后把包络信号送入第 3 章的阶次跟踪流程。from scipy.signal import butter, sosfiltfilt, hilbert import numpy as np # 轴承参数示例值 d_body 8.4e-3 # 滚动体直径m D_pitch 4.25e-2 # 节圆直径m n_ball 9 alpha 0.0 # 接触角rad bpfo 0.5 * n_ball * (1.0 - d_body / D_pitch * np.cos(alpha)) bpfi 0.5 * n_ball * (1.0 d_body / D_pitch * np.cos(alpha)) # 带通滤波频带选实测共振区加速度信号常用 4~10 kHz fs 51200 sos butter(4, [4000, 8000], btypebandpass, fsfs, outputsos) band sosfiltfilt(sos, x_vib) # Hilbert 包络解调 env np.abs(hilbert(band)) # 包络信号重采样到角域t_target 来自阶次跟踪流程 env_angle np.interp(t_target, t_vib, env) env_angle * np.hanning(len(env_angle)) E np.fft.rfft(env_angle) order_axis np.arange(len(E)) / len(env_angle) * SPP带通频带选取没有统一值要结合加速度传感器安装方式和实测共振峰位置。带宽过窄会滤掉调制边带过宽会引入无关的宽带干扰。包络阶次谱里BPFO 阶次峰明显高出噪声且两侧没有 1 阶边带时基本判定外圈故障BPFI 峰附近出现转频边带时说明故障在内圈这种旋转件上。4.3 频谱、阶次谱与瀑布图三张图定位故障的判定顺序先画瞬时转速随时间变化曲线确认工况是单段升速还是循环变速截取一段转速单调变化的有效区间。对同一段信号做常规 FFT观察峰是否展宽、边带是否模糊和后面的阶次谱形成对照。用第 3 章的代码生成角域阶次谱按 4.1 和 4.2 给出的阶次位置找峰。阶次峰位置有疑问时做瀑布图横轴为时间纵轴为频率幅值用颜色映射。阶次分量表现为一条频率随转速上升的斜线斜率为转速变化率乘以该阶次共振分量是固定频率处的竖带。这个瀑布图是区分“真阶次”和“转速波动造成的假峰”最直观的依据。5. 阶次跟踪参数整定与边界SPP、插值方式与转速变化率5.1 阶次跟踪的关键参数与经验取值表| 参数 | 常见取值 | 影响对象 | 调整依据 | | SPP | 256~2048 | 最高阶次SPP/2 | 齿轮齿数、轴承阶次上限 | | 总转数 | ≥10 转 | 阶次分辨率1/总转数 | 转速变化范围允许的前提下尽量长 | | 插值方式 | linear/cubic/PCHIP | 角域波形失真 | 转速曲线噪声大时用 PCHIP | | 窗函数 | Hanning | 阶次泄漏宽度 | 边带分析时避免矩形窗 | | 分段长度 | 一次变速一段 | 转速范围与分辨率折中 | 转速跨度过大时分段处理 | | 带通范围包络谱 | 4~10 kHz | 包络信噪比 | 由共振频带实测决定 |SPP 和总转数是两个最常被调错的参数。SPP 决定最高能看多少阶总转数决定阶次分辨率。假设一段升速数据只有 5 转阶次分辨率就是 0.2 阶这时相邻 0.5 阶的两个峰完全重叠再密的 SPP 也救不回来。遇到这种数据要么拉长分析段要么分段后降低对分辨率的要求。5.2 瞬时转速误差怎样污染阶次谱脉冲信号的计数时钟决定瞬时转速的量化精度。100 MHz 计数器配合 60 PPR、3000 RPM 的信号脉冲间隔约 333 μs计数量约 33300单边计数误差约万分之一换算到 30 阶的误差只有 0.001 阶可以忽略。真正危险的是周期性误差齿盘偏心、安装不圆、齿距不均会让转速曲线在每个旋转周期叠加一次偏差阶次谱上表现为 1 阶附近的假峰和边带。判别的办法是把转速曲线本身做一次 FFT看是否存在明显的 1 转/次分量。如果发现周期性转速误差不要急着调 SPP先检查齿盘安装径向跳动或者用编码器 Z 相做整圈校准。处理上可以选择对转速曲线按整转先做一次平均把每转内部的高频抖动和每转之间的真实转速变化分开再决定是否用 Vold-Kalman 滤波做精确相位提取。被转速误差污染的阶次谱无论如何调整 SPP 都不会变干净。5.3 起动停车、急剧加减速与负载突变下的处理起动停车工况里包含长段接近 0 转速的区间相位积分增长极慢低转速段占用的角域样本太少整段一起做阶次跟踪时谱图基本由高转速段主导。常见做法是先按转速阈值截断数据只分析 20%~100% 额定转速区间并在报告里注明截断范围。from scipy.interpolate import PchipInterpolator rated_rpm 3000.0 mask (rpm_uniform 0.2 * rated_rpm) (rpm_uniform rated_rpm) t_seg t_grid[mask] rpm_seg rpm_uniform[mask] # 陡变段用 PCHIP 替代三次样条避免过冲 f_pchip PchipInterpolator(t_clean, rpm_clean) rpm_seg f_pchip(t_seg) # 之后用 t_seg, rpm_seg 重新走第 3 章的阶次跟踪流程急剧加减速时转速曲线斜率很陡三次样条在陡变处容易过冲PCHIP 更稳妥。负载突变时转速会先掉再回升振动特征包含明显瞬态冲击阶次跟踪仍然有效但建议分成突变前、突变后两段各出一张阶次谱不要混叠平均。6. 快速验证阶次结果的三个手段6.1 用瞬时转速复核阶次谱线位置阶次谱里出现明显峰之后不要急着下诊断。选两个时间点 t1、t2读出当时的转频 fr1、fr2如果该峰假定是 O 阶它在常规时频谱里对应的频率应该分别是 O·fr1 和 O·fr2。用同一段振动信号的短时傅里叶切片对照峰频率是否按比例移动。移动方向和转速一致才说明它真是阶次分量对不上就回头检查转速曲线清洗有没有出错。6.2 变转速故障诊断里三个容易误判的场景第一共振误判成阶次。共振频率固定阶次分析会把固定共振能量按角域展开后铺成宽基底但包络阶次谱里共振调制的边带会造成伪峰。验证方法简单看常规频谱里共振峰是否在固定频率是则排除。第二电磁干扰与转速同步的假成分。电网 50 Hz 及谐波、变频器开关频率会以固定频率出现在所有波形中在阶次轴上随转速拉伸成斜线容易被当成高阶故障。对照停机或空载数据固定频率峰保留的就不是机械阶次。第三转速突变当丢脉冲。升降速中负载突变或齿盘缺齿会周期性出现脉冲间隔异常按丢脉冲直接删除会伪造出转速平台导致阶次谱出现整转边带。先看转速曲线是否平滑再决定清洗方式。6.3 阶次分析结果可复现必须记录的三个参数每个阶次分析结论至少要记录转速通道类型编码器 PPR 或齿盘齿数、SPP 与窗函数、参与分析的总转数。用下面这段代码算出阶次分辨率如果分辨率和关注阶次的间隔在同一个数量级结论就不可靠total_revs (phase[-1] - phase[0]) / (2.0 * np.pi) order_res 1.0 / total_revs if order_res 0.05: print(f总转数 {total_revs:.1f}阶次分辨率 {order_res:.3f}) print(分辨率不足需要更长分析段或分段处理)本文还有配套的精品资源点击获取
返回列表