资讯动态

电机NVH根因分析:谐波计算工具实战与异响定位方法

发布时间:2026/10/21 18:00:28 来源:尧图企业网站定制
干电机NVH分析这一行迟早会遇到一个让人头秃的场景台架上数据测了一堆转速从500rpm扫到8000rpm频谱图上在某个转速区域忽然竖起一根很高的噪声峰。你要是只做测试报告倒不难写可要是被问“这根峰到底从哪来的为什么偏偏在这里出现”很多人就开始沉默了。这几年我在电驱动领域做NVH相关的项目最深的感受是测NVH不难难在根原因查找而根原因查找中最容易卡壳的环节恰恰是谐波计算——把那些看似杂乱、无法直接用耳朵对应到某个转速的频率分量拆开、算清再锁定到某个物理根源上。这篇文章把我自己做电机NVH根原因分析时积累的一套思路写出来重点聚焦两个东西一是“怎么找根”二是“谐波计算工具到底怎么用、怎么选”。内容主要针对电机本体设计、电驱动的NVH测试工程师以及偶尔需要处理振动噪声问题的控制器调试人员。文中会有大量实操细节也会有一个完整的案例复盘希望能让还没入门的同事少走弯路也能让有经验的工程师看到一些可复用的计算脚本和排查方法。1. 电机NVH问题的三副面孔电磁、机械与空气动力噪声1.1 电磁噪声的物理源头气隙磁场与径向力波电机里绝大多数烦人的啸叫根源都不在轴承、不在齿轮而在气隙磁场。电机的定子和转子之间有一层很薄的气隙磁场在里面一边旋转一边“推”定子齿。定子铁心受到的径向力本身就是脉动的这个脉动的力作用在定子结构上就会激发振动再通过机壳和空气传到人耳朵里。问题的关键在于这个“径向力波”不是只有一个频率它包含大量谐波成分。基波磁场本身会产生2倍电网频率的力波这是所有电机都有的而定子槽、转子槽、磁极极弧、磁路饱和、电流谐波这每一个因素都会在气隙磁场里叠加额外的空间和时间谐波。两个不同次数的磁场分量相互作用就会产生一个新的力波分量其频率是两个分量频率之和或之差。举个最简单的例子基频f1的磁场和5次时间谐波磁场相互作用就会在(5-1)f1即4倍基频处产生一个力波分量如果这个4倍频恰好落在定子某个固有模态频率附近那它就会被结构放大变成人耳听到的那种尖锐噪声。做电机NVH的人常说的“力波阶次”实际上指的就是这些磁场谐波相互调制出来的空间阶次和时间频率。空间阶次决定了力波沿圆周的分布形状时间频率决定了振动频率。同一个时间频率如果空间阶次高结构不一定响应空间阶次低、幅值大但频率不在模态附近也不会响。所以根因分析要同时看频率、幅值还得把空间阶次和结构模态一起考虑进去不能只盯着某个频谱尖峰看。1.2 机械噪声与空气动力噪声的特征识别并非所有NVH问题都是电磁的。机械噪声的来源一般是转子不平衡、轴承损伤、装配偏心、齿轮啮合误差这些。空气动力噪声则主要来自风扇叶片、风道里的湍流和气流分离。实际测试里这三个来源往往叠在一起如果分不清根因查找就会进入死胡同。区分它们最有效的办法是看频率随转速的变化规律噪声来源典型激励源特征频率规律随转速变化电磁噪声气隙磁场谐波、电流谐波、PWM载波基频的整数倍、载波边频带通常随基频线性变化也可能固定在某个绝对频率机械噪声转子不平衡、轴承故障、齿轮啮合固定阶次1阶、2阶、齿轮齿数阶或轴承特征频率几乎严格随转速成比例变化空气动力噪声风扇叶片、风道湍流宽带噪声为主叠加叶片通过频率幅值随转速上升频谱呈宽带举个我实际遇到过的情况某台电机在3000rpm附近有个明显异响频谱图上400Hz附近有个峰值。初看像是4倍基频因为基频约100Hz但用阶次分析一算400Hz对应的阶次是4阶不是机械故障常见的1阶或2阶。接着把电流波形取回来做FFT发现5次谐波幅值偏高。到这里基本可以确定这是电磁源而不是轴承或齿轮问题。判断“是什么类型的噪声”是整条根因链路的起点方向错了后面全白做。1.3 为什么“谐波”才是多数NVH问题的根很多工程师拿到频谱就会下意识去找最高峰然后把整治方向放在“把这个峰压下去”上。但NVH的麻烦就在于人耳听到的响度往往不是激励幅值最高的那个分量而是某个激励频率恰好激发结构共振后的结果。一个幅值不高的高次谐波只要它落在模态频率附近产生的噪声可能比幅值大得多的低频分量还要刺耳。所以谐波计算在NVH分析里不是“算个THD交差”而是要回答“哪些谐波分量构成了问题激励源”。这需要把振动频谱、噪声频谱、电流谐波谱放在同一张频标下面比对找出同时出现的频率成分再判断它是来自电源、控制器、电机本体还是纯粹的结构传递。谐波计算工具的价值正在于此它不只是一个算FFT的按钮而是一个把多源信号“对齐、分解、溯源”的工作平台。2. 根原因定位的工程链路频率、阶次与电流指纹2.1 测试布点与数据采集里最容易忽略的细节根因分析的质量一半取决于测试布点和数据采集。很多案例最后查不出来不是算法不行而是数据本身没采好。布点方面加速度传感器至少要放在轴承座、定子机壳和悬置安装点三个位置声压传感器要离电机表面一个固定距离最好用近场测量减少环境反射影响。电流钳要夹在电机三相输入线上注意量程和频率响应普通钳形表的高频响应很差测PWM谐波必须用宽频电流探头。同步采集是另一个大坑。振动、噪声、电流、转速四路信号如果没有严格同步后面对齐频率成分的时候就会一头雾水。转速信号尽量用编码器输出不要用模拟电压换算否则变频器的开关干扰会让转速信号抖得没法看。采样率的选择也有讲究。电机电磁噪声的能量可以从几百赫兹一直延伸到几十千赫兹PWM载波边带通常在高频段。如果只关心2kHz以下的噪声20kHz采样率够用但要做PWM谐波分析采样率至少要设为最大关心频率的5到10倍否则连边带位置都看不清。实测中我习惯把振动和电流通道采样率设为51200Hz这样既能看低频的2倍频力波也能把10kHz以上的载波边带抓进来。2.2 从频谱疑点到阶次画像三步锁定激励频率拿到同步采集的数据后我一般按三步走。第一步做稳态频谱。在某个固定转速下对振动、噪声和电流分别做FFT找到所有明显峰值记录各自的频率。注意频域分辨率要足够采样时间至少要在2秒以上否则相邻两根谱线会糊在一起。第二步做扫频分析把转速从低到高依次扫过去每个转速点切出一帧频谱叠成一张“瀑布图”或“彩色云图”。这张图能很直观地看出哪些频率分量是跟随转速变化的“阶次线”哪些是不随转速变化的“固定频率线”哪些是被激发的“模态裙带”。在云图里阶次线是从左下到右上倾斜的直线固定频率线是垂直的亮线而结构共振往往是某个转速区间内幅值突然增强的横向亮带。第三步把可疑频率除以基频算出阶次。阶次如果接近整数优先怀疑电磁力波或齿轮相关如果是0.5、1.5这类分数阶要看有没有半整数阶的机械源如果是固定频率不随转速变化那就要考虑电网的50Hz谐波、控制器内部的载波谐波或者结构本身的固有频率被某个恒定激励源激发。这个三步流程看起来简单但真正执行时要非常小心云图里的“视觉错觉”。因为云图颜色映射和坐标缩放不同会把一些本来不相关的峰衬得很亮。我的习惯是云图只用来缩小范围最后的阶次和频率判断必须在单帧频谱里用光标逐点核对。2.3 电流谐波指纹把控制器和电机本体分开切电磁噪声的激励源要么来自电机本体要么来自控制器。同样是电流谐波5次谐波可能来自逆变器死区也可能来自电机相反电势畸变如果不把这两类来源分开整改就会走弯路。我的做法是“电流指纹对照”。具体来说取一相电流做FFT把各次谐波电流的幅值和相位记录下来再和振动噪声频谱对照。如果某个振动频率点对应的电流谐波幅值也高那这个振动大概率是电磁力波直接产生的如果电流谱里干干净净振动谱里却有一个峰那就要去查机械源或结构传递路径。这里要用到一个小技巧看相位一致性。控制器死区产生的谐波在不同转速下幅值会有规律变化但相位相对基波通常保持比较稳定的关系而电机本体磁路产生的谐波相位会随负载和磁饱和状态变化。短时间内改变负载如果谐波幅值变化不大、相位变化却很大多半是电机本体的磁饱和问题如果幅值随负载明显变化则更像控制器电流环的参数问题。当然电流指纹只能帮你把责任范围从“整个电驱动系统”缩小到“控制器侧或电机本体侧”具体是哪一个环节还要结合控制器软件参数、电机设计参数进一步确认。但如果没有这一步后续的谐波计算工具都不知道该往哪里使劲。3. 谐波计算工具实测从FFT脚本到阶次分析的选型3.1 工具矩阵通用计算平台与专业测试系统的取舍市面上的谐波计算工具分两大类。一类是通用计算平台比如Python、MATLAB这类灵活度高可以自己写脚本把电流、振动、转速读进来做联合分析另一类是商业化NVH测试系统比如多通道动态信号分析仪自带的软件操作模板化适合标准测试流程但扩展性差价格也不便宜。我个人的倾向是入门和快速排查阶段优先用Python加SciPy这套组合。原因很简单免费、可复制、好改随时能把一批数据文件批量跑完并且代码可以沉淀成自己团队的通用工具。商业系统适合正式测试报告和长周期项目复测因为它们自带标定和报告模板测试工程师上手快不容易因为脚本bug把数据算错。工具选型其实没有绝对的“最好”关键看你要回答的问题。如果是确定一个谐波的来源灵活的编程工具明显更合适如果是定期测试一台电机在若干转速点的NVH指标那商业系统的效率更高。我在实际项目中通常两个都留现场测试用商业系统数据后处理和根因挖掘用Python。3.2 一套可复用的谐波计算脚本给出一段我自己一直在用的Python脚本骨架用来从电流或振动时域数据里提取前50次谐波的幅值和THD。核心思路是整周期截取时域数据加Hanning窗做FFT在频域里找到基波和各次谐波然后按幅值排序。这套代码可以直接改造成批量处理的workflow。import numpy as np from scipy.signal import hanning def extract_harmonics(signal, fs, f1, top_n10): 从时域信号中提取基频 f1 的前若干次谐波幅值。 参数: signal: 一维时域数组 fs : 采样率 f1 : 基波频率单位Hz top_n : 需要提取的谐波次数上限 返回: 一个列表元素为 (谐波次数, 幅值)按幅值降序 n len(signal) # 整周期截取保证频率分辨率落到基波及整数倍频上 cycles int(np.round(f1 * n / fs)) n_cut int(cycles * fs / f1) data signal[:n_cut] * hanning(n_cut) spec np.fft.rfft(data) / n_cut * 2 freq np.fft.rfftfreq(n_cut, 1/fs) amp np.abs(spec) results [] for k in range(1, top_n 1): target k * f1 idx int(np.argmin(np.abs(freq - target))) results.append((k, amp[idx])) results.sort(keylambda x: x[1], reverseTrue) return results这段脚本有几个细节值得说明。第一整周期截取很重要如果不做这一步基波泄漏会把相邻谐波的幅值“污染”掉后面排序就会失真。第二加窗可以在整周期截取之后再进行Hanning窗在这个场景足够用如果信号很短又想保留幅值精度可以换FlatTop窗。第三谐波幅值是从FFT峰值点直接取的如果采样率和数据长度选择合适分辨率能做到1Hz以内足够工程判断。我一般还会加一段功率谱密度分析用韦尔奇法把随机噪声平滑掉适合用来找宽带背景上的窄带峰。FFT适合看稳态谱的离散分量PSD适合分辨那些被噪声淹没的特征峰两者不冲突联合使用效果最好。这一段的工程意义是根因分析时不免要面对比较恶劣的台架环境直接看FFT有时峰值不明显PSD能帮我们把频率筛选做得更稳。3.3 阶次分析的自建实现为什么变频电机离不开它普通FFT看的是“绝对频率”阶次分析看的是“相对转速的倍数”对变频驱动的电机格外重要。因为转速一变化基频也跟着变化同一个力波阶次对应的绝对频率一直在漂用固定FFT很难看清楚完整规律。商业软件里阶次分析算法通常是把时域信号按角度重采样再做FFT得到“阶次谱”然后把所有转速下的阶次谱叠成云图。如果暂时没有商业软件也可以自己实现一个简化版把编码器脉冲或转速信号记录下来转换成角度随时间的变化关系再用样条插值把振动时域信号重采样到等角度间隔最后对这个角度域信号做FFT横轴的“频率”就是阶次。这个思路并不复杂但足够应对大多数阶次定位需求。自建阶次分析的另一个好处是可以自定义重采样策略。有些商业软件在处理打滑、丢脉冲时表现很差而自己写的脚本可以加容错逻辑比如剔除异常角度增量。这项工作被很多人当作“造轮子”但在实际根因排查中一次快速、可控的阶次扫描往往比一个昂贵的软件模块更有效。4. 一次600Hz啸叫的根因定位完整复盘4.1 症状与初判这台电机的啸叫为什么集中在3000rpm附近这是一个在某整车电驱动样机上发生的典型案例。噪音表现很明确驾驶员位置在3000rpm附近能听到持续的啸叫松开油门后啸叫立即消失原地空转时声音更明显。台架上加速度传感器贴在电机机壳表面声压传感器放在距离电机表面30cm的位置电流钳夹在U相线上同步采集。先用稳态频谱看3000rpm工况。基频f1在3000rpm时约为150Hz电机是6极极对数p3振动频谱里最突出的峰在600Hz附近刚好是4×150Hz。声压谱里也有一个对应峰说明噪声确实来自电机振动而不是周边辅助系统的干扰。这里要注意600Hz不是机械阶次问题因为机械故障通常在1阶、2阶或轴承特征频率附近但也不能马上断定就是电磁问题需要继续看阶次和电流。随后做扫频云图。从2000rpm扫到4000rpm600Hz这条亮线并不是严格固定的而是随着转速上升往高频移动400Hz到700Hz区间内有一条倾斜亮带与基频的关系大约保持在4倍左右。这个“4倍基频”的模式基本确认了它是一个阶次性的电磁激励而非固定频率的模态共振。4.2 电流谐波对照锁定5次谐波为“元凶”接下来进入谐波计算的核心环节。取3000rpm下的U相电流数据按照3.2小节的脚本提取前20次谐波结果很干净地显示5次谐波电流幅值偏高达到基波幅值的7%左右而5次以上的谐波含量都不到2%。我们需要把这个现象映射到力波频率上。简单来说气隙里基波磁场和5次谐波磁场相互作用会在(5-1)f1即600Hz处产生径向力波分量同时也可能在(51)f1即900Hz处产生另一个分量。600Hz分量恰好和振动谱里的主峰对上说明当前可听噪声的主要激励就是“基波磁场与5次电流谐波磁场的相互作用”。这个判断还需要佐证。因为电流5次谐波本身可能来自电机相反电势也可能来自逆变器死区、PWM不对称。怎么区分把控制器断开用外部电源单独驱动电机测同一工况下的电流谐波。外部电源下的5次谐波明显变小那么问题就指向控制器侧如果外部电源下5次谐波依然高那就是电机本体存在明显的反电势5次分量。实测结果证明外部电源下5次谐波降到2%左右因此控制器才是问题的源头。4.3 修复方向与验证结果从数据到工程改动确认激励源来自控制器后进一步查看控制参数。发现这一版软件里的死区补偿逻辑在较低载波频率区间存在不匹配导致死区引入的5次、7次谐波没有被完全抵消。调整死区补偿参数同时微调某一控制环路的比例积分增益重新测试5次电流谐波从7%降到约2.5%600Hz振动峰值下降了约20dB车内啸叫基本消除。这里有一个很有价值的经验根因分析最终得出的整改点往往不在振动数据最明显的位置。所有人听到的是600Hz的噪声但病根却在电流环路的死区补偿参数里。如果只对着600Hz去做结构加筋或吸音棉虽然也能压掉一部分声压但那只是治标而且代价很高。这个案例从头到尾没有动过任何机械结构只改了控制器软件噪声问题就解决了。谐波计算工具在这个过程中的作用就是把“600Hz振动”和“5次谐波电流”这两个看起来毫不相关的现象在频域里准确对齐给了排查方向一个明确的靶子。5. 谐波计算工具常见的坑与使用心得5.1 采样率、频率分辨率与窗函数选择不当等于白测谐波计算的第一个常见坑是采样率不够。电机谐波信号的频率范围很宽尤其是PWM供电时载波频率附近的边带谐波往往出现在几kHz到几十kHz。根据奈奎斯特采样定理采样率至少要达到最高关心频率的两倍但工程上为了防止抗混叠滤波器过渡带的影响建议至少5倍。实际项目里我一般取51200Hz特殊情况取更高。第二个坑是频率分辨率。FFT的频率分辨率约等于采样率除以FFT点数也就是采样时间越长分辨率越好。如果采样时间只有0.2秒分辨率只有5Hz那么对于间隔很小的载波边带和力波分量根本分不开。但采样时间又不能无限长电机在长时间高转速下会有轻微转速波动谱线会被“抹宽”。我的经验是把每段采样时间控制在1到2秒分辨率做到1Hz以内同时保证转速波动在±1rpm以内。第三个坑是窗函数。很多工具默认加Hanning窗这适合大多数连续信号但如果关心的是窄带尖峰而不太在意频率泄漏用矩形窗配合整周期截取是更准的选择。FlatTop窗适合需要精读幅值的场合Blackman-Harris窗口则更偏向频率精度。下表是我常用的选窗场景窗函数主瓣宽度幅值精度适用场景矩形窗最窄一般整周期截取后的稳态信号Hanning较窄好大多数连续信号谐波分析FlatTop较宽非常好谐波幅值需精确量化时Blackman中等好需要兼顾频率分辩与幅值精度时5.2 别只盯着THD单次谐波的位置比总谐波畸变更重要很多工程师对谐波计算的认知停留在“我算一下THD看看电流脏不脏”。但THD这个指标在NVH分析里经常是误导性的。它把所有谐波能量按平方和累加没有频率维度的概念。一个THD指标从3%优化到1.5%的电机可能在某个特定转速下某个特定谐波幅值反而升高了并触发一个尖锐噪声。反过来THD很高但谐波能量都分布在人耳不敏感或结构不响应的频段主观噪声可能并不严重。所以我在做NVH根因分析时几乎从不把THD作为首要判据。我更在意的是“前20次谐波里哪几根谱线和振动噪声峰有交集”。这个交集才是需要关注的目标。工具输出THD只是背景参考真正在报告里起作用的是一张谐波幅值排序表和一张振动频谱叠加图。5.3 相位信息容易被忽略却常常是破解根因的钥匙FFT不仅能给出谐波的幅值还能给出相位。很多人的谐波计算脚本只保留幅值把相位丢掉这是一个挺可惜的习惯。在电机电磁力波分析里各相电流谐波之间的相位关系直接决定了气隙磁场谐波的旋转方向和合成力波的空间分布。同样是5次谐波如果三相之间的相位顺序是正序产生的力波频率和空间阶次与零序或负序情况完全不同。有一次我们排查一个噪音问题时电流谐波幅值在正常范围里但振动就是很大。后来把三相电流谐波相位取出来对比才发现其中某一相的5次谐波相位异常三相电流不对称导致本来应该相互抵消的力波没有被抵消形成了一个净的径向力波分量。找到这个相位异常后问题很快回归到电流传感器采样偏置上。这件事让我明白谐波计算工具不能只输出幅值必须把相位信息也保留下来尤其是在做三相系统分析时。5.4 边频带分析是PWM谐波的专属突破口对于变频器供电的电机噪声峰经常出现在载波频率附近的边频带上比如fsw±k×f1。这些边频带在频谱上表现为以载波为中心的一组对称谱线。边频带的分布和幅值与PWM调制方式、死区时间、载波频率息息相关。做谐波计算时如果只取整数倍基频会完全错过这些边频分量而边频恰恰是很多变频电机啸叫的直接原因。我的处理方法是先把载波频率和基频记录下来然后在FFT后的频谱上把所有fsw±n×f1位置的峰值提取出来计算边频幅值比。如果某个边频幅值和振动噪声峰重合那么大方向就可以锁定到PWM谐波交互。这时再去检查死区补偿、过采样策略和对称PWM配置往往能找到根子上的问题。这里再补充一句边频分析的频率分辨率需求很高因为fsw和n×f1之间可能相差只有零点几赫兹采样时间和窗函数都要好好对待。5.5 谐波计算与仿真工具的衔接让数据为模型提供证据最后聊一下谐波计算和仿真验证的配合。根因分析不是止步于“测出来是5次谐波”更理想的状态是能用电磁仿真或结构有限元验证这个结论。做法是把实测的电流谐波幅值和相位注入电磁计算模型计算出径向力波分布再用力波做结构谐响应分析看结构在600Hz附近是否有模态响应。如果仿真结果的钱振振频点和实测吻合那么根因链条就完整闭环了后续做优化设计也有据可依。我们做这一步时并不会追求仿真和测试百分之百一致目标是确认“主要激励源是否被建模捕获”。实测激振频率600Hz模型里只出现500Hz或者700Hz的峰值说明模型里某些关键参数没校准可能是反电势谐波、磁饱和或者结构模态阻尼设定不对。这时候再回头去校正模型比盲目优化电机参数有用得多。谐波计算工具在这个闭环里的角色既是测试数据的解码器也是仿真模型的输入接口。经过这几个项目的打磨我的体会是电机NVH根因分析本质上不是“某个工具的比拼”而是一套把测试、谐波计算、电磁原理、结构响应组合起来的推理过程。工具只是帮我们把隐藏的频率关系拉到台面上来真正决定效率的是你有多清楚自己在找什么。我现在做任何一次异响排查都会先问三个问题这个频率跟基频是什么关系这个谐波从控制器来还是本体来它跟结构模态碰没碰上三个问题都答完根因基本就水落石出了。工具方面Python脚本已经沉淀成我自己的私藏工具箱稳定、可控、随时能改。如果你也常被各种不明异响折磨建议从写好一段属于自己的谐波提取脚本开始慢慢积累这东西一旦顺手远比买套昂贵系统划算。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑