基于 Syslab 的电机振动频谱分析教学案例:从信号生成到故障特征识别 一、为什么选择电机振动频谱分析在智能制造和设备状态监测场景中电机、泵、风机等旋转机械的振动信号常被用于判断设备运行状态。通过观察振动信号的时域波形和频域特征学生可以直观理解转频、倍频、谐波、冲击等概念并进一步认识不同运行状态下的信号表现。但在实际教学中电机振动实验往往存在一定门槛一方面振动测试实验台建设成本较高另一方面在真实设备上复现转子不平衡、轴不对中、机械松动、轴承故障等工况并不方便也不适合大规模课堂教学。为降低教学使用门槛我们基于MWORKS.Syslab开发了一个电机振动频谱分析教学案例。案例通过脚本自动生成不同运行状态下的模拟振动信号并使用 FFT 完成时域分析、频谱分析、倍频标注和故障特征识别帮助学生在一次实验中理解时域波形 → FFT 频谱 → 倍频分析 → 故障特征识别本案例已在MoHub 开源提供完整代码、运行脚本、示例数据和配套教学文档。教师下载后可直接用于课堂演示、上机实验或课程作业。案例开源地址https://mohub.net/model/26318/summary图 1 电机振动频谱分析案例总览图展示不同运行状态下的频谱特征与故障特征总结。二、案例目标这个实验要完成什么学生将通过本案例掌握以下核心能力目标对应知识点理解振动信号的时域与频域关系傅里叶变换、频谱分析掌握 FFT 频谱分析的基本方法采样定理、频率分辨率、单边谱识别转频、倍频等关键概念1X、2X、3X 倍频的物理含义区分不同运行状态下的频谱特征不平衡、轴不对中、机械松动、轴承早期故障使用 Syslab 完成信号处理全流程数据生成、FFT、峰值识别、特征解释本案例的教学重点不是让学生直接完成复杂的工业诊断系统而是通过一个可运行、可修改、可观察的实验案例帮助学生建立旋转机械振动分析的基本认知。三、适用课程与教学场景本案例可直接嵌入以下课程的课堂教学或上机实验课程使用方式建议年级信号与系统FFT 应用实例傅里叶变换可视化大二 / 大三数字信号处理频谱分析实践采样定理验证大三测试技术振动信号采集与特征提取大三机械故障诊断旋转机械故障特征识别案例大三 / 大四智能制造设备状态监测教学案例大三 / 大四工业大数据入门信号特征工程示例大四 / 研一教学组织方式灵活支持1 课时快速演示教师运行案例展示不同故障状态下的频谱特征2 课时标准实验学生独立运行脚本修改参数并完成实验报告课后拓展作业学生增加新的故障类型或尝试读取真实数据。四、数据设计没有真实数据怎么办本案例自带数据生成脚本无需额外准备真实电机振动数据。脚本模拟一台转速为1800 rpm的三相异步电机或通用旋转机械生成以下 5 类运行状态下的振动信号工况频谱特征物理含义正常状态1X 成分较弱无明显倍频增强转子平衡对中良好转子不平衡1X30 Hz 成分明显增强质心偏离产生每转一次的离心力轴不对中2X60 Hz 成分明显增强联轴器或轴系不对中引起倍频响应机械松动1X、2X、3X、4X 多倍频增强系统刚度非线性导致多个谐波成分轴承早期故障高频冲击或特定故障频率增强滚动体经过缺陷位置时产生冲击响应案例中每类信号包含合理的频率成分和噪声共生成10000 个采样点采样频率2000 Hz 采样时间5 s 电机转速1800 rpm 转频30 Hz需要说明的是案例中的轴承故障特征频率为教学模拟设置用于帮助学生理解冲击类信号在频谱中的表现。真实轴承故障频率需要结合轴承结构参数、转速和故障位置进行计算。学生可以修改转速、故障幅值、噪声水平和采样频率观察频谱峰值位置和幅值的变化。这类参数化实验在真实实验台上往往需要额外设备和较高操作成本而通过模拟数据可以更方便地开展课堂对比实验。图 2 5 种运行状态下的时域波形对比。学生可以观察不同工况下振动信号在时间轴上的变化差异。五、方法原理FFT 频谱分析本案例采用 FFT即快速傅里叶变换对电机振动信号进行频谱分析。基本流程如下时域信号 x(t) ↓ FFT ↓ 频域信号 X(f) ↓ 单边幅值谱 ↓ 峰值识别 ↓ 倍频匹配 ↓ 故障特征识别转频与倍频是旋转机械振动分析中的核心概念。转频可由电机转速计算得到fr 转速 rpm / 60以 1800 rpm 为例fr 1800 / 60 30 Hz因此1X 30 Hz 2X 60 Hz 3X 90 Hz 4X 120 Hz不同运行状态下频谱图中 1X、2X、3X 等倍频位置的幅值会表现出差异。例如转子不平衡通常表现为 1X 成分增强轴不对中可能表现为 2X 成分增强机械松动可能出现多个倍频峰轴承故障可能伴随冲击特征和较高频率成分。频谱分析是旋转机械振动分析中的常用基础方法之一。通过本案例学生可以先掌握转频、倍频和频谱峰值识别等基本概念再进一步扩展到包络解调、阶次分析和真实数据诊断等进阶内容。图 3 5 种运行状态下的独立频谱图。图中标注了 1X、2X、3X、4X 等倍频位置便于学生观察不同状态下的频率成分差异。六、案例实现流程案例包含 5 个独立脚本按顺序运行即可完成完整实验。01_generate_vibration_data.jl ↓ 02_time_domain_analysis.jl ↓ 03_fft_spectrum_analysis.jl ↓ 04_fault_feature_analysis.jl ↓ 05_visualize_result.jl各脚本功能如下脚本功能01_generate_vibration_data.jl生成模拟振动数据和基础波形02_time_domain_analysis.jl计算时域统计特征并绘制波形对比03_fft_spectrum_analysis.jl执行 FFT 频谱分析并标注倍频位置04_fault_feature_analysis.jl自动识别频率峰值并生成分析报告05_visualize_result.jl绘制阶次谱、主峰标注图和综合总结图在 Syslab 中可按以下顺序运行include(src/01_generate_vibration_data.jl) include(src/02_time_domain_analysis.jl) include(src/03_fft_spectrum_analysis.jl) include(src/04_fault_feature_analysis.jl) include(src/05_visualize_result.jl)完整运行时间取决于电脑配置一般几分钟内即可完成。运行后会自动生成数据文件、结果图和分析报告。七、代码结构说明案例文件组织清晰便于教学分发和学生上机使用motor_vibration_spectrum_analysis/ ├── README.md # 完整教学说明 ├── data/ # 运行时自动生成 │ ├── motor_vibration_data.csv # 5 类振动信号数据 │ ├── fault_peak_table.csv # 倍频幅值对比表 │ ├── time_domain_features.csv # 时域统计特征表 │ └── analysis_report.txt # 故障特征分析报告 ├── src/ # 核心代码 │ ├── 01_generate_vibration_data.jl │ ├── 02_time_domain_analysis.jl │ ├── 03_fft_spectrum_analysis.jl │ ├── 04_fault_feature_analysis.jl │ └── 05_visualize_result.jl ├── figures/ # 运行时自动生成 │ ├── time_waveform_compare.png │ ├── spectrum_compare.png │ ├── spectrum_individual.png │ ├── order_spectrum.png │ ├── peak_marking_result.png │ └── fault_feature_summary.png └── docs/ ├── 学生实验指导书.md └── 教师使用建议.md代码基于 Syslab / Julia 脚本实现结构清晰注释完整。案例使用 Syslab 环境中的常用基础数据处理、FFT 分析和绘图能力按说明运行即可生成结果。八、运行效果展示运行完整流程后案例会生成时域波形、频谱对比图、阶次谱、主峰标注图和故障特征总结图。1. 时域波形对比图 4 不同运行状态下的时域波形对比。可以看到转子不平衡状态下周期性振动更加明显轴承早期故障状态下可能出现局部冲击特征。2. 频谱对比图图 5 不同运行状态下的频谱对比。图中可以观察 1X、2X、3X、4X 等倍频位置的幅值变化。例如转子不平衡状态下1X 成分更突出轴不对中状态下2X 成分更加明显机械松动状态下多个倍频峰同时增强轴承早期故障状态下可能出现冲击相关频率成分。3. 阶次谱图 6 阶次谱图。阶次谱将横轴从频率转换为f / fr也就是频率与转频的比值便于学生理解 1X、2X、3X 等倍频概念。4. 故障峰值表脚本还会自动输出主峰频率、倍频比和幅值信息。例如机械松动状态下可能出现如下峰值--- 机械松动 --- 60.0 Hz (2.0X), 幅值 0.9952 30.0 Hz (1.0X), 幅值 0.8002 90.0 Hz (3.0X), 幅值 0.6912 120.0 Hz (4.0X), 幅值 0.3972同时案例会自动生成一份文字分析报告解释每种运行状态下的频谱特征和判断依据可作为学生实验报告的参考。九、如何在课堂中使用这个案例本案例适合组织为一次标准上机实验也可以作为课堂演示或课后作业。标准 2 课时方案环节时间内容案例导入5 min引出电机振动监测和故障特征识别问题FFT 原理讲解15 min讲解时域、频域、转频、倍频和采样定理代码演示10 min教师运行全部脚本展示频谱对比图学生上机20 min学生自行运行脚本填写数据记录表参数修改实验15 min修改转速从 1800 rpm 到 1500 rpm观察倍频变化结果讨论15 min分析不同运行状态下的频谱特征拓展任务课后增加新故障类型或尝试读取真实数据可布置的思考题为什么转子不平衡通常表现为 1X 转频增强为什么轴不对中可能出现 2X 转频增强机械松动为什么容易出现多个倍频峰采样频率降低时频谱分析结果会受到什么影响如果转速从 1800 rpm 改为 1500 rpm1X、2X、3X 频率分别是多少噪声水平增大后主峰识别是否会变得困难这种基于频谱特征的分析方法在真实工程中有什么局限这些问题既能帮助学生理解信号处理原理也能引导学生思考工程场景中的参数选择和方法局限。十、MWORKS AI 如何辅助学生学习案例在设计时考虑了 AI 辅助教学的使用场景。学生在 Syslab 中可以使用 MWORKS AI 辅助理解代码、修改参数、扩展案例和生成实验结论。1. 代码理解请解释 03_fft_spectrum_analysis.jl 中 FFT 频谱分析的实现逻辑。2. 参数修改请将电机转速从 1800 rpm 改为 1500 rpm并说明 1X、2X、3X 转频位置会发生什么变化。3. 理论探讨为什么转子不平衡主要表现为 1X 转频增强而轴不对中更容易出现 2X 成分4. 案例扩展请增加一种转子碰摩故障信号并说明它可能在频谱中表现出哪些特征。5. 实验报告请根据频谱图结果生成一段实验报告结论。这些提示词已整理在 README 和实验指导书中学生可以在实验过程中直接参考使用。十一、案例可以如何扩展本案例提供了多个拓展方向教师可以根据课程难度和学生基础进行选择。拓展方向内容信号处理进阶加窗函数对比、功率谱密度分析、短时傅里叶变换故障特征分析进阶包络解调、Hilbert 变换、倒频谱分析真实数据对接读取真实振动实验台 CSV 数据替换模拟数据多故障复合同时模拟不平衡与不对中观察频谱叠加效果机器学习扩展提取频谱特征训练分类模型进行状态识别这些拓展方向可以支持课程设计、综合实验、本科毕业设计或研究生课程作业。十二、总结与案例下载本案例围绕电机振动频谱分析教学场景基于 MWORKS.Syslab 完成了模拟振动信号生成、时域分析、FFT 频谱分析、倍频标注、主峰识别和故障特征解释的完整流程。案例无需额外准备真实电机振动数据教师可直接用于课堂演示、上机实验或课程作业。学生也可以通过修改转速、故障幅值、噪声水平和采样频率观察频谱峰值和倍频位置的变化从而加深对 FFT、转频、倍频和故障特征分析的理解。案例特点包括自带数据生成脚本无需额外准备真实振动数据覆盖正常状态、转子不平衡、轴不对中、机械松动、轴承早期故障等典型运行状态使用 FFT 完成频谱分析并标注 1X、2X、3X 等倍频位置自动输出时域波形、频谱对比图、阶次谱、主峰标注图和分析报告配套学生实验指导书和教师使用建议提供 MWORKS AI 辅助学习提示词支持代码解释、参数修改和实验结论生成已在 MoHub 开源支持下载、复现和二次扩展。案例开源地址https://mohub.net/model/26318/summary适用工具MWORKS.Syslab适用对象高校教师、学生、信号处理与机械故障诊断初学者欢迎高校教师和学生下载使用并基于 MoHub 开源案例进行反馈、改进和二次开发。关键词Syslab、电机振动、频谱分析、FFT、故障特征识别、教学案例、信号处理、旋转机械、倍频分析、MWORKS AI