基于有色Petri网的车身网络诊断系统建模方法

2011-06-05 03:45韩江洪张本宏魏振春
关键词:诊断系统诊断仪消息

韩江洪, 周 涛, 张本宏, 孙 峰, 魏振春

(1.合肥工业大学 计算机与信息学院,安徽 合肥 230009;2.合肥工业大学 安全关键工业测控技术教育部工程研究中心,安徽 合肥230009)

Petri网是一种用网状图形表示系统建模的方法,并具有严格数学定义的图形建模工具,是对异步、离散、并发事件动态系统建模和性能分析的有力工具,已在许多领域得到了广泛的应用[1]。车身网络诊断系统具有离散的状态,并在诊断消息事件的驱动下进行状态演化,因此可以看成一个离散事件系统。运用Petri网对车身网络诊断系统进行建模,可以最大限度地保证开发系统的正确和可靠。而有色的Petri网能够进一步降低系统模型的复杂性,因而更加适合复杂离散事件系统的建模[2-4]。在车身故障诊断系统中,利用Petri网可以很好地描述故障诊断信息的产生过程。但是由于消极消息的多样性和不确定性,用普通的Petri网建模方法难以满足故障诊断的要求。因此,本文将有色Petri网技术运用在车身网络诊断系统中并给出了有色Petri网的建模方法,通过仿真实验证明了该方法的有效性。

1 车身网络诊断系统的结构和特点

在总线式的车身诊断控制系统中,分布于汽车车身的多个电子控制单元(ECU)是通过CAN总线连成网络[5],而每个电子控制单元都包含了与之相应的诊断服务功能。通常在诊断的时候选择诊断仪为中央控制节点,并以逻辑的方式实现对车身中各个ECU节点的控制和诊断[6-8]。

总线式车身网络诊断系统的工作流程为:诊断仪改变会话状态;ECU发送响应消息;诊断仪发送所需进行的诊断服务;相关的ECU接收到命令消息,并根据命令作出相应的动作后按照确定的规则产生相应的消息并回复。

诊断服务原语的状态是离散的,其状态组合构成了整个车身控制系统的状态空间,而ECU内各个服务原语的状态改变、响应消息的接收可以作为事件。在事件驱动下,诊断响应消息状态按照一定规则发生变化,因此车身网络诊断系统具有离散时间系统的典型特征:状态的变化是由事件驱动,并只在离散时间点发生改变;状态的变化遵循一定的逻辑规则。

2 CPN车身网络诊断系统建模

2.1 Petri网简介

Petri网是由Carl Adam Petri发明的。最初只有自动化专家对Petri网感兴趣,后来Petri网在计算机科学中也得到了广泛的应用,如在性能评价、操作系统和软件工程等领域,Petri网都得到了比较广泛的应用。特别是相关研究已经证明,用Petri网可以有效地描述并发活动[9]。

Petri网包含4种元素:一组位置P、一组转换T、输入函数I以及输出函数O,Petri网的组成如图1所示。

图1 Petri网的组成

图1中,一组位置P为{P1,P2,P3,P4,P5},用圆圈代表位置;一组转换T为{t1,t2},用短直线表示转换;2个用于转换的输入函数用由位置指向转换的箭头表示,即

2个用于转换的输出函数用由转换指向位置的箭头表示,即

所以,更形式化的Petri网结构是一个四元组C={P,T,I,O}。其中,P={P1,…,Pn}是一个有穷位置集,n>0;T={t1,…,tm}是一个有穷的转换集合,m>0,且T和P不相交;I:P→T为输入函数,是由转换到位置无序单位组的映射;O:T→P为输出函数,是由位置到转换无序单位组的映射。

2.2 车身网络诊断系统的CPN建模方法

如果只是使用基本的Petri网作为车身网络诊断系统,ECU中每个服务的状态只能有一种状态。而选择CPN来建模,则可以将每个器件用一个库所描述,再通过不同颜色的托肯来表示其不同的状态。诊断仪任何的一个请求服务的变化都会触发产生响应的ECU的响应状态消息,这一事件可以用一个变迁来描述,其发送的消息可以用一个普通的托肯表示。响应ECU接收到请求服务消息后,会检测与之相关的服务状态,然后根据规则产生响应消息,其过程对应的是一个变迁。产生的响应消息可以让控制单元改变状态或者读出该单元目前的状态,因而可以用一个库所表示。控制单元的响应消息也是一事件,需要使用一个变迁来表示。

每个服务在任何一个时刻只会处于一种状态,因此在表示服务的库所之中任何时刻只存在一个有色托肯。对于表示诊断仪的库所在同一时刻只能发送一种服务命令消息,因此其库所容量也要限为1,由此本文对有色Petri网添加了如下约定。

约定1 在Σ中,各个库所包含的托肯最多只能为1,即 ∀p∈P:M(p)≤1。

而车身网络诊断系统包括通信管理、权限管理、监控管理、Flash编程等子模块。此时,可以在建立各个子模块的CPN后再合并各个子网模型中的相同的库所和变迁,然后合并成整个ECU的车身网络诊断模块。由于篇幅所限,下面仅以Flash编程模块为例进行说明,并给出CPN的子模型。

2.3 车身网络诊断系统CPN子模型举例

在车身网络诊断Flash编程子模块中,请求会话层服务包含了默认会话、编程会话、扩展会话3个子请求消息,这3个会话分别是诊断仪请求所对应的ECU将会话模式调整到相应的会话方式,只有在相应的会话模式下才能进行响应的诊断服务。例程服务请求包含了擦除请求服务、下载控制服务,例程请求必须在编程会话模式下才能进行。安全访问请求服务包含了安全种子发送请求服务、安全码发送服务。其中,安全种子发送服务完成之后才能进行安全码发送服务,此服务只有在编程会话下进行。另外,Flash下载服务中包含了请求下载服务、下载服务和退出下载服务。只有在完成了安全访问请求服务和路径请求服务后才能进行Flash下载服务。

由此可见诊断仪发送的服务请求都是输入器件,而ECU返回的响应消息都是输出器件。本文根据上述的描述将库所定义如下:P1为默认会话回复状态;P2为ECU会话层状态;P3为扩展会话回复状态;P4为编程会话回复状态;P5为安全访问服务码回复状态;P6为安全算法通过状态;P7为清除例程完成状态;P8为安全访问回复状态;P9为下载状态控制状态;P10为例程服务回复状态;P11为请求下载服务状态;P12为下载服务状态;P13为退出下载服务状态。为了方便理解,将CPN模型划分为3层:

(1)状态转换层。整个车身网络诊断服务是在不同的状态下完成的,此层只需完成状态的转换并得到正确的响应。

(2)下载前的判定层。车身的Flash下载服务必须在获得相应的权限后才能进行,因此在进入了相应的会话状态后,必须判断此时是否获得权限和是否完成了下载前的准备,只有在获得了此层的正确响应后才能继续进行下一层的服务。

(3)Flash下载层。此层主要是接收下载的数据,判断数据是否符合规范,并给出最终结果。

整个状态转换如图2所示。

图2 Flash编程子模块CPN模型

图2中各个变迁的含义见表1所列,而对于图2中的库所,将其颜色定义如下:

C(P1)=(无消息,默认会话通过,默认会话否决)。

C(P3)=(无消息,扩展会话通过,扩展会话否决)。

C(P4)=(无消息,编程会话通过,编程会话否决)。

C(P5)=(安全码访问请求正确,子服务号不支持,服务请求长度错误)。

C(P6)=(安全访问请求正确,安全码不正确,服务请求长度错误)。

C(P7)=(擦除例程通过,擦除例程不通过)。

C(P8)=(无消息,下载控制例程通过,下载控制例程不通过)。

C(P9)=(安全服务正确回复,安全访问顺序不正确,服务长度请求错误,服务会话状态不正确)。

C(P10)=(无消息,例程服务正确回复,服务长度请求错误,服务会话状态不正确)。

C(P11)=(请求下载服务通过,请求下载服务不通过)。

C(P12)=(下载服务通过,下载服务不通过)。

C(P13)=(退出下载服务通过,退出下载服务不通过)。

C(P14)= (无消息,Flash下载服务正确回复,服务长度请求错误,服务会话状态不正确,安全访问未通过状态)。

在此颜色定义中,将整个消息分为积极响应消息和消极响应消息。

表1 Flash编程子模块CPN模型中变迁的含义

约定2 在Σ中,当库所获得特定颜色的托肯时,立刻触发变迁发送消极响应消息,相应托肯消失。

由此可以将最终输出的函数表达式定义如下:

本文赋予上述模型中的消极响应消息不同颜色的托肯表示不同类的消极响应消息。当需要发送消极消息时,系统根据不同颜色的托肯自动发送相应的消息。对于车身网络诊断系统的其他子系统,均采用统一的形式对相应的库所和变迁进行划分,建立CPN子网模型。

3 仿真实验

在车身网络诊断控制系统的CPN模型中,变迁tsi表示诊断仪(输入器件)发送新的诊断服务消息,而变迁tri表示相应的ECU(输出器件)根据输入的消息返回的响应服务消息。所以,可以根据诊断仪发送的服务消息产生的变迁发生序列,实现对车身网络诊断系统的仿真,对于上述的变迁用(x,y(x))表示。

仍以Flash编程子模块为例,假设首先诊断仪发出编程会话服务请求,在收到积极响应后发送安全服务码服务请求。根据返回的服务码计算得到最后的安全码并发送消息获得相应的访问权后发送例程服务,最后完成Flash下载服务。其CPN的变迁序列有可能为:

(ts1,(默认会话、编程会话、扩展会话))

(tp3,扩展会话)→(tr3,扩展会话通过)

(ts2,(安全码访问、安全码计算服务))→(tp4,安全码访问请求)

(ts2,(安全码访问、安全码计算服务))

(tp5,安全码计算服务)→(tr4,安全服务通过)

(ts3,(擦除例程服务、下载例程控制服务))

(tp6,擦除例程服务)→(tr5,擦除例程服务通过)

(ts4,(请求下载服务、下载服务、退出下载服务))→(tp7,请求下载服务通过)

(ts4,(请求下载服务、下载服务、退出下载服务))→(tp8,下载服务通过)

(ts4,(请求下载服务、下载服务、退出下载服务))

(tp9,请求下载服务通过、下载服务通过、退出下载服务通过)→(tr6,Flash下载服务正确)

综上所述可以看出,通过仿真诊断仪按照流程发送了相关的消息命令后,根据Petri网所建立的模型,ECU也发出了下载成功的响应消息,表明此模型是有效、可行的。

4 结束语

本文通过对车身网络诊断系统的分析,指出了其具有离散事件系统的特征,从而选择CPN为工具,并以Flash诊断子系统为例,通过分层设计介绍了子系统的建模方法。仿真结果表明,该建模方法形式简单规范,可以提高车身网络诊断系统的软件开发效率。

[1]Murata T.Petri nets properties analysis and applications[J].Proc of the IEEE,1989,77(4):541-580.

[2]刘小平,韩江洪.基于有色Petri网的车身控制系统建模方法[J].汽车工程,2009,31(8):698-701.

[3]高德平,周国祥.基于着色Petri网的工作流模型研究与应用 [J].合 肥 工 业 大 学 学 报:自 然 科 学 版,2010,33(2):201-203,218.

[4]Koriem S M.A fuzzy Petri net tool for modeling and verification of knowledge-based systems[J].The Computer Journal,2000,43(3):206-223.

[5]韩江洪,魏振春,张本宏.总线式车身控制系统的规则化建模方法[J].汽车工程,2006,28(12):1121-1124.

[6]陈玉宝,夏继强,邬学礼.Petri net在故障诊断领域的应用研究[J].中国机械工程,2002,11(12):1386-1388.

[7]杨其宇,张 霞.模糊Petri网故障诊断技术应用[J].测控技术,2006,25(4):73-74.

[8]王俊国,闽 松,赵 金,等.基于模糊Petri网的故障诊断方法[J].兵工自动化,2002,21(6):18-21.

[9]袁崇义.Petri网原理与应用[M].北京:电子工业出版社,2005:180-210.

猜你喜欢
诊断系统诊断仪消息
日立EUB 8500E彩色超声诊断仪的维修与升级
一张图看5G消息
区间轨道电路智能诊断系统的探讨
基于云服务器的旋转机械在线监测诊断系统设计
连铸板坯质量在线诊断系统的应用
马纯栋:维修技术人员应提高诊断仪的利用率
蔡鹏:优质诊断仪为现代汽修打开便利之门
基于OPC跨平台通信的电机监测与诊断系统
光声成像宫颈癌诊断仪
消息