工业数据挖掘实例

智能的基础是智能决策,所有的决策都来自于分析。所以简单说所有的智能都是做好两件事:收集数据,使用数据。数据挖掘技术根据业务数据不同有不同的应用场景。在我以往工作中主要在以下领域有应用尝试:

  • 市场营销:用数据挖掘进行消费者画像,定向进行产品推荐
  • 生产质量:根据质检状况,借用数据挖掘技术分析质量不合格的诱因并推荐优化方案,比如机器设备参数最佳取值。
  • 能源消耗:使用数据挖掘技术分析能源消耗的超标区间,非必要能源消耗区间并推荐优化方案。
  • 设备维护:通过监控设备运行的参数性能,结合设备故障原因分析参数和故障相关性,从而进行主动性维护,减少非计划停机。
  • 智能排产:完全的自动化排产还没有实现。但是现阶段的排产算法依然可以帮助计划员减少很多考虑时间,自动提供出一定排产方案
  • 物流: 根据各区域的订单量进行前置仓和配发站点的选址

需要指出的是,虽然目前有很多数据挖掘算法和案例,但是还是主要用于网络数据。这些算法在工业领域有明显的过拟合现象不能直接使用,需要作出一些优化调整。

下面我用一个实际工业数据挖掘的例子来展示数据挖掘在工业领域如何应用。
【背景介绍】这条生产线的大致工艺如下图所示:左边是生产线输入,右边是输出待检的成品,经过质检后产品又分为合格品和残次品。我们数据挖掘的目的是根据生产产品的实时质检数据动态调整机器参数以寻求产品质量的最优。
工业数据挖掘实例

【数据采集】在这个案例中我收集三部分数据:

  1. 加工产品的基本信息,节拍时间,模具编号等信息,这些数据一般可以从MES系统中抓取。
  2. 质检机器的质检结果,包括图像和质检数据结果,以及质检部门给出的标准质检值和误差范围
  3. 对应加工时间内机器的各项参数。这些数据可以从PLC读取。PLC数据的读取可以借用OPC、物联网网关、工业数据采集卡或者外置传感器。
    【数据分析】
    工业数据挖掘实例

简单的数据挖掘步骤包括数据收集,数据清洗,模型选取和训练,模型检验和实施预测。在工业数据领域,我们必须考虑到数据纬度太大。如果直接开始模型训练,必然出现过拟合现象。而且工业数据和互联网数据有个会很大的区别。比如电流,电压和功率本身就有物理相关性。并没有必要一起作为数据分析的特征。所以在模型训练之前,我们可以先做特征选取和特征增强,减少不必要的分析风险。
工业数据挖掘实例

数据收集和清洗之后,我们先进行一轮数据基本展示:
工业数据挖掘实例

横坐标是时间,纵坐标是模具编号。我们很容易的发现几个问题:
1. 质检不合格产品大多数发生在一段空档期后,也就是换模之后。这是工业界的常识,换模影响产品质量
2. 不同模具生产的产品合格率并不一样。说明产品性能受到模具本身误差的影响。由此我们已经可以标识出一部分不合格模具。
工业数据挖掘实例

3. 所有的分析都是需要有参照的。在本案例中,我们选取了两个区间范围。这两个范围内质检合格率较高。通过对比CP和CPK参数,我们最终选定第二区间为参照区间

我们对机器主要参数性能也进行数据展示:
工业数据挖掘实例

我们暂且不用计较两个参数的具体含义。但是从图上可以很容易看出来,两个参数的数据存在一些时间差。理论上各个参数应该在同一时间达到极值。虽然这样的推断并不严谨。但是我们有理由相信收集的不同机器的数据存在时间切片不对的问题。实际上,在工厂车间的很多机器都是不联网的,难免出现机器时间的不准确。
简单的根据极值,我们进行数据平移,然后得到时间极值相吻合的数据合集。
工业数据挖掘实例

在得到合理且高质量的数据后,我们可以进行数据分析了。
首先,我们进行了降维操作。因为我们最终是要推荐每个机器参数的理想取值范围,所以有必要保留原始的数据维而不能使用PCA降维方法。好在我们的维度数目不算过于庞大。我么很容易用对比ROC的方式对每一个维度的影响进行了评估筛选。最终保留了以下维度。进而,我们用随机森林算法获得了每个维度的影响因子:
工业数据挖掘实例

在此基础上,我们对质量缺陷的位置进行了汇总。
工业数据挖掘实例

试着把机器参数和缺陷的位置进行了关系模拟。最终得出结论:对质量影响较大的是最后一道工艺的功率问题。
工业数据挖掘实例

针对如何推荐每个参数的最佳取值范围,起初我们直接运行了随机森林算法进行模型训练和预测,发现该算法对部分产品模型过拟合程度过高,达不到要求。后来我们分别试验了SVM和决策树等不同算法。根据评选结果,最适合我们数据预测的算法是SVM。在进一步算法优化后,预测结果达到了很好的效果。
【结果验证】
我们在和现场工程师一起对数据挖掘算法的结果进行了理论验证。在一致通过后,我们进行了真机模拟。试验结果取得了较好的产品质量。
【下一步工作】
目前算法在推荐了每个机器参数的最佳取值范围后,还需要人为手动输入到机器控制板进行调整。这主要受限于PLC的安全保护,不能轻易允许数据写入。随着技术的演进,我们下一步将尝试如何让系统通过OPC把PLC的机器参数动态进行调整。

本案例中,我们只对本部分数据进行了定向性挖掘。过程中我们也尝试横向数据挖掘,比如我们注意到合格率和操作时间也有一定关系。不过这不是本次分析的重点,在我们分析中没有深入下去。

工业数据挖掘实例