胶囊网络在电机故障诊断的应用

一、前言

异步电机常见故障类型分为电器故障和机械故障,其中电气故障主要分为转自故障和定子故障,机械故障分为偏心故障和轴承故障。在研究电机的故障诊断中,一般遵循的步骤都是对电机设备进行信号收集包括电流信号、振动信号、电压信号、电磁信号等,然后对信号进行降噪,比如使用短时傅里叶分解、小波变换、奇异值分解、经验模态分解、小波包分解等方法来对采集到的信息进行预处理从而降低干扰对故障诊断的影响,之后要对经过处理后的数据进行特征提取,特征提取实际就是一个分类的过程,一般采用粒子群算法和支持向量机来实现,最后根据经过特征提取后的数据特征对电机进行故障诊断。

二、基于人工智能的信号处理方法

 通常的信号处理方法比如基于小波变换、基于经验模态分解等方法需要熟知电机工作的细节,需要了解当发生故障时会出现哪些异常数据或者特征频率,通过这些异常数据来进行电机的故障诊断。而与传统的故障诊断方法相比,人工智能的方法就不需要熟知这些细节就能够观测目标的一些常规状态来进行决策。常用的人工智能方法是构建卷积神经网络模型,利用卷积神经网络来对电机进行特征提取,最终实现电机的故障诊断。

为了能够提高诊断的精度和效率,这里提出通过粒子群算法对胶囊网络进行优化来获得最佳的故障诊断效果。

2.1.小波包故障信号提取

小波包分析能够为电机故障信号提供分辨率更高的信号时域分析,能够将系统需要处理的电机故障信号分解到不同的频带中去。之后通过计算获取信号所在各频段的能量值,该方法非常适用于电机故障信号的表征。

具体步骤如下:

1)设置不同的分解尺度大小和基小波,对信号进行小波包分解。每一个节点都分别代表一定的信号特征,以分解尺度4为例,节点(u,v)代表树状图中第u层第v个节点。u=0,1,2,3,4;v=0,1,2,...15。

2)采用小波包对故障信号进行分解和信号重构,通过计算每个频带段的能量占比,挑选具有代表性频带作为特征向量来表征每个电机故障特征。如第3层的第v个频段信号用S_{3,v}表示,对应的信号能量用E_{3,v}表示则存在:

\int \left | S_{3,v} \right |^{2}dt=\sum_{k=1}^{n}\left | x_{k,v} \right |^{2}

式中,x_{k,v}(v=0,1,2,...16;k=0,1,2,...n)作为重构信号S_{3,v}离散点的幅值,n为采样点的总数目。

各频带能量总和E_{3,v}即:

E_{3}=\sum_{0}^{7}E_{3.v}

3)为进一步减少算法迭代运算时的工作量,对各频带的能量进行归一化处理,得到一个8维的小波包能量特征向量E_{3,v}^{`}=(E_{3,0}^{`},E_{3,1}^{`},E_{3,2}^{`},E_{3,3}^{`},E_{3,4}^{`},E_{3,5}^{`},E_{3,6}^{`},E_{3,7}^{`})  ,其中

E_{3,v}^{`}=\frac{E_{3,v}}{E_{3}}

2.2改进粒子群算法

基本粒子群算法中为了其陷入最优解,经过调整,加入了一个局部自适应变异算子:

V_{i}^{kg+1}=w(t)V_{i}^{kg}+c_{1}r_{1}(p_{i}^{kg}-X_{i}^{kg})+c_{2}r_{2}(BestS_{i}^{kg}-X_{i}^{kg})

X_{i}^{kg+1}=X_{i}^{kg}+V_{i}^{kg+1}

式中,kg=1,2,...,G,i=1,2,...,size,r1和r2为0到1的随机数,c1为局部学习因子,c2为全局学习因子。

通过对惯性权重因子、学习因子以及位置迭代公式等多方面进行算法改进。

1)惯性权重因子。相关研究表明该参数在[0.3,0.7]范围性能最佳,因此设计出一种非线性递减变化策略,使参数尽可能多的处于最优参数区间,公式为:        

w^{'}=\frac{3w^{''}-w^{'''}}{2}-(w^{''}-w^{'''})(\frac{2t}{t^{'}}+0.5cos(\frac{\pi t}{t^{'}}))

w^{''}w^{'''}       分别代表惯性权重因子参量的最大最小值,其中分别取值0.9和0.4,t代表当前迭代次数,t^{'}为最大迭代次数。

2)学习因子。学习因子c_{1}c_{2}分别表示粒子运动朝个体最优和全局最优方向靠近的权重参数,主要作用表现为调整系统粒子的全局搜索水平与后期的收敛速度。一般来说,c_{1}递减,c_{2}递增,采用这样的参数设置方法对于算法寻优能力的提升使十分有益的,所以c_{1}设置为从2.5递减至0.5,c_{2}设置为从0.5递增至2.5,将公式调整为:

c_{1}^{'}=3.5-4t/t^{'}-sin[(t^{'}-2t)/2t^{'}]

c_{2}^{'}=-0.5-4t/t^{'}+sin[(t^{'}-2t)/2t^{'}]

3)经过对惯性权重因子、学习因子的修改,新的粒子更新公式为:

V_{i}^{kg+1}=w'V_{i}^{kg}+c'_{1}r_{1}(p_{i}^{kg}-X_{i}^{kg})+c'_{2}r_{2}(BestS_{i}^{kg}-X_{i}^{kg})

2.3改进胶囊网络算法

 在胶囊网络中,胶囊为一组神经元集合。卷积神经网络采用卷积操作提取数据特征值,而胶囊网络中的胶囊将提取到的特征图转化为向量胶囊,接着通过动态路由由联系规则连接其间的隐含层,最终连接全连接层输出最终结果。

改进胶囊网络算法的步骤:

1)卷积层处理对象为二维数据,以N类感知信息矩阵P_{1},P_{2},...,P_{N}(t*r维,t代表采样时刻,r为采样的数目)作为输入变量,按时间先后录入系统,获得能够表征电机设备故障的输入矩阵Q。

Q^{T}=[P_{1},P_{1},...,P_{N}]

 对矩阵中的元素尽心编码,其中x_{i,j}表示输入矩阵的第i行,第j列的样本值。卷积核大小设置为3*3,对采集数据进行特征提取,输出的卷积值大小表示为y_{i,j}

y_{i,j}=f(\sum_{i=0}^{t}\sum_{j=0}^{r}w_{i,j}x_{i,j}+w_{b})

式中,w_{i,j}对应数据的权重,所有的w_{i,j}构成了3\times 3的卷积核;w_{b}表示偏移量,此处w_{b}=0f是非线性激活函数。

2)将获取的y_{i,j}进行最大池化操作,步长为2,以获得更小的参数网络,减少计算维度。

f(x)=Max(X,0)

3)进行数据深度特征的提取,重复步骤1三次,获得14x14x256的特征图。

4)使用卷积得到的T个特征图重构成N(N<T)个胶囊,所有特征图同纬度特征被封进相应的胶囊,形成PrimaryCaps层。

5)为了获得更深层次的电机故障工作状态信息特征,采用步长为1的滤波器对初级胶囊特征再次进行卷积操作。现用u_{m}来表示第m个胶囊的向量输出,将输出结果与代表胶囊之间的连接权重w_{mn}相乘,从而获得最终的“预测胶囊”,也就是向量{\hat{u}}_{n|m}。然后对预测胶囊与其对应的耦合系数进行相乘,并对所有的成绩结果求和,获得输入向量s_{n}。将输入向量进行函数压缩,产生上层的n个胶囊的输出向量u_{n}

6)全连接层数字胶囊进行分类处理,将最后一层输出结果与之进行匹配,其中该处所有胶囊的输出向量长度的大小,代表该种可能出现的概率。

 三、故障诊断的过程

1)采集各类电机设备处于不同故障状态定子电流信号,使用小波包算法对收集到的信号进行分解重构,按照顺序提取每一个频段的能量值,对其进行归一化处理后,将其作为胶囊网络训练的数据源。

2)确定胶囊网络结构。初始卷积层卷卷积核为128,卷积核尺寸设置为3X3,卷积核每次移动步为1,激活函数采用Relu函数,路由迭代次数设置为4次。

3)初始化粒子群参数。粒子个数设置为15个,迭代次数为150次,根据各层神经元数量计算粒子维度。

4)采用Griewank函数进行粒子们的适应度值评估。如果此时适应度值小于当前值,则对参数p1重新幅值;同样如果粒子的最优位置的适应度值小于当前的全局最优位置的适应度值,则对参数BestSeller进行更新。

5)根据公式调整粒子的速度、位置与权重。

6)如果满足条件即最大迭代次数则停止执行,否则继续执行。

7)粒子种群寻优找到最优的粒子作为改进胶囊网络的权值和阀值。

8)将测试样本数据输入训练好的胶囊网络,进行测试分析。

以上内容仅作为学习记录使用,内容参考自基于粒子群优化胶囊网络的煤矿电机故障诊断系统。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值