基于OOP的通信对抗装备并发仿真模型设计

2013-03-23 08:33合肥电子工程学院402教研室
电子世界 2013年9期
关键词:面向对象线程装备

合肥电子工程学院402教研室 徐 云

1.引言

仿真模拟由于其灵活方便和投入少等特性,使得在装备生产、训练过程中得到了广泛的使用。在通信对抗装备仿真中,仿真模型设计直接关系到仿真结果的科学性和有效性。

使用面向对象建模技术建立的仿真模型是对客观世界活动的自然刻划,其中的对象是对客观世界中有形或无形实体的直接模拟。采用面向对象软件开发技术,能够减小问题域与解题域之间的语义间隙,使得软件开发过程显得比较自然,从而提高软件生产率。

并发是对象模型的一种潜在特性,为在仿真模型中提供对象的并发行为能力(如多个装备或系统装备中同时发生的并发行为),必须在面向对象模型中提供并发描述机制,使其能够描述装备中发生的并发行为。而传统的面向对象编程语言只提供了描述程序顺序执行的能力,如何在对象中引入并发机制,使之方便地描述并发系统,这些是很多人都在研究的问题。文献[4]设计了一种基于事件驱动的并发模型,该模型通过同步或异步消息实现并发行为的驱动执行,当对象收到消息,根据消息种类的不同被动地作出相应的处理,整个处理由各种不同消息驱动,而对象只是被动执行请求的操作,这与面向对象理念不符并且只能算是对传统面向过程编程的改进。[5]介绍的多线程模型通过线程来模拟对象的并发行为,较好的切合了面向对象的设计理念。然而,很多研究表明:此种方设计时必须考虑并发与面向对象的一些特性相互干扰,如继承异常等问题[1]。

鉴于此,本文采用面向对象的建模技术,[4-5]中介绍的各种并发技术,提出一种使用事件/消息与多线程的混合并发模型,并应用到通信对抗装备的并发仿真模型设计中。

2.通信对抗装备并发仿真模型设计

通信对抗装备种类繁多,体系复杂,装备参数众多、功能繁杂,使得仿真模型设计难度较大,特别是设计具有并发行为的仿真模型面临众多困难。

2.1 模型设计

现代通信对抗装备已经由早期的单机向系统发展,但是从功能上来说,仍然可以将其划分为3大类:通信对抗侦察装备、通信对抗测向装备、通信对抗干扰装备,任何复杂的通信对抗系统都是由这三种基本的装备组合而成,这种模块化、积木化的发展方式也正是目前装备发展的趋势[2]。另外上述三大类装备还可以进一步划分:侦察装备可以按其实现的功能划分全景搜索接收设备、监测侦听分析接收设备、信道化接收设备等;测向装备可以按测向原理划分为振幅法测向设备、相位法测向设备等;干扰装备按照干扰带宽划分为窄带瞄准式干扰设备、宽带拦阻式干扰设备等[2]。在模型设计时需要重点考虑两个问题:模型的层次划分与模型参数、行为分配。

(1)模型的层次划分

模型的层次划分是指对所描述的对象按照“父—子”关系划分为不同的层次,子模型可以自动继承父模型所具备的属性和行为,同时子模型可以具有自己特有的属性和行为,并能够对父模型所具备的部分行为进行“进化”,从而具备更适应自身要求的行为特征。这种清晰的模型层次划分能够节省子模型代码数量,并且修改模型时,对父模型的修改直接被子模型继承,子模型不需要进行修改,大大方便了模型的修改与维护。

根据通信对抗装备的分类方法,采用层次化的模型设计方法,设计一个“基类模型”作为所有通信通信对抗装备的顶层模型,在此基础上派生出三个第二层模型:通信对抗侦察装备模型、通信对抗测向装备模型及通信对抗干扰装备模型,以此类推,形成完整的模型层次结构,如图1所示。

图1 通信对抗装备层次模型

说明:根据仿真的需要,以上模型设计还可以按照具体的装备型号进行进一步的划分,从而形成与型号装备对应的仿真模型。

(2)模型参数、行为分配

模型层次结构设计好之后,接下来的关键则是将模型参数、行为分配到相应的层次中,分配模型参数、行为时应遵循如下原则:

1)尽可能将多种设备共同参数和行为分配到尽可能高一级的模型中;

2)某种设备特有的参数和行为尽可能分配到低一级的模型中;

3)对于含义相同、行为略有差别的行为,可以采用虚拟化技术限定,从而使得下一级模型可以重写上一级模型的行为,满足仿真需求;

根据以上设计原则,以顶层模型、第二层侦察装备模型及第三层全景搜索接收装备模型为例,将其部分模型参数和行为按图2所示进行分配。

2.2 并发行为设计

在通信对抗装备仿真中,具有典型并发特征的行为主要有三个:侦察、测向和干扰。由于这三种行为都需要消耗大量的时间资源和存贮资源,并且当同时模拟多个设备或较大型的系统设备时,必然存在设备内部及设备与设备之间的各种并发行为。

在传统的面向过程的程序设计中,常采用集中控制的方式对并发行为进行描述,也就是将所有对象的并发行为集中在一个过程函数中逐一描述,此种方法的优点是过程清晰,并发行为之间的同步设计简单(如图3所示)。但是此种过程式的并发行为设计其本质仍然是顺序处理而不是真正意义上的并发处理。当并发行为较多时,逻辑控制比较复杂,特别是当并发行为之间如果具有依赖性(如某个并发行为必须等到另一个并发行为结束之后才能进行),将会导致并发行为逻辑控制相当复杂甚至无法进行。同时,此种方法不能充分发挥现代多核处理器的同时多任务处理能力。

图3 面向过程的并发行为

针对上述面向过程的并发行为存在的问题,[4]提出的基于消息并发对象模型及[1]介绍的在面向对象模型中引入并发机制,根据通信对抗装备仿真特点和需求,采用C++语言提供的消息、事件、线程等元素[3],设计了基于对象的、主动式的、自治的并发仿真模型,其基本思路是:使用线程作为并发行为的载体,使用消息提供对象之间以及对象与外部控制、显示模块进行通信,使用事件实现线程内部对数据处理的同步,如图4所示,该并发模型的特点是:

图4 并发行为模型及并发对象之间通信模型

(1)将并发行为的载体——线程封装在对象之中,高效的利用了多核处理器的处理能力;同时,并发行为由其所属的对象完全管理,每个模型都是一个高度自治的对象,从而大大降低了并发行为管理的复杂性。

(2)对象与对象之间、对象与外部控制、显示等模块之间的通信通过互发消息进行,避免对处理流程的额外干扰。

(3)使用事件进行同步,较好的实现了对具有依赖性的并发行为之间的同步。

3.设计实现

根据上述设计,我们以通信对抗侦察设备为例,使用Visual C++语言设计实现其仿真并发模型。

3.1 顶层仿真模型设计实现

顶层模型中包含所有装备的共性属性和行为,其共性属性主要有装备类别、平台类别、工作状态等,其共性的行为主要有装备的机动、设备电源的打开与关闭等。下面给出其实现示例代码:

class CBaseEquip

{

//构造函数与析构函数

public:

CBaseEquip();

virtual~CBaseEquip();

//设备属性参数

protect:

int m_intEquipType;//装备类别

int m_intPlatType;//平台类别

int m_intWorkState;//工作状态

//设备属性参数访问函数(略)

//设备行为

public:

virtual void Move();//设备机动行为

virtual void Power(BOOL bPowerOnOff);//电源开关

};

说明:

(1)为封装内部数据,属性参数一般使用protect属性进行保护,以免外部直接访问,破坏内部数据状态,同时通过提供属性参数访问接口以便外部统一访问。

(2)为提供继承类可以实现特殊的可以修改的行为,在设备行为中增加virtual修饰符,即继承类可以重写基类的行为,而编译器可以根据对象运行时信息确定调用合适的函数。

3.2 通信对抗侦察设备并发仿真模型设计实现

通信对抗侦察设备仿真模型由基类模型CBaseEquip通过继承获得,除了自动具备基类CBaseEquip所有公开和保护的属性和行为外,还具有自身特有的属性和行为,如最低工作频率、最高工作频率、接收机的灵敏度、解调方式、中频带宽等属性参数以及侦察接收等个性化的行为。

在这里,应重点考虑侦察行为的并发设计。通常,一个完整的侦察流程应包括:设备参数初始化、采集信号、数据处理、数据显示等四个步骤。其中参数初始化主要用于初始化接收机工作参数(如工作频率、解调方式、天线衰减、增益控制等),信号采集主要用于从专用的采集设备提取信号数据,数据处理则根据处理需求不同而不同(如进行数据加床、频域分析等),数据显示主要用于显示数据处理的结果。按照1.2设计的并发行为模型,采用在面向对象模型中引进并发机制的方法,使用线程实现并发行为,给出侦察并发行为的实现流程及示例代码如图5所示。

图5 侦察流程及示例代码

4.结束语

面向对象的模型设计模仿人类认识世界的方法将客观世界的任何事物看作对象,进而分析事物的组成关系和交互关系,建立描述客观世界的抽象模型,借助封装、数据抽象、多态和继承等手段很好的实现了对客观事物的描述。针对在装备仿真中存在的并发行为特征,文章使用在面向对象模型中引进并发机制的方法,设计实现了并发仿真模型,并探讨了在并发仿真模型中实现通信及同步的基本方法。

[1] 陈家骏.面向对象程序设计模型中的并发行为[J].2008:3-5.

[2] 蔡晓霞等.通信对抗原理[M].解放军出版社,2011,01.

[3] Jeffery Richter著.王建生等译.Windows核心编程[M].机械工业出版社,2000,5:172-190.

[4] 周光明.基于对象的并发模型[J].计算机技术与发展,2008.No12.Vol18:147.

[5] 李慧霸等.网络程序设计中的并发复杂性[J].软件学报,Vol.22,No.1,January 2011.

猜你喜欢
面向对象线程装备
这些精锐与装备驰援泸定
港警新装备
基于C#线程实验探究
防晒装备折起来
基于国产化环境的线程池模型研究与实现
浅谈linux多线程协作
面向对象Web开发编程语言的的评估方法
峰丛洼地农作物面向对象信息提取规则集
基于面向对象的车辆管理软件的研制与开发
面向对象的SoS体系结构建模方法及应用