推荐期刊

基于EHFSM控制任务流程推进的软件控制方案

时间:2015-12-20 22:19:51 所属分类:软件开发 浏览量:

某电控模拟系统软件设计的关键工作就是对操作训练过程中所有可能发生的过程及过程状态之间的转移关系进行描述。传统的事件驱动设计思想,通过建立作为控制程序基本单元的事件例程之间的逻辑关系及响应程序, 实现对操作训练过程的描述。 但由于电控模拟系统

  某电控模拟系统软件设计的关键工作就是对操作训练过程中所有可能发生的过程及过程状态之间的转移关系进行描述。传统的事件驱动设计思想,通过建立作为控制程序基本单元的事件例程之间的逻辑关系及响应程序, 实现对操作训练过程的描述。 但由于电控模拟系统往往包含有若干不同功能的分系统,而各分系统又包含有一定数目的子系统,使得其结构层级往往比较复杂, 采用这种设计思想往往存在着高复杂性和低可读性的缺点, 代码的可维护性和复用性也较差;因此,本文针对传统实现方式中存在的缺点和不足,提出了一种基于 EHFSM[1,2]控制任务流程推进的软件控制方案。

  1 过程建模及 FSM 方法

  1.1 过程建模  电控模拟系统的操作训练可以看作是基于时间的一系列连续的子过程,每一个子过程描述模拟训练在某一时间段所处的状态,并影响或决定后一子过程的初始状态。 因此,可以采用过程建模的方法取代传统的事件驱动思想实现对电控模拟系统的控制,这种状态描述的方式也使得系统的结构更加清晰,控制更加高效,有效填补了传统方式的缺点和不足。 过程模型的组成包括:

  过程:表达模拟训练系统中的某个操作的持续时序关系。

  过程迁移:表达过程之间的迁移。

  事件: 指电控模拟训练过程中激活过程迁移的元素,包括外部事件、内部事件。 其中外部事件主要指号手控制产生的命令、动作以及信号等事件,内部事件主要是指由于过程的推进产生的某些变化。

  过程迁移条件:表达过程转换的约束规则。

  1.2 FSM 方法  FSM(Finite State Machine)即有限状态机,通常被定义为由 5 个对象组成的有序集合:【公式】    f 是一个从 I×S 到 S 的函数, 即由一个输入 Ij和一状态 Sk给出下一个状态:g 是一 个 从 I×S 到 O 的 函 数, 即 由 一 输入 Ij和一状态 Sk给出下一个输出。其工作原理是:状态机根据系统内接收到的计算结果、系统外输入事件,产生相应的输出结果,同时系统会根据转换机制判断条件成立与否,来决定是否根据事件发生状态的转换,状态转换后的输出状态作为下一事件的开始状态。 工作原理描述如图 1 所示。【图1】    通过 FSM 及过程模型各个组成部分的定义发现:电控模拟系统的过程对应于 FSM 中的转移,仿真训练过程中的事件对应于 FSM 中的事件,过程转移则对应于 FSM 中的转移,过程转移条件对应于 FSM 中的转移规则,可以说模拟训练过程的模型语义和 FSM 的语义描述基本一致。 因此可以采用FSM 方法描述电控模拟系统的过程模型。

  2 基于 EHFSM 的过程模型框架

  2.1 FSM 方法的不足  电控模拟系统共包括开机自检、自动、手动、监控及点步等 5 种工作方式,每一种工作方式下,操作都主要由 205 号手完成,但同时也需要 201 号手的配合,这种不同工作方式的划分以及操作训练的交叉配合使得训练过程出现了不同的层次和交叉,传统的有限状态机并不支持这种分层和交叉描述。

  此外,为满足号手开展针对性训练,需要定义一个由状态Sj经过特殊的触发事件直接转换到 Sj的 “跳跃”,如图 2(b)所示。 而在传统的有限状态机中,若实现由 S1状态到 S3的迁移,只能通过状态序列(S1,S2,S3)来进行,而无法 直接 由 S1 跳 转至 S3,如图 2(a)所示。 这种变化并不等同于上述跳跃的定义。 这种功能需求传统的有限状态机同样是无法实现的。【图2】    2.2 基于 EHFSM 的改进方法  针对以上问题,对传统有限状态机进行改进,引入了扩展分层有限状态机。 其定义如下:【公式 2】    A= α0,α1,…αn是活动集合,其中每个元素 α1=(in,pre,block) 都是 一 个 三元 组 ,in 是 I 中 的 元 素 或 者 为 空 ,pre 是 关于 V 中的变量、输入参数或一些常量的谓词表达式,block 是赋值语句和输出语句的集合;δ:S×A→S 是状态转换函数;T= t0,t1,…,tm是非空转换集合,每个元素 tj=(initial,final,action)都是一个三元组。 initial 和 final 是 S 中状态,代表 tj的初始状态和结束状态,action∈A 是指发生在该转换上的活动;V 是变量集。EHFSM 示例如图 3 所示。【图3】    根据定义,EHFSM 主要是在有限状态机模型描述的基础上增加了变量、操作和迁移的前置条件。前置条件 pre 是程序执行前变量所必须满足的一组约束条件,只有当前置条件为真时,状态迁移才能进行,前置条件的存在使得状态迁移存在不确定性, 即 EHFSM 中的状态迁移不仅由系统的当前状态和当前的输入决定,还与状态迁移的前置条件有关。 这样就可以采用前置条件来实现状态的“跳跃”;而且 EHFSM的分层描述方式也能满足对电控模拟训练过程的分层和交叉的描述需求。

  电控模拟系统中, 主要的操作工步包括 39 个操作规程,其中开机自检包含 5 个主要操作工步, 手动方式包含 10 个操作工步,自动方式包含 6 个操作工步,点步工作方式包含13 个操作工步,监控工作方式包含 5 个操作工步。 因此,将电控模拟系统的 EHFSM 分为了三层结构。 如图 4 所示。其中,电控模拟系统为第一层 EHFSM。 开机自检、手动方式、自动方式、点步方式以及监控方式为第二层 EHFSM,是第一层的具体细化。 39 个具体的操作规程是第三层 EHFSM,是第二层的具体细化。 第四层为单一操作工步 EHFSM,根据具体的训练规程要求进行描述。【图4】    3 系统实现    在电控模拟系统中, 采用动态链表的方式存储包含操作工序流程的约束规则, 链表中的每个节点存储了一条规则。

  节点的设计如下:【公式 3】    控制程序流程设计如图 5 所示。其中,前驱转换约束用于实现回退功能,系统根据上一状态的节点指针,找到回退目的状态,并通过将当前响应部件的物理状态设置为目的状态来实现;后置转换约束用于实现快进功能,原理同上。【图5】

  4 结束语

  文中针对电控模拟系统传统软件设计思想中存在的缺点和不足,提出了采用 EHFSM 过程建模的控制方案,提高了程序设计及系统运行效率。

  参考文献:

  [1] 刘 鸿 ,尹 霞.基 于 分 层 有 限 状 态 机 的一 致 性 测 试 生成[J].清华大学学报,2003,43(7):993-996[1]LIU Hong, YIN Xia. The conformance testing ofhierarchical finite state machine [J].Journal of TsinghuaUniversity based on Generation, 2003,43(7):993-996  [2] 年晓玲.基于 扩 展 有限 状 态 机软件测 试用 例 自动生成 的 研究[D].成都:西南交通大学,2005  [3] 黎 文 导 ,卢 瑜.有 限 状 态 机 (FSM)的 实 现[J].青 海 师 范 大 学学报:自然科学版,2001(4):18-21LIU Wen-dao, LU Yu. Achievement of Finite state machine(FSM) [J]. Journal of Qinghai Normal University based onGeneration:Natural Science Format,2001(4):18-21.  [4] 刘伟.面 向仿 真 训练 系统的 过 程 模型 框架 研究 与实 现[D] .长沙:国防科技大学,2004  [5] 侯洪涛.海上 补 给 仿真 训练 系统 模型 框架设计与实 现 面 向仿真训练系统的过程模型框架研究与实现[D].长沙:国防科技大学,2006.  [6] 张 海 波. 基 于HLA的 分 布 式 钻 井 施 工 仿 真 培训 系统 研究[D].大庆:东北石油大学,2012.

转载请注明来自:http://www.zazhifabiao.com/lunwen/dzxx/rjkf/28270.html