基于禁忌表的输入容错处理方法

时间:2022-08-14 04:31:34

基于禁忌表的输入容错处理方法

摘 要: 在设计各种软硬件人机交互控制设备时,输入容错处理是必然遇到的一个问题。常规做法是用大量逻辑判断进行处理,但是这种方法代码容易出错,而且当设备控制关系需要改变时,控制程序也需要重新编写,极大影响系统的可靠性和编程效率。提出一种新的输入控制容错处理方法——“禁忌表”方法,将整个设备的输入控制关系整合在一起。按照本文方法,在设备的控制关系发生改变的时候,只需改动“禁忌表”,控制程序无需改动,从而大大提高系统的开发速度。

关键词: 禁忌表; 输入容错处理; 人机交互控制; 编程效率

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)02?0053?03

0 引 言

当前,各种设备终端人机交互控制关系越来越复杂,对设备输入控制容错处理的要求也越来越高,特别对大型武器装备,容错处理控制不好,将带来不可预知的风险和损失,因此对设备研发人员的软件控制技术提出了极高的要求[1?2]。输入控制容错处理的常规做法是编程时使用大量的逻辑判断,对各种输入操作与当前设备状态进行相容判断,确定该输入操作在当前状态下是否允许[3]。这种方法只适用于控制关系简单的设备。由于设备状态少,操作简单,使用结构简单的逻辑判断就可以实现设备的容错处理。但对于状态多、控制关系复杂的设备,这种方法不仅程序编写效率低,而且也很难保证可靠性。即使编制出可靠的输入控制容错程序,系统控制关系一旦需要改变,控制容错程序就需重新编写,增加了软件编写的工作量、系统开发成本和开发周期[4]。为此,提出一种新的输入控制容错处理方法——“禁忌表”方法,不仅编程中省去大量的逻辑判断,简化程序结构,而且在系统软件升级和控制关系变动时,只需改动“禁忌表”,而无需改动程序,从而大大提高系统软件的开发速度和可靠性。

1 “禁忌表”方法的数学模型

“禁忌表”方法基本思想就是首先建立设备所有键控输入的“相容”与“禁忌”关系表,称之为“键控输入禁忌表”。在每次执行一个键控功能时,通过搜索“键控输入禁忌表”,判断系统当前状态下,该输入是否有效,若有效,就可执行相应的键控功能,并更新当前状态;否则不执行任何操作。这样在每次对输入进行容错处理时,只需执行一个特定的处理函数,该函数基于“键控输入禁忌表”分析当前键控与当前系统状态是否相容,若相容则输入有效,若不相容则输入无效。系统控制关系变更时,只需相应改动“键控输入禁忌表”即可完成。

该方法的数学模型如下:

定义系统所有键控输入的集合为K={k1,k2,…,km}。其中m为正整数,表示系统可键控输入组合的个数。

定义系统所有可能状态的集合为S={s1,s2,…,sn}。其中n为正整数,表示系统所有可能状态的个数。

系统工作时所有可能呈现的状态组合称为系统的工作状态。定义系统所有可能工作状态的集合为WS={WS1,WS2,…,WSp},其中WSi =[si1,si2,…,sij]表示系统的某个工作状态;j为此工作状态包含系统状态的个数,p为系统所有可能的工作状态数,且有[WSi?S];

定义系统当前工作状态为CWS, [CWS?S]。

定义与键控输入ki相容的系统工作状态集合为TSi={TSi1,TSi2,…,TSiq},i[?]{1,2,…,m}。其中:TSij={sij1,sij2,sij3,…,sijl};q为与键控输入ki相容的系统工作状态的个数;l为TSij中系统状态的个数,显然有[TSi?WS],即TSi为系统工作状态集合WS的子集。所谓TSij与键控输入ki相容,是指系统当前工作状态CWS为TSij的情况下,键控输入ki有效。

定义与键控输入ki不相容的系统工作状态集合为FSi={FSi1,FSi2,…,FSiq},i[?]{1,2,…,m},其中FSij={sij1,sij2,sij3,…,sijl};q为与键控输入ki不相容的系统工作状态集合的个数;l为FSij中系统状态的个数,显然有[FSi?WS],即FSi也为系统工作状态集合 WS的子集。所谓FSij与键控输入ki不相容,是指系统当前工作状态CWS为FSij时,键控输入ki无效。

[KEY_PROHIBIT(ki)=T,WSC?TSiF,WSC?FSi]

显然,对任何一键控输入ki,其对应的相容系统工作状态集合TSi与非相容系统工作状态集合FSi之和就是系统工作状态集合WS,即TSi+FSi=WS。设KEY_ PROHIBIT(ki)为键控输入ki有效判别函数,T表示有效,F表示无效,则有:

2 “禁忌表”方法的计算机实现

对任何系统,建立如下数据表:

(1) 键控输入表K_table,表中存储系统所有可能的键控输入组合K。

(2) 状态表S_table,表中存储系统所有可能的状态S。

(3) 工作状态表WS_table,表中存储所有可能的工作状态的集合WS。

(4) 当前工作状态表CWS_table,表中存储系统当前工作状态WSC。

(5) 键控输入禁忌表PROHIBIT_table,该表中存储了所有键控输入的相容与非相容状态。

基于上面的讨论,可以得到如图1所示的系统键控输入容错处理流程。

图1 键控输入容错处理

以下是某侦察雷达模拟器设备采用VB6编写的“禁忌表”(部分)和“禁忌判别函数”实现的输入容错控制,代码很少[5?6]:

Const ty = "99,tt,ay,ff,ay" 通用状态

Const cp = "01,tt,99,01,08,10,09,16,edff,ay" 重排

Const js = "02,tt,99,02,01,08,09,16,edff,ay" 监视

Const zj = "03,tt,99,03,01,10,09,16,edff,ay" 自检

Const ks = "04,tt,99,04,01,08,09,16,edff,ay" 快速

Const jz = "05,tt,99,05,01,10,09,16,edff,ay" 加载

Const bp = "06,tt,99,06,08,10,09,16,edff,ay" 编批

Const sc = "07,tt,99,07,01,08,10,16,edff,ay" 删除

Const qx = "08,tt,99,08,01,10,09,16,edff,ay" 全显

Const= "09,tt,ay,ff,10,13,17,16,ed" 扫描

Const yj = "10,tt,ay,ff,09,13,17,16,ed" 预警

Const gj = "11,tt,99,01,08,10,09,16,edff,ay" 告警

Const dy = "12,tt,99,01,10,09,16,edff,ay" 打印

“禁忌表”中,相容的系统工作状态用tt表示,系统所有工作状态用ay表示,不相容的系统工作状态用ff表示,ed表示表结束。

只需在命令按键执行处理前,执行如下的“禁忌判别函数”,判断输入命令是否有效,有效执行相应的按键功能,无效则不执行。其中传递变量jj_bz为当前按键输入。

Public Function jjpb(jj_bz As String) As Boolean

'禁忌判别函数

dim int1,int2 as integer

dim str1,str2 as string

str1 = stateWord '取当前按键的禁忌标状态字

int1 = 7

int2 = 2

str2 = Mid$(jj_bz, int1, int2)

If str2 = "ay" Then

int1 = int1 + 6

str2 = Mid$(jj_bz, int1, int2)

While str2 "ed"

If str2 = str1 Then

jjpb = False '有不可用当前状态,函数返回不可用

Exit Function

End If

int1 = int1 + 3

str2 = Mid$(jj_bz, int1, int2)

Wend

jjpb = True '没有不可用当前状态,函数返回可用

Exit Function

Else

While str2 "ed"

str2 = Mid$(jj_bz, int1, int2)

If str2 = str1 Then

jjpb = True '有可用当前状态,函数返回可用

Exit Function

End If

int1 = int1 + 3

Wend

jjpb = False '没有可用当前状态,函数返回不可用

Exit Function

End If

End Function

3 结 论

从上面分析可以看出,对复杂系统的控制,只要在系统控制设计之前,将系统的状态、工作状态以及与键控输入的关系明确,建立各种必要的数据表,即可通过键控输入判别函数实现所有键控输入的容错处理判断,设计人员可以将主要精力集中到各种键控输入具体功能的实现上,有利于系统的模块化编程,提高了系统的可靠性和开发效率。此方法已在完成的某型艇载雷达模拟器系统的开发中得到了很好的应用,取得了明显的效果。同时,该方法完全可推广到大型、具有复杂输入控制关系设备的键控输入容错设计中。

参考文献

[1] 李人厚.智能控制理论和方法[M].西安:西安电子科技大学出版社,1999.

[2] 闻新.控制系统的故障诊断和容错控制[M].北京:机械工业出版社,2001.

[3] 周东华,叶银忠.现代故障诊断与容错控制[M].北京:清华大学出版社,2000.

[4] 胡昌华,许化龙.控制系统故障诊断与容错控制的分析和设计[M].北京:国防工业出版社,2000.

[5] 李华,曾艳丽.电子对抗系统效能仿真支撑环境研究[J].系统仿真学报,2007,19(9):1954?1958.

[6] 许兵.轻型战场侦察雷达的结构总体设计[J].现代电子技术,2005,28(13):29?30.

上一篇:异构医疗系统数据交互策略研究 下一篇:图像透视特征提取方法及其在无人机视觉导航中...