水下通信模拟训练系统设计与关键技术研究*
2013-11-28韩庆伟谢永亮周俊山
韩庆伟 谢永亮 吕 杨 周俊山
(海军蚌埠士官学校 蚌埠 233012)
1 引言
目前军用模拟系统能有效地应用于新型武器的研制,优化系统设计,提高武器系统性能以及诊断并排除隐患和故障,提高研制质量,有效提高训练效果和减少训练使用经费,从而起到了节约经费,提高国防建设效费比的作用[1],引起了各国政府重视。
由于舰艇/潜艇外出执行任务时通常处于战备航行状态,回到基地一般靠岸休整或者全方位检修,因此声纳开机的机会少、时间短;且舰潜水下通信训练需要动用的装备多,协调起来工作的难度大,岗位训练与协同训练得不到保障。训练一批通信声纳操作员,对照真实的声纳装备固然好,但如果声纳由于保密原因不能开机或开机的代价太高,这样很难实施训练大批次的军事人才,且需要耗费大量的人力和物力,代价昂贵。本模拟系统旨在解决通信声纳训练中存在的两大难题:一是装备开机的机会少、时间短,训练机会少;二是日常训练中没有实战环境和通信对象,训练效果差。
2 模拟系统的软件设计
系统采用“软硬结合”的方法和分布式交互仿真的方法,模拟各型声纳实装,并开发了一个战术导演台,通过交换机和网线连接,构成了整个声纳通信系统。各型声纳模拟器结合通信声纳装备特点、工作流程进行设计,在操作界面显示与使用方法上做到与实装一致。战术导演台模拟产生水面舰艇、潜艇等各类目标数据和战场环境数据,结合通信声纳模拟操纵台的功能操作,实现识别测距、电话、电报等通信功能。
系统首先搭建一个健壮的、可扩展的、灵活的框架,它基于开放或共享标准[2]。框架的设计要力求做到:完备性、灵活性、可扩展性、可理解性,能同时用于不同的场合;用户和框架的交互清晰,文档齐全[3]。系统的工作流程如图1所示。
图1 系统工作流程图
接下来采用面向对象的编程思想,将系统有机地分解成各功能模块,把系统看作相互协作的对象,这些对象是结构和行为的封装,都属于某个类,那些类具有某种层次化的结构[4]。模块彼此之间通过接口协调工作,同时预留部分接口,以便软件的扩展和升级。各模块关系如图2所示。
在程序编写、建模设计上采用面向对象的方法,面向对象技术提供一种新的认知和表示世界的思想和方法,它对计算机工业的影响是深远的[5]。同时面向对象技术为软件工业实现工程化提供了强有力的支持,在软件开发过程中,建立模型的正确性是软件系统顺利运行的基本保障,是软件系统开发顺利进行的保障。应用平台编程语言选择发展成熟的Visua1C++6.0编程语言,它将面向对象的程序设计方法和可视化的软件开发环境完美地结合起来;它兼有高级和低级语言的双重性,功能强大、灵活、执行效率高。同时采用DirectX开发包进行相应功能的开发。DirectX是微软公司开发的一套用于高性能多媒体程序的应用程序接口,它主要优势是使Windows程序开发者既能够直接访问硬件设备,又不破坏 Windows的设备独立性,为程序开发者提供了一个健全并有良好支持的平台,使其能够开发出高性能的Windows游戏或多媒体应用程序。这正是本系统采用DirectX来开发的一个重要因素。
图2 各模块接口关系图
3 模拟系统的硬件设计
系统硬件主要由通信声纳模拟操纵台、战术导演台、网络系统构成,如图3所示。
图3 系统硬件组成框图
战术导演台由一台PC机构成,网络系统为100M宽带局域网,主要由交换机、网络接口及网线网卡组成。通信声纳模拟操纵台为海军标准通用型模拟操纵台,按照实装进行设计,部件尺寸尽量与实装一致,其内部为一台通用计算机,完成各种操作响应与显示。硬件部分的显示器、各种按钮、开关、电键、通话器和耳机等通过专用定做、市场采购等方式来获取。
硬件操作与软件虚拟的接口主要通过USB7408(N)接口模块实现,其中输入部分包括开关、按钮、电键、话筒等,输出部分包括指示灯、声音等。USB7408(N)接口模块开关量输入为16路,输出为16路,采用两组分别共地方式。
模块上的所有16路开关量输入信号状态均可以由CPU通过巡检方式读出,即CPU通过直接读取I/O口上的数据来判断输入信号的状态,其工作原理如图4所示。
模块的16路开关量输出回路可用于外部电路的开关控制,其每路最大输出电流500mA左右,开关量输出部分工作原理如图5所示。
图4 开关量输入部分工作原理
图5 开关量输出部分工作原理
模块工作时,计算机送“1”使驱动器三极管导通,计算机送“0”使驱动器三极管截止。所有的开关量输出信号均带有锁存功能。当CPU对设定的一个I/O地址执行一次写操作,就送出了一组(16路)输出信号。
声纳模拟操纵台硬件设计原理图如图6所示。由图可见,该电路主要由一个7408模块和一个电源模块以及设备开关、按钮、指示灯、风扇等组成。其中电源模块输出+24V、+12V、+5V三种直流电压供各部分直流供电。7408模块的各个输入、输出分别对应连接各开关、按钮、指示灯等,模块将采集到的电压开关量输入到计算机,供软件调用,同时将软件输出的开关量信号输出给硬件指示设备。
图6 系统电路原理图
4 模拟系统关键模块的实现
4.1 通信模块的实现
通信模块用于实现战术导演台与声纳模拟器之间指令和数据的传递和交换,以此模拟海水中的通信连接。
通信模块主要采用传输控制/网际协议TCP/IP协议来实现,其中Socket接口是TCP/IP网络最为通用的API,它提供了不同主机间进程通信的端点,屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP/IP协议软件和实现了Socket规范的计算机之间的通信成为可能。
装备的第一要求是可靠性,因此在选用套接字时选用面向连接的套接字而不选用面向非连接的数据报套接字,用以保证通信质量。同时采用Socket基础类编程,以提高通信效率。为了使管理数据收发更加便利,CSocket类和CSocketFile类可以与CArchive类一起合作来管理发送和接收的数据。但是随之带来了问题,阻塞问题将给系统的通信带来巨大麻烦[6],而CSocket类的阻塞函数包括Receive()、Send()、ReceiveFrom()、SendTo()和 Accept(),这些函数须直到操作完成后才返回控制权。为了解决阻塞问题,在编写程序时,主要采取了三种策略:
1)采用了多线程编程,使通信线程独立运作,互不影响。
2)采用选择模型进行通信,能有效防止阻塞。
3)采用收发分置,使工作者线程有条不紊。
通过防阻塞处理,能保证较高的通信质量,确保通信系统的有效性和可靠性。
4.2 自动评分模块的实现
自动评分模块主要在各想定训练科目下对各声纳模拟器操作员的操作情况进行自动评分。
随着计算机和网络技术的发展与普及,很多课程的考试都已经能够通过网络在计算机上进行了。网上考试系统因具有考试组织方便、考试不受时间和地域的限制、可以快速客观地给出考试成绩和降低考试成本等优点,将成为今后考试尤其是大规模考试的发展趋势[7]。因此在进行科目式训练考核时,为了减少人为因素的不利影响,促进考试的规范化和科学化,应设计并选取最合适的评分策略,以实现快速、准确的自动评分。
由于在特定的情景下,对各装备的操作使用是有规定要求和操作流程的,因此本模块将各操作员的操作情况以文本的方式记录下来,与标准答案进行比较,并通过引入单向贴近度设计算法,实现了自动评分的目标。
系统先通过网络将各模拟器操作台的操作情况记录在文本中:
date.Format("1.工作方式选择正确;已完成");
destFile.Write(date,date.GetLength());
destFile.Write(date,date.GetLength());
等待训练完成后,系统将各操作员的操作情况与部队在此作战情景下的操作规范和流程进行一一对比,给出成绩评定。
4.3 声纳模拟器的实现
通信声纳主要由通信模块和功能实现模块两大部分,程序框架如图7所示。
通信声纳主要的四项基本功能是:“识别测距”、“电传报”、“电话”和“电报”。因此,模拟器设置了对应的四个功能模块,功能模块从操作流程、装备响应上应与实际装备保持一致。
图7 声纳模拟器框图
以识别测距模块为例,识别测距模块的主要功能是实现敌我识别、测距功能;模拟实现水声通信的延时效果;对接收信号的幅度谱和频率谱进行模拟。
当模拟器工作在识别测距工作模式时,首先要设置询问码和应答码,确保通信方式一致。当按下“单组识别”、“多组识别”、“测距”或“清除”按钮时,USB7408采集模块中的对应的输入通道将向将向程序输送“1”,程序会判断通信目标是否在该声纳工作的作用范围内,如果在,程序则会触发相应的处理函数 OnSingleIdentify()、OnMultiIdentify()、OnDetect()或OnClear(),对相应的按钮进行响应。在响应过程中,主要依据与通信目标的距离和水文环境来设置合理的延迟时间,水文环境的模拟主要采用延迟通信技术和控制通信误码率来实现,以实现训练环境和态势的模拟。
其中界面的文字响应可通过SetDlgItemText()来实。界面的图标响应可以通过SetBitmap()来实现。显控台的灯光响应可以通过USB7408模块的一路输出信号控制指示灯来实现。声音信号,则先应在实装中对不同状态下的音响进行录制,然后用DirectX提 供 的 Direct-Sound组件进行播放控制。对接收信号的幅度谱和频率谱进行模拟,首先查看各型声纳的技术资料,对接受信号的幅度谱和频率谱建立相应的数学模型,然后通过VC在识别测距模块的对应界面画出逼真的谱线图。识别测距的谱线图最终效果如果8所示。
图8 识别测距谱线图面图
5 软件的测试与分析
IEEE定义软件测试为:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别[8]。
随着软件开发的进行,系统的结构不断扩大,软件设计的复杂程度不断提高,软件开发中出现错误或缺陷的机会越来越多。软件必需经过测试,测试是验证软件是否能达到期望功能的唯一有效的方法[9]。软件测试是软件开发的一个重要组成部分。
对于本系统,通信模块的测试可以通过各模块间的传递数据包来测试[10],系统在模块间测试发送10000个具有32个字节的数据包,丢失率为0%,平均时间为1ms。说明系统间通信模块正常。
接下来的各功能模块,主要在战术导演台和模拟器上测试,对各功能模块设定测试方案,并预先给定应该出现的响应,与实际响应进行对比。
以声纳模拟器为例,本系统做了如下测试,部分如表1所示。
表1 系统模拟操纵台功能检测表
此外,对整个系统进行五天五夜的不间断运作,没有发现程序崩溃或死机的现象。
同时,组织了不同单位对该系统进行试用,反应良好。通过以上测试,表明了该系统是一个功能齐全、体系健壮的系统。该系统不但操作响应快、运行稳定,而且占用系统资源少、容错能力强。
6 结语
本系统综合集成了计算机、网络技术、图形图像技术、多媒体技术、软件工程、信息处理等多个高新技术领域的知识,成功地研制了水下通信训练系统,有效地解决了水下通信训练缺乏训练环境和训练手段的难题,为通信声纳的教学训练提供了有力的保障和较为理想的训练环境。系统平台通用性强,运行环境和硬件设施要求不高,可大大的减少为教学和训练配备新型实装而造成的巨额经济开支,具有十分广泛的应用前景。
[1]Eskelinen E,Ruuskanen P,Rasanen U,et al.Lowcost simu-lator for basic radar gignals[J].IEEE Aerospace and Electronics System Magazine,1994,9(6):7-11.
[2]韩万江.软件工程案例教程[M].北京:机械工业出版社,2006:18-29.
[3]Raphael Maiveau,Thomas J.Mowbray.软件架构师教程[M].北京:电子工业出版社,2003:21-53.
[4]陈松.组件化程序开发模式[J].计算机工程与应用,1998,35(9):33-35.
[5]谭钧元.面向对象技术的企业门户信息系统设计与实现[D].重庆:重庆大学,2007:3-31.
[6]符广全.基于高速以太网的网络控制传输技术研究[C]//中国控制与决策会议论文集,2009:213-231.
[7]嵇敏.自动评分系统的设计与实现[J].辽宁师范大学学报,2006,29(2):193-196.
[8]Ron Patton.软件测试[M].北京:机械工业出版社,2007:23-33.
[9]Glenford J.Myers.The Art of Software Testing[M].John Wiley & Sons Publishing,1997:25-57.
[10]吕国云,许学忠,赵锐.战场目标被动噪声识别技术[J].探测与控制学报,2001,23(4):22-25.