APP下载

产生式系统原理在联锁软件开发中的应用

2021-09-26南京铁信科技股份有限公司汤连桥

电子世界 2021年16期
关键词:道岔控制策略冲突

南京铁信科技股份有限公司 汤连桥

计算机联锁软件中的逻辑关系是使用规则进行描述的。产生式系统是一种基于规则的推理技术,联锁软件可采用产生式系统的技术进行开发。描述了产生式系统中三个部分(规则库定义、总数据库设计、控制策略设计)在开发联锁软件过程中的实现,其中在定义规则库时提出了一些新的概念和实施细则。本文以联锁软件中的排列进路功能为例,阐述了方法的执行流程。

计算机联锁系统由冗余配置的安全计算机和联锁软件构成,其中联锁软件执行联锁逻辑,是整个系统的主要组成部分。传统的软件开发以功能为单位进行模块划分进行设计,联锁软件中各关联元素的逻辑关系是一个整体,无法简单地按照“功能、模块”的方式将其拆分。鉴于这个特点,可以分析功能梳理出内部逻辑关系,然后对逻辑关系进行整体设计和实现,即使用规则来描述逻辑关系。规则的形式为A→B,A为条件,B为动作,当条件A满足时,触发动作B。

将联锁软件中的所有逻辑关系定义成一个规则库,联锁功能就可以通过规则的执行来实现。采用产生式系统(production system)技术并结合形式化语言开发联锁软件是一次新的尝试和探索。

1 产生式系统的概念

产生式系统是一种基于规则的推理技术,属于人工智能的范畴。由三部分组成:总数据库、产生式规则和控制策略。总数据库用来存放事实。产生式规则是一个规则库。当总数据库中的某些事实和某条规则的条件相匹配时,该规则将被激活执行,并把其结论作为新的事实存入总数据库中。控制策略为一个推理机构,由一组程序组成,用来决定问题求解过程的推理线路,实现问题的求解。

问题求解过程分为3步:匹配、冲突解决和操作。该过程也称为推理过程,按照搜索方向可分为正向推理、逆向推理和双向推理。正向推理又称为事实(或数据)驱动推理,逆向推理又称为目标驱动推理。其中正向推理的策略是:先提供一批事实(或数据)到总数据库中,系统将这些事实(或数据)与规则的条件进行匹配,如果匹配成功则触发规则,并把结果作为新的事实(或数据)添加到总数据库中。继续上述过程,直到没有可匹配的新规则为止。当有多条规则的条件和总数据库的事实(或数据)相匹配时,控制策略决定优先使用哪一条规则,这称为冲突解决。

2 根据产生式系统原理开发联锁软件

按照产生式系统的原理,联锁软件的开发分为3个部分:定义规则库、设计总数据库和设计控制策略。

2.1 定义规则库

联锁软件中的元素包括进路、信号机、轨道区段和道岔等。每种元素定义了不同用途的属性,如进路有方向属性,锁闭属性等。在定义规则库时将规则中的条件定义为“对一组元素属性值的预期”,将规则中的动作定义为“改变一组元素属性值的行为集合”。有些元素属性值可以立即改变,有些元素属性值需要等待一定时间后才能改变,故将行为分为“马上改变”和“稍后改变”两种。

规则中的动作分为主要动作和辅助动作:主要动作指完成某个具体功能,该动作执行成功意味着功能完成,也就是一个功能最多只能由一个主要动作来实现;辅助动作是主要动作中部分行为的补充。先定义主要动作,然后根据主要动作中的行为确定是否需要定义辅助动作。定义辅助动作遵循下面的原则:

(1)主要动作中的行为如果存在先后关系,则需要将这些行为提取出来作为辅助动作,直到行为之间没有先后关系。如排列进路时必须先征用进路中元素,然后才能调整进路中位置不正确的道岔,因此把“设置元素的状态属性为征用”的行为定义为辅助动作。

(2)主要动作中如果存在“稍后改变”的行为,也定义为辅助动作。如排列进路时需要将进路中位置不符合的道岔转换到正确位置,道岔的转换需要一定时间,因此将“将道岔的位置属性设为正确位置”的行为定义为辅助动作。

2.2 设计总数据库

联锁软件的总数据库要包含所有元素的属性信息。有些元素的属性是静态的,称为“静态数据”,如进路编号、进路方向;有些是动态的,称为“动态数据”,如进路的状态。“静态数据”因为没法修改,只能出现在规则的条件中。为了便于查找,可以按关键字建索引,例如进路元素可按进路ID号建立索引,这样就可以通过进路ID号查找某条进路元素的相关信息。“动态数据”存在修改和查找的操作,为了提高查找效率,可以借用前面的索引。

联锁系统是故障安全系统,在定义“动态数据”的赋值范围时除了正常值外,还要有故障值,可防止设备出现故障时不产生危及安全的错误逻辑。

联锁总数据库采用“结构体+数组”的组织方式,“结构体”中存放每个元素的属性信息,相同类别的元素用“数组”存放。总数据库的信息都存放在内存中,因为不管是“静态数据”还是“动态数据”,在程序运行期间都会被使用。

2.3 设计控制策略

需要设计相应的控制策略(即推理过程)来触发和执行联锁规则库中的规则。联锁软件通过推理来不断更新元素的属性信息。基于这个特点,在设计控制策略时通常采用正向推理。

外部设备对联锁系统的影响主要是控制命令的输入和设备状态的采集,例如ATS下发控制命令,联锁系统采集道岔、信号机设备的状态等。这两种外部接口均能触发规则的执行,因此控制策略的程序分两部分:功能执行监控和设备采集触发规则。

(1)功能执行监控的流程为:某个新功能被要求执行时,将该功能放入执行列表,并开始对该功能的执行时间进行监控。联锁功能如果没有在规定时间内完成,则其对应的动作中有些需要进行回退操作。这取决于该动作是否会对其他功能产生影响,例如对进路元素已经征用但进路因某种原因无法排列成功,可能会导致其他进路无法建立,此时则需要进行回退操作,取消进路元素的征用属性。如图1所示。

图1 功能执行监控流程图

(2)设备采集触发规则的流程为:周期性采集设备状态后,遍历规则库,将所有可以触发的规则放入冲突集合中。根据冲突解决策略从冲突集合中取出一条规则执行,该规则执行后,重新遍历一遍规则库,将所有可以触发的规则继续放入冲突集合。如此往复,直至没有可以触发的规则。

图2 设备采集触发规则流程图

其中冲突解决策略是根据规则中动作所属的类别进行设计,优先执行主要动作其次执行辅助动作。当动作的类别相同时,根据放入冲突集合的先后顺序执行。

3 联锁系统举例

因总数据库涉及到的信息较多,限于篇幅这里不描述。下面以排列进路为例,详细介绍规则库的定义和控制策略执行流程。

3.1 定义规则库

首先,定义排列进路的主要动作,列出所有行为,如表1所示。

表1中将“稍后改变”的行为标注为,有先后关系的行为标注为。根据2.1节规则需要将部分行为定义成辅助动作,如表2所示。

表1 主要动作

表2 主要动作和辅助动作

在表2中标注(I)的为主要动作,标注①-④的为辅助动作。

3.2 控制策略说明

联锁软件启动,初始化联锁总数据库中所有元素的属性信息。

假设联锁系统收到排列进路号为R的排路命令,此时该进路的状态属性为空闲,进路中元素的状态属性为空闲,其中有一组道岔的位置不正确,侧防元素的状态为空闲,同样有一组道岔位置不正确。

处理流程如下:

(1)收到排路命令,对排列进路R执行监控。

(2)设备状态属性的采集在不断进行,每次采集后,检查一遍规则库。此时,发现“①进路征用”规则可以执行。将其放入冲突集合,因为此时冲突集合中只有一个规则,便将其取出执行。

(3)继续检查规则库,发现“②进路道岔位置调整”、“③侧防道岔位置调整”2个规则可以执行,便将它们放入冲突集合。从冲突集合中取出一个规则,根据放入的先后顺序取出执行。一般控制策略设计成优先取出“②进路道岔位置调整”规则。

(4)该规则执行后,继续检查规则库,没找到可以执行的规则。从冲突集合中取出“③侧防道岔位置调整”规则执行。

(5)经过一定时间后,进路中的道岔和侧防中的道岔转换到位。这时,设备状态采集之后,检查规则库,发现“④进路锁闭”规则可以继续执行。

(6)接着执行“⑤开放信号机”规则。

(7)经过一定时间信号机被点亮,遍历规则库“(I)排列进路”规则被执行,此时结束对排列进路R的监控,返回执行结果。

产生式系统具有自然直观,便于推理,格式清晰,设计和检测方便等优点。采用该技术开发计算机联锁软件,可以在开发前期将逻辑关系制定出来,便于早期评审确定,有利于问题早发现早解决;一旦逻辑关系确定,设计和开发联锁总数据库和控制策略也会相对容易,从而提高了开发效率,缩短了开发周期。

猜你喜欢

道岔控制策略冲突
耶路撒冷爆发大规模冲突
“三宜”“三不宜”化解师生冲突
中低速磁浮道岔与轮轨道岔的差异
工程造价控制策略
场间衔接道岔的应用探讨
既有线站改插铺临时道岔电路修改
现代企业会计的内部控制策略探讨
容错逆变器直接转矩控制策略
基于Z源逆变器的STATCOM/BESS控制策略研究
“邻避冲突”的破解路径