亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于差分GPS定位的深海采礦車運動軌跡監(jiān)控軟件開發(fā)*

        2017-12-29 06:15:29
        關(guān)鍵詞:車體差分基站

        侯 奔

        (長沙礦冶研究院有限責(zé)任公司深海礦產(chǎn)資源開發(fā)利用研究所,湖南 長沙 410012)

        基于差分GPS定位的深海采礦車運動軌跡監(jiān)控軟件開發(fā)*

        侯 奔

        (長沙礦冶研究院有限責(zé)任公司深海礦產(chǎn)資源開發(fā)利用研究所,湖南 長沙410012)

        深海采礦車的行進軌跡對于采集效率非常重要,而現(xiàn)有的商業(yè)組態(tài)軟件難以滿足對采礦車軌跡監(jiān)控的要求。針對這種現(xiàn)狀,提出以VisualC++軟件為平臺、基于差分GPS定位的深海采礦車運動軌跡監(jiān)控軟件。根據(jù)需求分析,設(shè)計了實時通信、數(shù)據(jù)處理、圖形顯示和數(shù)據(jù)庫四個軟件模塊。根據(jù)實驗結(jié)果和保存的數(shù)據(jù),對差分GPS定位的精度進行了分析。運行結(jié)果表明,該軟件實現(xiàn)了設(shè)計目標且具有很強的適應(yīng)性。

        差分GPS;軌跡監(jiān)控;OPC;ADO

        0 引言

        深海采礦車是一種履帶式海底作業(yè)車輛,一般采用車體自行走方式采礦。車體上部用電纜和輸送管道與海面上的船體相連接,船體為車體供電產(chǎn)生動力,因此車體作業(yè)的區(qū)域和船體之間有相應(yīng)的約束關(guān)系。為了保證采集效率和采集系統(tǒng)的安全運行,深海采礦車的采集作業(yè)必須在規(guī)定的海域進行。因此,務(wù)必對采礦車的運動軌跡進行實時監(jiān)控,并隨時做相應(yīng)調(diào)整。同時,運動軌跡監(jiān)控軟件對于深入研究采礦車本身的運動和控制模型提供了理論和實驗依據(jù),對于后續(xù)的采礦車按指定路徑運行的自動控制算法的研究同樣具有指導(dǎo)意義。

        1 差分GPS定位系統(tǒng)整體設(shè)計

        監(jiān)控系統(tǒng)由GPS接收機、Opto22控制器和PC組成,如圖1所示。

        圖1 差分GPS定位系統(tǒng)整體組成

        本研究所用的海洋采礦試驗場地為長40 m,寬10 m,深5 m的水池,普通的GSP定位誤差為10 m以內(nèi),顯然不符合定位精度要求。本文采用差分定位的方式獲取更高的精度,由兩臺GPS組成差分定位系統(tǒng),一臺基站和一臺移動站。差分信號由基站輸出到移動站,移動站根據(jù)差分信號進行定位修正,使定位精度達到厘米級。使用時基站固定不動,移動站安裝于運動體上。

        Opto22控制器裝在車體中,用于采集車體各種傳感器的模擬信號和數(shù)字信號,同時接收GPS移動站的數(shù)據(jù)輸出。

        PC是運動軌跡監(jiān)控軟件的載體,與Opto22控制器處于同一局域網(wǎng)絡(luò)中,對Opto22的相關(guān)變量進行處理。監(jiān)控軟件對車體的運動軌跡進行實時的圖形顯示、計算車體的速度等參數(shù),并對所有運動參數(shù)進行保存,以便日后分析。

        2 監(jiān)控平臺軟件設(shè)計

        運動軌跡監(jiān)控軟件與Opto22控制器實時通信,接收其中需要進行顯示和進一步處理的變量。對從控制器中獲取的變量進行分析計算,將車體的平面直角坐標運動軌跡以圖形的方式實時刷新顯示;對重要數(shù)據(jù)進行保存,以供理論分析所用。綜上所述,監(jiān)控軟件由實時通信、數(shù)據(jù)處理、圖形顯示和數(shù)據(jù)庫四個模塊組成。

        2.1 實時通信模塊設(shè)計

        圖2 實時通信模塊工作流程

        本模塊采用OPC接口的方式進行設(shè)計。OPC是基于微軟的COM技術(shù)實現(xiàn),被眾多PLC廠家支持的一種通用通信方式。其分為Server和Client端,Server端供應(yīng)數(shù)據(jù),Client端則使用數(shù)據(jù)。在本系統(tǒng)中,Opto22控制器就是OPC的Server端,而監(jiān)控軟件就是Client端[1-5]。實時通信模塊的工作流程如圖2所示。

        實時通信模塊的關(guān)鍵接口設(shè)計如下:

        (1) 初始化一個服務(wù)器實例

        IOPCServer

        *InstantiateServer(wchar_t ServerName[]){

        HRESULThr;

        CLSIDclsid;

        IOPCServer *opcServer;

        hr = CLSIDFromProgID(ServerName,&clsid);

        //獲取CLSID結(jié)構(gòu)

        ……

        hr = CoCreateInstance(clsid,

        NULL,CLSCTX_LOCAL_SERVER,IID_IOPCServer,(void **)&opcServer);

        //返回服務(wù)器實例

        ……

        }

        本監(jiān)控軟件的服務(wù)端是Opto22控制器,因此ServerName這個參數(shù)填寫“Opto22.OpcServer.2”,調(diào)用后返回一個IOPCServer類型的指針,隨后針對數(shù)據(jù)組的操作都在這個指針上進行。

        (2) 添加一個數(shù)據(jù)組

        int AddTheGroup(IOPCServer* pIOPCServer,

        IOPCItemMgt* &pIOPCItemMgt,wchar_t

        *pGrpName,OPCHANDLE& hServerGroup){

        ……

        HRESULThr =

        pIOPCServer->AddGroup(……)

        //添加數(shù)據(jù)組

        ……

        }

        pIOPCServer參數(shù)填入初始化服務(wù)器實例得到的IOPCServer指針參數(shù),pIOPCItemMgt是一個返回的指向數(shù)據(jù)組的指針參數(shù),針對數(shù)據(jù)組的操作都針對這個指針進行。pGrpName可以傳入任何名字,用來表示這個組。

        (3)添加數(shù)據(jù)項

        int AddTheItem(IOPCItemMgt* pIOPCItemMgt,

        int numItems,OPCITEMDEF *opcItems,

        OPCHANDLE *hServerItems){

        OPCITEMRESULT*pAddResult=NULL;

        HRESULT*pErrors = NULL;

        HRESULThr =

        pIOPCItemMgt->AddItems(numItems,

        opcItems,&pAddResult,&pErrors);

        //添加數(shù)據(jù)項

        ……

        }

        pIOPCItemMgt是添加數(shù)據(jù)組接口得到的指針,opcItems是實際需要添加到組中的數(shù)據(jù)項,numItems是數(shù)據(jù)項的個數(shù)。

        (4)讀取數(shù)據(jù)接口

        int ReadItems(IUnknown* pGroupIUnknown,

        int num,OPCItems *pOPCItems)

        pGroupIUnknown是添加數(shù)據(jù)組接口得到的指針,pOPCItems指向的數(shù)組用來保存獲取的數(shù)據(jù),num是數(shù)組長度。

        (5)寫入數(shù)據(jù)接口

        int WriteItem(IUnknown* pGroupIUnknown,

        OPCHANDLEhServerItem,VARIANT& varValue)

        pGroupIUnknown是添加數(shù)據(jù)組接口得到的指針,hServerItem是添加數(shù)據(jù)項返回的句柄,varValue用來容納需要寫入Opto22控制器的具體數(shù)據(jù)。

        2.2 數(shù)據(jù)處理模塊設(shè)計

        本模塊從實時通信模塊中獲取的數(shù)據(jù)分為顯示類和計算類兩種數(shù)據(jù),顯示類只需在軟件上簡單顯示車體各類傳感器信號、各類開關(guān)量檢測信號等信息;計算類則需進一步處理如車體的經(jīng)度、緯度、時間數(shù)據(jù),并從這些數(shù)據(jù)中算出車體當前相對于GPS基站的平面坐標、車體的運動速度等參數(shù)。

        移動站的數(shù)據(jù)輸出格式為GPGGA語句,格式如下:

        $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx

        其中幾個重要字段含義如表1所示。

        表1 GPGGA語句各字段含義

        從移動站GPS數(shù)據(jù)中得到的經(jīng)緯度是WGS-84坐標,屬于大地坐標系。在實際的定位應(yīng)用中,通常需要將WGS-84坐標轉(zhuǎn)換為高斯平面直角坐標系統(tǒng)。高斯坐標適合于大區(qū)域的展開,但是運算復(fù)雜;而采礦車通常只在較小范圍內(nèi)運動,運動的區(qū)域可以近似為一個平面,因此宜采用一種較簡單的算法。本文定義GPS基站所處的位置作為直角坐標系的原點,X軸正方向定義沿緯度線圈向東,Y軸正方向定義經(jīng)度線圈向北。則移動站所處位置相對于基站的平面坐標(X,Y)計算方法[6-7]如式(1)~式(6)所示。

        (1)

        (2)

        (3)

        (4)

        (5)

        Y=Xo×Log

        (6)

        式中,a為地球橢球長半軸;b為地球橢球短半軸;Lato為原點的緯度;Xo、Yo為原點的直角坐標;xA、yA為移動站沿緯線與過原點之經(jīng)線交點的直角坐標;Log為過原點的緯線圈與移動站沿經(jīng)線與之交點的經(jīng)度差。

        車體的運動速度計算如式(7)所示:

        (7)

        其中X1、X2、Y1、Y2為移動站相鄰兩點的X,Y直角坐標。

        本模塊計算直角坐標的接口設(shè)計如下:

        double calc_xy_log(double log1,double lat1,double

        log2,double lat2,double *x,double *y){

        基站直角坐標計算

        移動站直角坐標計算

        *x=移動站X坐標

        *y=移動站Y坐標

        }

        其中,log1為GPS基站的經(jīng)度;lat1為GPS基站的緯度;log2為GPS移動站的經(jīng)度;lat2為GPS移動站的緯度;x為計算得出的移動站X坐標;y為計算得出的移動站Y坐標。

        2.3 圖形顯示模塊設(shè)計

        在計算處理模塊得出車體的(X,Y)坐標后,需要以圖形的形式進行實時顯示,本模塊主要的技術(shù)難點在于以下幾點:需要高速、實時顯示,同時要避免圖形的閃爍;繪圖效率要高,避免影響其他模塊工作;需要大數(shù)據(jù)量的保存,確保實驗中的每個軌跡點都有顯示。

        根據(jù)以上要求,本模塊采用基于繼承的方式繪圖。原理是從CStatic類繼承出一個自定義的圖像類,在該類中進行數(shù)據(jù)的保存和繪制[8-9]。通過雙緩存的機制,提高繪圖的效率;重寫本類的OnPaint接口[10],解決圖形的閃爍問題;定義出適當?shù)臄?shù)據(jù)結(jié)構(gòu),保證每個運動軌跡點都能繪制出來。

        該類的關(guān)鍵設(shè)計如下:

        class Trace : public CStatic{

        (Construction)

        public:

        CurveDevice(CWnd * parent,CRect

        &rectBorder,int type);

        void m_LoadData

        (vector&rec);

        virtual ~CurveDevice();

        //加載所有數(shù)據(jù)

        private:

        vectorm_VecRecord;

        //存儲所有的運動軌跡點

        DWORDm_RecordStartPos;

        //數(shù)組的當前起始位置

        void Draw_XY(void);

        //繪制X-Y直角坐標軌跡圖

        };

        本類中兩個結(jié)構(gòu)體Coordinate、 CoordinateFloat分別是屏幕像素點和GPS移動站的(X,Y)坐標。將GPS坐標對應(yīng)于屏幕的像素點通過m_LoadData接口完成。

        void CurveDevice::CD_LoadData

        (vector&rec){

        int i;

        Coordinate Coordinate_data;

        for (i=0; i

        {

        (坐標變換公式,代碼略)

        }

        Draw_XY();

        //繪制出軌跡圖

        }

        如果在窗口上直接繪圖,則會不斷產(chǎn)生WM_PAINT消息,導(dǎo)致閃爍的現(xiàn)象。本模塊采用雙緩存的方式繪圖,原理是在內(nèi)存位圖中繪制圖形,然后一次性粘貼到需要顯示的窗口,其接口設(shè)計如下:

        void Draw_XY(void){

        CBitmap bmp;

        //內(nèi)存中承載臨時圖象的位圖

        dcMem.CreateCompatibleDC(pDC);

        //創(chuàng)建兼容內(nèi)存DC

        //創(chuàng)建兼容位圖

        bmp.CreateCompatibleBitmap(&dcMem,rect.Width(),rect.Height());

        ……

        pDC->BitBlt(0,0,rect.Width(),rect.Height(),&d

        cMem,0,0,SRCCOPY);

        //將內(nèi)存DC上的圖象拷貝到前臺

        }

        2.4 數(shù)據(jù)庫模塊設(shè)計

        在計算處理模塊得出結(jié)果后,同時要將數(shù)據(jù)保存到數(shù)據(jù)庫中,以便試驗后進行理論分析。本文采用ACCESS數(shù)據(jù)庫完成,其優(yōu)點是小巧、速度快且安裝方便,作為Office辦公軟件的一部分,在大多數(shù)計算機中都有安裝。本監(jiān)控軟件的數(shù)據(jù)庫表設(shè)計如表2所示。

        表2 數(shù)據(jù)庫表設(shè)計

        數(shù)據(jù)庫的操作接口有ODBC、DAO和ADO幾種,其中ADO[11-12]是速度最快的一種方式,滿足本系統(tǒng)的快速處理需求。使用ADO之前需要引入系統(tǒng)的ADO動態(tài)庫,在stdafx.h中加入如下代碼:

        #import "C:Program FilesCommon FilesSystem

        adomsado15.dll"no_namespace

        rename("EOF","rsEOF")

        關(guān)鍵接口設(shè)計如下:

        (1)數(shù)據(jù)庫連接

        BOOLADO_GetConn(_ConnectionPtr &pConn){

        CString strSRC="Provider=Microsoft.Jet.OLEDB.4.0;

        Data Source=";

        ……

        strSRC += "\vehicle.mdb";

        //數(shù)據(jù)庫名稱

        ……

        pConn->Open(……)

        }

        (2)數(shù)據(jù)庫寫入

        int ADO_AddRecord

        (_ConnectionPtr pConn,_RecordsetPtr pRst,void *DataBuf,int FileType,int flag){

        ADO_GetRecordSet(pConn,pRst,FileType)

        //獲取記錄集

        pRst->AddNew();

        pRst->PutCollect("Time",(_variant_t)str);

        ……

        }

        3 運行結(jié)果

        3.1 定點定位實驗

        根據(jù)GPS信號好壞進行兩次長時間定點運行實驗,每次運行6 h?;疚恢貌蛔儯苿诱咎幱诨緰|北角1.4 m處,手工測量沿緯線距離基站約1.05 m,沿經(jīng)線距離基站約0.95 m。作為動態(tài)定位實驗的基礎(chǔ),定點實驗的目的在于檢測差分GPS定位的實際精度。

        (1) GPS信號無遮擋

        GPS信號無遮擋,實驗結(jié)果如表3所示,軌跡點分布如圖3所示。

        表3 移動站直角坐標

        (2)GPS信號有遮擋

        GPS信號不能持續(xù)良好,有時出現(xiàn)遮擋情況,實驗結(jié)果如表4所示。軌跡點分布如圖4所示。

        表4 移動站直角坐標

        (3)移動站軌跡

        圖3 實驗1軌跡圖

        圖4 實驗2軌跡圖

        表3、表4的極值數(shù)據(jù)是原始數(shù)據(jù)的統(tǒng)計值,實驗的原始數(shù)據(jù)記錄在本軟件的數(shù)據(jù)庫中。

        3.2 采礦車運動定位實驗

        在實驗水池中進行采礦車的行駛實驗,在監(jiān)控軟件中得到實際運動軌跡如圖5所示,圖中曲線代表車體運動軌跡。

        圖5 采礦車運動軌跡界面

        實驗結(jié)果表明,差分GPS的定位精度與信號強度直接相關(guān),不能出現(xiàn)遮擋的情況,否則將出現(xiàn)較大的誤差。因此在實際使用中,必須再引入其他輔助定位手段或一些處理算法來保證定位的可信度,這也是后續(xù)研究的重點內(nèi)容。

        4 結(jié)論

        本文介紹了基于差分GPS定位的深海采礦車運動軌跡監(jiān)控軟件開發(fā),在Vsiual C++軟件平臺上,根據(jù)需求實現(xiàn)了實時通信、計算處理、圖形顯示和數(shù)據(jù)庫保存四個模塊。在作者單位的海洋采礦實驗場地的運行結(jié)果表明,軟件實現(xiàn)了運動軌跡跟蹤的功能,完成了車體控制器變量的監(jiān)控。

        在實際的深海采礦中,定位方式會發(fā)生改變,將由聲學(xué)定位和慣導(dǎo)結(jié)合的方式代替GPS。本監(jiān)控軟件采用清晰的模塊劃分,耦合程度小,由硬件變化導(dǎo)致程序改變,只需改動數(shù)據(jù)處理模塊,以適應(yīng)聲學(xué)和慣導(dǎo)的算法即可,其他模塊基本不變。

        本文的方法創(chuàng)新點在于用低成本和高精度的方案,實現(xiàn)了海洋集礦車運動軌跡的在線監(jiān)測,為集礦車在實驗階段的軌跡定位研究和控制方法研究提供了可靠的指導(dǎo),其軟件實現(xiàn)方法適用于集礦車各階段的工程應(yīng)用。

        [1] MAHMOUD M S,SABIH M,ELSHAFEI M. Using OPC technology to support the study of advanced process control[J]. ISA Transactions,2015,55:155-167.

        [2] GUERRERO L V,LPEZ V V,MEJA J E. Virtual commissioning with process simulation (tecnomatix)[J]. Computer-Aided Design and Applications,2014,11(S):11-19.

        [3] 李勤,黨選舉. 基于COM的OPC技術(shù)研究及其接口實現(xiàn)[J]. 電子技術(shù)應(yīng)用,2003,29(2):28-30.

        [4] 熊建斌,王欽若,徐維超,等. 基于OPC技術(shù)的DPS多傳感器在線實時數(shù)據(jù)的采集與濾波[J]. 計算機工程與科學(xué),2012,34(11):135-140.

        [5] 樊鐳,張?zhí)扉_,葉冬. 加熱爐溫度控制系統(tǒng)的設(shè)計[J]. 微型機與應(yīng)用,2013,32(16):85-86.

        [6] 陳紹煒,孟祥祿,任磊. 地面動態(tài)跟蹤精度試驗中的坐標系變換研究[J]. 電子設(shè)計工程,2014,22(10):144-146.

        [7] 肖體瓊,陳怡群,常春. GPS經(jīng)緯度坐標轉(zhuǎn)平面坐標的簡化計算方法及精度分析[C].2005年中國農(nóng)業(yè)工程學(xué)會學(xué)術(shù)年會,2005.

        [8] 張克涵,張呼和,顧李馮. VC++環(huán)境下的電機狀態(tài)監(jiān)測軟件設(shè)計[J]. 測控技術(shù),2012,31(2):23-26.

        [9] 王潤民,趙祥模,惠飛,等. 基于嵌入式Linux與QT的汽車虛擬儀表設(shè)計[J]. 現(xiàn)代電子技術(shù),2012,35(6):1-4.

        [10] 王玉菡,曾自強. 基于VC++6.O實現(xiàn)無閃爍連續(xù)實時曲線[J]. 重慶理工大學(xué)學(xué)報:自然科學(xué)版,2014,28(4):123-126.

        [11] 王曉玲,趙楊. VC++通過ADO訪問數(shù)據(jù)庫方法擇優(yōu)[J]. 數(shù)字技術(shù)與應(yīng)用,2012,29(4):148.

        [12] 孟培超,胡圣波,舒恒,等. 基于ADO數(shù)據(jù)庫連接池優(yōu)化策略[J]. 計算機工程與設(shè)計,2013,34(5):1706-1710.

        The monitoring software developing of moving trajectory of the ocean mining vehiclebased on differential GPS positioning

        Hou Ben

        (Laboratory of Exploitation and Utilization of Deep-sea Mineral Resourcesof Changsha Research Institute of Mining and Metallurgy Co.,LTD.,Changsha,410012,China)

        The trajectory of the deep-sea mining vehicle is very important for the acquisition efficiency. However,the existing commercial configuration software is difficult to meet the requirements of mining vehicle trajectory monitoring. Thus the monitoring software of moving trajectory of the ocean mining vehicle based on differential GPS positioning is developed based on Visual C++ platform. According to requirement analysis,real-time communication module,data processing module,graphic display module and database module are designed. According to the experimental results and the stored data,the accuracy of differential GPS positioning is analyzed. The result shows that this software achieves the designing goal and has strong adaptability.

        differential GPS; trajectory monitoring; OPC; ADO

        湖南省工業(yè)領(lǐng)域技術(shù)創(chuàng)新項目(2016GK2031)

        TP3

        A

        10.19358/j.issn.1674-7720.2017.24.004

        侯奔.基于差分GPS定位的深海采礦車運動軌跡監(jiān)控軟件開發(fā)J.微型機與應(yīng)用,2017,36(24):11-15.

        2017-06-29)

        侯奔(1980-),男,碩士,高級工程師,主要研究方向:嵌入式軟件開發(fā)。

        猜你喜歡
        車體差分基站
        數(shù)列與差分
        可惡的“偽基站”
        動車組過分相的車體最佳接地技術(shù)分析
        基于GSM基站ID的高速公路路徑識別系統(tǒng)
        小基站助力“提速降費”
        移動通信(2015年17期)2015-08-24 08:13:10
        MIG—V工作站在高速動車鋁合金車體側(cè)墻焊接中的應(yīng)用
        焊接(2015年1期)2015-07-18 11:07:33
        滲透檢測在鋁合金車體中的實際應(yīng)用
        焊接(2015年1期)2015-07-18 11:07:33
        基于差分隱私的大數(shù)據(jù)隱私保護
        基站輻射之爭亟待科學(xué)家發(fā)聲
        相對差分單項測距△DOR
        太空探索(2014年1期)2014-07-10 13:41:50
        三上悠亚久久精品| 亚洲av无一区二区三区| 无码国产精品一区二区av| 亚洲成a∨人片在无码2023| 精品少妇大屁股白浆无码| 高清亚洲成av人片乱码色午夜| 国产av一区二区亚洲精品| 久久久亚洲av成人网站 | 一本大道久久东京热无码av| 亚洲精品成AV无在线观看| 国产av精品一区二区三区不卡| av天堂精品久久综合网| 国产特级毛片aaaaaaa高清| 成人xx免费无码| 亚洲精品综合一区二区| 中文有码无码人妻在线| 亚洲精品中文字幕乱码影院| 成视频年人黄网站免费视频| 黄色视频在线免费观看| 国产成人久久精品区一区二区| 日韩精品人妻少妇一区二区| 国产亚洲成人精品久久| av免费不卡国产观看| 中年熟妇的大黑p| 成人片99久久精品国产桃花岛| 亚洲av有码精品天堂| 人妻少妇中文字幕久久 | 亚洲欧美精品伊人久久| 亚洲另在线日韩综合色| 国内精品少妇久久精品| 日韩三级一区二区不卡| 狼人香蕉香蕉在线28 - 百度| 在线精品国内视频秒播| 亚洲精品午夜精品国产| 丝袜美腿亚洲综合一区| 国产精品黄色片在线看| 桃花色综合影院| 亚洲精品中国国产嫩草影院美女| 精品奇米国产一区二区三区| 亚洲综合天堂av网站在线观看| 乱人伦中文字幕成人网站在线|