制造业MES&R语言数据挖掘之设备故障分析
本案例针对于铅酸电池行业的设备故障进行R语言数据挖掘;旨在提炼出有用的规律减少故障发生(例如:哪些故障和设备是高度相关,哪些故障和维修方法是高度相关),以提高设备运行效率。
数据来源于MES中的设备管理模块,如下图所示
步骤
1、数据准备
2、选择算法
3、编程建模
4、业务建议
5、评价
一、数据准备
1、将MES中的维修任务(近三个月,共1387条)导出成EXCEL文件,示例截图如下
2、将其中关键的字段信息筛选出来,重新整理成一张表
3、用R语言的分词函数,将文本拆分成独立的词
R语言代码:
install.packages("jiebaR")
library("jiebaR")
setwd('E:/')
wk = worker(bylines = T,user="设备故障字典.txt",stop_word = "停用词字典.txt")
wk['./故障描述.txt']
提醒: 分词算法中,最关键的是字典表,包括用户自定义表和停用字典表。如果没有自定义表,最后分词的效果会非常差。该字典已上传至资源中,有需要的朋友可自行下载
4、将所有拆分后的关键词用逗号连接起来,整理在EXCEL中
5、将EXCEL导出成TXT文本
说明:数据准备这个步骤耗时很长,需要有耐心进行整理
二、选择算法
本次案例选择了Apriori算法,通过关联规则找到相关性高的词汇。
三、编程建模
本例通过R语言编程建模
1、整理出频繁项集: 通过这个步骤来找到哪些词是经常出现的;经常出现的词可能是普遍的故障,或是需要重点关注的问题。
R语言代码如下:
library(Matrix)
library(arules)
Trans <- read.transactions(file ="./设备故障汇总.txt" ,format="basket",sep=",",encoding = "UTF-8") #从EXCEL转成TXT之前,把表里的特殊符号全删掉;导出TXT之后另存为UTF-8
str(Trans)
rules <- apriori(data=Trans,parameter=list(support =0.02,confidence =0.9,minlen =1,target="frequent itemsets"))
inspect(rules)
整理得到如下结果:也可以称之为高频故障点;左边是频繁项集,右边是频繁项集次数
2、查找关联规则
R语言代码如下:
library(Matrix)
library(arules)
Trans <- read.transactions(file ="./设备故障汇总.txt" ,format="basket",sep=",",encoding = "UTF-8") #从EXCEL转成TXT之前,把表里的特殊符号全删掉;导出TXT之后另存为UTF-8
str(Trans)
rules <- apriori(data=Trans,parameter=list(support =0.02,confidence =0.9,minlen =1,target="rules"))
inspect(rules)
不同的参数会得到不同的结果,调试参数的过程就不赘述了
最后将结果汇总整理:
四、业务建议
1、保养项目建议
通过观察三-1的结果,发现一个现象:上文所述的高频故障点(链条、轴承、电机等)在很多出过故障的设备中没有相应的保养内容,按照上文的逻辑,将所有之前提到的高频故障点逐一排查是否有相应的保养项目,将缺失的设备筛选出来,汇总得出下表
2、预防性维修建议
参考关联规则,对特定的设备特定部位进行提前预防性的维修
例如:针对铸板机定期(一个月)对线路进行防护、针对切粒机定期检查挤压轮轴承
汇总得出下表
3、安全库存建议
针对前文所列的高频故障点进行采购数据的统计,建议高频次采购的物料类(坏的多、买的多)可增加安全库存
汇总得出下表
4、备件检验流程建议
备件故障率高的原因,我猜测原因分为:使用频次高,保养频次低,备件质量不良
针对备件质量,目前我司没有专门针对备品备件建立全套的制度和流程、也没有专门的人员做这个事情。
通过查找资料,其他制造业公司有相应的制度。
建议公司考虑对某类备件进行抽检等相关措施。
优点:提升设备运作效率,减小维修工作量(随着订单增大,备件质量风险引起的问题会越来越多)
缺点:需要人员、检测设备等投入
综合分析,长期来看如果能让设备OEE能够提高1%,增加的效益会大于检验成本。
五、评价
这份分析报告跟生产总助汇报之后,得到了领导的认可,认为这四点建议是对于设备管理有效的改善方向,并参考了其中的建议进行实际操作,我将在两个月后再分析一次,看看这些改善点是否有实际提升。