石聪聪,刘富春
(广东工业大学 计算机学院,广东 广州 510006)
离散事件系统(discrete event system, DES)是由离散事件触发而引起状态迁移的一类动态系统,其运行是由离散事件错综复杂地相互作用所决定的,在现代工业控制系统中有着广泛应用[1]. 为了保证系统的可靠性,通常要求能够在有限时间内判断系统运行是否安全可靠. 因此,故障诊断研究一直是离散事件系统的研究热点[2-9].
自1994年Lin F[2]提出基于状态的离散事件系统在线诊断和离线诊断方法以来,Meera S等[3]相继发表了用基于事件的方式研究DES对动态系统进行故障诊断的方法,它以自动机为系统建模[4],通过构建一个诊断器并根据诊断器的状态信息实现对系统是否可诊断的判断. 但是这种方法的复杂度是关于系统状态数的指数时间,这对于一个复杂系统来说,该故障诊断方法将耗费大量时间和空间. 为此,Jian S B和Yoo T S等[5-6]相继提出了并行自动机故障诊断方法,通过自同步来构造系统的全局twin-plant模型-验证器,从而可以由验证器直接判定系统的可诊断性. 胡芹等[7]使用了离散事件系统来优化控制云资源的分配问题,这是后来不断有人使用DES来解决实际问题的例子.
然而,上述方法只适合于处理规模较小的系统的故障诊断,一旦系统规模较大时,这种通过验证器直接判断其可诊断性的方法相当困难. 为此,许多学者将离散事件系统按照一定规则划分为多个子系统,每个子系统对应为全局系统的一个局部模型,通过对各局部模型构建局部诊断器实现对全局复杂系统的故障诊断. 这种方法最具代表性的有Debouk R等[8]提出的分散式诊断方法和Pencolé Y[9]提出的分步式诊断方法. 分散式诊断方法中各个子系统之间不存在任何信息交互,先对每个子系统建模并得到相应的局部诊断结果,再通过一个协调器来处理各个子系统的局部诊断结果,从而得到整个系统的可诊断性. 而分布式诊断方法的各个局部模型之间有通信事件进行连接,对各个局部模型构建诊断器和检测器并进行可诊断性判定,通过对检测器进行剪枝操作进行同步,得出全局系统的故障诊断结果.
尽管在工业应用中的离散事件系统大多数是经典DES,其状态和事件等信息都是十分明确,得到的故障诊断结果也是一个精确结果. 但是在许多实际应用中,特别是生物医学领域,往往得到的数据具有一定程度的模糊性和不精确性. 例如,将人的身体状况分为“好”“中”“差”是具有一定程度的模糊性,身体好到什么程度就属于“好”、差到什么程度就一定属于“差”,往往不同的人有着不同的观点. 于是,2001年Lin F等[10]将模糊数学与经典DES相结合,提出了一种模糊离散事件系统(Fuzzy Discrete Event System, FDES)[11].
从提出FDES以来,国内外许多学者致力于FDES的研究[12-21]. Cao Y Z[12]首先做了基于FDES的分布式控制的研究,Cao Y Z和Qiu D W[13-14]开始做了基于FDES的监督控制的研究,这时Huq R等[15]则做了用FDES的方式研究移动机器人的行为调制技术的研究. Cao Y Z等[16]然后从基于事件的方式推广到了基于状态控制的FDES的研究,Liu J P[17]紧接着又做了对DES和FDES在能控性上的关联的研究. 在此期间Liu F相继发表了FDES在分布式系统的监督控制[18]和故障诊断[19],然后又有了对FDES集中式诊断的研究[20],最后又有了把FDES的安全诊断的时间复杂度降低到了多项式[21].
本文继续文献[19-20]的研究工作,研究模糊离散事件系统基于模式的故障诊断问题. 在文献[19-20]中,将故障定义为单个事件,所以这种故障诊断方法只要求对单个特定事件(即故障)是否发生做出判断.但是,在许多情况下,不是单个事件的发生导致系统陷入故障,而是一个事件序列(即模式)的发生才会导致系统发生故障. 例如,在图1所示的并联电路中,只有A开关断开,系统仍然处于正常状态,并且系统不会发出警报,但是会使B开关断开的触发条件成立,这时如果B开关也断开,那么系统就会停止工作. 而只有B开关断开的时候,系统也仍然处于正常状态,但是系统的警报会触发,并且不会使A开关断开的触发条件成立,这时可以及时处理问题,确保系统后面不会陷入异常. 这里的开关A和B都有触发器,只有触发器打开才操作,报警装置和机器分别是C和D.
图1 举例中的电路图Fig.1 The circuit diagram in the example
对于经典DES的基于模式故障诊断问题,Genc S和Jéron T等[22-23]都提出了通过构造各自不同的诊断器,实现了经典DES基于模式的可诊断性的判断. Ye L等[24-25]则分别对分布式经典DES的基于模式故障诊断进行了探讨,得到了具有多项式时间复杂度的模式诊断方法. 吉林大学欧阳丹彤教授[26]也对基于模式的经典DES故障诊断的算法实现进行了深入研究.
本文以模糊自动机为模型,研究FDES基于模式的故障诊断问题. 先引入两种故障模式:S类型模式和T类型模式. 然后分别对FDES的S类型模式可诊断性和T类型模式可诊断性进行形式化. 通过构造S类型模式诊断器和T类型模式诊断器,分别得到FDES关于S类型模式和T类型模式可诊断性的充分必要条件,从而实现对FDES基于模式的故障诊断的判断.
有穷状态自动机(Finite State Automaton,FSA)[4]是指一个5元组
其中Q是有限状态集,Σ表示事件集,q0是初始状态,Qm⊆Q是标记状态集,δ为状态转换函数
对于给定状态x,y∈Q和 事件σ∈Σ,δ(x,σ)=y表示系统在状态x时,在事件σ 的作用下将转移到状态y.
事件集Σ上所有串的集合记为Σ∗,称为Σ的克林闭包,Σ∗包含空串ε.通常将事件分为可观事件和不可观事件,分别用Σo和Σuo表示可观事件集和不可观事件 集. 将故障事件集用Σf表示.L/s={t∈Σ∗:st∈L}是指语言L中,事件串s发生之后将发生的事件串的集合;Ψ(Σf)={s∈L:sl∈ Σf}表示以故障事件结尾的事件串的集合;sl代表事件串s的最后一个事件.为了方便和不至于产生混淆,Σf∈ω意味着存在σf∈Σf使之组成事件串ω 的一个事件.
如果经典DES状态集Q={q0,q1,···,qn-1},那么FDES中的状态表示为向量[a0,a1,···,an-1],这里ai∈[0,1]代表当前状态是qi的可能性. 同理,FDES中的模糊事件是一个矩阵 [aij]n×n,其中aij∈[0,1]表示当事件发生时,系统从状态qi转 移到qj的可能性[11].一个FDES定义为如下模糊自动机[19-20]这里
L(是由FDES的生成语言
并且,最大可观测事件定义为
其逆映射定义为
给定一个语言L和事件集上的一个有穷串的集合K,本文定义模式K的S类型为集合S∈L,定义模式K的T类型为集合T∈L,这里
ΨS的子序列)},
由此可见,这两种类型的区别就是S类型是发生某一特定件事之后,再发生另一特定事件,但是中间可以有其他的事件发生;而T类型要求这几个特定的事件必须是紧接着的,中间不可以再发生其他事件.
定义1(S类型模式可诊断性)设是一个FDES,K是L中的一个语言,称L是关于模式K的S类型模式可诊断的,如果下列条件满足:
直观上,L是关于模式K是S类型模式可诊断的表示,对任意发生的S类型的模式故障,都能够在有限步之内将其诊断出来.
为杀灭残余肿瘤细胞,部分腹腔镜下大肠癌根治术后病人需继续采用化疗方式进行治疗[22]。化疗期间,部分耐受度较低病人,可能出现腹泻、排便困难等症状,建议给予补中益气汤增强病人免疫力,其间需注意,将中药汤剂配合药物剂量进行调整,提高治疗针对性。
例1考虑图2给定的FDES的,其中的生成语言为
图2 例1中的逻辑自动机Fig.2 The logical automaton in example 1
可以得到各个状态为
并且各种事件的可观程度分别为
各种事件可能的故障程度分别为
下面判断L是否关于模式K的S类型模式可诊断的.
因此,根据定义1得,L是关于模式K是S类型模式可诊断. 但是,如果将模式改为则语言L不是关于模式K是S类型模式可诊断,因为此时
定义2(T类型模式可诊断性)设是一个FDES,K是L中的一个语言,称L是关于模式K的T类型模式可诊断的,如果下列条件满足:
例2考虑图3给定的FDES的,其中的生成语言为假设初始状态为并且事件
可以得到各个状态分别为
并且各种事件的可观程度分别为
图3 例2中的逻辑自动机Fig.3 The logical automaton in example 2
各种事件可能的故障程度分别为
下面判断L是否关于模式K的T类型模式可诊断的.
因此,根据定义2得,L是关于模式K是T类型模式可诊断. 但是,如果将模式改为则语言L不是关于模式K的T类型模式可诊断,因为此时
注记1由定义1和定义2可知,如果一个FDES关于模式K的T类型模式可诊断的,则L关于模式K一定是S类型模式可诊断的. 反之,则不一定成立.
注记2如果则上述T类型模式诊断问题与S类型模式诊断问题等价,都等价于笔者在文献[18]中提出FDES对单个故障事件的故障诊断问题.
根据S类型模式和T类型模式,本文先构造2个FSA.
以类似方法,构造一个T类型FSA如下:
其中
定义3 (不确定环)如果状态集和事件集是观测器中的一个环,如果下面条件满足,则称这个环为不确定环.
和
定理1 (S类型模式可诊断性充分必要条件)设是一个FDES,K是L中的一个语言,L关于模式K的S类型模式可诊断的当且仅当中不包含任何不确定环.
证明先证明充分性,假设不包含任何标记不确定环. 根据定义3,观测器的循环状态对应系统所有的状态要么全处于正常状态,要么全是处于故障状态.那么如果也就是观测器的循环状态对应系统所有的状态全是处于故障状态,那么肯定并且 同时不存在而如果也就是观测器的循环状态对应系统所有的状态全是处于正常状态,那么都有根据定义1,知道此系统肯定是关于模式K的S类型的模式可诊断.
下面再证明必要性,假设语言L是关于模式K和映射P的S类型的模式可诊断,则根据定义1有这里假设如果并且显然会违背定义1,所以所有的假设如果并且,同时并且根据定义1,不能判断L是关于模式K的S类型的模式可诊断,所以都有. 根据定义3就可以得到不包含任何标记不确定环.
定理2 (T类型模式可诊断性充分必要条件)设是一个FDES,K是L中的一个语言,L关于模式K是T类型模式可诊断的当且仅当中不包含任何不确定环.
证明先证明充分性,假设不包含任何标记不确定环. 根据定义3,观测器的循环状态对应系统所有的状态要么全处于正常状态,要么全是处于故障状态.那么如果也就是观测器的循环状态对应系统所有的状态全是处于故障状态,那么肯定并且同时不存在而如果也就是观测器的循环状态对应系统所有的状态全是处于正常状态,那么都有根据定义2,可知道此系统肯定是关于模式K的T类型的模式可诊断.
下面再证明必要性,假设语言L是关于模式K和映射P的T类型的模式可诊断,则根据定义2有这里假设如果并且显然会违背定义2,所以有所有的假设如果并且,同时并且根据定义2,不能判断L是关于模式K的T类型的模式可诊断,所以都有根据定义3就可以得到不包含任何标记不确定环.
注记3由定理1和定理2知, 通过构造判断L关于模式K是否为S类型和T类型模式可诊断. 本文称为S类型模式诊断器,而称为T类型模式诊断器.
下面将例1、2使用定理的方式进行证明.
例3考虑例1中给定的FDES.
将S类型模式诊断器构造如图4所示. 这里选取的可观标准是模式里面,先选取每个事件串里面的可观程度最大的,然后再取这里面的最小值,这个事件就是我们可观与否的基准. 例3里面,模式K先选取两组的最小值,分别为然后再选择这里面的最小值,也就是了. 这里面可观程度大于0.8的全看作是可观事件,否则就是不可观事件.
例4考虑例2中给定的FDES.
图4 例3与例4中的诊断器Fig.4 The diagnoser in example 3 and example 4
本文以模糊离散事件系统为模型,提出了基于S类型和T类型两种模式的故障诊断方法. 先对模糊离散事件系统的S类型模式可诊断性和T类型模式可诊断性进行了形式化,再通过构造S类型模式诊断器和T类型模式诊断器,分别得到了模糊离散事件系统关于S类型模式可诊断性和T类型模式可诊断性的充分必要条件,实现了模糊离散事件系统基于模式的故障诊断. 在后续工作中,将在本文的基础上将这两种故障模式推广到分布式模糊系统,考虑分布式FDES基于模式的故障诊断问题.