本站小編為你精心準備了水聲設備試驗航勢復盤軟件設計及實現參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:根據水聲設備試驗對航路態勢復盤需求,設計出軟件的總體結構和主要功能,利用WPF技術,結合C#語言和MySQL數據庫管理系統,開發了基于WPF技術的水聲設備試驗態勢復盤軟件,并詳細介紹了一些關鍵問題的解決方法和實現過程。通過使用該軟件,能夠提高數據處理的效率,便于試驗人員評估分析試驗結果。
關鍵詞:水聲設備;WPF;MySQL;數據庫
1引言
水聲設備試驗需要動用多種不同類型的船只,試驗結束后,往往需要對各船只試驗期間的態勢進行復盤,以便于試驗人員準確地對試驗結果進行評估和評價。水聲設備試驗態勢復盤軟件主要對試驗期間各船只定位數據進行處理,以圖形化的顯示界面,準確、便捷地再現試驗態勢和關鍵事件,提高數據處理和數據管理的自動化程度,提高試驗數據處理的效率。WPF技術是一個應用于Windows的圖形顯示系統,是針對.NET而設計的一個Windows應用程序開發平臺,它采用“數據驅動”的程序開發模式,具有豐富的繪圖模型和文本模型,能夠為給用戶提供更具視覺效果的體驗[1]。本文介紹了基于WPF技術的水聲設備試驗態勢復盤軟件的基本原理和結構組成,給出了設計方法和實現過程,并對一些關鍵問題進行了闡述。
2總體方案
2.1主要功能水聲設備試驗態勢數據主要包括試驗船只的經緯度信息、水聲設備發現和丟失目標等關鍵事件數據,根據試驗數據種類和態勢再現需求,軟件應具備以下幾個功能:1)具備數據預處理功能。一是采取數據修正或摒棄錯誤數據等措施對手動或自動采集定位數據進行誤差修正;二是能夠去除重復的定位數據;三是能夠進行多種格式數據轉換,如經緯度坐標轉換高斯坐標,非標格式的時間、航速等數據轉為標準格式的數據。2)態勢再現功能。具備在模擬地圖上再現試驗態勢,顯示各船只的位置信息、角度信息和速度信息;能夠在模擬地圖上進行試驗區域標注,加載自定義圖標、圖形;能夠加快或減慢運行速度,并能夠實現軌跡、圖標、圖形的縮放,拖拽等操作。3)關鍵事件處理功能。一是具備關鍵事件結果初步判斷功能,將人工記錄的目標信息和根據定位數據計算的真值信息進行比對,給出判斷結果;二是能夠將處理后的關鍵事件信息按照時間順序在界面上顯示出來。4)具備數據處理功能。能夠計算目標的方位、距離變化率,顯示距離-時間、方位-時間和舷角-時間變化圖;能夠根據定位數據進行距離、精度計算。5)具備數據管理功能。將處理后的數據按照規定的格式存儲在數據庫中,實現數據產品加工、數據存儲和數據分發的管理。水聲設備試驗航路態勢復盤軟件主要功能如圖1所示。
2.2軟件總體框架根據功能需求,軟件部分主要分為數據預處理模塊、運行控制模塊、數據處理模塊、態勢再現模塊、顯示模塊和數據管理模塊六部分,態勢復盤軟件總體框架如圖2所示。數據預處理模塊主要包括坐標轉換、去除重復、野值剔除、數據插值、數據平滑、格式轉換等子模塊,完成采集數據的預處理工作;運行控制模塊主要包括啟動、暫停、結束、前進、后退子模塊以及拖拽、滑動、放大、縮小、刷新軌跡和運行速度控制子模塊,用于實現試驗態勢運行控制;態勢再現模塊主要包括運行控制參數和定位數據輸入模塊,圖形位置計算、圖形大小計算模塊和繪圖模塊,用于實現顯示圖形位置計算、圖形大小計算和圖形界面繪制和重載;數據處理模塊主要包括連接管理、兩點距離計算、態勢變化計算和精度計算模塊,用于完成各平臺之間連接關系管理、距離、相對態勢和精度計算;顯示模塊主要包括關鍵事件顯示、圖標顯示、圖形顯示和態勢信息顯示子模塊,用于實現關鍵信息,各圖標、圖形和態勢信息的顯示;數據管理模塊主要包括數據截取、數據存儲和數據導出子模塊,能夠按照時間對定位數據進行截取,并按要求輸出標準格式數據,能夠完成態勢數據的存儲和分發的管理。
2.3軟件設計思路應用程序設計一般包括數據模型、業務邏輯、用戶界面和界面邏輯4層功能性代碼[2]。數據模型是現實世界中事物和邏輯的抽象,業務邏輯是數據之間的關系與交互,用戶界面由控件構成,用于把數據顯示給用戶并接收用戶的輸入,界面邏輯是控件與控制之間的關系與交互。在保持代碼可維護的前提下,如何讓數據能夠順暢、靈活的到達界面并靈活顯示,同時方便的接收用戶的操作歷來的都是軟件開發的核心問題。常用的設計模式主要包括MVC(Model-View-Controler)模式、MVP(Mod⁃el-View-Presenter)模式等[3],上述模式采用“事件驅動模式”,容易使界面邏輯和業務邏輯糾纏在一起,造成代碼復雜難懂,隱藏的缺陷難以排除,也不便于后續軟件的擴展。WPF技術的最大特點就是實現“數據驅動模式”[4],人機交互界面采用XAML語言完成設計,業務邏輯層使用C#進行開發,這樣使數據占主動地位,弱化了控件和控件事件,實現界面和后臺邏輯的剝離,大大簡化了程序設計難度和維護的成本,因此,本系統采用WPF技術進行設計和開發。MySQL數據庫是一個中小型的關系型數據庫,被廣泛應用于因特網上的中小型網站,它具有速度快、體積小、總體成本底、開放源代碼,成為很多網站或應用程序為降低開發成本而選擇此數據庫的最主要原因[5]。綜合考慮軟件設計周期、成本、難度等因素,后臺數據庫采用MySQL數據庫管理系統。
3關鍵問題解決方法
3.1經緯度坐標轉高斯坐標考慮部分試驗船只的位置數據為經緯度數格式,需要轉換為高斯坐標后再參與數據處理計算,軟件設置了大地坐標轉換高斯坐標子程序。地心大地坐標系的定義是[6]:地球橢球的中心與地球質心相合,橢球的短軸與地球自轉軸相合,大地緯度為過地面點的橢球法線與橢球赤道面的夾角,大地經度L為過地面點的橢球子午面與格林尼治平大地子午面之間的夾角,大地高H為地面點沿橢球法線至橢球面的距離。于是,任一地面點在地球坐標系中的坐標,可表示為(XYZ)或(BLH),B為維度。采用高斯-克略格投影平面坐標x,y計算公式如下[7]:由上式計算的x,y值存在負值,為了便于測量作業,規定以中央經線和赤道的交叉點為原點坐標,x值在北半球為正,南半球為負,y值在中央經線以東為正,中央經線以西為負,由于我國均位于 北半球,x值皆為正值,為了避免y值出現負號,規定各投影帶的坐標縱軸均西移500km,為了表明點的帶號,又規定在其前面冠以帶號,這種坐標稱為“通用坐標”[8]。
3.2數據野點剔除和平滑方法數據預處理算法主要包括野值剔除、數據插值和數據平滑。含有粗大誤差的數據稱為異常數據,它會對測量結果產生明顯的歪曲,一旦發現含有粗大誤差的數據,應將其從測量序列中剔除[9]。試驗平臺船只的高斯坐標為(X)mYm、試驗目標船只的高斯坐標為(X)wYw。令變量XM、YM、XW、YM為V,時間變量為U,則Vi按式(8)計算:Vi=a+b*Ui+ε(8)式中ε為隨機誤差。a與b的估值按式(9)和式(10)計算:重復上述過程,直至沒有奇異點為止。再利用a+b*Ui計算出中間點的坐標值v0作為平滑后中間點的坐標值,其余點的平滑依此類推。起始和結尾的7個點的平滑坐標值分別利用起始與結尾15個點求得的a、b,再由公式a+b*Ui計算得出。自動采集設備測量的各平臺船只軌跡數據中存在跳點,需要進行平滑處理。數據平滑都是在基于實際的數據之上,根據平滑過程中實際統計數據的改變情況,平滑算法可以分為兩大類[10]:一類是修改所有實際統計數據的參數平滑算法;另一類是修改部分實際統計數據的參數平滑算法。修改所有實際統計數據的參數平滑算法主要有加法平滑,Good-Turing估計、折扣參數平滑、線性平滑、基于扣留估計的參數平滑,對軌跡數據平滑一般采用線性平滑算法。
3.3繪圖系統的設計與實現繪圖系統主要用于完成試驗船只軌跡的繪制。要繪制軌跡就需要建立相應的坐標系統,有兩種方法可以實現上述目標,一是使用開發平臺集成的坐標系統;二是使用自定義的坐標系統。基于微軟。NET3.5框架下的圖表控件,可以支持各種各樣的圖形顯示,如點狀圖、餅圖、柱狀圖、曲線圖、面積圖、排列圖等,同時也支持3D樣式的圖表顯示[11]。使用該控件繪制軌跡的基本思路如下,先通過坐標轉換模塊將定位數據由大地坐標轉換為高斯坐標,然后使用圖表控件LineCharts工具繪制并顯示出來,顯示效果如圖3(a)所示,其軌跡本質是由一系列點連接而成。圖表控件自帶坐標系統,使用該控件相應函數即可完成對軌跡的繪制、刷新、移動、拖拽等操作,這樣可以大大簡化程序復雜度,使軟件具有良好的可維護性,缺點是運行開銷大,當需要繪制的軌跡點數量增大時,繪圖的速度會減慢。第二種方法是通過WPF2D繪圖功能,在自定義的坐標系統上繪制試驗船只軌跡,顯示效果如圖3b所示。WPF2D繪圖功能可以創建豐富多彩的可視化元素,如點、直線、曲線、矩形、橢圓等[12]。使用WPF繪圖功能繪制軌跡的基本思路為先通過坐標轉換模塊將定位數據格式有大地坐標轉換為高斯坐標,然后繪制可視化元素來表示船只的軌跡。為減小繪制可視化元素造成的內存開銷,可以使用Line元素繪制軌跡圖。Line屬于輕量級的可視化元素,當數據量較大時,使用Line能夠顯著降繪制大量形狀造成的開銷。Line表示連接一個點和另一個點的直線,起點和終點有4個屬性設置:X1、Y1、X2、Y2,繪制一條從點(0,0)伸展到點(10,100)的直線XAML代碼為<LineStroke=“Blue”X1=“0”Y1=“0”X2=“100”Y2=“100”/Line>方法二需要自定義坐標系統,雖然增加了代碼復雜度,但在數據量不多的情況下,基本能夠滿足軟件的設計需求,因此本軟件的繪圖系統采用方法二進行來實現。
3.4圖形位置和大小計算為了增加軟件的直觀性,軟件態勢復盤顯示界面要能夠以圖形或圖標的方式顯示船只、海區的經緯度、固定物體等標識信息,并且用戶進行拖拽、滑動、放大、縮小等鼠標動作時,各種圖形和圖標也隨之進行移動、放大和縮小,因此需要對各種標識的位置和大小進行計算。軟件設計了圖形位置和大小計算模塊,其計算過程如圖4所示,用戶使用鼠標產生MouseMove、MouseButtonDown、MouseWheel等事件,軟件在鼠標事件中獲取鼠標位置和滑動量等參數,通過坐標系統將移動位置和滑動量參數轉換為屏蔽像素的參數,最后調用UpDate子程序更新圖形的位置和大小到態勢復盤界面上。
3.5數據處理模塊數據處理模塊主要包括兩點距離、態勢變化計算和精度計算子程序,用于完成試驗船和配合船間距離、態勢和精度數據的計算,便于試驗人員分析試驗結果,圖5為態勢變化界面效果圖。態勢變化計算主要是計算船只間距離、方位和舷角隨時間的變化情況,距離計算過程如下:首先將定位數據由大地坐標轉換為高斯坐標,再根據式(14)計算配合船只距離。式中D0為試驗船與配合船的水平距離,(x1y1)為試驗船的高斯坐標,(x2y2)為配合船的高斯坐標。135目標的方位由式(15)和式(16)得出,其中:γ為收斂角,L0為中央子午線所在的經度,L1為t時刻目標所在的經度,B1為t時刻目標所在的緯度。由試驗船的航向和配合船的方位可進一步計算出配合船的舷角:精度計算主要包括測向精度、測距精度計算,常用的計算方法由二階原點矩和二階中心矩。測向精度的計算方法如式(17)、(18)、(19),測距精度參照測向精度,式中β'i為方位或舷角的真值,βi為聲納測量值,---Dβ為系統誤差,σ¶為二階中心矩,σβ為二階原點矩。由于聲速傳播速度慢,外置定位設備測量的是t時刻的試驗船和目標的位置數據,水聲設備測量的是t-Dt時刻的配合船的位置,因此在進行精度計算時需按照式(20)要進行聲傳播延時修正。Dt為聲傳播延時,C為所測量的聲速數據,由此可以求出(t-Dt)時刻的配合船只的高斯坐標。
4結語
本文提出的水聲設備試驗態勢復盤軟件是在Windows操作系統平臺上進行開發的,實現過程中使用了WPF、C#以及MySQL等技術。通過歷次的水聲設備試驗驗證,該系統具有良好的人機交互性和穩定性,能夠滿足實際的工程需求,能夠顯著提高試驗人員數據處理的效率,便于試驗人員評估分析試驗結果。
參考文獻
[1]李成剛,馮靜,凌玲.基于WPF的交互式繪圖系統的開發[J].電子技術應用,2011,30(6):54-56.
[2]王小科,呂雙.C#從入門到精通[M].北京:清華大學出版社,2010:545-547.
[3]王建平.MVC/MVP集成模式網絡課堂虛擬實驗室的設計與研究[D].長沙:湖南大學,2008:23-26.
[4]劉鐵猛.深入淺出WPF[M].北京:中國水利水電出版社,2010:8-10.
[5]王珊,陳紅.數據庫系統原理教程[M].北京:清華大學出版社,1998:27-32.
[6]李延興,張靜華,張俊青,等.一種由地心直角坐標到大地坐標的直接轉換[J].大地測量與地球動力學,2007,27(2):37-47.
[7]孔祥元,郭際明,劉宗泉.大地測量學基礎[M].武漢:武漢大學出版社,2010:30-41.
[8]張海軍,李仁杰,傅學慶.地理信息原理與實踐[M].北京:科學出版社,2009:195-198.
[9]吳石林,張玘.誤差分析與數據處理[M].北京:清華大學出版社,2010:45-48.
[10]邱軼兵.試驗設計與數據處理[M].北京:中國科學技術大學出版社,2008年:31-33.
[11]索利斯.C#圖解教程[M].北京:人民郵電出版社,2013:135-137.
[12]MatthewMacDonald,王德才.WPF編程寶典-C#2010版[M].北京:清華大學出版社,2010:324-328.
作者:曹占啟 梁民贊 崔滋剛 單位:91388部隊