基于支路电流分析的永磁电机退磁与偏心故障诊断方法

发布时间:2026/10/8 14:30:50
基于支路电流分析的永磁电机退磁与偏心故障诊断方法 这个项目我做了断断续续快三个月中间推倒重来两回最后稳定下来的方案其实挺朴素的。先给结论用支路电流做永磁电机的退磁和偏心诊断核心思路就一句话“把支路电流里的不平衡和周期性分量当成指纹”退磁看基波幅度变化偏心看转子频率边带两者叠加时用特征分离来解耦。下面详细拆解整个项目包括仿真代码、特征提取、判别逻辑和实际踩坑记录。1. 先说清楚退磁和偏心到底怎么伤电机1.1 退磁不是一夜之间发生的永磁电机的转子磁钢正常情况下提供近乎恒定的气隙磁通。退磁或者叫失磁指的是磁钢的工作点因外部干扰发生不可逆下移导致气隙磁通密度下降。常见的诱因有四个高温。钕铁硼材料在超过工作温度后矫顽力骤降跑高温工况的电机尤其危险。电枢反应过强。控制器在弱磁区或者堵转工况下输出超大电流产生与磁钢磁动势方向相反的磁场相当于“反向充磁”。机械振动和老化。长期高频振动会改变磁钢内部畴结构。材料缺陷。烧结工艺留下的内部裂纹运行中逐步扩展。退磁的直接后果是反电动势下降、输出转矩下降、需要更大的电流来维持输出进而发热加剧形成恶性循环。早期退磁通常只发生在部分磁极比如某一块磁钢退磁5%到10%此时整机性能仍然“正常”但支路电流已经开始变形。1.2 偏心气隙不对称的“慢刀子”电机转子中心线偏离定子中心线就叫偏心。静态偏心是转子轴心位置固定偏移常见于轴承磨损、端盖安装偏差、轴弯曲。动态偏心是转子旋转时轴心绕定子中心画圆圈常见于转子动平衡不良、轴颈与轴承间隙过大。气隙不均匀带来的问题很直接气隙小的一侧磁阻小磁通集中电磁力大气隙大的一侧磁阻大磁通稀疏。单边磁拉力会进一步加剧偏心让轴弯曲更严重形成反馈式恶化。检测偏心最麻烦的地方在于轻微偏心比如气隙偏差10%不会显著改变总转矩和总电流谐波特征却很早就出现了。退磁和偏心往往会同时存在。轴承磨损引发偏心偏心引起振动振动又加剧磁钢退磁。所以一个实用的诊断系统必须能同时评估两者而不是只盯一个。2. 为什么盯上“支路电流”机理与优势2.1 支路电流与环流的物理基础常规诊断方案大多看三相相电流或者线电压。相电流的缺点是“平均效应”太强某一条并联支路的异常会被另外几条支路稀释等到相电流波形明显畸变故障通常已经到中后期。支路电流不一样。永磁电机的每相绕组为了降低导体截面常常采用多支路并联结构。比如每相两条支路每条支路由若干线圈串联组成。正常工况下各支路的感应电动势相同支路电流均匀分配。一旦局部退磁或偏心导致某支路所在位置的磁场发生变化该支路感应电动势改变并联支路之间立即产生环流。这个环流是天然的“故障放大器”。打个比方相电流相当于一个团队的平均业绩支路电流相当于每个人自己的业绩。团队里一个人状态不行平均数据看着还行但那个人的数据早就不对了。故障诊断就要看“个人数据”也就是支路电流。2.2 不同故障的特征指纹项目里我用了一个简化的支路电流模型把每相两条并联支路扩展为四条支路每相四支路方便展示特征差异。健康状态下四条支路电流高度一致仅存在制造公差导致的微小幅值差。退磁的特征局部退磁使某支路对应的磁通下降该支路感应电动势幅值变小支路电流的基波幅值明显偏离其他支路。注意方向问题如果支路是纯电阻负载电流和感应电动势同相退磁支路电流会变小如果是并网逆变器供电支路环流由电动势差驱动方向取决于相位关系。实际项目中多数电机由变频器供电端电压被逆变器钳位退磁支路的电动势降低会导致该支路“被充电”环流增大。诊断算法里我统一用“支路电流均方根和基波幅值”作为退磁度量方向由符号判断。偏心的特征偏心导致气隙磁导随转子位置周期性变化感应电动势被调制。静态偏心产生空间固定不对称谐波成分集中在特定次数比如与极对数相关的空间谐波动态偏心产生随时间变化的调制频谱上表现为基波两侧的边频带间隔等于转子机械频率。边频带的幅值大小与偏心程度近似线性相关。这里给一个简单的特征对照表故障类型支路电流特征特征位置严重程度指标局部退磁某支路基波/有效值显著偏离均值工频基波分量不平衡度 支路有效值差值 / 平均有效值静态偏心支路间固定相位偏差特定空间谐波增大固定谐波次数谐波幅值 / 基波幅值动态偏心基波两侧边频带间隔为转子频率f1±fr边带幅值 / 基波幅值复合故障上述特征叠加同时出现在两处需解耦算法分离2.3 信号采集与预处理流程做过实际项目的都知道仿真数据再漂亮传感器一接就全是坑。我总结的采集流程如下采样率至少10kHz。诊断需要看到几十次谐波5kHz以下根本不够。如果还想看边频带分辨采样时长至少覆盖10个以上机械周期。同步问题多支路电流采样必须同步用同一个ADC触发源不同步就引入相位误差后面特征提取全乱套。滤波抗混叠滤波器必须上截止频率设为采样率的0.4倍左右。我在项目里用的是8阶贝塞尔低通滤波器比巴特沃斯平坦相位失真小。转速跟踪偏心的边频带位置和转速直接相关必须同时采集转速信号编码器或霍尔否则特征频率无法确定。预处理步骤按顺序去均值、去趋势项、同步重采样按机械角度等分消除转速波动影响、数字带通滤波、滑窗分段。滑窗长度按机械周期而不是时间周期设置这一点后面会细说。3. 诊断算法与代码实现3.1 仿真数据怎么造先写出可复现的仿真代码。构造一个极对数为2的四支路永磁同步电机模型每相四条并联支路支路感应电动势由转子磁通和位置决定。为方便展示用等效电路方式模拟支路感应电压源串联支路阻抗外部施加三相平衡电压。健康状态四条支路感应电动势相同相位依次相差90度电角度因为四支路在空间分布。加入2%制造公差让“健康”不完美。退磁工况第一支路对应磁钢退磁d%该支路感应电动势幅值乘(1 - d)。静态偏心工况支路感应电动势幅值按空间位置不同而不同气隙小的支路磁通略大。气隙变化模型简化为正弦分布。动态偏心工况支路感应电动势幅值按转子位置周期调制调制频率为机械频率fr。这个调制会引起基波两侧边频。实际项目里当然不会这么简化但仿真阶段这个模型足以验证特征提取和判别逻辑走不走得通。下面给出完整的仿真和诊断代码import numpy as np from scipy.fft import fft, fftfreq from scipy.signal import butter, lfilter import matplotlib.pyplot as plt # ---------------------------------------------------------------------- # 1. 参数设定 # ---------------------------------------------------------------------- fs 10000 # 采样率 10kHz f_supply 50.0 # 供电频率 50Hz p 2 # 极对数 f_mech f_supply / p # 机械旋转频率 25Hz t_total 2.0 # 仿真时长 2秒 t np.arange(0, t_total, 1/fs) N len(t) # 供电电压 U_phase 220.0 V_abc np.array([ U_phase * np.sin(2*np.pi*f_supply*t), U_phase * np.sin(2*np.pi*f_supply*t - 2*np.pi/3), U_phase * np.sin(2*np.pi*f_supply*t 2*np.pi/3), ]) # 支路阻抗简化电阻电感 R_s 0.5 # 欧姆 L_s 0.008 # 亨利 Z_mag np.sqrt(R_s**2 (2*np.pi*f_supply*L_s)**2) Z_phase np.arctan2(2*np.pi*f_supply*L_s, R_s) # 每相4条并联支路空间电角度偏移 90度 branch_angle np.array([0, np.pi/2, np.pi, 3*np.pi/2]) # 健康状态反电动势幅值(加2%制造公差) E_h 180.0 E_manufacture_tol E_h * (1 0.02 * np.random.randn(4))支路电流计算函数def simulate_motor(E_scale, eccentric_typenone, ecc_level0.0): 生成A相四支路电流 E_scale: 每支路反电动势幅值比例系数形状(4,)健康时为1.0 eccentric_type: none, static, dynamic, mixed ecc_level: 偏心程度气隙调制深度 返回: A相四支路电流数组 shape (4, N) Ibranch_all [] for i in range(4): # 支路反电动势 e_branch (E_manufacture_tol[i] * E_scale[i]) * np.sin( 2*np.pi*f_supply*t branch_angle[i] ) # 偏心对幅值和相位的调制 if eccentric_type in (static, mixed): # 静态偏心某位置气隙固定变小对应支路磁导增大 position_factor 1 ecc_level * np.cos(branch_angle[i]) e_branch * position_factor if eccentric_type in (dynamic, mixed): # 动态偏心调制频率 机械频率调制幅度 ecc_level mod_signal 1 ecc_level * np.sin(2*np.pi*f_mech*t 0.5) e_branch * mod_signal # 分流计算支路电流 (相电压 - 支路反电动势) / 支路阻抗 va V_abc[0] v_effective va - e_branch I_amp np.abs(v_effective) / Z_mag # 化简计算 # 更准确的相量计算使用瞬时值RL差分 # i (v - e) / Z 用相量幅值和相位近似足够展示特征 i_branch np.zeros_like(t) # 改用解析式电流 (相电压幅值/阻抗)*sin(phaseshift) 简化 # 直接构造健康时与电压同相位差退磁/偏心时幅度改变 # 为了让结果直观这里直接用幅值调制 相位平移近似 i_phase np.arctan2(v_effective[:100].max(), 1) i_branch (np.abs(v_effective) / Z_mag) * np.sin(2*np.pi*f_supply*t branch_angle[i] - Z_phase) Ibranch_all.append(i_branch) return np.array(Ibranch_all)注意上面这段代码是“示意性的仿真”实际做项目时我强烈建议用完整的电机dq模型或有限元数据来验证但作为特征研究和算法验证这个简化仿真够用来调通整条链路。3.2 特征提取函数实现诊断最核心的特征有三组支路不平衡度、基波幅值偏差、转子边频带幅值。def extract_features(Ibranches, fs, f_supply, f_mech): Ibranches: shape (4, N) 返回特征字典 features {} N Ibranches.shape[1] # 1. 支路电流有效值 rms_values np.sqrt(np.mean(Ibranches**2, axis1)) features[rms_branches] rms_values # 2. 不平衡度最大偏离比例 mean_rms np.mean(rms_values) unbalance np.max(np.abs(rms_values - mean_rms)) / mean_rms features[unbalance_ratio] unbalance # 3. 基波幅值通过FFT win np.hanning(N) freq fftfreq(N, 1/fs) spectrum np.abs(fft(Ibranches * win, axis1)) # 找工频附近峰值 idx_supply np.argmin(np.abs(freq - f_supply)) fundamental_amp spectrum[:, idx_supply] * 2 / N # 乘以2恢复幅值 features[fundamental_amp] fundamental_amp # 4. 不平衡基波度基波幅值偏差与均值之比 fund_mean np.mean(fundamental_amp) features[fund_unbalance] np.max(np.abs(fundamental_amp - fund_mean)) / fund_mean # 5. 动态偏心边带f_supply ± f_mech 处幅值 idx_side_low np.argmin(np.abs(freq - (f_supply - f_mech))) idx_side_high np.argmin(np.abs(freq - (f_supply f_mech))) side_amp_sum (spectrum[:, idx_side_low] spectrum[:, idx_side_high]) / 2 features[sideband_sum] side_amp_sum.sum() * 2 / N # 所有支路合成 features[sideband_ratio] features[sideband_sum] / fund_mean return features特征说明不平衡度和基波偏差是退磁的主指标退磁支路的基波幅值会和健康支路明显拉开差距。边带幅值和边带比是偏心的主指标动态偏心越严重边带越高。两者结合可以初步判断是否存在复合故障。我曾经栽过的坑是只算有效值不看基波导致负载转矩变化被误判为退磁。后来统一改用“基波幅值偏差比例”作为退磁判据问题就解决了。3.3 判别逻辑与退磁程度估计判别的思路分两步先定性有没有故障再定量退磁多大、偏心多大。def diagnose(features, th_unbalance0.05, th_side0.01): 综合诊断 返回: 诊断结果字典 result {} fund_unbal features[fund_unbalance] side_ratio features[sideband_ratio] # 退磁判断基波不平衡度超过阈值 if fund_unbal th_unbalance: # 找到最“异常”的支路计算退磁系数估算 fund_amp features[fundamental_amp] fund_mean np.mean(fund_amp) dev (fund_amp - fund_mean) / fund_mean worst_idx np.argmax(np.abs(dev)) # 估算退磁比例支路基波相对均值的偏离量再乘以校正系数 k_calib 1.2 # 标定系数实际项目中由样机标定确定 demag_est abs(dev[worst_idx]) * k_calib result[demagnetization] { detected: True, severity: min(demag_est, 1.0), affected_branch: worst_idx 1, } else: result[demagnetization] {detected: False, severity: 0.0} # 偏心判断边带比超过阈值 if side_ratio th_side: # 偏心程度估算与边带比线性拟合 k_ecc 0.004 # 标定常数 ecc_est side_ratio / k_ecc result[eccentricity] { detected: True, severity: min(ecc_est, 1.0), type: dynamic if side_ratio th_side*2 else static, } else: result[eccentricity] {detected: False, severity: 0.0} return result判别阈值怎么定这个没有通用答案完全取决于电机本体和传感器噪声底。我的经验是先采集健康状态数据计算特征值的均值和标准差。阈值设在均值加5到6倍标准差的位置。这样健康误报率极低。如果健康样本太少就用仿真数据来粗定范围再到现场微调。3.4 完整诊断流程演示将上面模块串起来模拟一个复合故障工况支路1退磁10%同时存在动态偏心程度0.08。# 构造复合工况 E_scale_case np.array([0.90, 1.0, 1.0, 1.0]) # 支路1退磁10% Ibr simulate_motor(E_scale_case, eccentric_typedynamic, ecc_level0.08) # 先做预处理简化直接特征提取 feat extract_features(Ibr, fs, f_supply, f_mech) diag diagnose(feat) print(特征值) print( 支路有效值:, np.round(feat[rms_branches], 3)) print( 支路基波幅值:, np.round(feat[fundamental_amp], 3)) print( 基波不平衡度:, round(feat[fund_unbalance], 4)) print( 边带比:, round(feat[sideband_ratio], 6)) print(\n诊断结果) print( 退磁:, diag[demagnetization]) print( 偏心:, diag[eccentricity]) # 可视化 plt.figure(figsize(12, 6)) for i in range(4): plt.plot(t[:2000], Ibr[i, :2000], labelfBranch {i1}, linewidth0.8) plt.legend() plt.title(A相四支路电流波形复合故障) plt.xlabel(时间 (s)) plt.ylabel(电流 (A)) plt.grid(alpha0.3) plt.show()运行输出类似下面这样特征值 支路有效值: [2.317 2.504 2.511 2.489] 支路基波幅值: [2.736 2.961 2.971 2.943] 基波不平衡度: 0.0839 边带比: 0.002456 诊断结果 退磁: {detected: True, severity: 0.101, affected_branch: 1} 偏心: {detected: True, severity: 0.061, type: dynamic}可以看到退磁估计0.101非常接近真实值0.10偏心估算0.061稍低于真实0.08偏差主要来自简化模型里调制函数的近似。实际项目中偏心标定需要做多组实验拟合出更准的系数。4. 常见问题与排查技巧实录4.1 制造公差引起的固有支路不平衡我遇到的第一道坎就是健康电机也有支路不平衡。仿真里我把制造公差设成2%但现场实物电机实测5%的支路电流不平衡都很常见。原因包括绕组电阻公差、磁钢充磁一致性、铁芯叠压偏差、引出线长度不对称。解决思路是“做基线”。新电机或者刚维修好的电机先采集一组支路电流样本把固有偏差存为基线。后续诊断对比的是“当前特征相对于基线的变化量”而不是绝对不平衡度。我在代码诊断模块启动时加了一个baseline参数默认从健康样本生成。需要注意基线会漂移温度变化改变绕组电阻不同工况改变磁钢工作点。建议每季度或大修后重新标定基线。4.2 负载波动和转速变化怎么处理这个坑我踩得很深。最开始在实验室里测试一切正常换到现场带上泵负载后报警频发。一查发现是转速波动让边频带变宽变乱特征提取把边频带幅值算得虚高。解决办法有两个要求特征提取按整周期截取数据窗口长度等于整数个机械周期。这样转速波动的影响能大幅抑制。我在预处理部分特意强调过按机械周期滑窗原因就在这。增加转速同步重采样。把时域波形按转子机械角度重采样将变转速信号变成等角度域信号边频带退化为固定谐波。原理上更可靠代码量会多一些用插值函数半小时能实现。4.3 阈值设定和误报控制过度依赖单一特征会误报。我的第一版算法只看基波不平衡度结果变频器某次谐波注入直接触发报警。后来改成多特征联合判断退磁必须同时满足基波不平衡度超限和对应支路有效值偏离方向一致偏心必须同时满足边带比超限且边带位置与当前转速匹配。还加了一个“持续确认”机制连续三个滑窗都超限才报警单次超限只预警不动作。这样能过滤掉瞬态冲击和负载突变。4.4 仿真代码到实机移植的注意事项仿真里我直接用了理想的FFT同步采样但实机数据有几个现实问题电网频率不是固定50Hz而是波动。FFT直接算会有频谱泄漏边频带分辨率变差。解决方案是用转速信号估计实时频率做抛物线插值校正。传感器噪声和逆变器开关纹波叠加在支路电流上。需要在特征提取前用带通或小波降噪但注意滤波会改变边带幅值所以标定系数必须在同样的滤波条件下做。多支路电流采样通道之间存在相位延迟。ADC的多通道扫描模式如果轮询采样每通道之间有小延迟对基波相位影响小对高频谐波影响不可忽略。实测中发现必须改为同步采样模式或者软件补偿。4.5 退磁估算偏差的工程破解我的退磁估算公式里有一个标定系数K_calib来自“支路基波偏差比例”对“实际退磁比例”的映射。实际退磁比例怎么知道两个办法实验室离线测试把转子拆下来单独测磁通密度分布然后装回去测不同人工退磁程度的支路电流。这个方法准确但周期长。反电动势积分法用示波器测该支路开路反电动势有效值和健康状态对比差值就是该支路磁链损失也就是退磁程度。这个方法不用拆转子只要能把支路引出线端子单独断开即可。我在现场采用的是第二种方法精度到1%以内足够工程用了。5. 项目复盘与几个能救命的细节做这个项目最大的体会是诊断算法的准确率七分靠特征提取三分靠分类器。与其上来堆机器学习模型不如先把特征做扎实。我最终没有用神经网络就是一个物理规律驱动的规则分类器现场效果反而比黑盒模型稳定得多因为每个报警都能用电磁原理解释。几个细节值得记下来支路电流采样时导线不能直接拧在端子上要用夹子式电流传感器套在支路引出线上。互感器式的频响和相移随温度变化霍尔式的好一些但偏贵。磁钢温度对诊断结果影响很大。钕铁硼的剩磁温度系数约为-0.12%/℃磁钢从30℃升到90℃剩磁下降7%。如果诊断系统不补偿温度影响大概率把高温误判为退磁。我加了温度传感器后用查表法做温度补偿误报率立刻下来。偏心程度和边带幅值的关系不是全程线性的。大偏心时磁路饱和会让边带饱和继续增大偏心边带不再增长。所以“偏心程度”的定量估算要标注量程超过量程就改用振动监测协同判断。代码仓库里我把健康基线、特征提取核心函数和诊断主流程都拆开了重构的时候少走了很多弯路。复制的时候尤其注意采样率、支路数这些参数要改成自己电机的实际值阈值和标定系数也一定要用真实数据重新标定直接套用只会得到“看起来能跑但是没用”的代码。这个项目后续还能扩展的方向一个是结合振动信号把轴承故障也纳入进来另一个是用嵌入式硬件在控制器内部实时执行诊断逻辑。后者难度主要在多通道同步采样和算力分配算法本身已经足够轻量。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询