邓东旭 王学智 徐 跃
(空军工程大学 西安 710051)
搜索雷达作为防空火力单元的重要组成部分[1],能够对目标进行搜索、识别和跟踪,对防空作战的过程具有重要影响。因此模拟搜索雷达并在防空火力单元的仿真软件中使用,用于模拟对应雷达的工作过程和性能,对于提高仿真火力单元的作战性能和雷达自身精度上的逼真度具有重要影响。搜索雷达模拟软件的主要功能是根据剧情产生系统的空情信息,模拟搜索雷达对目标的探测发现过程,对探测到的目标点迹进行相关处理,形成目标航迹,并发送给情报处理软件。
由于面向过程的程序设计方法在大型项目中逐渐暴露出软件的开发难度大、不易维护等缺点,而面向对象分析则由于对对象的封装、继承等使得它更能灵活和高效的适应需求的变化[2]。在不断的使用和发展的的过程中,UML 逐渐成为一种功能强大,表达清晰且通用性较高的建模语言,本文针对搜索雷达仿真系统的特点,基于面向对象的思想,采用UML 对搜索雷达仿真系统进行建模与实现[3]。
UML(Unified Modeling Language,统一建模语言)是由GrayBooch、Jim Rumbaugh、IvarJacobson 三位著名的面向对象技术专家在基于Booch 方法、OOSE 方法与OMT 方法上,提出的通用图形化标准建模语言。该方法用视图模型来描述系统结构(静态)和行为(动态)。在软件系统开发过程中主要应用到CIM(Computation Independent Model)和PIM(Platform Independent Model)阶段的UML 模型。
CIM 关注于本系统与外部系统的交互,不涉及具体细节,属于概要设计,具体包括以下三个步骤[4]:
CIM-1:确定系统功能,建立系统的用例模型。此阶段描述了新建系统的总体功能。
CIM-2:分析系统工作流程,建立活动图。此阶段需要分析CIM-1 阶段的用例流程,绘制出活动图。
CIM-3:规定系统范围,建立系统用例图。次阶段将反应出CIM-1 和CIM-2 的具体执行动作。
PIM 属于详细设计阶段,它不涉及系统的具体平台且关注于软件系统的内部细节但,具体包括以下四个步骤:
PIM-1:分析系统流程,总结系统用例叙述。针对系统用例,分析其内部细节,并编写系统用例叙述。
PIM-2:分析业务流程,建立状态图。根据业务流程,针对相应业务对象绘制出状态图。
PIM-3:定义静态结构,建立类图。此阶段用类表示系统内部的静态结构。
PIM-4:定义操作及方法,建立序列图。此阶段用以表示系统内对象间共同完成某一用例时,相互间的动态交互过程。
文中基于UML 的七个建模步骤,采用Visio 软件工具对搜索雷达仿真软件进行建模[5]。文中先对搜索雷达的业务用例进行建模,然后以搜索雷达业务用例中的“目标探测模拟”为特例进行建模。
1.2.1 业务用例建模
UML 模型中的用例建模通常用于描述系统应该具备的功能。通过对搜索雷达仿真软件的需求分析,对于防空作战火力单元仿真系统来说,搜索雷达仿真软件主要有三类功能:目标探测模拟;航迹生成与管理;管控信息处理。用例如图1所示。
图1 搜索雷达仿真软件用例图
目标探测模拟用于判别在有干扰或无干扰的条件下目标是否能被雷达探测到[6]。结合目标的状态和特性,计算雷达对目标的探测概率,判断是否发现目标;根据雷达探测目标的结果,对探测到的目标点迹进行相关处理并形成航迹;航迹生成与管理描述探测模型对探测到的目标点迹进行相关处理并形成航迹的过程;管控信息处理对接受到的作战指挥软件的管控命令进行执行处理,并将雷达的状态返回给作战指挥软件[7]。由于目标探测模拟功能是搜索雷达的主要功能,下面以用例‘目标探测模拟’为例来讲述如何利用UML 对搜索雷达仿真软件进行建模。
1.2.2 活动图建模
活动图类似软件的流程图,是每个业务用例的逻辑过程。但活动图是概念级的,见图2。而软件流程图描述的则是具体的程序设计。下面主要针对目标探测模拟用例分析其工作流程。
图2 用例<目标探测模拟>执行活动图
用例<目标探测模拟>的执行流程描述如下:
(a)预处理接收的目标信息,判断该目标是否在当前扇区,若目标不在当前扇区,转回(a)。若目标在当前扇区,转(b);
(b)计算雷达接收到的目标回波功率;
(c)判断当前有无干扰,若无干扰,计算信噪比,转e);
(d)有干扰,计算信干比,转(e);
(e)计算雷达对目标的探测概率;
(f)判断本次扫描能否发现目标,若能发现目标,转h);
(g)若不能发现目标,则转(a);
(h)目标位置信息加误差;
(i)流程结束。
1.2.3 系统用例建模
系统用例模型将明确系统作用和范围,是系统设计和开发的基础。在不考虑实现细节的基础上来描述用户的功能需求,见图3。
图3 用例<目标探测模拟>用例图
该用例描述模拟预警雷达探测目标的过程。仿真雷达的探测能力,结合目标的状态和特性,计算雷达对目标的探测概率,判断是否发现目标;根据雷达探测目标的结果,对探测到的目标点迹进行相关处理并形成航迹。
1.2.4 用例说明
系统用例描述是针对每一个系统用例,分析其内部细节,编写成系统用例叙述。
以下是对<目标探测模拟>的用例叙述:
(1)剧情产生软件发送空情信息;
(2)作战指挥软件发送雷达开机命令;
(3)对接受到的目标信息进行处理;
(4)计算该目标是否已经被探测到;
(5)进行编批处理,形成航迹。
1.2.5 状态图建模
状态图可以捕获对象、子系统、和系统的生命周期。它们可以告知一个对象可以拥有的状态,并且事件会怎样随着时间的推移来影响这些状态。
状态图是活动图的一个变体,两者的表现形式殊途同归。基于目标探测模块的特点,本文同时用图2 来表示用例<目标探测模拟>的状态图。
1.2.6 类图建模
在UML 中,用类图和对象图来表示类与对象模型,属于静态建模的范畴。类与对象是面向对象技术的基本元素,类是对同一类事物的抽象。面向对象程序设计优于常规面向过程程序设计的特点是对对象(或类)的封装性,实现了对程序功能模块的封装,进而使整个程序做到“高内聚、低耦合”。
以搜索雷达为关注点的有关类,主要包括‘目标探测管理(TargetProcess)’类,‘管控信息处理(InformationManage)’类,‘航迹生成与管理(SimulationManage)’类,‘控制管理(ManageControl)’类。见图4。
图4 用例<目标探测模拟>类图
在图-中,给出了四个类,每个类都有自己的属性(数据)和操作,‘目标探测模拟’类,即TargetProcess 类的属性和操作见下叙述。
1)属性:
m_taget
属性描述:待处理目标
2)操作:
FindTarget:目标发现判断,若在连续五个周期中有三个周期中能发现目标,则标示为跟踪,否则丢弃;
GiveTargetNum:给跟踪的目标编批号;
IsInShanqu:判断目标是否在雷达扇区范围之内;
GiveFindProbality:计算雷达探测目标的概率。
1.2.7 序列图建模
为详细考察类的动态结构,可利用序列图定义程序执行时每一步需要执行的具体操作。图5 显示了对象之间的动态协作,着重描述对象间消息传递的时间顺序。序列图的两个坐标轴,横坐标为显示对象,纵坐标为显示时间。
图5 用例<目标探测模拟>序列图
为得到更完备的类图,可根据序列图和静态类图进一步开发程序需要的类。
为适应系统需求,采用模块化思想对所建立的搜索雷达仿真系统进行编程实现。在相继完成目标探测,管控信息处理和航迹生成与管理用例的建模后,使用VC++6.0 编程工具提供的MFC AppWizard(dll)组件开发功能,按照系统的逻辑架构设计实现,如图6所示。
将建立的搜索雷达仿真软件应用于某防空火力单元仿真系统中,实现了某型搜索雷达的仿真系统,雷达显示界面如图7所示。
本文根据防空火力单元仿真系统对雷达装备的特殊要求,依据雷达装备的用途和工作原理,提出一种基于模块化的雷达装备建模与仿真框架。建立并实现了一种通用性强,可移植性好的雷达系统模拟软件。目前,该仿真软件在成功应用于某防空火力单元仿真系统的过程中能够较好的反映雷达的工作流程及实际性能。
图6 搜索雷达探测仿真模型处理流程
图7 搜索雷达仿真软件工作界面
[1]李冬,刘海业,苏春梅,薛芳侠.地空导弹营火力单元仿真设计[J].火力与指挥控制2007,32(12):106-109.
[2]刘婷,张江华,聂强,李依林.基于UML 的雷达导引头系统软件工程过程[J].火控雷达技术.2012,41(4):26-30.
[3]何春俐.建模语言UML 的研究[J].机械管理开发,2010,25(1):177-178.
[4]邱郁慧.系统分析师UML 实务手册[M].机械工业出版社,2008.
[5]陆波,华祖耀.面向对象的软件工程与统一建模语言UML[J].电脑开发与应用,2002,15(9):18-22.
[6]王晓红,沈永福.作战系统仿真中的雷达建模与仿真研究[J].系统仿真学报,2005,17(7):1535-1537.
[7]吉玉洁,张高峰,吴亮.应用于仿真训练的模块化雷达建模与实现[J].系统仿真学报,2014,26(2):242-247.