WZX's blog 海滩上捡贝壳的孩子

卷积神经网络在锚链焊接质量评估中的应用

2019-07-03
wzx

这是本人大学的毕业设计,卷积神经网络在锚链焊接质量评估中的应用,根据焊接过程中的电极间电压,电流以及电极位置的波形图,判断闪光焊接的质量

数据集

本文拥有2000个合格信号,50个不合格信号。但只加载750个合格信号以及50个不合格信号,使用ADASYN过采样算法生成新的不合格信号。取20个不合格信号以及20个合格信号作为测试集,剩余不合格信号经过过采样后于合格信号一起作为训练集,如下所示,原始数据是多维时间序列,三种波形图体现了闪光焊接中的预热,连续闪光以及顶端阶段。

数据预处理

由于每个闪光焊接的时间都不是一样的,所以每个样本都不是等长的,本文采用降采样的方式使所有样本等长,组成 $600\times1\times3$ 的多维时间序列。下图显示了降采样前后的电极位移信号图,特征并没有太大的损失

由于三种数据具有不同的单位,使用归一化将原始样本按一定比例缩放,将所有样本被转变为无量纲的纯数字

\[x^*=\frac{x-min}{max-min}\]

非均衡数据的处理

绝大多数闪光焊的记录数据都是正常状态的数据,各种焊接质量不好的情况所对应的数据极其稀少,这也就导致了我们所采集到的合格数据是不合格数据的40倍。使用ADASYN过采样算法生成新的不合格信号,在我之前的博客中已经叙述过原理

结构

本文使用了如图所示的结构(18 - 36 - 72 - 144) ,共有4个卷积层和一个全连接层,所有卷积层的卷积核大小都为 $2\times1$,步长为1,池化层的卷积核大小都为 $2\times1$,步长为2。在第3卷积层和全连接层应用了Dropout单元。输出层使用 $sigmiod$ 激活函数,隐层使用 $rule$ 激活函数。优化器使用了$Adam$

评估系统的开发

评估系统分为两个模块,训练模块使用训练集训练模型并将模型参数保存至本地,预测模块加载未知信号并给出预测结果。这里因为毕设要求写出了相应的GUI界面,但是比较丑,所以只在github分享了命令行版本

结果分析

第一幅图表示没有应用过采样算法的测试集输出值分布图,可以看出,最初几次学习之后,模型的输出值基本都分布在大于0的部分,也就是说,模型将大部分样本都识别为了焊接质量为好。在第15次学习结束后,测试集在小于0的部分的分布增多,模型学习到了一些特征,但是大部分仍分布在大于0的部分,这就是训练数据不平衡导致的结果,模型把很多焊机质量为坏的样本识别为焊接质量为好的样本了。第二幅图表示应用过采样算法的测试集输出值分布图,可以看出随着迭代次数的增加,模型的输出值基本均匀地分布在0值周围,并没有因为数据不平衡而出现模型将大部分样本都识别为了焊接质量为好的情况。

本文还使用了KNN以及DTW算法和我们的模型作比较,这里实现了KNN,精度为0.85,这里实现了DTW,精度为0.95。而我们的卷积神经网络的测试集精度大于0.96,训练集精度大于0.99,优于这些模型

代码实现

使用了 TensorFlow 搭建了模型
wzx140/welding_prediction - GitHub


Comments

Content