数据驱动故障检测的面向服务架构
1. 引言
如今,企业越来越意识到持续监测设备状况对于预防性和预测性维护(PdM)的重要性。设备故障不仅会导致停机,增加生产成本,还可能损坏正在生产的产品。而PdM方法通过提前预判设备潜在问题,能减少干预时间和停机时间,降低未来故障的概率,延长必要干预的间隔。
预测性维护依赖于对设备过去行为的分析来检测和预测故障,是一种基于状态的维护方式。机器学习和数据挖掘技术在该领域很受欢迎,它们能生成数据驱动的模型,帮助企业了解设备行为、识别异常并做出决策,尤其适用于处理大量数据和复杂参数的场景。
在PIANiSM项目中,旨在构建一个适用于不同工业领域的端到端预测性维护平台。该平台的参考架构采用模块化设计,包含数据采集层、数据预处理层、模型开发层和应用层。本文主要探讨了将参考架构的第二层和第三层应用于软包装领域,特别是软膜生产,提出了一种面向服务的架构(SOA)和预测性维护策略,用于检测塑料共挤机的故障。
2. 背景知识
2.1 面向服务的架构(SOA)
SOA可以看作是一种概念模型,其中与业务相关的软件组件通过网络为其他组件提供服务。它是一种定义松散耦合软件组件开发和交互方式的架构风格。在SOA中,软件组件代表可重复的业务活动,遵循关注点分离原则进行开发,即一个组件的实现细节对其他组件是隐藏的。这使得服务可以独立使用、更新、组合和重用,从而构建出具有弹性和高度灵活性的系统。
在SOA中,服务提供者发布服务描述,服务消费者调用这些服务。服务可以通过服务注册表(可选)暴露和调用,通常企业内部使用企业服务总线(ESB),处理外部服务时也可通过Web交换消息。服务消费者也可直接访问服务描述,但对于复杂系统,实现点对点连接可能很繁琐且难以维护。SOA中服务间的交互通常使用标准网络协议,如SOAP或RESTful HTTP。
与SOA相关的概念是微服务。目前对于微服务是独立的架构风格还是SOA的实现方法尚无定论,但许多专家支持后者。SOA定义了业务组件的集成方式,而微服务则在应用层面应用了SOA的原则和模式。
2.2 隔离森林算法
隔离森林算法由Fei Tony Liu、Kai Ming Ting和Zhi - Hua Zhou于2008年提出。它是由多个树结构组成的集合,用于隔离异常数据点。与大多数异常检测算法不同,隔离森林算法不创建正常数据的轮廓,而是利用异常点稀少且独特的特点,通过划分特征空间将异常点与正常数据分离。因为异常数据点比正常数据点更容易被隔离,正常数据点通常数量更多且在特征空间中更紧密地聚集在一起。
隔离森林中的每棵隔离树(iTree)通过随机选择一个特征,并在该特征的最小值和最大值之间随机选择一个分割值来构建。按照此过程,数据样本会被递归划分,直到每个外部节点包含一个实例,或者一个节点上的所有实例具有相同的值。隔离一个数据点所需的分割次数相当于从iTree的根节点到包含该数据点的外部节点的路径长度。由于隔离森林是iTree的集合,因此预期路径长度是所有iTree上的平均长度。
隔离森林算法为每个观测值分配一个异常分数,定义如下:
[s(x, n) = 2^{-\frac{E(h(x))}{c(n)}}]
其中,(h(x))是观测值(x)的路径长度,(E(h(x)))是(x)在每个iTree上的平均路径长度,(c(n))是二叉搜索树中不成功搜索的平均路径长度。分数(s)接近1表示观测值是异常,远小于0.5表示观测值可能是正常的,如果所有观测值的分数约为0.5,则数据中不存在异常。此外,为了处理聚类异常并提供不同粒度的结果,可以设置路径长度的限制(h_{lim}),从而有效定义异常阈值。
隔离森林算法只需要定义两个参数:iTree的数量和子采样大小。由于iTree不需要隔离所有正常数据点,因此可以通过丢弃大部分训练数据来构建。实际上,样本大小较小时,隔离森林能产生更好的结果,因为大样本会因“掩蔽”(存在过多异常)和“淹没”(正常实例被识别为异常)问题而难以隔离异常。因此,隔离森林算法具有线性时间复杂度和低内存要求,适合处理大量数据。
3. 系统架构
针对软包装市场的用例,采用了面向服务的方法。根据PIANiSM平台的参考架构,确定了三个主要的服务提供者:数据建模服务、预处理服务和数据访问服务。这些服务独立部署、维护,并使用基于IP网络的标准技术进行通信。
服务消费者包括向系统终端用户展示平台功能的仪表板和用户界面控件,以及为整个系统提供配置和微调的后台系统。而且,一个服务提供者也可能消费其他服务,例如预处理服务会消费数据访问服务提供的服务。
这些服务的集成通过Zato框架实现。Zato是一个高度可扩展的基于Python的企业集成平台,它允许服务通过常见技术(如REST、SOAP、WebSockets、AMQP等)进行连接。使用Zato作为中间件,不同服务可以通过一个单一的名称调用,服务的业务逻辑被完全封装,对服务的任何更改都不会影响服务消费者。
下面是服务提供者的相关信息:
|服务提供者|功能|
| ---- | ---- |
|数据访问服务|为系统提供数据访问功能,消费者可以访问被监控机器的历史和实时数据。历史数据通过RESTful API根据机器和传感器标识以及时间窗口提供,实时数据通过数据访问服务内的数据流服务为每台机器的每个可用变量提供。|
|预处理服务|专注于预测性维护应用的数据操作需求,提供同步、聚合、插值等组件服务,为后续的建模流程优化性能。|
|建模服务|用于构建和评估机器学习模型,以预测和检测机器故障。它使用预处理服务的两个不同端点,分别处理历史数据以训练离线模型和处理实时数据以构建在线模型。|
其架构关系可以用以下mermaid流程图表示:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(数据访问服务):::process -->|提供数据| B(预处理服务):::process
B -->|处理后数据| C(建模服务):::process
D(服务消费者):::process -->|调用服务| A
D -->|调用服务| B
D -->|调用服务| C
4. 案例研究
4.1 预测性维护方法
本案例研究重点使用无监督学习方法检测工业机器的故障,具体采用隔离森林算法。在训练阶段,为从监控机器的传感器获得的每个单变量时间序列训练一个隔离森林。考虑时间序列({X_t}),(t \in T),将隔离森林拟合到大小为(W_1)的滑动窗口(A)(大小可定义为时间段或实例数量)。拟合后,计算每个实例的异常分数。
为了确定异常阈值,不能简单地基于隔离森林算法的(h_{lim})参数,因为实时部署时数据分布可能变化,导致异常分数改变,固定阈值可能会增加误报或漏报。因此,异常阈值基于异常分数的四分位距(IQR),上下限定义如下:
- 下限:(Lower\ limit = Q_1 - k \times IQR)
- 上限:(Upper\ limit = Q_3 + k \times IQR)
其中,(Q_1)是窗口(A)中数据的第一四分位数,(Q_3)是第三四分位数,(IQR = Q_3 - Q_1)。参数(k)通常为1.5,代表距离均值2.7个标准差,即异常分数大于或小于均值2.7个标准差的数据点被视为异常。(k)可以调整,以平衡误报和漏报的数量。
单个异常可能没有实际意义,只有在给定时间段内异常积累到一定程度才表明可能即将发生故障。因此,实时部署隔离森林模型时,系统会监控最近数据的滑动窗口(B)(大小为(W_2))内检测到的异常百分比。如果该百分比超过阈值(X),系统会发出故障即将发生的警告。为了持续监控传入数据,窗口(B)会以长度(S_2)移动。
为了适应生产过程的时变特性,模型需要定期使用最新数据更新。利用隔离森林的线性时间和低内存要求,窗口(A)也会以长度(S_1)移动并更新模型。参数(W_1)、(W_2)、(X)、(S_1)和(S_2)应根据业务需求定义。
4.2 实验结果
本案例研究的数据来自一台9层共挤吹膜机,每台挤出机的历史数据由内置传感器以每分钟12次(每5秒一次)的速率收集。以下是每台挤出机的监控参数:
|数据特征|计量单位|
| ---- | ---- |
|层厚度|百分比|
|瞬时重量|kg|
|熔体压力|bar|
|电机转速|RPM|
|熔体温度|°C|
|吞吐量|kg/h|
在构建隔离森林之前,需要对数据进行预处理,包括清理数据(去除错误传感器读数引入的损坏数据和重复条目)、同步时间序列(解决不同变量时间戳的差异)、使用线性插值填充缺失值以及下采样(将数据频率从5秒间隔降低到5分钟间隔,减少数据量而不显著改变数据的表达能力)。
准备阶段完成后,按照上述方法为每个时间序列拟合隔离森林。每个模型使用一个月的数据样本进行训练,并通过构建不同参数值的多个模型来确定最合适的iTree数量和子采样大小。拟合模型后,计算异常分数和基于IQR的异常阈值。由于没有标记数据,通过可视化评估模型性能,即绘制每个模型的检测结果并进行比较,以确定每个变量的最佳参数组合。
为了比较结果,还应用了另外两种异常检测技术:基于密度的空间聚类应用与噪声(DBSCAN)算法和低通滤波器结合修改后的Z分数。DBSCAN是一种基于密度的聚类算法,常用于异常检测,它不需要预先定义聚类数量。低通滤波器方法通过计算时间序列数据的移动平均值,并将修改后的Z分数大于3.5的数据点标记为异常。
实验结果表明,三种技术在检测一个月的熔体温度数据异常时都表现良好。低通滤波器结合修改后的Z分数能较好地检测异常点,但会将接近异常点的正常数据也标记为异常。DBSCAN和隔离森林加IQR的结果相似,但DBSCAN的检测精度更高。隔离森林方法在较短制造过程中会产生更多误报,但由于其线性时间和低内存要求,结合IQR时非常适合实时部署。而DBSCAN由于数据的非平稳性,需要定期自动更新模型,且确定其输入参数值具有很大挑战,不太适合实时部署。
最后,将隔离森林模型加IQR实时部署,用于检测24小时最新数据中的故障。当24小时时间窗口内的异常数量超过25%时,系统会发出警报。窗口每小时移动一次以纳入最新数据并丢弃最旧的数据,隔离森林每15天使用一个月的新数据进行更新。
数据驱动故障检测的面向服务架构
5. 技术点分析与总结
5.1 面向服务架构(SOA)的优势与挑战
SOA在本项目中展现出了显著的优势。它遵循关注点分离原则,使得软件组件的开发和维护更加独立和灵活。各个服务可以独立更新、组合和重用,提高了系统的可扩展性和弹性。例如,数据访问服务、预处理服务和建模服务可以独立部署和维护,一个服务的更改不会影响其他服务,降低了系统的耦合度。
然而,SOA也面临一些挑战。在复杂系统中,实现服务之间的点对点连接可能非常繁琐且难以维护。虽然可以使用服务注册表(如企业服务总线ESB)来简化服务的调用,但这也增加了系统的复杂性。此外,服务之间的通信需要使用标准网络协议,如SOAP或RESTful HTTP,这要求开发人员具备一定的网络编程知识。
5.2 隔离森林算法的特点与适用性
隔离森林算法具有很多独特的特点,使其在异常检测领域具有广泛的适用性。它不需要创建正常数据的轮廓,而是直接通过隔离异常点来进行检测,这使得它在处理复杂数据时更加高效。算法只需要定义两个参数(iTree的数量和子采样大小),并且具有线性时间复杂度和低内存要求,适合处理大量数据。
但隔离森林算法也有一定的局限性。在实时部署时,数据分布的变化可能会影响异常分数和阈值的准确性,需要采用基于IQR的动态阈值方法来解决。此外,算法在处理聚类异常时可能会产生一些误报,需要结合业务需求进行参数调整。
5.3 异常检测技术的比较
在本案例研究中,比较了隔离森林算法、DBSCAN算法和低通滤波器结合修改后的Z分数三种异常检测技术。每种技术都有其优缺点:
|异常检测技术|优点|缺点|
| ---- | ---- | ---- |
|隔离森林算法|线性时间复杂度和低内存要求,适合实时部署;不需要创建正常数据轮廓|实时部署时数据分布变化可能影响阈值准确性;处理聚类异常时可能产生误报|
|DBSCAN算法|不需要预先定义聚类数量,检测精度较高|数据非平稳时需要定期自动更新模型;确定输入参数值具有挑战,不适合实时部署|
|低通滤波器结合修改后的Z分数|能较好地检测异常点|会将接近异常点的正常数据标记为异常|
6. 实际应用建议
如果企业希望在实际生产中应用类似的预测性维护系统,可以参考以下建议:
1.
架构设计
:采用面向服务的架构,将不同功能模块封装成独立的服务,提高系统的可维护性和可扩展性。使用成熟的企业集成平台(如Zato)来实现服务之间的集成,简化服务调用和管理。
2.
异常检测算法选择
:根据数据特点和业务需求选择合适的异常检测算法。如果数据量较大且需要实时处理,隔离森林算法是一个不错的选择;如果对检测精度要求较高且数据相对稳定,可以考虑DBSCAN算法。
3.
参数调整与优化
:无论是隔离森林算法还是其他异常检测技术,都需要根据实际数据和业务需求进行参数调整。例如,在隔离森林算法中,通过调整iTree的数量、子采样大小和基于IQR的异常阈值参数(k),可以平衡误报和漏报的数量。
4.
数据预处理
:数据预处理是保证模型性能的关键步骤。在实际应用中,需要对数据进行清理、同步、插值和下采样等操作,以提高数据的质量和可用性。
5.
实时监测与模型更新
:建立实时监测机制,及时发现设备的异常情况。同时,定期更新模型以适应生产过程的变化。例如,在本案例中,隔离森林模型每15天使用一个月的新数据进行更新。
7. 未来发展趋势
随着工业4.0和智能制造的发展,预测性维护系统将朝着更加智能化、自动化和集成化的方向发展。
-
智能化
:未来的预测性维护系统将更多地利用人工智能和机器学习技术,如深度学习、强化学习等,提高故障预测的准确性和可靠性。例如,使用深度学习模型对设备的多传感器数据进行联合分析,挖掘数据中的深层次特征。
-
自动化
:系统将实现更多的自动化操作,如自动调整模型参数、自动更新模型等。通过引入自动化机制,可以减少人工干预,提高系统的响应速度和效率。
-
集成化
:预测性维护系统将与企业的其他信息系统(如企业资源规划系统ERP、制造执行系统MES等)进行深度集成,实现数据的共享和协同工作。例如,将故障预测结果及时反馈给ERP系统,以便合理安排生产计划和维护资源。
以下是未来发展趋势的mermaid流程图:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(智能化):::process --> B(预测性维护系统发展):::process
C(自动化):::process --> B
D(集成化):::process --> B
B --> E(更高效准确的故障预测):::process
B --> F(优化生产与维护资源管理):::process
综上所述,数据驱动的故障检测和预测性维护是工业领域提高生产效率、降低成本的重要手段。通过合理选择架构和算法,以及不断优化和更新模型,企业可以有效地实现设备的实时监测和故障预测,保障生产的稳定运行。
超级会员免费看

被折叠的 条评论
为什么被折叠?



