0
点赞
收藏
分享

微信扫一扫

【故障诊断分析】基于傅里叶变换FFT提取承故障特征附matlab代码

1 简介

在工业生产中,机械设备的正常,安全运行意义重大,为了能使故障发生在萌芽期,寻找一种实时,预测,预报的故障诊断方法极其重要.FFT是一种成熟的信号处理方法,用该方法提取机械设备的振动信号,可以做到可靠性高,实时性强等特点.

2 完整代码

%% 提取FFT谱作为故障特征向量

clc;close all;clear

%%

load data_process

%% 2、加载数据

x1=train_X(1,:);

% 采样点

L=length(x1);

%采样频率

fs=48000;

%采样间隔

Ts=1/fs;

%采样点数

t=Ts:Ts:L*Ts;

%轴承信号

% 3、对原始信号作图

figure

plot(t,x1)

title('原始信号')

xlabel('采样点/n')

ylabel('幅值')


%  4、fft频谱

Y = fft(x1);

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;


figure

bar(f,P1)

title('FFT频谱')

xlabel('频率/Hz')

ylabel('幅值')

%% 训练集

TZ=[];

for IIII=1:size(train_X,1) %依次对每个样本进行处理

    x1=train_X(IIII,:);%轴承信号

    Y = fft(x1);

    L=length(x1);

    P2 = abs(Y/L);

    P1 = P2(1:L/2+1);

    P1(2:end-1) = 2*P1(2:end-1);

    TZ(IIII,:)=P1/max(P1);

end

disp('训练集提取完毕')

train_X=TZ;

%% 验证集

TZ=[];

for IIII=1:size(valid_X,1) %依次对每个样本进行处理

    x1=valid_X(IIII,:);%轴承信号

    Y = fft(x1);

    L=length(x1);

    P2 = abs(Y/L);

    P1 = P2(1:L/2+1);

    P1(2:end-1) = 2*P1(2:end-1);

    TZ(IIII,:)=P1/max(P1);

end

disp('验证集提取完毕')

valid_X=TZ;


%% 测试集

TZ=[];

for IIII=1:size(test_X,1) %依次对每个样本进行处理

    x1=test_X(IIII,:);%轴承信号

    Y = fft(x1);

    L=length(x1);

    P2 = abs(Y/L);

    P1 = P2(1:L/2+1);

    P1(2:end-1) = 2*P1(2:end-1);

    TZ(IIII,:)=P1/max(P1);

end

disp('测试集提取完毕')

test_X=TZ;

%% 输入数据归一化

% [xs,mapping]=mapminmax(train_X',-1,1);train_X=xs';

% xs=mapminmax('apply',valid_X',mapping);valid_X=xs';

% xs=mapminmax('apply',test_X',mapping);test_X=xs';

%% 保存结果

save data_feature train_X valid_X test_X train_Y valid_Y test_Y

3 仿真结果

【故障诊断分析】基于傅里叶变换FFT提取承故障特征附matlab代码_故障诊断

【故障诊断分析】基于傅里叶变换FFT提取承故障特征附matlab代码_故障诊断_02

4 参考文献

[1]杨旭霞, 张毅, 张鹏. 基于FFT分析振动信号的机械故障诊断[J]. 山西电子技术, 2015(2):2.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【故障诊断分析】基于傅里叶变换FFT提取承故障特征附matlab代码_信号处理_03


举报

相关推荐

0 条评论