張曉東, 曹紅松, 陳卓群, 李瑞靜, 劉 勝, 申清芳
(1. 中北大學 機電工程學院, 山西 太原 030051; 2. 中國北方發(fā)動機研究所, 天津 300400; 3. 西北機電工程研究所, 陜西 咸陽 712099; 4. 中國航天科工集團公司 第六研究院210所, 陜西 西安 710065)
近年來, 隨著計算機技術(shù)的高速發(fā)展, 基于圖像處理技術(shù)和計算機圖形學的三維可視化技術(shù)越來越多地進入到人們的視野當中, 成為一種主流趨勢廣泛應(yīng)用在氣象預(yù)測、 石油勘探、 航空航天、 軍事科學、 天文學、 醫(yī)學圖像處理等各個領(lǐng)域[1,2]. 這種技術(shù)不僅可以把產(chǎn)生的各種數(shù)據(jù)和結(jié)果轉(zhuǎn)換為圖像、 曲線, 二維、 三維圖形以及動畫等相關(guān)信息, 而且還可以將隨時間和空間變化的物理現(xiàn)象或物理量直觀、 便捷地呈現(xiàn)在用戶面前,并使他們能夠通過相關(guān)的視覺交互手段觀察到各種模擬和分析過程,即看到傳統(tǒng)意義上不可見的事物或現(xiàn)象[3-5].
基于三維可視化技術(shù)的優(yōu)勢, 為了實現(xiàn)柴油機振動試驗過程、 數(shù)據(jù)分析及結(jié)果直觀顯示過程的三維可視化, 本文針對柴油機振動試驗整個過程, 開展了柴油機振動試驗三維可視化技術(shù)研究, 具體研究的柴油機振動試驗三維可視化過程如圖 1 所示. 通過研究, 在弄清楚各項主要關(guān)鍵技術(shù)的基礎(chǔ)上, 開發(fā)了柴油機振動三維可視化試驗平臺. 該平臺的開發(fā)不僅解決了柴油機振動試驗過程中的三維可視化顯示難題, 而且也為其他領(lǐng)域開展三維可視化技術(shù)研究提供了一定的技術(shù)和理論經(jīng)驗[6].
圖 1 柴油機振動試驗三維可視化過程Fig.1 Three-dimensional visualization process of diesel engine vibration test
該平臺基于虛擬現(xiàn)實技術(shù)構(gòu)建了柴油機振動試驗三維可視化虛擬現(xiàn)實環(huán)境, 通過引入TeeChart Pro ActiveX V2010圖表控件和Origin軟件, 實現(xiàn)了柴油機振動試驗數(shù)據(jù)的三維可視化管理、 處理及分析. 同時, 通過構(gòu)建不同型號的柴油機三維模型、 傳感器模型、 振動試驗數(shù)據(jù)數(shù)據(jù)庫, 實現(xiàn)了各類試驗數(shù)據(jù)的分類管理. 平臺還為用戶提供了使用幫助, 從而方便用戶在振動試驗過程中熟練進行相關(guān)操作.
平臺在設(shè)計開發(fā)過程中采用4層體系結(jié)構(gòu), 這4層體系結(jié)構(gòu)包括: 管理層、 交互層、 接口層和驅(qū)動層. 其在層次結(jié)構(gòu)設(shè)計上, 構(gòu)思相對合理, 思路比較清晰, 從而為用戶構(gòu)建了較為直觀、 人性化的柴油機振動三維可視化試驗平臺, 該平臺具體的體系結(jié)構(gòu)如圖 2 所示.
1) 管理層主要是為了方便用戶對交互層上的各功能模塊進行開發(fā)和集成, 并對各種試驗數(shù)據(jù)處理及分析結(jié)果進行統(tǒng)一管理.
2) 交互層主要是為用戶提供操作便捷、 管理舒適的人機交互環(huán)境.
3) 接口層主要是為了方便平臺底層各種數(shù)據(jù)接口通過利用FTP文件傳輸協(xié)議來交換和傳輸相關(guān)數(shù)據(jù)文件和三維模型.
4) 驅(qū)動層主要是構(gòu)建和支撐整個平臺各功能模塊開發(fā)的軟硬件條件, 該層OSG(Open Scene Graph)應(yīng)用程序接口API主要用來構(gòu)建柴油機振動三維可視化虛擬現(xiàn)實環(huán)境; TeeChart Pro ActiveX V2010圖表控件和Origin軟件主要用來實現(xiàn)振動試驗數(shù)據(jù)的可視化處理及分析, 以及一、 二維曲線、 等高線、 云圖的繪制; Microsoft Access數(shù)據(jù)庫作為系統(tǒng)底層數(shù)據(jù)庫, 用以實現(xiàn)柴油機三維模型、 試驗原始數(shù)據(jù)、 處理及分析數(shù)據(jù)的存儲; FTP文件傳輸協(xié)議主要用來實現(xiàn)底層數(shù)據(jù)文件和三維模型的交換與雙向傳輸, Microsoft Visual Studio 2010開發(fā)平臺和Visual C++應(yīng)用開發(fā)環(huán)境主要用來完成整個平臺各功能模塊的開發(fā)[7].
圖 2 平臺體系結(jié)構(gòu)Fig.2 The structure of platform
根據(jù)平臺體系結(jié)構(gòu)的定義, 3D可視化虛擬現(xiàn)實環(huán)境、 TeeChart繪圖、 Origin繪圖、 試驗數(shù)據(jù)庫管理、 試驗數(shù)據(jù)管理、 平臺使用幫助等功能模塊共同構(gòu)成了圖 3 所示的柴油機振動三維可視化試驗平臺功能架構(gòu).
1.3.1 3D可視化虛擬現(xiàn)實環(huán)境
3D可視化虛擬現(xiàn)實環(huán)境部分主要包括: 3D模型配置、 3D視圖方位轉(zhuǎn)換、 測點傳感器配置、 3D振動動畫模擬、 測點管理、 測點文件管理等幾個子功能模塊. 其中3D模型配置主要是對柴油機三維模型進行選型, 并對三維模型進行旋轉(zhuǎn)、 縮放、 移動等操作, 從而方便用戶快速、 直觀地上手對柴油機三維模型進行配置; 3D視圖方位轉(zhuǎn)換主要為了對三維模型進行XYPlane、XZPlane、YZPlane等視圖切換, 以便于后續(xù)對傳感器進行布局, 同時有助于用戶實時查看測點; 測點傳感器配置主要是根據(jù)做試驗類型對測點傳感器進行選型和合理布局, 以便獲取準確的試驗結(jié)果; 3D振動動畫模擬主要是在三維可視化虛擬現(xiàn)實環(huán)境中模擬柴油機振動, 從而為用戶提供直觀的動態(tài)振動試驗過程; 測點和測點文件管理主要是為了方便用戶對傳感器測點數(shù)據(jù)、 以及數(shù)據(jù)文件進行實時查看、 數(shù)據(jù)讀取、 導(dǎo)入、 導(dǎo)出、 保存等操作.
圖 3 平臺功能架構(gòu)Fig.3 The structure of platform function
1.3.2 TeeChart繪圖
TeeChart繪圖部分主要包括:X-Y曲線、X-YY曲線、 等高線、 云圖的繪制等子功能模塊. 這些子功能模塊主要是為了直觀地顯示各種數(shù)據(jù)曲線、 曲面圖形繪制結(jié)果.
1.3.3 Origin繪圖
Origin繪圖部分主要包括: 數(shù)據(jù)簡單處理,X-Y曲線、X-YY曲線、 等高線、 云圖的繪制等子功能模塊. 這些子功能模塊主要是為了實現(xiàn)用戶對不同型號的柴油機振動試驗數(shù)據(jù)進行直觀的處理分析和格式轉(zhuǎn)換, 從而進一步實現(xiàn)曲線、 曲面圖形的三維可視化直觀繪制和顯示.
1.3.4 其他功能
在該振動試驗平臺功能架構(gòu)中, 除了以上3個主要功能模塊外, 還有試驗數(shù)據(jù)庫管理、 試驗數(shù)據(jù)管理、 平臺使用幫助等功能模塊. 其中試驗數(shù)據(jù)庫管理部分主要是用來完成各類柴油機三維模型、 傳感器模型、 試驗處理及分析數(shù)據(jù), 以及曲線、 曲面繪制結(jié)果的保存和調(diào)用, 同時通過數(shù)據(jù)庫對平臺底層各功能模塊之間數(shù)據(jù)結(jié)果文件、 三維模型進行統(tǒng)一管理; 試驗數(shù)據(jù)管理主要是對不同型號柴油機振動試驗數(shù)據(jù)、 Origin軟件處理數(shù)據(jù)、 三維模型數(shù)據(jù)、 傳感器模型數(shù)據(jù)等進行簡單的添加、 刪除、 查詢, 從而方便用戶對各種數(shù)據(jù)進行文檔化管理, 同時提高數(shù)據(jù)使用效率; 平臺使用幫助主要是為了解決用戶在平臺操作過程中所遇到的一些難題, 同時幫助用戶熟練地操作平臺[7].
通過對平臺各個功能模塊的描述和分析可知: 平臺開發(fā)過程中所涉及到的主要關(guān)鍵技術(shù)有三維可視化虛擬現(xiàn)實環(huán)境構(gòu)建、 三維可視化繪圖方法構(gòu)建等.
在振動試驗過程中, 為了直觀、 便捷地對柴油機三維模型,以及測點傳感器三維模型進行可視化配置, 在平臺開發(fā)過程中引入了OSG這一開源的基于Visual C++平臺的應(yīng)用程序接口API, 以此來構(gòu)建柴油機振動試驗三維可視化虛擬現(xiàn)實環(huán)境[8,9], 具體的3D可視化虛擬現(xiàn)實環(huán)境構(gòu)建與使用流程如圖 4 所示.
圖 4 3D可視化虛擬現(xiàn)實環(huán)境構(gòu)建與使用流程Fig.4 3D visualization virtual reality environment construction and usage flow
在振動試驗三維可視化虛擬現(xiàn)實環(huán)境構(gòu)建過程中, 首先需要用戶選取相應(yīng)的振動試驗方案, 然后根據(jù)試驗方案從模型庫中查找與試驗方案匹配的柴油機和傳感器三維模型. 此時所需的各種三維模型也可以從外界導(dǎo)入,這些導(dǎo)入的三維模型不但可以被調(diào)用, 而且還可以被保存到模型庫中, 以便重新制定新的試驗方案, 每次使用前只需重新更新模型庫和試驗方案庫, 即可查找到與試驗方案對應(yīng)的柴油機三維模型. 柴油機和傳感器三維模型配置完成后, 需立即進行傳感器測點布置, 傳感器測點位置要選擇相對合理, 不會對所測試驗結(jié)果造成影響. 傳感器測點布置完成后, 用戶需要根據(jù)自己的需求選擇相應(yīng)的三維可視化振動試驗場景, 開始柴油機三維可視化振動試驗?zāi)M. 此時, 基于OSG/Open API應(yīng)用程序構(gòu)建的柴油機振動試驗三維可視化虛擬現(xiàn)實環(huán)境將各種試驗結(jié)果顯示出來. 每次當用戶改變操作時, 該三維可視化振動試驗平臺都會驅(qū)動底層的OSG/Open API應(yīng)用程序來實現(xiàn)三維可視化虛擬現(xiàn)實環(huán)境中畫面的實時更新. 這樣就為用戶構(gòu)建了一個操作便捷、 直觀的柴油機三維可視化振動試驗虛擬現(xiàn)實環(huán)境[8-11], 具體的三維可視化虛擬現(xiàn)實環(huán)境交互界面如圖 5 所示.
圖 5 3D可視化虛擬現(xiàn)實環(huán)境交互界面Fig.5 3D visual virtual reality environment interactive interface
圖 6 柴油機三維模型XZ Plane視圖轉(zhuǎn)換Fig.6 Three-dimensional model of diesel engine XZ plane view conversion
為了方便用戶更好地使用該三維可視化虛擬現(xiàn)實環(huán)境, 平臺在設(shè)計開發(fā)時通過該虛擬現(xiàn)實環(huán)境為用戶提供了三維可視化振動試驗虛擬動畫模擬、 3D視圖方位轉(zhuǎn)換、 測點數(shù)據(jù)實時讀取、 傳感器測點位置查看等功能, 方便用戶將生成好的柴油機三維模型放在特定的振動試驗場景中進行虛擬振動試驗?zāi)M, 同時有利于用戶對各種三維模型進行XYPlane,XZPlane,YZPlane等視圖切換, 以及實時獲取傳感器測點位置和數(shù)據(jù), 圖 6 所示是對柴油機振動試驗三維模型進行XZPlane轉(zhuǎn)換后的視圖.
為了方便用戶對試驗數(shù)據(jù)做進一步的分析、 以及曲線、 曲面繪圖等處理, 并可以使用戶直觀、 便捷地看到試驗數(shù)據(jù)處理過程及結(jié)果, 在數(shù)據(jù)分析和曲線、 曲面繪圖等功能實現(xiàn)過程中平臺采用了TeeChart工業(yè)繪圖控件和Origin軟件二次開發(fā)的方式來實現(xiàn)三維可視化繪圖方法構(gòu)建, 此繪圖方法的構(gòu)建過程如圖 7 所示.
圖 7 三維可視化繪圖方法構(gòu)建過程Fig.7 The construction process of three-dimensional visual drawing method
2.2.1 基于Teechart控件的三維可視化繪圖方法
實現(xiàn)此方法的過程中, 首先得判斷數(shù)據(jù)的三維可視化處理方式, 如果只對數(shù)據(jù)做單一的曲線、 曲面繪圖處理, 那么就選擇采用Teechart工業(yè)控件為圖表繪制接口, 并基于Visual C++開發(fā)平臺編寫相應(yīng)的試驗數(shù)據(jù)圖表繪制交互界面, 以此來實現(xiàn)繪圖過程三維可視化操作, 通過TeeChart控件特有的2D和3D圖形風格, 為用戶提供一個高效、 直觀的柴油機三維可視化振動試驗平臺, 繪圖時用戶可以按照圖 7 所示過程, 首先需啟動TeeChart繪圖模塊, 然后在圖表繪制交互界面上選擇所需要的繪圖數(shù)據(jù), 并點擊相應(yīng)的繪圖類型按鈕來實現(xiàn)不同類型的X-Y,X-YY關(guān)系曲線, 以及等高線、 云圖等曲面圖形的繪制[12]. 任選振動試驗測點G1數(shù)據(jù)進行X-Y關(guān)系曲線繪制, 繪制結(jié)果如圖 8 所示.
圖 8 X-Y關(guān)系曲線Fig.8 X-Y relationship curve
2.2.2 基于Origin軟件的三維可視化繪圖方法
如果既對數(shù)據(jù)做簡單的數(shù)據(jù)分析處理, 又對數(shù)據(jù)進行曲線、 曲面繪圖處理, 那么就需要通過Origin軟件二次開發(fā)來完成. 在Origin軟件二次開發(fā)時, 首先需要基于Visual C++開發(fā)平臺來編寫X-Function, 并通過X-Function調(diào)用OriginC來建立Origin軟件二次開發(fā)交互界面, 然后把開發(fā)好的X-Function放到平臺開發(fā)時設(shè)置的Origin菜單和工具欄上, 以此來實現(xiàn)Origin軟件二次開發(fā), 并通過Origin軟件特有的數(shù)據(jù)分析、 圖表繪制功能來實現(xiàn)繪圖過程三維可視化操作, 從而方便用戶使用.
繪圖時用戶可以按照圖 7 所示過程, 首先需啟動Origin軟件二次開發(fā)模塊, 然后判斷數(shù)據(jù)處理方式. 若在繪圖前還需要對數(shù)據(jù)進行簡單分析, 則需要按照圖 7 中Origin繪圖模塊左側(cè)流程先將試驗數(shù)據(jù)通過Origin二次開發(fā)交互界面發(fā)送到Origin工作表中, 然后點擊相關(guān)數(shù)據(jù)分析按鈕, 對數(shù)據(jù)進行分析處理, 分析處理后的數(shù)據(jù)還可以被后續(xù)繪圖部分直接調(diào)用; 如果直接對試驗數(shù)據(jù)進行繪圖處理, 那么既可以選擇以上分析后的繪圖數(shù)據(jù), 也可以按照圖 7 中Origin繪圖模塊右側(cè)流程, 選擇原始試驗數(shù)據(jù)繪圖, 并將繪圖試驗數(shù)據(jù)通過Origin二次開發(fā)交互界面發(fā)送到Origin工作表中, 然后選擇相關(guān)繪圖按鈕來繪制X-Y,X-YY關(guān)系曲線、 以及等高線、 云圖等曲面圖形, 每次操作時通過調(diào)用OriginC應(yīng)用程序來進行Origin二次開發(fā)交互界面上各種圖形的更新和實時顯示. 通過X-Function編寫建立的Origin二次開發(fā)交互界面如圖 9 所示, 同樣選擇測點G1數(shù)據(jù)通過Origin二次開發(fā)模塊繪制的等高線如圖 10 所示.
圖 9 Origin二次開發(fā)交互界面Fig.9 Origin two times development interactive interface
圖 10 利用Origin軟件二次開發(fā)模塊繪制的等高線Fig.10 Contour drawn using the two-time development module of origin software
通過對以上平臺開發(fā)過程中的主要關(guān)鍵技術(shù)進行分析和闡述, 表明了柴油機振動三維可視化試驗平臺在技術(shù)開發(fā)方面的可行性和使用上的可靠性.
本文在對機械振動理論研究的基礎(chǔ)上, 將現(xiàn)代化的計算機技術(shù)、 三維可視化技術(shù)、 軟件二次開發(fā)技術(shù)與工程實際相結(jié)合, 自行開發(fā)了一種柴油機振動三維可視化試驗平臺. 通過對平臺體系結(jié)構(gòu)和功能架構(gòu)的分析, 闡述了平臺開發(fā)過程中涉及到的三維可視化虛擬現(xiàn)實環(huán)境構(gòu)建、 三維可視化繪圖方法構(gòu)建等主要關(guān)鍵技術(shù)實現(xiàn)方法, 通過分析和闡述可以看出該平臺在實現(xiàn)柴油機振動試驗三維動畫模擬、 試驗數(shù)據(jù)分析及結(jié)果直觀顯示等方面的可行性. 該平臺的開發(fā), 不僅為柴油機振動試驗過程提供了一套直觀高效的三維可視化顯示工具, 而且也為其他領(lǐng)域開展三維可視化技術(shù)研究提供了一定的理論參考.
參考文獻:
[1] 張浩, 郭燦. 數(shù)據(jù)可視化技術(shù)應(yīng)用趨勢與分類研究[J]. 軟件導(dǎo)刊, 2012, 11(5): 169-172.
Zhang Hao, Guo Chan. Image de-noising base on different wavelet thresholding functions[J]. Software Guide, 2012, 11(5): 169-172. (in Chinese)
[2] 任永功, 于戈. 數(shù)據(jù)可視化技術(shù)的研究與進展[J]. 計算機科學, 2004, 31(12): 92-96.
Ren Yonggong,Yu Ge. Researeh and develoPment of the data visualization teehniques[J]. Computer Science, 2004, 31(12): 92-96. (in Chinese)
[3] 李旭鵬. 航空發(fā)動機整機振動可視化技術(shù)研究[D]. 南京: 南京航空航天大學, 2012.
[4] 張亮, 雷勇, 劉明濤. 基于三維可視化技術(shù)的航空發(fā)動機試驗艙設(shè)計[J]. 測控技術(shù), 2011, 30(12): 91-94.
Zhang Liang, Lei Yong, Liu Mingtao. Design of engine test cabin based on 3D visualization[J]. Measurement & Control Technology, 2011, 30(12): 91-94. (in Chinese)
[5] 黃輝, 陸利忠, 閆鑌. 三維可視化技術(shù)研究[J]. 信息工程大學學報, 2010, 11(2): 218-222.
Huang Hui, Lu Lizhong, Yan Bing. Research on three-dimensional visualization technology[J]. Journal of Information Engineering University, 2010, 11(2): 218-222. (in Chinese)
[6] 顧海明, 周勇軍. 機械振動理論與應(yīng)用[M]. 南京: 東南大學出版社, 2007.
[7] 趙洛育. Visual C++從入門到精通[M]. 北京: 清華大學出版社, 2012.
[8] 劉春芳, 程熙, 謝利, 等. 基于OSG的機械產(chǎn)品虛擬拆裝展示系統(tǒng)的設(shè)計[J]. 信息技術(shù), 2016(10): 48-51.
Liu Chunfang, Cheng Xi, Xie Li, et al. Design of OSG-based virtual disassembly and assembly system for mechanical product[J]. Information Technology, 2016(10): 48-51. (in Chinese)
[9] 何坤金, 張莉軍, 李強. 基于OSG的航道船舶三維可視化信息管理系統(tǒng)[J]. 計算機與現(xiàn)代化, 2015(11): 89-92.
He Kunjin, Zhang Lijun, Li Qiang. 3D Visualization Information Management System of Channel and Ship Based on OSG[J]. Computer and Modernization, 2015(11): 89-92. (in Chinese)
[10] Sun Yongfeng, Qiu Weijiang, Guo Zhonghua, et al. The key techologies of three-dimensional rendering in OSG[J]. WIT Transactions on Modelling and Simulation, 2014, 60: 13-19.
[11] Pan Xiuqiang. The design and implementation of virtualtour system based on OSG for the Nanxi River ancient vil-lege[C]. 2012 International Conference on InformationManagement, Innovation Management and Industrial Engi-neering ( ICIII), 2012:282-285.
[12] 綦聲波, 李君峰, 梅興東. 應(yīng)用TeeChart控件實現(xiàn)數(shù)據(jù)曲線分析[J]. 工業(yè)控制計算機, 2006, 19(9): 38-39.
Qi Shengbo, Li Junfeng, Mei Xingdong. Development of graphic analyzing software base on teechart control[J]. Industrial Control Computer, 2006, 19(9): 38-39. (in Chinese)