在实际工程中,比如Strain wave gear 的状态监测过程中,寿命通常取决于柔性轴承的寿命,并且这种故障通常在信号监测(振动,电流信号)过程中是突发性的,比如前一天还是正常的,今天就故障了,丝毫不夸张😂,这是一个监测难题。实验室中做滚动轴承的状态监测时,通常会采用试验台单独对轴承试验,但实际的工程中很难做到这一点,因为你一定无法模拟运行中的真实载荷情况,所以试验台试验意义不大。
健康状态评估(PHM)通常采集各种传感器信号用于评价轴承的健康状况,80%的文献讨论的方法采用振动信号进行分析。由于早期故障的轴承信号微弱常常淹没于齿轮啮合,系统调制频率与环境噪声中,因此必须对信号进行预处理降噪后进行特征提取。包括依据信号的微弱程度来选取不同敏感度的传感器,振动,温度,电流,噪音,铁含量,润滑油,声发射等等方面。
同时这里涉及前处理的相关信号处理方法,降噪方法比较多,时域方法(Mean,Detrend,TSA,SSA) ;频域方法(带宽滤波器,小波重构, EMD,ACF自相关增强)等等,进一步处理提取时域或频域的状态监测特征,但基本上我们很难找到一个稳定而且单调的特征,所以必须提取多维的性能特征数据,这样同时引入了数据冗余与干扰,需要对高维性能特征进行融合与降维提取低维的本质特征,对低维本质特征进行阈值(但凡统计类的都会包含阈值的设定)评价严重程度或者聚类(KNN)分析评价。
1.前处理
— 减去Mean:可以去除信号的直流分量;
— Detrend: 除去线性趋势;
— TSA: 时域同步平均,特别适合强背景噪声;
— SSA: 奇异值分解可以进行信号重构,可以出去一些超低频的趋势项;
— 滤波器:筛选频率段;
— 小波:弱化高频噪声;
— EMD: 本征核函数分解,结合相关系数与峭度筛选出冲击信号较多的频率段,将这些核函数进行叠加重构原始信号,这样就起到了降噪与增强信号的作用;
— ACF 自相关可以增强周期信号,弱化白噪声信号;
还有很多前处理的方法,不一一罗列了,有补充的欢迎评论区留言!
2. 状态监测的指标
不妨举例以下性能特征(参照 王奉涛的滚动轴承故障诊断与寿命预测)
均方根值RMS、峭度K、波峰因子Crest、峰峰值P-P、脉冲因子Impluse、裕度因子Margin、波形因子W、时域信息熵Ht、总功率谱Gt、莱斯频率fx、频率重心fc、频率方差Vf、谐波指标H、均方频率MSF、频域信息熵Hf,等等当然我们需要根据实际的情况来设计时频域的一些指标,构建多个敏感的指标是极其关键的,因为如果指标本身对故障并不敏感,那我们做融合后就基本也是没有效果的,所以并不是上述普遍的指标就可以拿来构建,我们需要根据全寿命周期找出时频域的特征,期间会使用较多的信号处理方法。
3.数据融合技术
3.1LLE
参考文献如下:
特征抽取篇之LLE(Locally Linear Embedding)_程序猿一帆的博客-CSDN博客
流形学习(一)LLE 在 MATLAB 中的实现及实例_waitingwinter的博客-CSDN博客_matlab 流行学习王玉静. 滚动轴承振动信号特征提取与状态评估方法研究[D].哈尔滨工业大学,2015.
LLE算法是一种非线性降维算法,其主要原理是将本征空间中的每个样,本点用其邻域内其他样本点的加权平均来表示,这时所有样本点的加权值就可以在高维空间中形成一个局部重构权值矩阵,进而反映样本点与临近点之间的位置关系。通过将整个非线性的流形近似成许多线性区域的组合,利用局部线性来逼近整体的非线性。最后在保持局部重构权值不变的情况下,对样本点和它的临近点做缩放、平移和旋转等线性映射将高维空间的数据映射到低维流形上,从而完成了高维特征的约简。
clc;clear all
%% minifold learning: locally linear embedding
% k : neighbors
% x : data set
% d : low dimension;
N = 2000;
%Gaussian noise
noise = 0.001*randn(1,N);
%standard swiss roll data
tt = (3*pi/2)*(1+2*rand(1,N)); height = 21*rand(1,N);
X = [(tt+ noise).*cos(tt); height; (tt+ noise).*sin(tt)];%三维矩阵
DD=X;
%show the picture
point_size = 20;
figure(1)
scatter3(X(1,:),X(2,:),X(3,:), point_size,tt,'filled');
grid off; axis off; hold on;
axis off;
axis equal;
drawnow;
X = X';
k = 25;%k个临近点
d = 2;%降至d维
[m, ~] = size(X); % d < ~
lambda = 1e-10;
W = zeros(m);
e = ones(k,1);
for i =1 : m
xx = repmat(X(i, :), m, 1);%上述的用法的基本功能是形成mxn的块矩阵,其中每一个元素以矩阵X(i, :)为样本来拷贝。
diff = xx - X;%求出
dist = sum(diff.* diff, 2);%求出距离
[D, pos] = sort(dist);%从小到大排序
index = pos(1 : k + 1)';
index(index == i) = [];%排除本身
gg=lambda * eye(k) \ e;
gx=X(index, :) * X(index, :)' ;
w_numerator = (X(index, :) * X(index, :)' + lambda * eye(k)) \ e;
w_denominator = e' * w_numerator;
w = w_numerator / w_denominator;
W(i, index) = w;
end
W =sparse(W);
I = eye(m);
A = (I - W)' * (I - W);
[eigenvector, eigenvalue] = eig(A);
eigenvalue = diag(eigenvalue);
[~,pos2] = sort(eigenvalue); %从小到大排序
index2 = pos2(1: d+1);
tran = eigenvector(:, index2);
p =sum(tran.*tran);
j = find(p == min(p));
tran(:, j) = [];
X = tran;
figure(2)
scatter(X(:,1),X(:,2),point_size, tt,'filled');
grid off; axis off;
https://blog.csdn.net/qq_37599517/article/details/83147008
repmat用法的基本功能是形成mxn的块矩阵,其中每一个元素以举证A为样本来拷贝。
A = [1 2 3;3 4 5;6 7 8]
B = repmat(A,2,2)
演示结果如下:
A =
1 2 3
3 4 5
6 7 8
B =
1 2 3 1 2 3
3 4 5 3 4 5
6 7 8 6 7 8
1 2 3 1 2 3
3 4 5 3 4 5
6 7 8 6 7 8
3.2 PCA
可以参照我的另外一篇blog盲源分离(BSS)的学习总结(PCA、ICA)_大地之初的博客-CSDN博客
4. Strain wave gear 全寿命振动信号进行分析指标
待更新,我会将振动的指标进行处理,并且通过声发射的信号做了很多的研究,进行寿命的预警,效果很不错