轴承故障诊断识别

背景介绍

        电机轴承是一个用于支撑电机轴的零件,电机的轴从轴承的内圈穿过,外圈固定在电机壳上。滚珠轴承在内外圈之间有一圈滚珠,当电机旋转时带动内圈旋转,滚珠随之运动。轴承的使用可以避免电机轴与电机外壳产生的较大摩擦。轴承的使用寿命以及可靠性对主机的使用寿命有决定性作用。在机械设备上,有旋转的地方就有轴承。

                                                

        轴承属于精密零件,轴承内外圈以及轴承滚珠出现的压痕裂纹都会对轴承的的工作性能产生不良影响,进而导致设备使用寿命受到影响。

        在机械故障诊断任务上之前只能依靠大量的人工经验,分析故障原因。所以可以考虑用机器学习的方法进行故障诊断。

数据来源

        美国凯斯西储大学通过实验收集了一组在轴承受到不同损伤情形下的振动频率数据。当电机运转时在轴承座上方的放置一个加速度传感器收集轴承的振动信息。对于不同的轴承损伤我们预期希望它的振动频率应该也是不同的。

                                             

        上图左端为1.5KW(2马力)待测电机,中间部分为扭矩传感器以及译码器,左端为功率测试计。实验收集了在0,1,2,3马力下的振动信号,其中包含正常样本,轴承内圈,外圈以及滚珠损伤样本,因为轴承外圈位置是较为固定的,因此其损伤位置还分为3点,9点,12点三种情形。

       其收集到的一维振动信号,形状大致如下:

         Bearing fault diagnosis based on vibro-acoustic data fusion and 1D-CNN network

 数据预处理

   1.数据整合并打乱顺序

        实验台电机转速理论值约为1797转/圈,采用频率为12KHZ,可以近似四百个样本点为电机旋转一圈的数据。数据类型包含正常样本,滚珠损伤样本,轴承内圈损伤样本,以及外圈3点,6点,12点位置损伤样本,共六个类别。

        上述每种类别数据选取120000个采样点,每400个采样点作为一个样本,300个样本数据。划分200个样本作为训练集,100个样本作为测试集。训练集中共1200个样本,测试集共600个样本。并对上述六个类别工况按照进行0~5编号。

                     

Bearing fault diagnosis based on vibro-acoustic data fusion and 1D-CNN network

        将训练集数据打乱,测试集保持不动,并打印前200个训练集标签。

 2.一维数据转换成维数数据

        本文通过卷积神经网络对振动数据进行识别分类,目前的数据是由一维数据采样而来。首先将一维数据重构成为二维数据。上述采样过程将400个采样点作为一个样本,将每个一维样本reshape成为(20,20)的二维图像。

 

         数据样本如上图所示,用人眼似乎很难区分它们之间的差异。接下来用卷积神经网络对这些数据进行分类。

卷积神经网络

        卷积网络的输入为上述的二维图片,中间包含卷积层,池化层以及激活函数。其主要思想是通过一个个filter去遍历图像(卷积过程)以此学习到一些特征,激活函数可以让网络学习到一些非线性特征,池化层可以降低网络的参数规模,最后将学习到特征图像经过全连接层做分类(这一部分与softmax手写数字识别类似)。

  Bearing fault diagnosis based on vibro-acoustic data fusion and 1D-CNN network

class Net(nn.Module):
  def __init__(self):
      super().__init__()
      self.cnn = nn.Sequential(
      nn.Conv2d(1, 16, 3),#input(20,20,1) output kenel
      nn.BatchNorm2d(16),       #归一化
      nn.ReLU(),            #激活单元
      nn.MaxPool2d(2, 2, 0),

      nn.Conv2d(16, 32, 3),
      nn.BatchNorm2d(32),
      nn.ReLU(),
      nn.MaxPool2d(2, 2, 0),
      )
      self.fc = nn.Sequential(
            nn.Linear(288, 128),
            nn.ReLU(),
            nn.Linear(128, 64),
            nn.ReLU(),
            nn.Linear(64, 6),
            
        )
  def forward(self, x):
    out = self.cnn(x)
    out = out.view(out.size()[0],-1)
    out = self.fc(out)
    return F.log_softmax(out, dim=1)

          之后将训练数据按一个bach128个样本丢到网络中进行训练,训练15个回合。

                                          

最后测试集进行测试:

        为了看到里面具体学习的结果,可以将网络模型的输出结果用t-SNE降维的方法,映射到二维的平面上进行可视化。

   训练集特征降维         

                                                             测试集特征降维

基于Python的西储大学轴承数据分析主要是指对西储大学提供的轴承数据进行分析和处理的过程。Python是一种强大的编程语言,拥有丰富的数据分析库和工具,非常适合用于处理和分析大量的数据。 在这个过程中,首先需要导入相应的数据分析库,例如pandas、numpy和matplotlib等。然后,通过读取西储大学提供的轴承数据文件,将数据加载到Python中进行处理。这些数据可能包括轴承的振动、温度和声音等指标。 接下来,在数据加载完成后,可以使用Python进行数据的预处理与清洗,例如去除异常值、填充缺失值和数据转换等操作。之后,根据具体的分析目的,可以使用Python进行数据可视化和统计分析,例如绘制振动曲线、绘制特征散点图、计算统计指标等。 此外,基于Python的数据分析还可以进行机器学习和深度学习的应用。可以使用机器学习算法对轴承数据进行分类、聚类或回归分析,以便提取特征并进行预测,从而实现对轴承状态的预测和健康评估。对于深度学习,可以利用神经网络模型对轴承数据进行建模和训练,以实现更精确的预测。 综上所述,基于Python的西储大学轴承数据分析包括数据加载、预处理与清洗、数据可视化和统计分析,以及机器学习和深度学习的应用。Python提供了丰富的工具和库,为轴承数据的分析与处理提供了高效且灵活的解决方案。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值