感应电机故障检测 Matlab/simulink仿真搭建,附赠参考文献 提供以下帮助 波形纪录 参考文献 仿真文件 原理解释 仿真原理结构和整体框图
先看整体框架,Simulink里搭了个三闭环控制系统。重点在故障注入模块——这里我用了定子电阻突变法,就像给电机喂了颗定时发作的毒药丸。关键代码长这样:
function R = fault_injection(t) persistent fault_flag; if isempty(fault_flag) fault_flag = 0; end if t > 0.5 && fault_flag == 0 % 0.5秒投毒 R = 1.5 * R_original; % 电阻值原地起飞 fault_flag = 1; else R = R_original; end end这脚本实现了定时触发定子绕组电阻突增,注意persistent变量用来做状态保持,比全局变量干净。当故障触发时,定子电流会突然抽风,就像醉汉走直线。
数据采集部分用了Simulink的To Workspace模块,存下来三相电流和转速。重点说下频谱分析脚本:
current_a = logsout.get('Ia').Values.Data; Fs = 1e4; % 采样率别抠门,至少10k起步 L = length(current_a); Y = fft(current_a); P2 = abs(Y/L); P1 = P2(1:L/2+1); P1(2:end-1) = 2*P1(2:end-1); f = Fs*(0:(L/2))/L; plot(f, P1) xlabel('频率 (Hz)') ylabel('幅值') title('定子电流FFT分析') grid on hold on plot(2*50, 0.02, 'ro') % 找二次谐波这个叛徒这个FFT分析能揪出故障特征频率。正常电机频谱像乖宝宝的作业本,故障后会在2倍工频附近冒出个显眼包。
仿真结果挺有意思,故障发生后:
- 转速波动像过山车,从1490rpm直接摔到1420rpm
- 定子电流有效值暴涨30%,跟吃了菠菜似的
- 转矩脉动出现明显毛刺,像心电图突然抽风
最后说点坑:
- 故障注入时机别设在启动阶段,那时候本来就在动态过程
- 电机参数别用默认值,去论文里挖真实数据
- 仿真步长建议用变步长ode23t,固定步长容易翻车
需要模型文件和参考文献的兄弟,丢个网盘链接在这:pan.baidu.com/xxx(密码:2333)。里面包含五种典型故障的仿真案例,从轴承磨损到转子断条都齐活。特别推荐参考文献[3],那篇讲小波变换在故障诊断的应用,实操性贼强。