APP下载

半实物试验环境中事件自动化控制技术

2012-08-04汪汉波

通信技术 2012年3期
关键词:步长实物全局

汪汉波

(中国电子科技集团公司第三十研究所,四川 成都 610041)

0 引言

大型自动化试验环境由实际仪器设备、模拟试验系统和计算机仿真系统构成,分布于各个试验节点。各个试验节点相互协作,共同完成试验任务。为了高效协同完成试验,实现对试验环境中各个试验分系统、节点、通信设备和实验过程的控制和管理,需要建立试验控制管理系统,通过它来检验试验设备在各种环境下的工作情况,实现试验过程的部分自动化运行,减少人工操作干涉,提高试验的效率。

试验控制管理系统是实验室的控制和管理中心,由总控模块和控制代理模块构成。总控模块部署在总控服务器上,由管理员操作,实现对各个分系统、节点和设备的管理。控制代理模块部署在各被控设备上,用于接受控制模块的指令,实现对被控设备的管理。

事件控制是试验过程控制的基础。根据事件表依次执行事件,推进试验进行。各个试验节点的事件需要调度和同步,以便配合完成试验。

1 方法描述

1.1 事件调度

试验控制主要是通过对事件的调度来完成。事件是试验控制基础和依据,由试验规划生成,形成事件表下发到各个控制代理,由控制代理依据事件表来完成对本节点试验流程的控制。需要解决2方面的问题:①事件调度:节点控制代理按照什么样的方式进行事件的调度,以按照规划的事件表来完成试验流程的控制;②事件同步:采用何种方式实现整个试验系统全局事件的同步。

事件调度可以采用2种方式:事件驱动和时间驱动。

事件驱动方式下,事件间的逻辑关系一般是由多个节点间的事件构成,单由一个节点的控制代理难以完成事件的调度,必须由总控统一协调,这样大量的控制工作都集中到了总控,容易形成性能瓶颈,影响试验的效果。因此这种调度方式不适合大规模的系统试验。

时间驱动方式下,事件的调度按照时间的推进来进行,规划时只需要明确什么时间触发某一事件即可,各节点控制代理也可以独立地按照自己事件表顺序调度事件,而不需要关心其它节点的运行情况。易于实现分层的试验控制结构,大量控制工作分散到了各控制代理,减轻了总控的负担。在实现了各节点时间同步的基础上这是一种简单、有效的调度方式。

综上所述,事件的组织和调度主要基于时间推进而驱动,同时为便于因果逻辑事件的处理,在时间驱动中加入一定的事件逻辑关系处理能力。

1.2 事件表设计

试验规划完成后以各节点的事件组成独立的事件表,事件表中详细定义了事件的内容、触发条件、以及事件间的逻辑关系。事件设计如表1所示。

表1 事件表

序号:试验规划时为每一个事件分配的全局唯一编号;触发节点:触发该事件的节点号;事件内容:描述该事件要求完成的动作;目的节点:事件内容中描述的动作涉及的目的节点号,一个事件可以涉及多个目的节点;推进步长:该事件完成后到下一个事件触发之间需要推进的时间;触发条件:触发该事件需要满足的条件,即当哪些事件已经产生才能够触发该事件。触发条件描述了事件间的逻辑关系,可以在按时间推进的基础上增加按事件驱动调度的能力。

1.3 事件调度流程

控制代理依照事件表中定义的时间顺序和逻辑关系进行事件的调度,基本事件推进过程如图1所示。

当试验总控下发启动指令时,触发启动事件,控制代理开始依据事件表进行事件的推进。

后续事件根据事件表中定义的到下次事件推进的步长来确定在某一时刻触发。

当收到总控下发的停止指令时,触发停止事件,结束事件推进;也可以在事件表中定义最后一个事件触发后等待多长时间自动触发停止事件。

图1 事件推进过程

对于未满足触发条件的事件,有2种处理方式:①将其丢失不执行,继续推进事件表后面的事件;②将其放入到一个等待事件队列中,然后继续推进事件表后面的事件,等到其相关联事件的产生后,再触发该事件。可以根据事件的类型和其在试验过程的作用来选择采用何种处理方式。

在试验过程,控制代理每完成一个事件的工作都需要实时的向试验总控上报当前的试验运行状态,使总控了解该节点的事件推进情况。总控维护有全局事件表,全局事件表中定义有节点间事件的逻辑关系,总控通过监控各节点的运行状态,来协调它们之间的调度和推进流程,如图2所示。

图2 总控调度事件

1.4 事件同步

各个控制代理根据各自的事件表推动试验运行,考虑到仿真系统的仿真时间可能快于或慢于实际系统时间,而且存在事件推进中的异常和人为的调整事件表,会对整个试验的全局事件同步造成影响。因此,需要试验总控来统一协调各控制代理间的事件同步。

事件同步的基本原则是按照最慢节点的推进速度进行同步。对事件同步分以下3种情况考虑。

1)当仿真系统运行速度快于实物系统运行速度,依据按照最慢节点同步的原则,需要按实物系统的物理时间来推进试验,因此,仿真系统内部可以通过增加时延的方式,与实物系统事件同步。这一同步控制可以由仿真控制代理(仿真控制系统独立完成),不需要试验总控进行协调。

2)当仿真系统运行速度慢于实物系统运行速度,依据按照最慢节点同步的原则,需要实物系统也按照仿真系统的运行速度来推进试验,因此,必须对每个实物节点的运行速度进行调整,这需要由试验总控来进行协调才能完成全局的事件同步。

3)当某个节点的事件推进出现异常,对后续事件的推进带来影响时,会造成整个试验全局事件的不同步,这也需要由试验总控来协调处理。

因为仿真系统快的情况可以由仿真控制代理独立实现事件同步,因此主要需要解决是后2种情况。

仿真系统运行速度慢于实物系统时,必须由总控参与协调各控制代理间事件同步。

同步的基本思路是计算仿真系统慢于实物系统的时间误差△T,通过总控的控制将该误差值增加到所有节点事件表的推进步长中,使实物节点按照仿真系统的运行速度来推进试验,达到全局的事件同步。如为原有推进步长TO,则重新计算后的新推进步长TN有:

事件同步原理如图3所示。

图3 事件同步原理

具体的处理流程如图4所示。

试验开始后仿真控制代理(仿真控制系统)实时监控仿真系统的运行速度。当仿真运行速度慢到一定程度时(超过预先定义的时间误差阀值 TT),仿真控制代理暂停所有仿真节点的运行,计算并向试验总控上报时间误差△T;总控收到上报后,暂停所有节点的运行,并将△T通知给各试验节点的控制代理,控制代理根据仿真时间误差,重新计算事件表,将所有事件的推进步长均增加△T;所有节点完成同步后,总控重新启动所有节点的运行,使所有实物节点与仿真系统从同一时刻重新开始试验,实现事件同步。

为降低事件同步对试验流程的影响,只有当仿真延时变化达到一定误差阀值,对试验推进将造成极大影响时才进行事件同步。时间误差阀值TT可以根据规划的事件间最小步长或平均步长乘以一个系数计算获得。

节点试验运行出现异常会造成整个试验全局事件的不同步。需要其它的控制代理暂停试验,调整相应节点的事件表,然后等待异常节点推进到正常事件时,再重新启动试验。

图4 事件同步处理流程

2 应用范例与测试结果

事件控制应用于某试验环境中,采用的服务器操作系统为 Windows 2000 Server,客户端操作系统为Windows 2000 Professional,数据库为Oracle 9i。开发工具为 Visual C++ 6.0 Enterprise。试验总控部署于服务器,控制代理部署于超过200个节点,试验管理人员录入试验脚本后,转化为系统识别的事件表。事件表按节点分割后,分发到各个节点。事件表内容为XML文件形式。各个节点在试验总控的指令下,按照事件表的约定进行试验。图5为实际应用部署图。

图5 实际应用部署

该实验室控制管理系统经过用户测试,得到以下结果:①控制管理节点数量不少于300个试验节点;②时间同步服务器可同时连接客户端数量不少于300个;③单个试验事件总数可不少于30 000个,即每个试验节点平均事件数不少于100个;④各节点事件出现误差后,可在0.5 s以内实现同步;⑤单节点出现异常,事件控制机制在1 s以内停止其他参试节点的运行;⑥试验内容规划的时间精度达到秒级;⑦规划下发及节点初始化点时间小于60 s;⑧网络时间同步误差不大于50 ms。

3 结语

经过在试验环境中具体应用,及用户的测试,可以看出,在试验管理中加入事件控制后,提高了试验过程的可控性,试验脚本分解为步步推进的事件,经过调度,有效避免试验过程因同步问题产生偏差,确保试验顺利进行,减少了人工干预操作,确保试验结果具有检验实际效能的意义。

[1] 单家元,孟秀云,丁艳.半实物仿真[M].北京:国防工业出版社,2008.

[2] 李露楠,熊华钢.基于 HLA的半实物仿真时间管理策略的研究和实现[J].遥测遥控,2006,27(02):58-62.

[3] 刘芳.分布式仿真系统中想定系统的设计与实现[D].北京:北京邮电大学,2007.

[4] 刘延彬,金光.半实物仿真的发展现状[J].仿真技术,2003(01):27-32.

[5] 宋铭利,王素丽.试验数据管理系统的设计与实现[J].计算机工程与设计,2011(05):1680-1683.

猜你喜欢

步长实物全局
中心差商公式变步长算法的计算终止条件
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
以实物为背景的勾股定理问题
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于随机森林回归的智能手机用步长估计模型
当手绘遇上实物
落子山东,意在全局
基于Arduino控制的半实物模拟驾驶系统
基于动态步长的无人机三维实时航迹规划