韓慶偉 謝永亮 呂 楊 周俊山
(海軍蚌埠士官學校 蚌埠 233012)
目前軍用模擬系統能有效地應用于新型武器的研制,優化系統設計,提高武器系統性能以及診斷并排除隱患和故障,提高研制質量,有效提高訓練效果和減少訓練使用經費,從而起到了節約經費,提高國防建設效費比的作用[1],引起了各國政府重視。
由于艦艇/潛艇外出執行任務時通常處于戰備航行狀態,回到基地一般靠岸休整或者全方位檢修,因此聲納開機的機會少、時間短;且艦潛水下通信訓練需要動用的裝備多,協調起來工作的難度大,崗位訓練與協同訓練得不到保障。訓練一批通信聲納操作員,對照真實的聲納裝備固然好,但如果聲納由于保密原因不能開機或開機的代價太高,這樣很難實施訓練大批次的軍事人才,且需要耗費大量的人力和物力,代價昂貴。本模擬系統旨在解決通信聲納訓練中存在的兩大難題:一是裝備開機的機會少、時間短,訓練機會少;二是日常訓練中沒有實戰環境和通信對象,訓練效果差。
系統采用“軟硬結合”的方法和分布式交互仿真的方法,模擬各型聲納實裝,并開發了一個戰術導演臺,通過交換機和網線連接,構成了整個聲納通信系統。各型聲納模擬器結合通信聲納裝備特點、工作流程進行設計,在操作界面顯示與使用方法上做到與實裝一致。戰術導演臺模擬產生水面艦艇、潛艇等各類目標數據和戰場環境數據,結合通信聲納模擬操縱臺的功能操作,實現識別測距、電話、電報等通信功能。
系統首先搭建一個健壯的、可擴展的、靈活的框架,它基于開放或共享標準[2]。框架的設計要力求做到:完備性、靈活性、可擴展性、可理解性,能同時用于不同的場合;用戶和框架的交互清晰,文檔齊全[3]。系統的工作流程如圖1所示。

圖1 系統工作流程圖
接下來采用面向對象的編程思想,將系統有機地分解成各功能模塊,把系統看作相互協作的對象,這些對象是結構和行為的封裝,都屬于某個類,那些類具有某種層次化的結構[4]。模塊彼此之間通過接口協調工作,同時預留部分接口,以便軟件的擴展和升級。各模塊關系如圖2所示。
在程序編寫、建模設計上采用面向對象的方法,面向對象技術提供一種新的認知和表示世界的思想和方法,它對計算機工業的影響是深遠的[5]。同時面向對象技術為軟件工業實現工程化提供了強有力的支持,在軟件開發過程中,建立模型的正確性是軟件系統順利運行的基本保障,是軟件系統開發順利進行的保障。應用平臺編程語言選擇發展成熟的Visua1C++6.0編程語言,它將面向對象的程序設計方法和可視化的軟件開發環境完美地結合起來;它兼有高級和低級語言的雙重性,功能強大、靈活、執行效率高。同時采用DirectX開發包進行相應功能的開發。DirectX是微軟公司開發的一套用于高性能多媒體程序的應用程序接口,它主要優勢是使Windows程序開發者既能夠直接訪問硬件設備,又不破壞 Windows的設備獨立性,為程序開發者提供了一個健全并有良好支持的平臺,使其能夠開發出高性能的Windows游戲或多媒體應用程序。這正是本系統采用DirectX來開發的一個重要因素。

圖2 各模塊接口關系圖
系統硬件主要由通信聲納模擬操縱臺、戰術導演臺、網絡系統構成,如圖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 系統電路原理圖
通信模塊用于實現戰術導演臺與聲納模擬器之間指令和數據的傳遞和交換,以此模擬海水中的通信連接。
通信模塊主要采用傳輸控制/網際協議TCP/IP協議來實現,其中Socket接口是TCP/IP網絡最為通用的API,它提供了不同主機間進程通信的端點,屏蔽了底層通信軟件和具體操作系統的差異,使得任何兩臺安裝了TCP/IP協議軟件和實現了Socket規范的計算機之間的通信成為可能。
裝備的第一要求是可靠性,因此在選用套接字時選用面向連接的套接字而不選用面向非連接的數據報套接字,用以保證通信質量。同時采用Socket基礎類編程,以提高通信效率。為了使管理數據收發更加便利,CSocket類和CSocketFile類可以與CArchive類一起合作來管理發送和接收的數據。但是隨之帶來了問題,阻塞問題將給系統的通信帶來巨大麻煩[6],而CSocket類的阻塞函數包括Receive()、Send()、ReceiveFrom()、SendTo()和 Accept(),這些函數須直到操作完成后才返回控制權。為了解決阻塞問題,在編寫程序時,主要采取了三種策略:
1)采用了多線程編程,使通信線程獨立運作,互不影響。
2)采用選擇模型進行通信,能有效防止阻塞。
3)采用收發分置,使工作者線程有條不紊。
通過防阻塞處理,能保證較高的通信質量,確保通信系統的有效性和可靠性。
自動評分模塊主要在各想定訓練科目下對各聲納模擬器操作員的操作情況進行自動評分。
隨著計算機和網絡技術的發展與普及,很多課程的考試都已經能夠通過網絡在計算機上進行了。網上考試系統因具有考試組織方便、考試不受時間和地域的限制、可以快速客觀地給出考試成績和降低考試成本等優點,將成為今后考試尤其是大規模考試的發展趨勢[7]。因此在進行科目式訓練考核時,為了減少人為因素的不利影響,促進考試的規范化和科學化,應設計并選取最合適的評分策略,以實現快速、準確的自動評分。
由于在特定的情景下,對各裝備的操作使用是有規定要求和操作流程的,因此本模塊將各操作員的操作情況以文本的方式記錄下來,與標準答案進行比較,并通過引入單向貼近度設計算法,實現了自動評分的目標。
系統先通過網絡將各模擬器操作臺的操作情況記錄在文本中:
date.Format("1.工作方式選擇正確;已完成");
destFile.Write(date,date.GetLength());
destFile.Write(date,date.GetLength());
等待訓練完成后,系統將各操作員的操作情況與部隊在此作戰情景下的操作規范和流程進行一一對比,給出成績評定。
通信聲納主要由通信模塊和功能實現模塊兩大部分,程序框架如圖7所示。
通信聲納主要的四項基本功能是:“識別測距”、“電傳報”、“電話”和“電報”。因此,模擬器設置了對應的四個功能模塊,功能模塊從操作流程、裝備響應上應與實際裝備保持一致。

圖7 聲納模擬器框圖
以識別測距模塊為例,識別測距模塊的主要功能是實現敵我識別、測距功能;模擬實現水聲通信的延時效果;對接收信號的幅度譜和頻率譜進行模擬。
當模擬器工作在識別測距工作模式時,首先要設置詢問碼和應答碼,確保通信方式一致。當按下“單組識別”、“多組識別”、“測距”或“清除”按鈕時,USB7408采集模塊中的對應的輸入通道將向將向程序輸送“1”,程序會判斷通信目標是否在該聲納工作的作用范圍內,如果在,程序則會觸發相應的處理函數 OnSingleIdentify()、OnMultiIdentify()、OnDetect()或OnClear(),對相應的按鈕進行響應。在響應過程中,主要依據與通信目標的距離和水文環境來設置合理的延遲時間,水文環境的模擬主要采用延遲通信技術和控制通信誤碼率來實現,以實現訓練環境和態勢的模擬。
其中界面的文字響應可通過SetDlgItemText()來實。界面的圖標響應可以通過SetBitmap()來實現。顯控臺的燈光響應可以通過USB7408模塊的一路輸出信號控制指示燈來實現。聲音信號,則先應在實裝中對不同狀態下的音響進行錄制,然后用DirectX提 供 的 Direct-Sound組件進行播放控制。對接收信號的幅度譜和頻率譜進行模擬,首先查看各型聲納的技術資料,對接受信號的幅度譜和頻率譜建立相應的數學模型,然后通過VC在識別測距模塊的對應界面畫出逼真的譜線圖。識別測距的譜線圖最終效果如果8所示。

圖8 識別測距譜線圖面圖
IEEE定義軟件測試為:使用人工或自動手段來運行或測定某個系統的過程,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別[8]。
隨著軟件開發的進行,系統的結構不斷擴大,軟件設計的復雜程度不斷提高,軟件開發中出現錯誤或缺陷的機會越來越多。軟件必需經過測試,測試是驗證軟件是否能達到期望功能的唯一有效的方法[9]。軟件測試是軟件開發的一個重要組成部分。
對于本系統,通信模塊的測試可以通過各模塊間的傳遞數據包來測試[10],系統在模塊間測試發送10000個具有32個字節的數據包,丟失率為0%,平均時間為1ms。說明系統間通信模塊正常。
接下來的各功能模塊,主要在戰術導演臺和模擬器上測試,對各功能模塊設定測試方案,并預先給定應該出現的響應,與實際響應進行對比。
以聲納模擬器為例,本系統做了如下測試,部分如表1所示。

表1 系統模擬操縱臺功能檢測表
此外,對整個系統進行五天五夜的不間斷運作,沒有發現程序崩潰或死機的現象。
同時,組織了不同單位對該系統進行試用,反應良好。通過以上測試,表明了該系統是一個功能齊全、體系健壯的系統。該系統不但操作響應快、運行穩定,而且占用系統資源少、容錯能力強。
本系統綜合集成了計算機、網絡技術、圖形圖像技術、多媒體技術、軟件工程、信息處理等多個高新技術領域的知識,成功地研制了水下通信訓練系統,有效地解決了水下通信訓練缺乏訓練環境和訓練手段的難題,為通信聲納的教學訓練提供了有力的保障和較為理想的訓練環境。系統平臺通用性強,運行環境和硬件設施要求不高,可大大的減少為教學和訓練配備新型實裝而造成的巨額經濟開支,具有十分廣泛的應用前景。
[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.