国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

虛擬維修訓練系統(tǒng)中數(shù)據(jù)庫的應(yīng)用

2010-09-25 02:57:16常高祥徐曉剛王建國
圖學學報 2010年5期
關(guān)鍵詞:結(jié)構(gòu)設(shè)計裝備數(shù)據(jù)庫

常高祥, 徐曉剛, 王建國

(1. 海軍大連艦艇學院裝備系統(tǒng)與自動化系,遼寧 大連 116018 ;2. 浙江大學CAD&CG國家重點實驗室,浙江 杭州 310058)

虛擬維修訓練系統(tǒng)中數(shù)據(jù)庫的應(yīng)用

常高祥1,2, 徐曉剛1,2, 王建國1,2

(1. 海軍大連艦艇學院裝備系統(tǒng)與自動化系,遼寧 大連 116018 ;2. 浙江大學CAD&CG國家重點實驗室,浙江 杭州 310058)

數(shù)據(jù)庫技術(shù)在虛擬維修訓練系統(tǒng)中起著重要的作用。文章以MySQL數(shù)據(jù)庫為例簡述了數(shù)據(jù)庫特點,分析了應(yīng)用數(shù)據(jù)庫的虛擬維修訓練系統(tǒng)的優(yōu)勢,介紹了虛擬維修訓練系統(tǒng)中數(shù)據(jù)庫設(shè)計的基本方法,結(jié)合Torque Game Engine三維引擎開發(fā)了具有較好可移植性的虛擬維修訓練系統(tǒng)。實驗結(jié)果表明,將數(shù)據(jù)庫技術(shù)應(yīng)用到虛擬維修訓練系統(tǒng),可以有效提高系統(tǒng)開發(fā)的效率。

計算機應(yīng)用;數(shù)據(jù)庫設(shè)計;虛擬維修;可移植性

虛擬維修(Virtual Maintenance)是以計算機技術(shù)與虛擬現(xiàn)實技術(shù)為依托,在由計算機生成的包含了產(chǎn)品數(shù)字樣機與維修人員 3D(三維)人體模型的虛擬場景中,通過驅(qū)動人體模型(包括采用人在回路的方式)來完成整個維修過程仿真的綜合性應(yīng)用技術(shù)[1]。 國內(nèi)外許多研究機構(gòu)對維修訓練系統(tǒng)進行了大量研究,如日本京都大學新加坡國立大學以及國內(nèi)的石家莊軍械工程學院[2]等。將虛擬維修技術(shù)用于維修訓練,有助于提前訓練的開始時間點,甚至在沒有實物對象時就可以開展部分的訓練工作提高訓練工作的靈活性,可以針對訓練中的關(guān)鍵點與難點合理方便地安排訓練內(nèi)容,突破了以往訓練工作中對地點、時機等條件的限制。

在虛擬維修訓練系統(tǒng)中,數(shù)據(jù)的管理及數(shù)據(jù)與系統(tǒng)的通信問題,一直是開發(fā)人員要解決的難點和重點。在虛擬維修訓練系統(tǒng)中主要通過數(shù)據(jù)庫技術(shù)以及讀取文本文件的方式來管理數(shù)據(jù),不同方法的應(yīng)用環(huán)境不同。因此,要合理選用數(shù)據(jù)管理方式才能達到最優(yōu)的效果。SQL數(shù)據(jù)庫技術(shù)是專業(yè)的數(shù)據(jù)管理技術(shù),數(shù)據(jù)庫的設(shè)計、優(yōu)化、管理相對較為麻煩,但在數(shù)據(jù)量較多且數(shù)據(jù)類型復雜時無疑是最好的工具;用文本文件來管理數(shù)據(jù)是非常局限的一種方法,因為它管理的數(shù)據(jù)類型較為單一、數(shù)據(jù)量較小。在虛擬維修訓練系統(tǒng)中,要用到的數(shù)據(jù)量很大,包括模型、圖片、維修序列、用戶信息、模擬故障的數(shù)據(jù)等,數(shù)據(jù)類型也是相當復雜,所以要選用數(shù)據(jù)庫技術(shù)來管理數(shù)據(jù)。

文章將MySQL數(shù)據(jù)庫應(yīng)用到虛擬維修訓練系統(tǒng)的開發(fā)中,并提出了一套數(shù)據(jù)庫設(shè)計和優(yōu)化的方案,有效解決了大量數(shù)據(jù)管理和傳輸?shù)碾y題,實現(xiàn)了具有較好可移植性的虛擬維修訓練系統(tǒng),大大加快了不同裝備的虛擬維修訓練系統(tǒng)的開發(fā)進程。

1 虛擬維修訓練系統(tǒng)中數(shù)據(jù)庫的需求性分析

虛擬維修訓練是利用虛擬現(xiàn)實技術(shù),在計算機上建立起虛擬裝備和相應(yīng)的交互方式,從而實現(xiàn)裝備的維修訓練過程。虛擬維修訓練系統(tǒng)必須要體現(xiàn)出真實訓練的重點,這些重點主要通過下面的特性來實現(xiàn):維修序列的正確性、交互操作的方便性、故障模擬的合理性、零件模型的逼真性、維修訓練的可評估性等等。這些重點的實現(xiàn)過程中會有大量數(shù)據(jù)的傳輸和管理問題,這些問題的解決需要數(shù)據(jù)庫的參與。

1.1 系統(tǒng)可移植性思想需要數(shù)據(jù)庫支撐

系統(tǒng)的可移植性即通用性,指同一套虛擬維修訓練系統(tǒng)可以對不同的裝備進行虛擬維修操作,而不對系統(tǒng)內(nèi)部進行修改,要求系統(tǒng)與不同的虛擬裝備之間必須有一個接口,存儲裝備的各項數(shù)據(jù)。開發(fā)一套虛擬維修訓練系統(tǒng),要花費大量的時間和人力資源。大部分的維修訓練系統(tǒng)只是針對某一型裝備進行開發(fā)的,如果開發(fā)的系統(tǒng)具有較好的通用性,其應(yīng)用價值將會大大提高。裝備的改變不能影響到系統(tǒng)的應(yīng)用,如果系統(tǒng)只與數(shù)據(jù)庫連接,而數(shù)據(jù)庫與模型、維修序列、評估標準等外部因素連接,就可以解決通用性的問題。

1.2 數(shù)據(jù)庫可以簡化系統(tǒng)開發(fā)流程

系統(tǒng)開發(fā)過程中有較多重復性工作,比如定義場景中的維修對象,它由許多零件構(gòu)成,要將這些零件分類,同類的零件可能會有很多。如果在開發(fā)過程中逐個實例化維修對象,會有很大的工作量。將零件的屬性寫入到數(shù)據(jù)庫的一個表中,用 SQL語句將要用到的字段調(diào)出來,在系統(tǒng)的底層代碼中用循環(huán)語句實例化同類的零件。用這樣的方法將會大大節(jié)省開發(fā)時間。數(shù)據(jù)庫給系統(tǒng)的開發(fā)提供了很多的便利性,系統(tǒng)開發(fā)人員可以靈活運用數(shù)據(jù)庫,使開發(fā)過程簡單化。

系統(tǒng)開發(fā)的整體過程如圖1所示,開發(fā)者根據(jù)裝備的特點開發(fā)出適合該裝備的數(shù)據(jù)庫,并將不同虛擬裝備的各種信息寫入數(shù)據(jù)庫中;在開發(fā)平臺中編程實現(xiàn)對數(shù)據(jù)庫的調(diào)用;測試人員將對開發(fā)出的維修操作平臺的測試意見反饋給開發(fā)者,以此來完善系統(tǒng)的各項功能。

2 虛擬維修訓練系統(tǒng)中數(shù)據(jù)庫的設(shè)計

數(shù)據(jù)庫設(shè)計不是設(shè)計一個完整的數(shù)據(jù)庫管理系統(tǒng)(DBMS),而是根據(jù)一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)模型。數(shù)據(jù)庫設(shè)計包括結(jié)構(gòu)設(shè)計和行為設(shè)計,結(jié)構(gòu)設(shè)計是按照應(yīng)用要求確定一個合理的數(shù)據(jù)模型,行為設(shè)計是指應(yīng)用程序的設(shè)計。在虛擬維修訓練系統(tǒng)中,結(jié)構(gòu)設(shè)計是指按照系統(tǒng)要求將所用到的數(shù)據(jù)分類并建立合理的數(shù)據(jù)模型,而行為設(shè)計是在腳本里實現(xiàn)對數(shù)據(jù)的存取和應(yīng)用[4]。

圖1 系統(tǒng)開發(fā)流程圖

數(shù)據(jù)庫設(shè)計過程可分為以下6個階段:

· 需求分析;

· 概念結(jié)構(gòu)設(shè)計;

· 邏輯結(jié)構(gòu)設(shè)計;

· 物理結(jié)構(gòu)設(shè)計;

· 數(shù)據(jù)庫實施;

· 數(shù)據(jù)庫運行和維護。

下面介紹各個階段的工作。

2.1 需求分析

需求分析階段的工作是詳細準確地了解數(shù)據(jù)庫應(yīng)用系統(tǒng)的運行環(huán)境和用戶要求。

虛擬維修訓練系統(tǒng)是這個數(shù)據(jù)庫的用戶,考察用戶需求重點是“數(shù)據(jù)”和“處理”,用戶需求的信息主要包括:維修對象、維修規(guī)則、維修工具、故障模擬、碰撞檢測。這5種數(shù)據(jù)流包含很多的數(shù)據(jù)項,例如,維修對象中的數(shù)據(jù)項有:零件 ID號、零件名稱、材質(zhì)、零件類型、零件動畫序列、零件坐標、零件個數(shù)等,這些數(shù)據(jù)項都要合理定義其數(shù)據(jù)類型及長度。

2.2 概念結(jié)構(gòu)設(shè)計

概念結(jié)構(gòu)設(shè)計主要實現(xiàn)由現(xiàn)實世界到信息世界的抽象,建立概念模型。概念模型的表示方法很多,最著名的是采用實體—聯(lián)系方法即E-R模型法,用E-R圖描述概念模型,從而確定實體、屬性和實體間的關(guān)系,便于進行邏輯結(jié)構(gòu)設(shè)計。

圖 2是一虛擬維修訓練系統(tǒng)數(shù)據(jù)庫的 E-R圖。在圖2中清晰地描述了5個實體之間的關(guān)系,以及各個實體的屬性,給下面的數(shù)據(jù)庫設(shè)計工作提供了很好的思路。

2.3 邏輯結(jié)構(gòu)設(shè)計

邏輯結(jié)構(gòu)設(shè)計的內(nèi)容簡單地說,就是將概念結(jié)構(gòu)設(shè)計結(jié)果——E-R圖轉(zhuǎn)換為某一種DBMS支持的數(shù)據(jù)模型。

建立數(shù)據(jù)模型首先要確定關(guān)系模式,關(guān)系模式實際是實體與其屬性的另一中表現(xiàn)方式,但還應(yīng)包括聯(lián)系與其屬性。圖2所示的虛擬維修訓練系統(tǒng)的關(guān)系模式可以表示為:

操作人員(人員 ID,姓名,密碼,單位,職務(wù))

維修任務(wù)(任務(wù)ID,任務(wù)名稱,裝備名稱,故障提示,模型名稱,任務(wù)描述)

故障(故障ID,故障名稱,故障類型)

零件(零件ID,任務(wù)ID,名稱,零件類型,圖片名稱,三維坐標,零件介紹)

工具(工具ID,零件ID,名稱,圖片名稱,動畫序列)

維修(任務(wù)ID,人員ID ,維修日志)

其中,維修是聯(lián)系與其屬性的關(guān)系模式,其它關(guān)系模式是實體與其屬性的關(guān)系模式,帶下劃線的數(shù)據(jù)項為主鍵。

2.4 物理結(jié)構(gòu)設(shè)計

物理結(jié)構(gòu)設(shè)計階段要完成的工作主要是確定數(shù)據(jù)庫表的結(jié)構(gòu),并進行優(yōu)化,為數(shù)據(jù)模型選擇合理的存儲結(jié)構(gòu)和存取方法,決定存取路徑和分配存取空間等。

對于記錄的存取格式應(yīng)考慮如何節(jié)省存取空間,盡量用占用字節(jié)比較少的數(shù)據(jù)類型,例如,用戶的單位可以用0、1、2、3、…來代替用漢字來描述,還有故障類型和零件類型等也可用這種方式來表示,就可以節(jié)省大量的空間。

2.5 數(shù)據(jù)庫實施

數(shù)據(jù)庫實施是運用 DBMS建立數(shù)據(jù)庫,創(chuàng)建各種對象(表、窗體、查詢等),編制與調(diào)試應(yīng)用程序,錄入數(shù)據(jù),進行試運行。

建立表時要參考邏輯結(jié)構(gòu)設(shè)計中的關(guān)系模式,一個關(guān)系模式就是一個數(shù)據(jù)表,而關(guān)系模式內(nèi)的每一個數(shù)據(jù)項將成為表中的一個字段。確定了表中包括哪些字段后,還應(yīng)確定每一個字段的類型及數(shù)據(jù)長度。

從圖2可容易得出,對應(yīng)該E-R圖的數(shù)據(jù)庫要包含5個表分別是:用戶信息表、維修任務(wù)表、故障表、零件表、工具表,相應(yīng)表的字段即為每個實體的屬性。

圖2 虛擬維修訓練系統(tǒng)中數(shù)據(jù)庫的E-R圖

2.6 數(shù)據(jù)庫運行與維護

數(shù)據(jù)庫正式投入使用后,還應(yīng)不斷進行評價、修改與調(diào)整。這一時期的工作就是數(shù)據(jù)庫的運行和維護。

上述數(shù)據(jù)庫的設(shè)計過程可用圖3表示。數(shù)據(jù)庫設(shè)計的基本思想是過程迭代和逐步求精,每完成一個設(shè)計階段,就進行評價,根據(jù)評價結(jié)果,決定是進行下一階段或是重新進行這一階段的工作,甚至更前一階段的工作。因此,整個設(shè)計過程往往是上述6個階段的不斷反復。

3 基于MySQL數(shù)據(jù)庫的虛擬維修訓練系統(tǒng)的實現(xiàn)

目前,市面上的數(shù)據(jù)庫產(chǎn)品多種多樣,MySQL數(shù)據(jù)庫可以稱得上是目前運行速度最快的SQL語言數(shù)據(jù)庫。

總體來說,MySQL數(shù)據(jù)庫具有以下主要特點:

(1) 可以保存超過50,000,000條記錄;

(2) 是目前市場上現(xiàn)有產(chǎn)品中運行速度最快的數(shù)據(jù)庫系統(tǒng);

(3) 用戶權(quán)限設(shè)置簡單、有效。

開發(fā)平臺TGE支持MySQL數(shù)據(jù)庫,開發(fā)者不用過多修改 TGE的底層代碼,就可以應(yīng)用該數(shù)據(jù)庫,實現(xiàn)對數(shù)據(jù)的查詢、寫入和讀取??紤]到MySQL的種種優(yōu)點,文章以MySQL數(shù)據(jù)庫為例,介紹在虛擬維修訓練系統(tǒng)的開發(fā)過程中如何管理和傳輸數(shù)據(jù)。

圖3 數(shù)據(jù)庫設(shè)計流程圖

為了使用戶和開發(fā)人員更方便地操作MySQL數(shù)據(jù)庫,要采用Apache作為MySQL的服務(wù)器,用Web上最流行的一種服務(wù)器腳本編程語言PHP(Personal Home Page)為MySQL數(shù)據(jù)庫編寫PMA,直接在Web頁面中對MySQL數(shù)據(jù)庫進行各種維護[5]。

3.1 數(shù)據(jù)庫的開發(fā)

根據(jù)上述的數(shù)據(jù)庫設(shè)計方法,得出在這個數(shù)據(jù)庫中需要的最基本的表有任務(wù)表、任務(wù)內(nèi)容表、零件表、維修序列表、工具表、維修操作評分表、維修日志表、用戶信息表,對不同表的描述如下:

· 任務(wù)表 存儲不同的維修任務(wù)ID號、任務(wù)名稱、維修序列編號。

· 工具表 存儲工具模型名稱、工具ID號、對應(yīng)的手型動畫ID。

· 零件表 存儲零件類型、零件模型名稱、零件對應(yīng)的工具 ID和維修動畫 ID等零件的屬性。

· 任務(wù)內(nèi)容表 存儲不同任務(wù)中的虛擬裝備以及裝備個模塊之間的相對位置關(guān)系?!?維修序列表 描述不同裝備的維修序列?!?維修操作評分表 存儲不同零件對應(yīng)的不同分數(shù)。

· 維修動畫表 用不同的ID標識不同的維修動畫。

· 維修日志表 存儲每次訓練的日期、操作者和得分等信息。

· 用戶信息表 保存可以使用本系統(tǒng)的所有用戶信息。

3.2 故障模擬過程中系統(tǒng)與數(shù)據(jù)庫的通信

實際的裝備哪個零件出現(xiàn)故障的概率有較大的隨機性,故障的外在表現(xiàn)形式也是千差萬別。故障設(shè)定的合理性與故障模擬的真實性,直接影響到受訓者對故障的判斷。

故障模擬主要通過變換紋理、粒子系統(tǒng)、播放動畫、3D音效等來實現(xiàn)。

變換紋理和3D音效來進行故障模擬,要用到很多紋理、動畫、聲音以及要加粒子的模型的源文件。這些源文件與腳本之間的通信過程較為簡單,數(shù)據(jù)庫里存儲了系統(tǒng)所需源文件的名字,腳本里指定了源文件的路徑,通過基于索引的查詢就可以找到源文件,從而實現(xiàn)了腳本與數(shù)據(jù)庫的通信。

粒子系統(tǒng)和播放動畫實現(xiàn)故障模擬,要確定哪個模型要添加粒子、哪個模型要播放動畫。在數(shù)據(jù)庫里定義每個模型的類型,用一個字段來存儲。不同字段值的零件用不同的方法進行故障模擬。

3.3 維修操作過程中虛擬場景與數(shù)據(jù)源的數(shù)據(jù)通信

3.3.1 裝備的拆卸操作過程中的數(shù)據(jù)通信

向場景中加載模型過程中,要在腳本中讀取數(shù)據(jù)庫中模型的各種數(shù)據(jù)。而開發(fā)的數(shù)據(jù)庫是基于名字的索引,要在腳本中指定模型存儲的路徑,通過這條路徑查找模型源文件,完成場景與模型數(shù)據(jù)源的通信。

場景中模型的定位,必須要有一個基準點,即場景中的裝備誕生點。場景中模型的坐標就是誕生點的坐標加上數(shù)據(jù)庫中模型的坐標。為了使虛擬裝備的維修操作過程更貼近實際,擁有同一父零件的零件設(shè)為一個Group,在移動過程中可以對整個Group進行移動,這些Group可以進行更深入的拆卸操作。

圖4 模型加載流程圖

加載模型的實現(xiàn)過程如圖 4所示,用 SQL查詢語句,找到所有符合條件的記錄,將這些記錄對應(yīng)的零件信息傳遞到代碼中,然后定義數(shù)據(jù)塊和實例化模型對象,用任務(wù)對象的句柄調(diào)用Add函數(shù)讓模型在場景中顯示。

3.3.2 維修動作合法性判斷過程中的數(shù)據(jù)通信

判斷維修動作是否合法在虛擬維修訓練中的重要性是不言而喻的,維修序列從實質(zhì)上講就是判斷語句:if A then B,只要建立零件之間的相互約束關(guān)系就能夠解決設(shè)定維修序列的問題。

用數(shù)據(jù)庫中某字段代表零件不同的狀態(tài),如表1所示,字段ContentID表示操作時選中的物體的ID號,AccessoryState代表零件的初始狀態(tài),rState表示操作后的狀態(tài),ConditionId 表示拆卸ContentID 所標識的物體時的條件物體,ConditionState表示條件物體的狀態(tài)。以表 1中ContentID為1的零件為例進行具體介紹零件拆裝過程中維修序列的判定過程:選中物體($selectShape)的ID(ContentID)為1,若要對1進行拆卸操作,要滿足1處于安裝完畢的狀態(tài);若要對1進行安裝操作,要滿足3和24已經(jīng)安裝完畢??梢詤⒖即死?,設(shè)置其它零件拆裝和更換的約束條件,實現(xiàn)對維修動作的合法性判斷。

表1 維修序列表中的部分記錄

4 結(jié) 論

數(shù)據(jù)庫在整個虛擬維修訓練系統(tǒng)的開發(fā)過程中都扮演著重要的角色,靈活運用數(shù)據(jù)庫不但可以給開發(fā)工作帶來很多便利條件,而且讓系統(tǒng)通用性得到很大提高。本文解決的主要問題包括:在使用TGE進行開發(fā)虛擬維修訓練系統(tǒng)時,怎樣設(shè)計數(shù)據(jù)庫、怎樣實現(xiàn)基于 TGE的虛擬維修訓練系統(tǒng)與MySQL數(shù)據(jù)庫的通信,并將該系統(tǒng)分別應(yīng)用到了某雷達裝備和某火炮的虛擬維修訓練中,取得了較好的效果。

[1]楊宇航, 李志忠, 等. 虛擬維修研究綜述[J]. 系統(tǒng)仿真學報, 2005, 17(9):2191-2195.

[2]馬 麟. 虛擬維修技術(shù)的探討[J]. 計算機輔助設(shè)計與圖形學學報, 2005, 17(12):2729-2733.

[3]Kenneth C Finney. Advanced 3D game programming all in one [M]. Thomson Learning, 2006. 367-392.

[4]張俊玲. 數(shù)據(jù)庫原理與應(yīng)用[M]. 北京:清華大學出版社, 2005. 10-30, 40-50.

[5]唐漢明, 翟振興, 蘭麗華, 等. 深入淺出MySQL[M].北京:人民郵電出版社, 2008. 3-103, 111-116.

Application of Database to Virtual Maintenance Training System

CHANG Gao-xiang1,2, XU Xiao-gang1,2, WANG Jian-guo1,2
( 1. Department of Equipment System and Automatization, Dalian Naval Academy, Dalian Liaoning 116018, China;2. State Key Lab of CAD&CG, Zhejiang University, Hangzhou Zhejiang 310058, China )

Database technology is very important in the Virtual Maintenance Training System.This article gives a brief description of the characteristics of MySQL database, analyzes the dominance of using database in Virtual Maintenance Training System, and introduces the basic means of designing database in it. An Virtual Maintenance Training System with preferable and transplantable property is developed combining with the Torque Game Engine. The experimental result indicates that applying database technology to the Virtual Maintenance Training System helps improve the system development efficiency.

computer application; database design; virtual maintenance; transplantable property

TP 391

A

1003-0158(2010)05-0157-06

2008-12-25

遼寧省自然科學基金資助項目(20082176);“浙江大學CAD&CG國家重點實驗室”開放課題資助項目(A0906)

常高祥(1986-),男,河南汝陽人,碩士研究生,主要研究方向為虛擬維修。

猜你喜歡
結(jié)構(gòu)設(shè)計裝備數(shù)據(jù)庫
高層建筑連體結(jié)構(gòu)設(shè)計
好裝備這樣造
港警新裝備
結(jié)構(gòu)設(shè)計優(yōu)化在房屋建筑結(jié)構(gòu)設(shè)計中的應(yīng)用
防曬裝備折起來
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
BIM結(jié)構(gòu)設(shè)計應(yīng)用
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
长丰县| 张北县| 鸡东县| 房产| 祥云县| 寿光市| 辉县市| 巴东县| 金湖县| 西华县| 寻甸| 高台县| 宁陵县| 靖州| 霍州市| 安仁县| 株洲县| 武隆县| 库车县| 仪征市| 东莞市| 恩施市| 江陵县| 安远县| 苏尼特右旗| 陈巴尔虎旗| 临泉县| 平罗县| 永登县| 江川县| 康平县| 萨迦县| 中山市| 马公市| 东安县| 革吉县| 敖汉旗| 桐柏县| 大渡口区| 海淀区| 临汾市|