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

        ?

        基于XNA的絞吸式挖泥船操作過程建模與仿真

        2016-09-10 08:23:45鄭慶云徐立群魏長赟楊金寶
        計算機與數(shù)字工程 2016年8期
        關鍵詞:模型

        鄭慶云 徐立群 魏長赟 楊金寶

        (1.河海大學機電工程學院 常州 213022)(2.疏浚技術教育部工程研究中心 常州 213022)

        ?

        基于XNA的絞吸式挖泥船操作過程建模與仿真

        鄭慶云1,2徐立群1,2魏長赟1,2楊金寶1,2

        (1.河海大學機電工程學院常州213022)(2.疏浚技術教育部工程研究中心常州213022)

        隨著國際航運業(yè)和疏浚工程的不斷發(fā)展,對于絞吸式挖泥船的操作人員操控挖泥船技術的要求也越來越高,因此需要通過仿真系統(tǒng)來培訓疏浚人員的操作技能。論文建立了基于XNA的絞吸式挖泥船運動仿真模型,從而實現(xiàn)了虛擬操作仿真。首先,利用3DS Max對絞吸式挖泥船進行建模并進行骨骼畫分,在Visual Studio環(huán)境中建立起運動模型的關聯(lián),最后在XNA中使用高級著色語言(HLSL)繪制動態(tài)海洋場景。結果表明XNA可以高效地實現(xiàn)場景渲染與絞吸式挖泥船的實時虛擬控制,達到比較理想的仿真結果。

        仿真; XNA; HLSL; 實時控制

        Class NumberTP399

        1 引言

        我國江河湖庫眾多,泥沙淤積嚴重[1]。在清理河道港口時,絞吸式挖泥船是最常用的疏浚設備。國內外每年都要培訓一大批疏浚操作人員,使用真船培訓具有諸多不便,所以通過疏浚仿真系統(tǒng)來進行疏浚作業(yè)的培訓,教學以及產(chǎn)量預測[2]具有良好的前景。

        在絞吸式挖泥船虛擬仿真的研究領域中,李俊賢等[3]利用UDK實現(xiàn)了絞吸式挖泥船的操作仿真,場景效果逼真,卻實現(xiàn)不了與下位機PLC的通訊,所以只能通過PC界面進行操作仿真,實現(xiàn)不了復雜的人機交互。王伯勇,倪福生等[4]利用OpenGL對疏浚作業(yè)中挖泥船進行仿真,可視化效果較好,但是算法運算量較大,在實際運用中對圖形的硬件要求較高。

        針對以上仿真軟件存在的不足,本文采用基于Visual Studio開發(fā)環(huán)境的XNA對絞吸式挖泥船進行操作仿真。XNA是Microsoft Visual Studio集成開發(fā)環(huán)境(IDE)的一個擴展[5]。它使用XNA進行仿真開發(fā)時,采用的是C#編程語言,所以可以實現(xiàn)與下位機PLC的實時通訊,最終可以實現(xiàn)可以使用控制臺對絞吸式挖泥船進行操作仿真,真正的將“虛擬”轉換為“現(xiàn)實”,提高仿真的可觀性與真實性。

        2 絞吸式挖泥船建模

        本文以“天鯨號”絞吸式挖泥船為仿真對象,“天鯨號”實際工作場景如圖1所示?!疤祧L號”船體復雜,機件較多,在XNA中使用現(xiàn)有的程序代碼是難以完成三維模型的建模。所以需要將XNA與三維建模軟件結合起來。3DS Max是目前三維建模使用較為廣泛的建模軟件,基于XNA對3DS Max的模型文件有著很好的支持[6],本文采用3DS Max對絞吸式挖泥船進行建模,模型如圖2所示。

        圖1 “天鯨號”絞吸式挖泥船

        圖2 絞吸式挖泥船模型

        2.1挖泥船骨骼的畫分

        骨骼動畫主要是通過控制骨骼動作來實現(xiàn)對整個模型的運動,就像人的行走,吃飯等動作都是通過我們身體內骨骼的協(xié)調運動來實現(xiàn)的。骨骼動畫可以對任意骨骼進行運動控制,靈活方便。挖泥船的骨骼模型如圖3所示。

        2.2絞吸式挖泥船的工作原理

        在進行疏浚作業(yè)時,先將工作樁打入海底,隨著錨桿的伸展,左右兩側的錨拋入土中,橋架慢慢下移到疏浚區(qū),然后絞刀頭高速旋轉破土后,通過離心式水下泥泵的作用,將松散的泥沙通過排泥管進行輸送。橋架上附有纜繩,纜繩穿過定位錨與船上的纜車相連,然后通過船上纜車收緊纜繩來實現(xiàn)挖泥船的左右橫擺絞吸泥水,當完成某片區(qū)域的疏浚后,挖泥船需要向前移動,工作樁一直插入在海底,工作樁與船體之間通過一個液壓裝置相連,通過液壓裝置的推動,使得挖泥船慢慢前進,當液壓頂?shù)侥┒藭r,插入定位樁,工作樁拔出并復位,再次插入海底,拔出定位樁,這樣就可以實現(xiàn)挖泥船不斷的作業(yè)[7]。

        圖3 絞吸式挖泥船骨骼模型

        3 絞吸式挖泥船運動模型的實現(xiàn)

        根據(jù)絞吸式挖泥船的工作原理,本文在仿真過程中主要實現(xiàn)臺車橫移,鋼樁起降,橋架的起降,絞刀頭旋轉,移錨等動作。

        3.1模型的導入

        XNA中支持的模型的格式比較少,一般支持.X和.FBX兩種格式。本在在3DS Max中建好挖泥船模型后導成.FBX形式,.FBX文件格式中不僅包含了挖泥船的骨骼,貼圖,模型的拓撲信息和幾何結構,還有場景中的攝像機角度,光照等都會被保存[8]。3DS Max中構建的模型不能直接導成.X格式的文件,需要通過插件PandaDirectXMaxExporter進行導出,在使用過程中容易丟失貼圖文件,所以本文將挖泥船模型導成.FBX格式后加載到XNA中。

        dredgerModel= Content.Load〈Model〉(@"Modelsdredger"); //導入模型

        boneTransforms = new Matrix[dredgerModel.Bones.Count];

        dredgerModel.CopyAbsoluteBoneTransformsTo(boneTransforms);

        //保存模型的初始骨骼矩陣

        3.2模型的可視化

        在導入模型之后,需要通過調整取景變換矩陣和投影變換矩陣來將挖泥顯示在屏幕中。如果把挖泥船模型顯示在電腦屏幕上想象成一個攝像的過程,那么觀察變換就像攝影中的攝像機如何拍攝的[9]。在明確了攝像機的位置和觀察目標后,將挖泥船的三維模型投影到屏幕中的過程則是投影變換。取景變換矩陣和投影變換矩陣設置代碼如下:

        be.View=camera.view; //設置取景矩陣

        be.Projection=camera.projection; //設置投影矩陣

        最后,挖泥船模型在XNA中顯示如圖4所示。

        圖4 XNA運行窗口中的挖泥船模型

        3.3挖泥船模型的動作實現(xiàn)

        3.3.1絞刀頭運動與持續(xù)旋轉

        在疏浚作業(yè)的過程中,絞刀頭不僅需要實現(xiàn)自身的高速旋轉,還需要跟隨橋架一起下移至水底。由于部件相互獨立,所以使絞刀頭完成這種復合運動需要實現(xiàn)部件的關聯(lián)。在XNA中,通過子父階層關系來實現(xiàn)絞刀頭的運動。存在子父關系的骨骼需要在3DS Max中進行鏈接與綁定,設定好父級對象,reamer為絞刀初始矩陣,reamerangle為絞刀旋轉變換矩陣,bridgeangle為橋架運動變換矩陣,然后在XNA中編寫代碼實現(xiàn):

        reamerbone.Transform =reamer * reamerangle * bridgeangle; //絞刀運動

        要實現(xiàn)挖泥船與人的“交互”,就要使程序運行期間不時的響應用戶的輸入,然后做出相應的運動變化。XNA框架負責處理鍵盤事件,本文在Draw方法中調用Keyboard類的靜態(tài)方法GetState()就可以得到鍵盤的狀態(tài)[10]。這樣,按下鍵盤某鍵時就能實現(xiàn)對應的挖泥船動作。但是,松開某鍵時,對應的運動又將停止,要實現(xiàn)絞刀頭的持續(xù)旋轉,則需要在dredgerGame中添加一個bool型變量cutterHeadState_1并賦值,并使用for循環(huán)進行連續(xù)給絞刀旋轉變量賦值,最終達到連續(xù)旋轉,具體實現(xiàn)如下:

        if (newstate.IsKeyDown(Keys.C))

        {

        cutterHeadState_1 = true; //按下C鍵后賦值為真

        if (cutterHeadState_1 == true)

        {

        for (int i = 1; i < 1000; i++)

        {

        reamervalue += 3f; //利用for循環(huán)實現(xiàn)絞刀的連續(xù)旋轉

        }

        }

        }

        3.3.2挖泥船的橫移運動與停止

        當絞刀下放到疏浚區(qū)域并進行絞吸時,需要通過挖泥船的左右橫移來實現(xiàn)不同區(qū)域的作業(yè)。XNA中通過世界變換矩陣中的旋轉變換矩陣來實現(xiàn)挖泥船的左右橫移。一般在疏浚作業(yè)中,疏浚區(qū)域為80°的扇形,所以在超過該區(qū)域時需要停止左右橫移。本文中,通過靜態(tài)成員函數(shù)CreateRotation()來實現(xiàn)橫移運動,同時還要圍繞工作樁進行運動,所以在3DS Max中需要綁定好階層關系,通過if判斷語句來實現(xiàn)超過疏浚區(qū)域時作業(yè)的停止,具體實現(xiàn)代碼如下所示:

        Matrixdredgerangle = Matrix.CreateRotationZ(dredgervalue); //挖泥船橫移變換矩陣

        3.3.3鋼樁上下移動與拋錨運動

        當船只到達疏浚區(qū)域時,需打下工作樁進行固定,打下工作樁則是一種平移運動,通過XNA中靜態(tài)成員函數(shù)CreateTranslation()來工作樁進行上移與下移,同時用if判斷語句限定移動量。拋錨運動則是錨桿的伸展(繞船體的旋轉運動)與錨的平移運動的疊加,分別調用對應的函數(shù)進行實現(xiàn)。

        3.3.4動作的“一鍵復位”

        當挖泥船結束疏浚作業(yè)時,由于對應操作的按鈕較多,為減少操作失誤,想要實現(xiàn)一鍵復原。在dredgerGame添加一個bool類型變量,利用for循環(huán)執(zhí)行相應動作的反運動,最終達到精確復位,提高了挖泥船的可操作性。

        4 動態(tài)海洋與天空的實現(xiàn)

        每個游戲若想完整都需要一個場景,挖泥船在江河湖泊中工作,所以需要構建動態(tài)海洋與天空。在繪制動態(tài)海洋與天空時需要使用HLSL(High Level Shader Language)高級著色語言[11]。與C語言和C#語言相似但是又增加了一些數(shù)據(jù)類型,包括標量類型,對象類型等[12]。Direct3D中提供了一個Effect類,在使用Effect這個類進行處理HLSL語句之前,需要編寫擴展名為fx的文件。Effect類首先保存頂點著色和像素著色的HLSL語句的fx文件轉換為能在圖形卡的GPU中運行的代碼,然后GPU使用這些代碼完成3D渲染[13]。所以在渲染動態(tài)海洋和天空之前,首先編寫OceanShader.fx和Skyshader.fx文件,并將這兩個文件添加到素材管道文件夾Content目錄下。隨后創(chuàng)建oceanEffect和skyEffect并進行實例化,具體代碼實現(xiàn)如下:

        oceanEffect=Content.Load〈Effect〉(“OceanShader.fx”);

        skyEffect=Content.Load〈Effect〉(“skyShader.fx”);

        最后在Draw方法中進行渲染。最終實現(xiàn)的場景如圖5所示。

        圖5 絞吸式挖泥船工作圖

        5 結語

        本文利用XNA與3DS Max的有機結合,實現(xiàn)了絞吸式挖泥船的動作仿真,并且利用HLSL高級著色語言繪制了動態(tài)海洋與天空,達到了很好的仿真效果。論文的結果表明XNA這一三維游戲開發(fā)平臺是完全適用于絞吸式挖泥船的操作仿真,并且也可以實現(xiàn)靈敏的人機“交互”,為自主研發(fā)國內仿真系統(tǒng)提供了強大的支持,并且將XNA這一仿真平臺應用于航空航天,軍事等領域,具有不錯的前景。

        [1] 丁宏鍇,倪福生.絞吸式挖泥船疏浚動態(tài)特性與仿真系統(tǒng)設計[J].河海大學學報,2002,30(6):1-3.

        DING Hongkai, NI Fusheng. Cutter Suction Dredger Dredging System Design and Simulation of Dynamic Characteristics[J]. Journal of Hehai University(Natural Sciences),2002,30(6):1-3.

        [2] IHC-Systens & Miedema, S. A. CSDS Cutter SuctionDredge Simulator[J]. Delft,1994.

        [3] 李俊賢,倪福生.基于UDK的絞吸式挖泥船操作仿真[J].計算機與現(xiàn)代化,2014(1):55-57.

        LI Junxian, NI Fusheng. Operation Simulation of Cutter Suction Dredger Based on UDK[J]. Computer and Modernization,2014(1):55-57.

        [4] 王伯勇,倪福生.OpenGL在挖泥船疏浚仿真中的應用[J].江蘇船舶,2005,22(4):10-11.

        WANG Boyong, NI Fusheng. The Application of OpenGL in Dredging Simulation[J]. JIANG SU SHIP,2005,22(4):10-11.

        [5] S A Kazarlis, A G Bakirtzis, V Petridis. A Genetic Algorithm Solution to the Unit Commitment Problem[J]. Power Systems, IEEE Transactions on,1996,11(1):83-92.

        [6] 郭佳,劉春.基于XNA的3D角色骨骼蒙皮動畫[J].沈陽航空工業(yè)學院學報,2008,02:59-61,54.

        GUO Jia, LIU Chun. 3D Character Animation Skinned Based on XNA[J]. Journal of Shenyang Institute of Aeronautical Engineering,2008,02:59-61,54.

        [7] 胡知斌,薄華,戴文伯.絞吸式挖泥船仿真訓練系統(tǒng)的設計及實現(xiàn)[J].上海海事大學學報,2011,32(3):64-67.

        HU Zhibin, BO Hua, DAI Wenbo. Design and Implementation of Cutter Suction Dredger Simulation Training System[J]. Journal of Shanghai Maritime University,2011,32(3):64-67.

        [8] 羅為君.基于XNA的虛擬現(xiàn)實三維引擎設計與實現(xiàn)[D].長沙:湖南大學,2010.

        LUO Weijun. Design and Implementation of a Virtual Reality 3D Engine Based on XNA[D]. Changsha: Hunan University,2010.

        [9] 繆儒歡.基于XNA的虛擬裝配技術研究[D].大連:大連理工大學,2010.

        MIU Ruhuan. Research on Technology of Virtual Assembly Based on XNA[D]. Liaoning: Dalian University of Technology,2010.

        [10] 李新柱.基于XNA的船舶燃油凈化虛擬現(xiàn)實仿真系統(tǒng)的研究[D].大連:大連海事大學,2012.

        LI Xinzhu. Virtual Reality Simulation of the Fuel Oil Purifying System Based on the XNA[D]. Dalian: Dalian Maritime University,2012.

        [11] 肖炳輝,史文彥,董冰.基于XNA的建筑虛擬仿真平臺的研究與開發(fā)[J].東華大學學報,2011,37(4):449-451.

        XIAO Binhui, SHI Wenyan, DONG Bing. Research and development of XNA-Based Building Virtual Simulation Platform[J]. Journal of DongHua University(Natural Science),2011,37(4):449-451.

        [12] 黃進.基于XNA的游戲設計與實現(xiàn)[D].北京:北京交通大學,2011.

        HUANG Jin. Game Design and Implementation Based on XNA[D]. Beijing: Beijing Jiaotong University,2011.

        [13] 潘軍,孫少斌,林學華,等.基于XNA的人體骨骼蒙皮動畫關鍵技術研究[J].計算機時代,2013(3):13-16.

        PAN Jun, SUN Shaobin, LIN Xuehua, et al. Research of Key Technology for Human Skeleton Skinned Mesh Animation Based on XNA[J]. Computer Era,2013(3):13-16.

        Modeling and Simulation of Cutter Suction Dredger’s Operations Based on XNA
        ZHENG Qingyun1,2XU Liqun1,2WEI Changyun1,2YANG Jinbao1,2
        (1. School of Mechanical and Electrical Engineering, Hohai University, Changzhou213022)

        (2. Engineering Research Center of Dredging Technology of Ministry of Education, Changzhou213022)

        With the continuous development of international shipping and dredging, it has become more and more sophisticated for the manipulation of cutter suction dredgers. Therefore, it needs to train the skills of dredgers by simulation system. In this paper, the motion simulation model based on XNA is built and the virtual simulation of operations is conducted. Firstly, 3DS Max is used to build up the model of a cutter suction dredger and divide the model as different bones. Then, the association of motion model is made in the Visual Studio environment. Finally, high level shader language is used to draw dynamic ocean scene in XNA. It’s efficient to achieve the effect of scene rendering, the real-time virtual control of cutter suction dredger and the ideal simulation result by XNA, as is showed in the paper.

        simulation, XNA, HLSL, real-time control

        2016年2月3日,

        2016年3月25日

        鄭慶云,男,碩士研究生,研究方向:虛擬現(xiàn)實與計算機仿真。

        TP399

        10.3969/j.issn.1672-9722.2016.08.042

        猜你喜歡
        模型
        一半模型
        一種去中心化的域名服務本地化模型
        適用于BDS-3 PPP的隨機模型
        提煉模型 突破難點
        函數(shù)模型及應用
        p150Glued在帕金森病模型中的表達及分布
        函數(shù)模型及應用
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權M-估計的漸近分布
        3D打印中的模型分割與打包
        精品亚洲午夜久久久久| 一区二区在线观看日本免费 | 久久女人精品天堂av影院麻| 免费人成视频网站网址| 在线成人一区二区| 亚洲永久精品ww47| 久久久久久久久久免免费精品| 国产黄片一区二区三区| 精品乱色一区二区中文字幕| 久久99精品久久久久麻豆 | 中文字幕日本av网站| 女人下边被添全过视频| 亚洲国产精品特色大片观看完整版 | 人妻免费一区二区三区免费| 国产精品毛片va一区二区三区| 国产真实乱对白精彩久久老熟妇女| 色丁香色婷婷| 久久夜色精品国产噜噜噜亚洲av| 亚洲韩日av中文字幕| 久久久噜噜噜久久中文福利| 国产福利姬喷水福利在线观看| 538任你爽精品视频国产| 日本一区中文字幕在线播放| 久久久久亚洲精品无码系列| 中文在线8资源库| 狠狠狠色丁香婷婷综合激情| 久久中文字幕久久久久91| 亚洲性感毛片在线视频| 国产精品videossex久久发布| 三上悠亚av影院在线看| 永久免费毛片在线播放| 亚洲av毛片在线网站| 无遮挡h肉动漫在线观看| 中文亚洲爆乳av无码专区| 国产成人精品一区二三区在线观看 | 日韩精品一区二区三区免费观影| 中文字幕午夜精品久久久| 国产亚洲2021成人乱码| 国产主播在线 | 中文| 久久精品国产亚洲av豆腐| 欧美大片aaaaa免费观看|