随着互联网的发展,外卖、电商、快递等平台呈爆炸式增长,而商品的交易往往都需要提供相应的小票、收据等,因此打印订单的需求也同步增加。在大量的订单打印需求下,商家除了要求打印机有较高的性能以外,还需要其硬件设备能够有效进行故障自动诊断,以此提高打印的可靠性。因此,许多学者通过模糊推理[1-2]、神经网络[3-4]、机器学习[5]、几何信息[6]、符号键合图[7]等不同的方法,在硬件设备的故障诊断方面做了不少研究。
但上述研究主要基于单个设备的故障诊断,相比于高成本的单台高速打印机,低成本的微型嵌入式集群打印系统有着更高的打印效率。同时,集群系统有着更好的拓展性、鲁棒性、可靠性和安全性。由于集群的节点较多,如何有效地监控和处理设备节点的故障成为集群系统的核心问题。
微型嵌入式集群打印系统主要应用于仓储式打印系统、餐饮订单打印系统等需要高并发量的打印[8]。其主要作用是通过对订单任务全生命周期管理,保证打印任务可以及时完成,尽可能减少重单和故障单问题。保证上述功能实现的核心是该系统的故障诊断模块,集群打印系统是管理多个主控板和打印模块的协调系统,故障可能发生在任何一个打印模块或主控板,可通过对主控板和打印机模块的状态监控来实现故障诊断并及时处理。由于微型打印机系统是微型嵌入式系统,基于其资源受限(有限的计算机能力和存储空间)、专用性强和难以二次开发的特点,微型嵌入式系统只能够初步识别故障,对于复杂的故障和故障预警需要交给服务器完成。针对这个特点,本文采用了具有能够及时监控节点状态的符号有向图(Signed Directed Graph,SDG)故障诊断方法[9]。
SDG是最常用的定性模型之一,其将系统划分若干个节点和支路,通过分析节点间的关系来确定它们之间的因果关系,能够通过节点状态值的变化来确定故障是否发生,非常适合用于需要及时监控各模块状态的集群打印系统[10]。Vedam等[11]提出将SDG技术应用于故障诊断。Zhang等[12]提出了通过方向推理SDG模型来识别多重故障。Tarifa等[13]使用模糊逻辑诊断规则库和SDG技术进行故障诊断。李秀喜等[14]使用模糊SDG方法和专家系统实现了故障的在线诊断。
综上,SDG具有能识别多重故障、存储计算要求低、能识别新故障等优点[15-16]。基于微型打印机系统的操作系统是微型嵌入式系统,结合该系统资源受限、专用性强、难以二次开发和微型打印集群系统需要实时监控订单的特点。本文通过SDG故障诊断技术与复杂集群系统融合,有效地分析出微型打印集群系统的内部结构的因果模型,通过构建节点和支路可以解决打印订单的全生命追踪和管理的问题,并且可以有效地识别故障。
1 集群打印系统 1.1 微型打印机集群系统微型打印机指的是基于微型嵌入式系统的打印机,微型打印机主要由主控板和打印模块组成,其中主控板连接着多个打印模块,因此本文所述的微型打印机是含有多个打印模块的打印机,其操作系统为微型打印机集群系统。微型打印机系统一般具有实时性、专用性、资源受限、鲁棒性和可预测性等特点[17-18]。
如图1所示,集群打印系统建立在并发任务量的协调系统上,可以对订单进行合理分配,实现打印设备的负载均衡、打印资源的动态分配和调度、打印故障的实时监测及处理等智能化特性[19]。集群打印系统一般分为3层:集群打印控制层、打印控制层和打印节点层。其中集群打印控制层主要由打印机服务器和PC端组成,其主要任务是对整个打印控制层进行管理和监控;打印控制层是由多个主控板组成,其任务就是监控和管理各个打印节点层的各个打印模块;打印节点层主要由打印模块组成,是整个打印系统的最底层,负责订单的打印和硬件状态的监控。
|
图 1 集群打印系统 Figure 1 Cluster printing system |
故障智能诊断系统和集群打印系统一样,主要分为3层:综合诊断层、主控板诊断层和数据节点层。
综合诊断层主要包括知识库、主控板管理、性能分析和订单状态管理等模块,主要负责订单全生命的追踪、主控板以及打印模块的打印性能分析和故障诊断、恢复预测等规则的实现。
主控板诊断层主要包括健康状态管理、继电保护、故障任务管理、工作状态管理、历时故障数据和基础规则库等模块,主要负责打印模块性能监控、掉电订单自恢复打印、故障的初步诊断和自恢复等功能。
数据节点层主要包括硬件使用数据、节点数据和故障反馈等模块,实现底层硬件故障反馈、节点和硬件数据统计等功能。
2 SDG故障诊断方法分析与研究在集群打印系统中,主控板和打印模块之间联系比较紧密,随着工作时间的增加,一旦产生故障就会使故障之间的关系非常复杂,又因主控板控制多个打印模块,给故障诊断和定位增加了困难,基于集群打印系统的特点(能够监控订单全生命周期、自恢复故障等特点),需要实时监控打印订单状态,结合SDG具有实时监控节点数据和分离多重故障的特点[20],将SDG故障诊断方法引入到集群打印故障诊断系统相当有必要。
2.1 SDG方法定义SDG模型在故障诊断领域里是典型的、定性的模型,主要由节点和节点间的支路组成,其中节点代表系统的变量参数,支路代表着节点与节点的关系,其基本数学定义如下[21]。
定义1 SDG模型
(1) 有向图
(2) 函数
图2是打印系统的SDG主要节点模型图,其由服务器节点F、主控板节点L、打印模块节点M组成。由定义1得到构成的节点集合为
| ${{S}} = \left[ {\begin{array}{*{20}{c}} 0&1&0 \\ { - 1}&0&1 \\ 0&0&0 \end{array}} \right]$ | (1) |
|
图 2 打印系统主要节点模型图 Figure 2 Print the main node model diagram of the system |
定义2
| $ \varphi ({N_k}) = \left\{ {\begin{array}{*{20}{l}} \!\!\! {0,}&{\left| {X_{n_i} - \underline X _{n_i}} \right| \leqslant \varepsilon_{n_i}} \\ \!\!\! { - ,}&{X_{n_i} - \underline X_{n_i} > \varepsilon_{n_i}} \\ \!\!\! { + ,}&{\underline X_{n_i} - X_{n_i} > \varepsilon_{n_i}} \end{array}} \right. $ | (2) |
其中,
定义3 相容支路具有样本
定义4 当
SDG故障诊断推理方法是一种定性的方法,其主要是利用节点间的关系进行推理,通过节点间的相容性可以确定节点的关系,其推理流程如下。
(1) 获取当前(非零)节点集合
(2) 确定关系邻接矩阵
(3) 若不存在关系
(4) 存在关系
(5) 重复(3)和(4)过程,找到全部故障节点。
3 设计与实现 3.1 故障诊断和恢复基于SDG故障诊断主要根据节点值变化来判断是否发生故障,并通过节点间关系区分是否发生了多重故障。在集群打印系统中,可以通过SDG故障诊断技术,快速识别发生故障位置、原因和分别出多重故障。
1) 故障初步诊断
集群打印系统的初步诊断主要基于判断节点值是否处于阈值的范围内,超出阈值或者低于阈值说明该打印任务发生了故障,其主要诊断框架如图3所示。其中
|
图 3 诊断流程图 Figure 3 Diagnostic flowchart |
2) 诊断规则库的构建
诊断规则库是知识库的重要组成部分,集群打印系统的规则库主要提供底层必要诊断规则和策略,通过规则将故障直接进行反馈或者恢复,在发生不可恢复故障的时候,规则库将会提供基础的故障转移策略,规则主要由产生式表示法表达,其基本形式为[22]:if
3) 订单状态的管理
订单状态管理就是追踪每一份订单在关键节点的数据,通过管理这些数据可以确定该份订单是否发生故障。在集群打印系统中,订单状态管理主要实现了订单全生命追踪和掉电数据恢复等功能,其在该系统主要以订单状态维护表单的形式表现,并且这份表单存储在系统ROM上。其中,节点数据是当前每个节点
4) 订单全生命追踪
订单全生命追踪是订单状态管理的重要组成部分,也是集群打印系统的核心。通过追踪订单可以大量减少漏单、重单、错单,确定每个节点数据,确定订单在各个节点的状态,其大致流程如图4所示。集群打印系统通过该流程可以监控到每份订单完成的进度和订单的关键流程。全生命追踪过程中可提取关键节点的数据,即
|
图 4 订单全生命追踪流程图 Figure 4 Order full life tracking flowchart |
5) 掉电保护
本文采用将关键核心数据保存在ROM上[23]的方法实现掉电保护方案,其核心是订单状态维护表单。因为该表单记录在ROM上,在发生掉电时该表单的数据不会消失,在复电的时候查询掉电时订单的工作状态,并恢复节点数据,不完整订单就可以恢复到掉电前的状态。
6) 诊断规则库的构建
需要恢复的故障有3类:可修复故障、不可自修复故障和未知故障。其主要依据规则库里面的规则进行故障恢复和报告,其中不可自修复故障主要是等待人工修复;未知故障主要通过将故障反馈到服务器进行专家识别和修复。
7) 故障数据统计
故障数据统计是记录集群打印系统故障信息,通过故障数据统计可以统计出故障的发生概率甚至可以预测同类故障下一次发生的时间,根据集群打印系统的结构特点,按照发生故障的位置大致可以将故障划分为3类:打印模块的故障、主控板故障、传输故障。3类故障都需要记录关键数据(故障类型、故障名称、故障时间、故障原因、故障率、故障位置、恢复时间、恢复措施、连续工作时长等),由于引起3种类型故障的原因不同,还需要记录其他不同的数据,如内存分配情况、打印机温度等数据。
3.2 故障任务管理故障任务管理主要作用是监控故障任务恢复到归档的过程。当故障发生时,首先要保证打印任务执行,然后才是修复某个主控板或打印模块的故障(故障任务指的是因为发生故障不能够及时完成的打印任务)。但发生一些不可恢复的故障时(例如打印模块或者主控板损坏),需要进行故障任务转移,将打印任务直接转移到其他打印模块或者主控板中。
进行打印任务转移,是管理故障任务的核心,在集群打印系统中,首先保证的是完成打印任务,因此发生故障时,滞留的任务不能够及时打印就会产生故障任务,对这些任务需要进行合理的转移,其中决定性因素包括故障率
| $ y = \alpha \mu + \beta \varpi $ | (3) |
| $ \varpi = {t_{\min }} + {t_{{\rm{nec}}}} $ | (4) |
其中
| $ \theta = \left\{ {\begin{array}{*{20}{c}} {{t_0} + {t_5},}&{p = 1} \\ {\varpi + {t_5},}&{p = 2} \end{array}} \right. $ | (5) |
其中
打印机集群系统实验平台采用的是3层分层架构,即包括服务器、主控板和打印模块,每个模块的具体参数和数据如表1所示。该平台为本文提供订单任务的节点数据和相关的打印数据,是后面实验的基础平台。
| 表 1 实验环境配置表 Table 1 Experimental environment configuration |
SDG故障诊断最重要的是对阈值的确定。如表2所示,本文通过采集大量真实订单数据,确定了在上述微型打印集群系统中大小为0.5~4 kb的订单的相应阈值范围。
| 表 2 节点阈值表 Table 2 Node threshold table |
故障任务恢复时间是衡量故障诊断系统的一个重要标准,即式(5)所述
| 表 3 故障任务恢复时间统计表 Table 3 Statistics of recovery time of faulty tasks |
通过表3可以确定各个类型订单进行任务转移所需要的时间,即确定了
本文将SDG技术运用到集群打印系统,结合SDG建模的特点,提出了一种适合集群打印系统的故障诊断系统,通过分析集群打印系统的工作流程,实现了对订单全生命追踪。同时通过故障任务管理,对发生故障的打印节点进行任务恢复,实现微型打印机集群系统的故障预警。但故障预测方面本文并没有过多涉及,可以通过对数据监控和挖掘分析出故障将要发生的时间和原因,从而进行故障预测和故障自修复,这将是一个很有挑战性和应用前景的方向。
| [1] |
杨岱桦, 雷菊阳, 姚辉. 基于智能控制的机械设备金属结构故障诊断研究[J].
农业装备与车辆工程, 2020,58(2): 123-126.
YANG D H, LEI J Y, YAO H. Research on metal structure fault diagnosis of lifting equipment based on intelligent control[J]. Agricultural Equipment and Vehicle Engineering, 2020,58(2): 123-126. DOI: 10.3969/j.issn.1673-3142.2020.02.001. |
| [2] |
毛彪, 杨松, 李英顺. 改进动态因果图与模糊推理融合故障诊断方法[J].
计算机工程与应用, 2020, 56(3): 259-265.
MAO B, YANG S, LI Y S. Improved dynamic causality diagram and fuzzy inference fusion fault diagnosis method[J]. CEA, 2020, 56(3): 259-265. DOI: 10.3778/j.issn.1002-8331.1811-0128. |
| [3] |
ZHANG B, YAN J, TIAN C. Study on fault diagnosis system of diesel engine fuel injection system based on BP neural network[C]// ISECS International Colloquium on Computing, Communication, Control and Management.[S.l]: IEEE Computer Society, 2008.
|
| [4] |
李川, 张绍辉, JOSÉ V O. 基于次优网络深度学习的3D打印机故障诊断[J].
机械工程学报, 2019, 55(7): 73-80.
LI C, ZHANG S H, JOSÉ V O. Fault diagnosis for 3D printers using suboptimal networked deep learning[J]. Journal of Mechanical Engineering, 2019, 55(7): 73-80. DOI: 10.3901/JME.2019.07.073. |
| [5] |
LEI Y, YANG B, JIANG X, et al. Applications of machine learning to machine fault diagnosis: a review and roadmap[J].
Mechanical Systems and Signal Processing, 2020, 138: 106587.
DOI: 10.1016/j.ymssp.2019.106587. |
| [6] |
LI Y, ZENG Y, LIU T, et al. Simultaneously learning affinity matrix and data representations for machine fault diagnosis[J].
Neural Networks, 2020, 122: 395-406.
DOI: 10.1016/j.neunet.2019.11.007. |
| [7] |
王芳, 帕孜来·马合木提, 张宝伟. 基于符号键合图的多故障诊断方法研究[J].
现代电子技术, 2018, 41(16): 140-143.
WANG F, PAZILA M H, ZHANG B W. Research on multiple fault diagnosis method based on signed bond graph[J]. Modern Electronic Technology, 2018, 41(16): 140-143. |
| [8] |
谢光强, 郭小全, 李杨, 等. 微型嵌入式系统故障诊断方法综述[J].
计算机应用研究, 2019, 36(5): 1281-1285.
XIE G Q, GUO X Q, LI Y, et al. Review of fault diagnosis methods for micro-embedded system[J]. Application Research of Computers, 2019, 36(5): 1281-1285. |
| [9] |
SMAILI R, El H R, ABDELKRIM M N. Fault diagnosis based on graphical tools for multi-energy processes[J].
IFAC Proceedings Volumes, 2014, 47(3): 7073-7078.
DOI: 10.3182/20140824-6-ZA-1003.00851. |
| [10] |
吉世明. 基于半定量SDG模型的化工过程故障诊断[D]. 广州: 华南理工大学, 2012.
|
| [11] |
VEDAM H, VENKATASUBRAMANIAN V. PCA-SDG based process monitoring and fault diagnosis[J].
Control Engineering Practice, 1999, 7(7): 903-917.
DOI: 10.1016/S0967-0661(99)00040-4. |
| [12] |
ZHANG Z Q, WU C G, ZHANG B K, et al. SDG multiple fault diagnosis by real-time inverse inference[J].
Reliability Engineering & System Safety, 2005, 87(2): 173-189.
|
| [13] |
TARIFA E E, SCENNA N J. Fault diagnosis for a MSF using a SDG and fuzzy logic[J].
Desalination, 2003, 152(1): 207-214.
|
| [14] |
李秀喜, 吉世明. 基于半定量SDG模型的化工过程故障诊断[J].
清华大学学报(自然科学版), 2012, 52(8): 1112-1115.
LI X X, JI S M. Chemical process fault diagnosis using semi-quantitative SDG model[J]. Journal of Tsinghua University (Science and Technology), 2012, 52(8): 1112-1115. |
| [15] |
VENKATASUBRAMANIAN V, RENGASWAMY R, KAVURI S N. A review of process fault detection and diagnosis, Part II: qualitative models and search strategies[J].
Computers & Chemical Engineering, 2003, 27(3): 313-326.
|
| [16] |
VENKAT V, RAGHUNATHAN R, KEWEN Y, et al. A review of process fault detection and diagnosis, Part I: quantitative model-based methods[J].
Computers & Chemical Engineering, 2003, 27(3): 293-311.
|
| [17] |
PEDRAM M. Power optimization and management in embedded systems[C]//Asia and South Pacific Design Automation Conference, 2001. Yokohama, Japan: IEEE, 2001: 239-244.
|
| [18] |
涂刚, 阳富民, 胡惯荣. 嵌入式操作系统综述[J].
计算机应用研究, 2000(11): 4-9.
TU G, YANG F M, HU G R. Overview of embedded operating systems[J]. Journal of Computer Applications, 2000(11): 4-9. DOI: 10.3969/j.issn.1001-3695.2000.03.002. |
| [19] |
徐超群. 高可用集群系统关键技术的研究与实现[D].南京: 南京航空航天大学, 2014.
|
| [20] |
杨恒占, 张可, 钱富才. 基于模糊分层SDG模型的故障推理方法[J].
计算机系统应用, 2017, 26(4): 104-109.
YANG H Z, ZANG K, QIAN F C. Fault reasoning method based on fuzzy hierarchical SDG model[J]. Application of Computer Systems, 2017, 26(4): 104-109. |
| [21] |
刘洪刚, 吴建军, 陈小前, 等. 基于SDG的智能故障诊断方法研究[J].
系统工程与电子技术, 2002, 24(1): 103-104.
LIU H G, WU J J, CHEN X Q, et al. Study on the SDG- based intelligent fault diagnosis method[J]. System Engineering and Electronics, 2002, 24(1): 103-104. DOI: 10.3321/j.issn:1001-506X.2002.01.029. |
| [22] |
王兵, 陈军东. 嵌入式系统掉电保护的一种设计方法[J].
工业控制计算机, 2005(9): 58-59.
WANG B, CHEN J D. A design method for power failure protection of embedded system[J]. Industrial Control Computer, 2005(9): 58-59. DOI: 10.3969/j.issn.1001-182X.2005.09.030. |
| [23] |
翁海勇, 俞加明, 叶大鹏. 基于LM358的单片机掉电保护系统设计与实现[J].
电子世界, 2013(4): 3.
WENG H Y, YU J M, YE D P. Design and implementation of a single chip power-down protection system based on LM358[J]. Electronic World, 2013(4): 3. |
2020, Vol. 37