基于EHFSM的电控模拟系统软件设计与实现

2014-03-16 09:22刘利明于传强唐媛莉
电子设计工程 2014年9期
关键词:模拟系统状态机电控

刘利明 ,谢 建 ,于传强,唐媛莉

(1.第二炮兵工程大学 陕西 西安 710025;2.96627部队 北京 100085)

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

1 过程建模及FSM方法

1.1 过程建模

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

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

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

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

1.2 FSM方法

FSM[3-4](Finite State Machine)即有限状态机,通常被定义为由5个对象组成的有序集合:

f是一个从I×S到S的函数,即由一个输入Ij和一状态Sk给出下一个状态:

g是一个从I×S到O的函数,即由一输入Ij和一状态Sk给出下一个输出。

其工作原理是:状态机根据系统内接收到的计算结果、系统外输入事件,产生相应的输出结果,同时系统会根据转换机制判断条件成立与否,来决定是否根据事件发生状态的转换,状态转换后的输出状态作为下一事件的开始状态。工作原理描述如图1所示。

图1 FSM状态转换图Fig.1 state transition of FSM

通过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 有限状态机示意图Fig.2 diagram of the statemachine

2.2 基于EHFSM的改进方法

针对以上问题,对传统有限状态机进行改进,引入了扩展分层有限状态机。其定义如下:

其中:

O是有限输入字符集合;

L是叶子状态的有限非空集合;

S={s0,s1,…sn}是有限状态集合;

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示例图Fig.3 diagram of EHFSM

根据定义,EHFSM主要是在有限状态机模型描述的基础上增加了变量、操作和迁移的前置条件。前置条件pre是程序执行前变量所必须满足的一组约束条件,只有当前置条件为真时,状态迁移才能进行,前置条件的存在使得状态迁移存在不确定性,即EHFSM中的状态迁移不仅由系统的当前状态和当前的输入决定,还与状态迁移的前置条件有关。这样就可以采用前置条件来实现状态的“跳跃”;而且EHFSM的分层描述方式也能满足对电控模拟训练过程的分层和交叉的描述需求。

电控模拟系统中,主要的操作工步包括39个操作规程,其中开机自检包含5个主要操作工步,手动方式包含10个操作工步,自动方式包含6个操作工步,点步工作方式包含13个操作工步,监控工作方式包含5个操作工步。因此,将电控模拟系统的EHFSM分为了三层结构[5-6]。如图4所示。

其中,电控模拟系统为第一层EHFSM。开机自检、手动方式、自动方式、点步方式以及监控方式为第二层EHFSM,是第一层的具体细化。39个具体的操作规程是第三层EHFSM,是第二层的具体细化。第四层为单一操作工步EHFSM,根据具体的训练规程要求进行描述。

图4 电控模拟系统过程模型框架图Fig.4 Electronic control simulation model framework system

3 系统实现

在电控模拟系统中,采用动态链表的方式存储包含操作工序流程的约束规则,链表中的每个节点存储了一条规则。节点的设计如下:

Struct guize

{

int status://当前状态 ID

int BJstatus://操作部分物理状态

int XYBJstatus://响应部件物理状态

int BXWCoperationID://必须完成操作状态ID

int JHoperationID://激活操作状态ID

string CZbujian://操作部件名称

string XYbujian://响应部件名称

string guize*pre://上一状态节点指针

string guize*next://下一状态节点指针

}:

控制程序流程设计如图5所示。

其中,前驱转换约束用于实现回退功能,系统根据上一状态的节点指针,找到回退目的状态,并通过将当前响应部件的物理状态设置为目的状态来实现;后置转换约束用于实现快进功能,原理同上。

图5 单一操作工步流程图Fig.5 Flow chartof single step operators

4 结束语

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

[1]刘鸿,尹霞.基于分层有限状态机的一致性测试生成[J].清华大学学报,2003,43(7):993-996[1]LIU Hong,YIN Xia.The conformance testing of hierarchical finite state machine [J].Journal of Tsinghua University based on Generation,2003,43(7):993-996

[2]年晓玲.基于扩展有限状态机软件测试用例自动生成的研究[D].成都:西南交通大学,2005

[3]黎文导,卢瑜.有限状态机(FSM)的实现[J].青海师范大学学报:自然科学版,2001(4):18-21 LIUWen-dao,LU Yu.Achievement of Finite state machine(FSM)[J].Journal of Qinghai Normal University based on Generation:Natural Science Format,2001(4):18-21.

[4]刘伟.面向仿真训练系统的过程模型框架研究与实现[D].长沙:国防科技大学,2004

[5]侯洪涛.海上补给仿真训练系统模型框架设计与实现面向仿真训练系统的过程模型框架研究与实现[D].长沙:国防科技大学,2006.

[6]张海波.基于HLA的分布式钻井施工仿真培训系统研究[D].大庆:东北石油大学,2012.

猜你喜欢
模拟系统状态机电控
基于VR技术的变电站三维场景设计模拟系统研究
基于有限状态机的交会对接飞行任务规划方法
基于STM32单片机的微电网模拟系统设计
基于ARM和Zigbee 的变压器试验培训模拟系统
ECAS空气悬架电控系统介绍
虚拟现实焊接培训模拟系统在焊工培训中的应用
东风雪铁龙C5各电控系统电路图解析(九)——ESP电控系统上篇
电控发动机点火控制系统的原理与诊断
双口RAM读写正确性自动测试的有限状态机控制器设计方法
电控气动步进系统的PLC实现