基于工业大数据的生产设备部件故障诊断 附完代码+论文(上)

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 基于工业大数据的生产设备部件故障诊断 附完代码+论文

设备的故障诊断方法可以按照诊断依据分为三种:基于机理模型的方法,基于数据驱动的方法,基于知识工程的方法。本文将采用基于数据驱动的方法中的基于分类的方法进行故障模型的构建。详细设计见md文件。


完整代码:https://download.csdn.net/download/pythonyanyan/87430582


1 绪论


1.1 选题背景和意义


在计算机行业还未能发展到如今这般规模的时候,人们只能选择抽样的数据、局部的数据和片面的数据,纯粹靠经验、理论、假设和价值观去发现、理解未知领域的规律。而这样做的结果,就是对真实现象的抽象归纳与演绎推理,这就不可避免的包含了各种主观上的因素。同时由于样本的局部性,很多推理归纳出来的结果与实际现象具有极大的偏差。


而如今的所谓大数据,通常都指数据量在“太字节(TB)”即 2 的 40 次方以上,一般情况下难以收集、存储、管理以及分析的数据。而且随着科技进步,大数据对于“大”的含义还在不断地刷新。但是大数据不仅仅只关乎于数据量的大小,而且还与其他的因素有着千丝万缕的关系。


大数据其真正的意义在于:我们可以通过各式各样的传感器,实现与真实世界更加紧密、准确的连接。在得到实时数据后进行整合、挖掘、云计算,去逐步的逼近真实世界,挖掘出那些未曾被我们发现的隐藏规律,建立更加符合真实的数学模型,这是大数据的魅力所在。而在大数据的庞大篇幅中,工业大数据占据着相当重要的地位。工业大数据是智能制造的关键技术,它是联通物理世界与信息世界的桥梁,是推动生产型制造向服务型制造转型的动力之一[2]。


而在工业领域,工业大数据的一大发展方向就是故障诊断,数据的产生和记录贯穿于一台设备从投入生产到损耗的全过程,而通过一定数量的智能传感器,我们可以监控某些生产设备的所有信息,使设备在生产线的实时状态远程监控成为可能,这一方面改善了工作人员的工作环境,另一个更为重要的方面就是提高了设备发生故障或者异常时候的反应速度以及排除故障的效率。


伴随着工业生产水平发展的突飞猛进,工业设备精度越来越高,结构越来越复杂,所以在车间内很多设备的故障都未能得到及时的发现和解决,这一点很容易对工厂造成巨大的损失.由于设备愈加复杂所导致的设备故障信息数据呈现指数型增长,而运行时所产生的海量数据,采用传统基于机理模型的方式已经很难负载如此巨量规模的数据分析,进行故障诊断了。


此外,工业设备结构极其复杂,不同模块之间可能会产生故障的交集,人工分析或者是传统的先验知识故障检测手段已经无法准确、迅速的完成故障的诊断。因此,结合工业大数据对工业设备所产生的海量数据进行数据挖掘分析建立故障诊断模型,对于提高设备维护效率、迅速有效解决故障、降低维修费用有巨大意义。


1.2 国内外研究现况及发展趋势

1.2.1 国内研究现状

金风科技公司对大量风场的历史故障、异常运行信息进行大数据挖掘与分析,对SCADA(Supervisory Control and Data Acquisition,监控和数据采集系统)数据的提取、清洗、分析,从而得到了关于电机与桨叶的一系列特征曲线与模态数据,建立了多角度的断裂预警模型,成功实现了提前90h的预测性维护,消除了潜在的重大故障隐患,保障了工作人员与设备的安全[3]。南京航空航天大学的张鹏在原有的线性模型基础上进行了大量改进,提出了将卡尔曼滤波器和基于非线性模型相结合的方法,并且将其理论在航空发动机上进行了验证[4]。西安电子科技大学的钟福磊等人在盾构机上建立了基于先验知识与基于数据驱动两种方式的混合模型,并且利用仿真数据进行了验证。南京航空航天大学鲁峰等人对发动机进行了仿真建模并且获得了影响系数矩阵,成功实现了对发动机中的气路故障进行诊断[5]。


1.2.2 国外研究现状

国际权威专家 Frank 将故障诊断的方法总结为三种:基于机理模型的方法、基于数据驱动的方法、基于知识工程的方法[6]。葡萄牙科英布拉大学的 Marco S. Reis 教授和 Geert Gins 在《Industrial Process Monitoring in the Big Data/Industry 4.0 Era: From Detection, to Diagnosis, to Prognosis》一文中提到,过去的重点都是检测,也就是基于机理模型的一种对比当前数据的检测办法,实现高水平的检测速度和强度是过去 IPM 研究的主要重点。在处理新流程时,这是一个必要的步骤,但是随着时间推进,越来越多的因素阻碍了更先进的监控手段的发展[7]。因此为了解决这些障碍与挑战,我们需要找到一种方法可以找到故障根源,也就是我们当今时代的主流过程监测手段:故障诊断。未来的发展方向更是令人心驰神往,故障预检测,能够根据当前的运行数据获取未来一段时间内的设备运行状态预测。


瑞典吕勒奥理工大学的 Lianwei Zhang 开发除了一套专用于大数据检测以及维护的系统以及一种基于自适应核密度的异常检测(Adaptive-KD)方法,在工业场景中具有极大的使用价值。


1.3 主要研究内容

(1) 研究数据挖掘算法,采集数据进行模型构建,并且可以根据新的数据进行模型改进、重构;


(2) 研究关联度计算算法,对故障数据进行适当处理,提高最后得到的故障模型的精度;


(3) 研究机器设备的属性之间的联系,有效的剔除一些对模型精度无益的内容,提高运行效率;


(4) 研究模型的改进方案,如决策树中的“剪枝”方法、连续之离散化算法,对模型进行精简,减少模型构建所消耗的资源。


2 故障诊断的总体设计方案


2.1 故障模型的要求

故障模型应该是基于历史数据构建的,由于我们的模型是基于数据驱动,所以对于机械设备方面的先验知识需求量远小于基于机理模型和基于知识工程的构建方式。另外,我们的模型要能接受新的运行数据,对于数据进行测试,从而进行故障诊断的最终目的。


在精度上,模型的精度应该随着数据的不断完善而改进,构建模型所使用的数据越多,那么我们的模型的泛化程度就越高,对于各种实际情况的解读能力就会进一步提升。另外故障模型的基础是基于工业大数据,对于工业大数据的各个环节都会在具体实现环节中一一对应。



83f60a064c43288c0eb5236a22784f9a.jpg


图 1 工业大数据技术架构


2.2 决策树建立故障树模型

2.2.1 信息熵

假设当前样本集 D 中有 N 个样本,而整个样本有 k 个分类,每个分类对应的样本数量为


6fb668d17ca13a31d5604de6cb994508.jpg


那么对于每个分类,他们各自占据的信息量(也可以理解为样本分类的频率)为:


276bf24b100049d02f928e16cdbbe0bd.jpg

结合每一个分类的信息量,则此样本总体的信息熵为:


133e0dfdc992a8f55291581124aa076a.jpg

2.2.2 信息增益


假设当前样本集 D 中有 N 个样本,每个样本都有一些属性,假设我们目前取属性 A 作为我们计算信息增益的属性。


根据属性 A,我们可以用属性 A 的不同取值(假设有 v 种),将整个样本集 D 分为 v 个子样本集


0105d181f842a0bc78bc59852948f86b.jpg


,每个样本子集的样本数为 N,那么每一个样本子集的频率为:


909118a5302959b5c2b34f06c9883854.jpg

那么该样本集的 A 属性的信息增益即为:

6eec7ed4b9ea0683b632cbde6bcbef5d.jpg


2.2.3 ID3 算法


ID3 是一种以自顶向下递归的方法构造决策树的贪心算法。其决策树的基本生成策略如下:


(1)树以整体样本作为单个节点开始;


(2)如果当前节点中,所有的样本都属于同一类,则该节点成为叶节点,并标记为当前样本的类;


(3)否则,使用前面提到的信息增益作为判断信息,选择信息增益最大的一个属性作,该各个属性值将成为该节点往下进行分支的依据。在这里,我们假设所有的属性都是可分的,即所有的属性都可以在一个离散值集合内取到,如果该属性为连续值,则该属性必须离散化处理[8];


(4) 基于测试属性的每一个属性值创建一个分支,并将该属性值相同的样本划分到该分支对应的样本子集;


(5)使用类似的方法,递归地形成每个分支延伸对应的样本决策树。一旦一个属性出现在一个节点上,就不必在该节点的后代上考虑这个属性。


ID3 算法虽然简单易用,但是也有很多缺陷:


(1) ID3 算法缺乏对于连续值的处理手段,而在现实生活中,很多的应用环境都是采集到的连续值;


(2)计算信息增益的时候对于样本频率 P(xi)有极大的依赖性,有时候会对模型造成很大的偏差;


(3)对噪声较为敏感,所谓噪声也就是一些在生成模型的时候就给定的错误数据;


(4)采用递归的方式形成模型,而且整个决策树的生成过程对于数据多次读取存写,所以算法较为低效,而且无法应用于大数据量的场合下。


下面是利用这些概念获得故障树的过程:


975f075f969fd655d092b8665af4eea6.jpg

图 2 ID3 算法生成决策树流程图


为了提高决策树的模型精度,去除掉模型创建时一些错误数据的干扰,有两种剪枝方法可以用于提高决策树的正确分类能力:


(1)预剪枝方法(prepruning),该方法通过提前停止树的向下延伸而对树剪枝。在各个节点向下分支之前,判断通往该分支的样本子集中的判断正确率进行对比,如果在当前节点的正确率高于分支后的子节点,那么就停止生长,这就是预剪枝的主要思想。该方法很多的分支都未曾“展开”,降低了过拟合的风险,而且还显著减少了决策树的训练时间和花销;但是另外一方面,一些分支虽然不能提升整体的泛化性能,但是由其再次展开的分支却有可能导致性能显著提高,而且预剪枝的“贪心”本质给这种方法带来了欠拟合的风险。


(2)后剪枝方法(postpruning),顾名思义,该方法是预先生成一颗完整的决策树,然后从每一个叶节点往上查看父节点,计算如果该父节点进行剪枝成为叶节点后是否会提高判定精度来决定是否剪枝。这种方式直到无法提高决策树性能为止。对比预剪枝方法,后剪枝方法保留了更多的分支。一般情况下,后剪枝方法的欠拟合风险比较小,泛化性能优于预剪枝方法生成的决策树。但是由于后剪枝方法是在决策树生成后在进行的,所以在训练时间和花销上会比预剪枝方法高得多。


2.3 支持向量机二分类原理

2.3.1 SVM 原理


支持向量机(Support Vector Machine,SVM)是一种经典的二分类模型算法,基本模型定义为特征空间中最大间隔的线性分类器,其学习的优化目标便是间隔最大化,因此支持向量机本身可以转化为一个凸二次规划求解的问题。


对于二分类的支持向量机学习器,假设数据是线性可分的,这时分类学习的目标就是找到一个合适的超平面来将所有样本分割成两个类别,将不同类别的样本分割到两个区域内。


下图中的点集是低维数据样本表示,而这些数据对应的超平面就是中间那根线。对于点来说,线毫无疑问是处于高维的超平面了。随着维数增加,超平面总是比数据的维数多一维。

0cbe89af117f1d383820a07a08b7a9d5.jpg


图 3 二维超平面


但是这样的超平面可能存在多个,我们应该寻找的最优超平面该如何获取呢?


79c543d3ccd87ba88f7db2f2ec47bb41.jpg

图 4 存在多个划分超平面将两类训练样本分开


直观上看的话,我们应该寻找位于两类训练样本“正中间”的超平面作为我们的最优超平面,因为这个超平面对于整个训练样本局部扰动的“容忍”性能最好。换言之,这个超平面所产生的分类结果是最鲁棒的,对于未知的数据的分类能里最强。


在样本空间中,超平面可以通过如下线性方程表示:


1e1ca496153e26a556a5610b42de961b.jpg

其中*w* = (w1;w2;w3;...;wd)是当前数据产生的超平面的法向量,它决定了超平面在高维空间内的方向。b 为超平面的位移,决定了超平面与其所在空间的原点之间的距离。既然有了可以用数学方式表达的超平面,那么样本空间中任意一点到超平面的距离也就可以表示为:


7a9e74991808504925fd4f4c649ceb49.jpg

假设超平面能够正确分类,即对于

a0dc630b853512562182186eb30ca221.png

b92fb48206952d0817cfbf9f685a489d.jpg


,则有:


70846e4503cdd9dd46bf7e5f6ffcc38c.jpg

经过计算,我们可以筛选距离超平面最近的几个训练样本,使得上式中的等号成立,这几个样本就称之为支持向量,两个异类(在超平面两侧)支持向量到超平面的距离之和为:

8af2c6dbb78c99e80bd0fd4a1c3a4ce7.jpg


这个距离就被称作“间隔”(margin):


72f8fe224ae914b4071ff5e0d99eea91.jpg

图 5 支持向量与间隔


显而易见的,我们的最终目标,就是找到具有最大间隔的超平面作为最优超平面。那么此超平面需要符合下列特点:


6ea309387ee5d5c587ebfc70cdadb671.jpg

48225c07d5035e41c9078300ac9f4571.jpg

由此可知,为了得到具有最大间隔的最优超平面,只需要最小化

0168dd12388039300dab4c099d9f95ae.png

606ea56ac3341960da4eb7b090030fda.jpg


即可。于是,上式可以改写为:


ac98e3440d5c87ee72f692da9a043020.jpg

7ee596ddd03ab7e343892d03af67e4d4.jpg

这就是“支持向量机”(Support Vector Machine,SVM)这一方法的基本型。


2.3.2 对偶问题

由支持向量机方法的基本型,我们可以知道这是一个带约束的凸二次规划问题,解决这个问题的较高效的办法是:转化为对偶问题(dual problem)。


具体的解决方式为给每条约束添加拉格朗日乘子

07f953810c1172f380befdb15199a37c.png

ee5d19bd0de41be605cc8498a74542c7.jpg


则上述问题的朗格朗日函数可写为:


89971437c2e8b0374242eba2ff7ae4e9.jpg

其中

09cee2311ec6e794fa6bf4979de5dc73.png

7c5df25912f4851740a6ca26add1044a.jpg


,由拉格朗日乘数法的思想,令

4be46fdc1e8c713fe398895e9b91aa1f.png


a0b27b24091bfea1aec9d8fc0f9d41d5.jpg


c0f78c9785276ffecb8d120cfef7761a.png

94a0596abaf92ce043ab099351e5fbc0.jpg

的偏导为 0 可以的得到:


a338f1be747d438a30ef2d8d33153a4f.jpg

12bb6d4f9c0c1ea9b8ac316a1e402d57.jpg

利用两个式子代入到


3198dfc204d87289daac175e2c5b7f91.png

4b8f59a727928f44f21e70b630574d37.jpg

中可以消去


8b94b81750384093254874969a359cf7.png

1b8a4610d91378facf9dc8404421b85a.jpg

,就得到了关于基本型的对偶问题:


e5e5205b40fcab1b7335b9931574a080.jpg

eafbe912ab38b2e83a469dd399159da9.jpg

12f8af3036fe76f6ca5d3ee5cef8f826.jpg

通过求解出的


7f09ef7d1760a9b59d9a4571f2430eec.png

e2d02f50fa120368f80b4f82c1c38f69.jpg

,我们可以计算得出


a15eeaf1a5cd3e47e3d15daeda5df0a8.png

96f0856cc1fc3233c0276d783b0d9d21.jpg

,从而得到最终具体的模型:


5bea3426faff0100256bd933675db859.jpg

4185d2434921cfe37b7ee45d52c98b6f.jpg

0d54e439bcf834264c7452343a1f82f3.jpg

在上述的解答过程中,因为基本型有着不等式的约束条件,所以需要满足 KKT(Karush-Kuhn-Tucker)条件:


53fa49d22a5c7cdd8398bca12a601baa.jpg



2c1d181dc72a942f6db5e083340af3d0.jpg


于是对于任何的训练样本,都要有

4ad0929b49e262fe4038a713b522f431.png

8927a56d2d60307e51f1c99572ce8b04.jpg


= 0 或者

97807e3cae0c99e633837aa1d81e5908.png

0750d2857b0b0bac0b7ec8dd325201f2.jpg


的限制条件。且必须是满足

f18769a5a05c43c18dba074f1aec6305.png

2df3034f27836d0dd115b8db45a01d1f.jpg


的样本才会出现在最大间隔边界上,说明这一个样本是支持向量。这一点也就代表着,训练完成后大部分的训练样本都不需要进行保留,只需要留下支持向量的那些样本即可。因为非支持向量的

883becf9b2b45921fc7130d00e71906d.png


25f952489028c4af80d01e8198bb8bfe.jpg

都等于 0,去除之后不会对模型产生什么影响。


模型建立完毕之后,在对新的数据点进行分类时,实际上就是将这个新的数据点


13513ea53a021e0aae588490c7e0f916.png


代入到分类函数


95c579a5036c43930a2e59762b0877ac.jpg


中,若 f(x)得出来的结果大于 0,则为正类,否则为负类。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
3月前
|
机器学习/深度学习 供应链 大数据
【2023Mathorcup大数据】B题 电商零售商家需求预测及库存优化问题 python代码解析
本文提供了2023年MathorCup大数据竞赛B题的电商零售商家需求预测及库存优化问题的Python代码解析,涉及数据预处理、特征工程、时间序列预测、聚类分析以及模型预测性能评价等步骤。
173 0
|
26天前
|
数据采集 数据可视化 大数据
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
这篇文章介绍了如何使用Python中的matplotlib和numpy库来创建箱线图,以检测和处理数据集中的异常值。
37 1
大数据体系知识学习(三):数据清洗_箱线图的概念以及代码实现
|
7天前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
8天前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
30天前
|
存储 缓存 分布式计算
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
41 4
|
30天前
|
消息中间件 存储 Java
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
大数据-58 Kafka 高级特性 消息发送02-自定义序列化器、自定义分区器 Java代码实现
41 3
|
30天前
|
消息中间件 Java 大数据
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
大数据-56 Kafka SpringBoot与Kafka 基础简单配置和使用 Java代码 POM文件
62 2
|
30天前
|
消息中间件 分布式计算 Kafka
大数据-102 Spark Streaming Kafka ReceiveApproach DirectApproach 附带Producer、DStream代码案例
大数据-102 Spark Streaming Kafka ReceiveApproach DirectApproach 附带Producer、DStream代码案例
55 0
|
3月前
|
机器学习/深度学习 运维 大数据
【KDD2024】大数据基础工程技术集群异常检测论文入选
阿里云计算平台大数据基础工程技术团队主导,与浙江大学合作的论文《Cluster-Wide Task Slowdown Detection in Cloud System》被数据挖掘领域顶会ACM SIGKDD2024接收
|
3月前
|
机器学习/深度学习 数据采集 大数据
2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 问题一建模方案及代码实现详解
本文详细介绍了2022年第三届MathorCup高校数学建模挑战赛大数据竞赛赛道B的题目——北京移动用户体验影响因素研究,提供了问题一的建模方案、代码实现以及相关性分析,并对问题二的建模方案进行了阐述。
89 0
2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛 赛道B 北京移动用户体验影响因素研究 问题一建模方案及代码实现详解