• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      水下航行器通用數(shù)據(jù)處理軟件的實現(xiàn)

      2020-12-08 03:15:28時慧晶劉鳳偉
      計算機測量與控制 2020年11期
      關鍵詞:線程航行數(shù)據(jù)處理

      時慧晶,劉鳳偉,陳 亮

      (1.昆明船舶設備試驗研究中心,昆明 650051;2.湖南科技大學 信息與電氣工程學院,湖南 湘潭 411201)

      0 引言

      隨著水下航行器向智能化、數(shù)字化快速發(fā)展,對水下航行器試后數(shù)據(jù)處理策略提出了更高要求,即數(shù)據(jù)處理軟件需高效快速地形成客戶自定義數(shù)據(jù)分組方案,實現(xiàn)各系統(tǒng)關鍵參數(shù)的數(shù)據(jù)分析,完成航行綜合性能和聲磁工作性能評估。水下航行器各系統(tǒng)或組件在調試或試驗過程中產生的關鍵參數(shù)數(shù)據(jù)具有容量大、類型豐富等特點,水下航行器通用數(shù)據(jù)處理軟件(以下簡稱通用數(shù)據(jù)處理軟件)可提供多型數(shù)據(jù)處理調度接口,實現(xiàn)試驗數(shù)據(jù)對象抽象提取并自定義分組,生成目標數(shù)據(jù)的統(tǒng)一格式存盤、分析、顯示、生成評估報告。數(shù)據(jù)處理軟件作為航行器內部各系統(tǒng)正常工作的主要評判效果的直觀來源,要求具備高性能、高可靠性和高冗余性等特點。

      通用數(shù)據(jù)處理軟件能夠在產品的科研、試制、生產各階段,對航行器試驗數(shù)據(jù)進行綜合分析,以充分評判產品性能,能夠在航行故障時進行故障診斷和定位,并給出可能的故障信息。同時,提高多型水下航行器數(shù)據(jù)處理方法的規(guī)范性與標準化程度,增強軟件功能模塊的通用化水平,提高軟件柔性。綜上所述,處理軟件在水下航行器生命周期各階段的任務性質和測試重點不同,試驗數(shù)據(jù)類型改變概率較大,傳統(tǒng)的針對某單一型產品逐一設計軟件功能模塊再進行揉合的軟件設計方法,具有通用性差,設計周期長,軟件需隨航行器設計改動升級,維護成本高,數(shù)據(jù)樣本容量小等缺點,顯然已無法滿足要求。因此,本文從軟件設計層面出發(fā),重點解決了3個問題:

      1)數(shù)據(jù)處理軟件各功能模塊耦合程度低,但通用性要強,硬件約束條件少,提供調度接口,保證系統(tǒng)的通用性。

      2)設計系統(tǒng)數(shù)據(jù)庫為軟件提供數(shù)據(jù)支撐;動態(tài)生成各系統(tǒng)的數(shù)據(jù)庫綜合信息及報表,提高I/O操作速率,減少訪問頻度。

      3)按文件大小實現(xiàn)自適應處理。采用多線程控制技術和內存映射技術, 實現(xiàn)海量數(shù)據(jù)的處理、可視化。原始數(shù)據(jù)文件并行存儲,確保異常斷電或軟件崩潰時,數(shù)據(jù)不丟失。

      1 軟件需求分析

      根據(jù)通用數(shù)據(jù)處理軟件試驗需求,可將所需完成的項目(功能)分解為:

      1)調度接口:根據(jù)航行器接口及高層協(xié)議要求的數(shù)據(jù)格式進行設計,實現(xiàn)數(shù)據(jù)處理接收模塊,可用來接收串口通信、CAN通信、以太網(wǎng)通信等多種數(shù)據(jù),生成原始文件、特定格式的數(shù)據(jù)文件及過程記錄文件;

      2)數(shù)據(jù)處理:自適應處理1)中生成的數(shù)據(jù)文件,對于A類文件(文件大小<500 MB)讀取到內存,對B類文件(文件大小≥500 MB)采用內存映射技術,實現(xiàn)大數(shù)據(jù)處理方案;

      3)按系統(tǒng)群組處理:根據(jù)航行器研制任務要求設計系統(tǒng)分組,例如與能源消耗相關的參數(shù)(電壓、電流等)即可歸入能源與動力系統(tǒng)。該模塊主要實現(xiàn)系統(tǒng)分組的直觀顯示、特征值分析、縮放及打印等操作;

      4)按用戶自定義分組處理:工程人員根據(jù)關注任務的側重點,例如分析某一時刻可能影響能源消耗的參數(shù),則可自定義選取參數(shù)分組。該模塊實現(xiàn)自定義分組的直觀顯示、特征值分析、縮放及打印等操作。

      5)綜合數(shù)據(jù)分析:對本次試驗的關鍵信息、重要節(jié)點動作信息、經緯度信息及故障信息等進行分析;

      6)幫助文檔:提供系統(tǒng)幫助。

      從軟件功能角度分析,數(shù)據(jù)處理軟件主要具備:

      1)完善的數(shù)據(jù)分析能力,較高的軟件柔性,可根據(jù)用戶需求,直觀、方便的對參數(shù)類型進行組合和變更,具有系統(tǒng)自控能力;

      2)對原始文件大小檢測,對A類文件可實現(xiàn)全部加載,對B類文件采用內存映射實現(xiàn)分段讀取,提供不同模式下的參數(shù)可視化、分析功能;

      3)對操作使用人員進行分級管理和權限認證:管理員可實現(xiàn)基本項目管理,例如曲線分組組合、顯示時長、管理權限、報表生成信息及人員角色分配,并提供詳細的幫助文檔。

      2 軟件總體設計

      2.1 開發(fā)環(huán)境

      使用Visual Studio 2010開發(fā)環(huán)境中的VC++編程語言,基于NI Measurement Studio工具套件和Iocomp工業(yè)4.0工控圖標控件庫聯(lián)合開發(fā)。其中,Measurement Studio自帶了豐富的、功能強大的ActiveX控件,可提供海量數(shù)據(jù)最優(yōu)化顯示的解決方案,顯著提高軟件開發(fā)效率。生成目標數(shù)據(jù)和信息以.txt與.mdb方式存盤。

      2.2 軟件框架

      通用數(shù)據(jù)處理軟件根據(jù)信息域表示的需求分析及功能進行如下設計。

      1)數(shù)據(jù)結構設計:航行器試驗過程中產生的內測數(shù)據(jù)一般不服從于某種特定的分布,需采用統(tǒng)一規(guī)范的數(shù)據(jù)輸入格式、數(shù)據(jù)處理算法、數(shù)據(jù)輸出格式,根據(jù)航行器設計需求及高層協(xié)議進行采樣間隔、分辨率等參數(shù)調節(jié),獲得服務其上一層需要的數(shù)據(jù)對象;

      2)系統(tǒng)結構設計:采用“模塊功能黑盒”程序思想,如圖1所示,采用“調度接口+功能模塊黑盒+可編輯的幫助文檔”的結構設計,模塊功能黑盒實現(xiàn)軟件的主要功能,這種結構具有信息隱蔽功能,即模塊外部不可知模塊內部細節(jié),使系統(tǒng)更健壯,更加方便維護;模塊獨立性高,即每一個模塊只涉及自己的功能,接口設計簡單,高內聚低耦合,與API接口、可編輯的幫助文檔之間的耦合度低,模塊內各元素內聚程度高。

      圖1 “模塊功能黑盒”程序結構

      數(shù)據(jù)自適應加載模塊: 判斷數(shù)據(jù)總量大小,完成對文件的加載,對于A類文件一次性讀取到內存;對B類文件采用內存映射原理,分段處理,將大數(shù)據(jù)映射到內存;

      系統(tǒng)群組可視化模塊:根據(jù)系統(tǒng)群組顯示曲線和數(shù)據(jù),選擇可視化曲線的名稱,對當前界面曲線進行聯(lián)合定位、聯(lián)合縮放、區(qū)間顯示、綜合分析、跳轉指定段、打印等操作;

      自定義群組可視化模塊:根據(jù)實際情況選取參數(shù)可視化曲線,對當前界面的參數(shù)曲線進行隱藏顯示、聯(lián)合定位、縮放、區(qū)間顯示、綜合分析、跳轉指定段、打印等;數(shù)據(jù)分析過程中,仍可添加項加入分析隊列;

      綜合數(shù)據(jù)分析模塊:航行器軌跡信息、故障信息及重要動作信息等關鍵信息解析和顯示;

      數(shù)據(jù)顯示:本次試驗物理量數(shù)據(jù)的可視化;

      3)過程設計:即通用數(shù)據(jù)處理軟件清晰的算法及程序表達,采用“類+函數(shù)”型的面向對象的設計方法[1],形成數(shù)據(jù)處理軟件各層次間組織關系,保證軟件組成構件的可移植性、互操作性和通用性。

      2.3 軟件流程

      軟件流程如圖2所示,主要流程依次為:用戶登錄,試驗數(shù)據(jù)對象抽象提取并存盤,采用多線程技術實現(xiàn)數(shù)據(jù)處理和數(shù)據(jù)讀?。徊捎米赃m應內存映射方式對文件實現(xiàn)按需讀??;采用Access 2007數(shù)據(jù)庫作為系統(tǒng)數(shù)據(jù)庫,建立必要數(shù)據(jù)庫表,為軟件提供實時數(shù)據(jù)支持,以實現(xiàn)用戶管理、系統(tǒng)設置、故障碼管理功能以及生成數(shù)據(jù)庫信息表及評估報告。

      圖2 通用數(shù)據(jù)處理軟件流程圖

      1)試驗數(shù)據(jù)提取

      水下航行器試后數(shù)據(jù)存儲方式一般分為分布式和集中式[2],將所有內測數(shù)據(jù)匯聚后分類處理,處理后的數(shù)據(jù)通過并行存儲模塊生成被映射文件對象,生成的文件按照同系統(tǒng)、同屬性或側重點進行分組,形成具有某種屬性的數(shù)據(jù)分組,此過程為試驗數(shù)據(jù)抽象提取[3]。在此用戶可根據(jù)項目側重、階段側重的實際情況,自定義參數(shù)可視化的參數(shù)分組和控件分布。

      試驗數(shù)據(jù)抽象提取方法生成的外部文件可編輯,內部數(shù)據(jù)格式統(tǒng)一,為后續(xù)軟件的通用化設計提供數(shù)據(jù)支撐。

      2)數(shù)據(jù)處理部分

      海量數(shù)據(jù)處理功能的實現(xiàn)和穩(wěn)定可靠運行,必須通過多線程協(xié)調工作完成,主要包括主線程、數(shù)據(jù)處理線程、數(shù)據(jù)加載線程及數(shù)據(jù)可視化線程。其中主線程主要完成界面響應、邏輯控制和計算;數(shù)據(jù)處理線程,完成數(shù)據(jù)的接收、響應及處理,處理包括解密處理及轉換處理;數(shù)據(jù)加載線程完成數(shù)據(jù)讀取到內存,可通過普通方式及內存映射方式。線程的創(chuàng)建通過AfxBeginThread函數(shù)完成,線程的終止主要由主線程傳遞標識,通過線程函數(shù)自動返回的方式實現(xiàn)。由于線程的運行是由操作系統(tǒng)按時序自動調度完成的,當出現(xiàn)兩個線程同時對公共數(shù)據(jù)或獨占性資源進行操作,利用關鍵代碼段(臨界區(qū))[4]實現(xiàn)線程同步,在多線程共享變量時,用來安全讀寫共享變量。

      (1)關鍵代碼段(臨界區(qū))工作在用戶方式下。

      (2)關鍵代碼段(臨界區(qū))是指一個小代碼段,在代碼能夠執(zhí)行前,它必須獨占對某些資源的訪問權。

      用InitializeCriticalSection來初始化臨界區(qū),最后用DeleteCriticalSection來釋放臨界區(qū)資源。在線程中用EnterCriticalSection和LeaveCriticalSection來分別進入和離開臨界區(qū)。

      3)文件處理部分

      文件處理采用內存映射技術。首先通過CreateFile()函數(shù)創(chuàng)建或打開文件內核對象,該對象標識磁盤上將要用作內存映射的文件,用CreateFile()函數(shù)將文件映像在物理存儲的位置通告給操作系統(tǒng),映像的長度需要CreateFileMaping()函數(shù)創(chuàng)建文件內核對象時通知系統(tǒng)文件尺寸及訪問方式,并在預留的空間區(qū)域內,將文件數(shù)據(jù)作為該區(qū)域的物理存儲器進行提交;由MapViewOfFile()函數(shù)通過系統(tǒng)管理將文件對象的全部或部分映射到相應的進程地址空間,對映射文件的操作的使用和處理與普通加載到內存中的文件數(shù)據(jù)處理方式一致;完成映射后,需要清除數(shù)據(jù)和釋放使用資源,通過UnmapViewOfFile()函數(shù)完成從進程的地址空間撤銷文件的映射,通過CloseHandle()函數(shù)關閉前期創(chuàng)建的文件映射對象和文件對象[5-6]。

      受系統(tǒng)限制,系統(tǒng)進程可分配有限的虛擬地址空間,實際航行產生的數(shù)據(jù)量大于內存容量時,不能通過一次性映射方法讀取內存,因此通用數(shù)據(jù)處理軟件采取分塊映射、循環(huán)讀取、循環(huán)取消映射的方法實現(xiàn)分段讀取數(shù)據(jù)。更改后的大文件內存映射流程圖如圖3所示。

      圖3 大文件內存映射流程圖

      4)生成數(shù)據(jù)庫信息表及評估報告

      通用數(shù)據(jù)處理軟件主要采用ADO(ActiveX Data Objects,ActiveX數(shù)據(jù)對象)應用程序接口實現(xiàn)對Access數(shù)據(jù)庫的訪問控制,實現(xiàn)用戶管理、系統(tǒng)設置及故障碼管理功能。具有使用方便、速度快、內存支出少及磁盤遺跡小的特點[7]。它包含了3個主要對象:Recordset(數(shù)據(jù)集)、Connection(連接) 和Command(命令)。本文主要使用_ConnectionPtr和_RecordsetPtr接口,實現(xiàn)數(shù)據(jù)庫相關操作。

      通用數(shù)據(jù)處理軟件可根據(jù)航行器高層協(xié)議生成航行過程中某組部件專項信息,此類信息數(shù)據(jù)量大,采樣頻率高,采用數(shù)據(jù)庫技術可加快讀寫速率。航行數(shù)據(jù)分析完成后,通用數(shù)據(jù)處理軟件最終結合人工評判生成評估報表信息, 如表1所示。

      表1 動態(tài)生成主要數(shù)據(jù)庫表

      5)針對某一型產品形成幫助文檔。

      3 試驗結果分析

      在水下航行器試驗任務測試過程中,需要處理的各類數(shù)據(jù)通常具有不同的數(shù)據(jù)組織方式,但同時又具備一定的共性或相似性,此為軟件的輸入。通用數(shù)據(jù)處理軟件采用VC++語言,與NI Measurement Studio工具套件和Iocomp工業(yè)4.0工控圖標控件庫聯(lián)合開發(fā),實現(xiàn)通用數(shù)據(jù)處理軟件的通用性。

      數(shù)據(jù)處理程序提供預處理[8]功能,包括野點修正、插補漏值、趨勢項消除等,供數(shù)據(jù)分析人員選擇。圖4為根據(jù)水下航行器設計任務定義的系統(tǒng)姿態(tài)數(shù)據(jù)特征值分析,圖5為自定義群組特征值聯(lián)合分析。通過多種表現(xiàn)形式形成某型航行器通用數(shù)據(jù)處理軟件的輸出結果,輸出表現(xiàn)形式為曲線、物理量、文本文件及綜合信息表以及結合人工判讀得出的航行器性能評估報告,豐富的信息量給航行器的性能評估提供有效的數(shù)據(jù)支撐。

      圖4 系統(tǒng)姿態(tài)數(shù)據(jù)特征值分析

      圖5 自定義群組特征值聯(lián)合分析

      4 結束語

      水下航行器通用數(shù)據(jù)處理軟件適應目前水下航行器信息化發(fā)展需求,可實現(xiàn)多型水下航行器各系統(tǒng)關鍵參數(shù)的可視化顯示、綜合數(shù)據(jù)分析和航行綜合性能評估。通用數(shù)據(jù)處理軟件采用“模塊功能黑盒”程序思想[8-9],通過自適應處理算法、內存映射技術,實現(xiàn)大容量(超過4G)甚至海量數(shù)據(jù)的處理及可靠性分析,較大程度縮短了各型產品數(shù)據(jù)處理軟件的開發(fā)周期。上百余次試驗證明,軟件運行穩(wěn)定、可靠,能適應多型航行器試后數(shù)據(jù)處理。

      此外,隨著各種水下無人航行器逐漸成為新型的水下作戰(zhàn)平臺,水下航行器的信息化水平將越來越高,自適應能力將異常強大,因此對通用數(shù)據(jù)處理軟件提出更高要求,以下兩點值得考慮和研究:

      1)能夠對航行器復雜系統(tǒng)實現(xiàn)快速數(shù)據(jù)處理,使得某個子系統(tǒng)或者模塊出現(xiàn)故障時能夠及時得到快速定位和正確處理[9];調度接口的程序對硬件的依賴性持續(xù)降低,提高模塊封裝性。

      2)軟件執(zhí)行效率問題。待處理的內測數(shù)據(jù)容量越大,結構越復雜,輸出類型越多則耗時越長。因此軟件的執(zhí)行效率問題必須考慮,可通過優(yōu)化數(shù)據(jù)結構、改良程序的控制結構以及數(shù)據(jù)策略等手段實現(xiàn)。

      猜你喜歡
      線程航行數(shù)據(jù)處理
      認知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補與極大似然估計法*
      心理學報(2022年4期)2022-04-12 07:38:02
      ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
      水泵技術(2021年3期)2021-08-14 02:09:20
      到慧骃國的航行
      小舟在河上航行
      中學生英語(2017年6期)2017-07-31 21:28:55
      航行
      青年歌聲(2017年6期)2017-03-13 00:57:56
      淺談linux多線程協(xié)作
      基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應用
      基于POS AV610與PPP的車輛導航數(shù)據(jù)處理
      Linux線程實現(xiàn)技術研究
      么移動中間件線程池并發(fā)機制優(yōu)化改進
      平湖市| 上犹县| 泸西县| 灌南县| 古丈县| 淮北市| 黔江区| 喀什市| 甘德县| 元阳县| 石首市| 高州市| 开江县| 沽源县| 临江市| 闸北区| 凉城县| 汾西县| 涿鹿县| 朝阳区| 娱乐| 丰宁| 军事| 镇巴县| 昌宁县| 团风县| 山东省| 桦川县| 芷江| 剑河县| 修武县| 元氏县| 哈尔滨市| 苗栗县| 波密县| 宾阳县| 保德县| 栖霞市| 临城县| 廉江市| 新疆|