✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
伴随我国经济发展突飞猛进,电气化的应用越来越广,异步电动机因其经济、安全、高效、低耗被广泛应用于工业生产的各个领域。电动机一旦发生故障不仅会损坏电机本身,还会影响整个工业生产环节,从而造成巨大的经济损失。因此,如何对电机加强保护,对电机故障诊断提出了更高要求。本文对人工神经网络的基本原理进行了研究。利用MATLAB软件,建立基于BP网络的故障诊断结构,根据故障样本数据对网络进行训练,从而实现了对电机的诊断。
⛄ 部分代码
clear all
close all
%%%%%%%%加载数据
addpath(genpath('../.'))
data=importdata('s9.txt');
data1=data(1:3000,:);
%%%%%%%%01--时域分析
%%%%%%%02频域分析--傅里叶变换
fs=1000;
y=data1;
figure
subplot(211);plot(y,'k');
title('原始数据','Fontname', '宋体');
subplot(212);
[y_f,y_ft,nfft]=hua_fft(y,fs,1);
plot(y_f,2*abs(y_ft(1:nfft/2))/length(y));%
% subplot(313);hua_fft(y,fs,1,0,250);
title('FFT-show')
%%%%%%%%%%%%%%%%%%%%%%%%%%%
x=y;
nfft=64; % FFT长度
X=fft(x,nfft); % FFT分析
ff=(0:(nfft/2-1))*fs/nfft; % 频率刻度
n2=1:nfft/2; % 正频率索引号
X_abs=abs(X(n2))*2/nfft; % 正频率部分的幅值谱
fe=50; % 中心频率
D=10; % 细化倍数f
[y,freq]=exzfft_ma(x,fe,fs,nfft,D); % 细化分析
% 作图
figure
subplot 311;
plot(x,'k');
xlabel('时间/s','Fontname', '宋体');
ylabel('幅值','Fontname', '宋体');
title('时间序列','Fontname', '宋体');
subplot 312; plot(ff,X_abs,'k');
xlabel('频率/Hz','Fontname', '宋体');
ylabel('幅值','Fontname', '宋体');
title('细化分析前频谱','Fontname', '宋体');
grid;
subplot 313;
plot(freq,abs(y),'k'); grid;
% set(gca, 'XTickMode', 'manual', 'XTick');
% set(gca, 'YTickMode', 'manual', 'YTick');
xlabel('频率/Hz','Fontname', '宋体');
ylabel('幅值','Fontname', '宋体');
title('细化分析的频谱','Fontname', '宋体');
set(gcf,'color','w');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xn=data1;
ls=length(xn);
w_name='db6';
%对信号进行小波分解
[c,l]=wavedec(xn,5,w_name);%5层小波分解(层:尺度)
ca5=appcoef(c,l,w_name,5);% 提取一维小波变换低频系数(第五层的逼近系数)
cd5=detcoef(c,l,5);%提取一维小波变换高频系数 (细节系数)
cd4=detcoef(c,l,4);
cd3=detcoef(c,l,3);
cd2=detcoef(c,l,2);
cd1=detcoef(c,l,1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%
% x=awgn(y1,SNR);
%消除噪声处理
x2=xn;%awgn(xn,2);
[thr,sorh,keepapp]=ddencmp('den','wv',x2);
s1=wdencmp('gbl',c,l,w_name,3,thr,sorh,keepapp);
figure;
subplot(211);
plot(xn,'k');
title('原始信号','Fontname', '宋体');
subplot(212);
plot(s1,'k');
title('小波去噪后的信号','Fontname', '宋体');
%%%%%%%%%%%%%%%%%%%%%%%%%%希尔伯特变换-------------
x=data1;
Emd_result = emd(x);%(x为要处理的信号)
[A,fa,tt] = hhspectrum(Emd_result);
[E2,ttt,ff] = toimage(A,fa);
% cemd_visu(x,1:length(x),Emd_result);
disp_hhs(E2);
⛄ 运行结果
⛄ 参考文献
[1]陈轶. 基于BP神经网络的模拟电路故障诊断[D]. 苏州大学.
[2]罗彩玉. 基于BP人工神经网络的电动机故障诊断[J]. 科技创业家, 2013(11):2.