摘 要:將Matlab軟件的虛擬現(xiàn)實工具箱、M編程語言與VRML技術(shù)相結(jié)合,開發(fā)出一種能夠?qū)Ω黝惓S猛馆啓C構(gòu)進行虛擬設計的系統(tǒng)。該系統(tǒng)通過簡潔的圖形用戶界面,能夠為用戶提供各種常用凸輪的參數(shù)化設計、三維造型和虛擬運動仿真,并具有輔助參數(shù)優(yōu)化、性能分析、圖文數(shù)據(jù)輸出等功能,同時用戶還可以對實時生成的凸輪機構(gòu)虛擬場景進行交互操作,控制仿真進程。實踐表明,運用該方法開發(fā)的虛擬設計系統(tǒng),能合理地利用VRML和MATLAB各自的優(yōu)點,大大降低開發(fā)的難度和強度,縮短開發(fā)時間。
關(guān)鍵詞:VRML MATLAB 面向?qū)ο缶幊?凸輪機構(gòu) 虛擬設計
引言
凸輪機構(gòu)是重要的傳動機構(gòu),廣泛應用于各種機械產(chǎn)品,其設計和制造一直是機構(gòu)學的熱點。MAT—LAB自從6.1版本后集成了虛擬現(xiàn)實工具箱(VirtualRealityToolbox),可對由VRML技術(shù)生成的虛擬場景進行可視化操作和交互控制,為虛擬設計的實現(xiàn)提供了一種新的可能。作者通過對MATLAB軟件、虛擬現(xiàn)實建模語言(VRML)、虛擬設計系統(tǒng)和凸輪機構(gòu)進行深入研究后,產(chǎn)生了將MATLAB與VRML相結(jié)合來開發(fā)凸輪機構(gòu)虛擬設計系統(tǒng)的構(gòu)想,建立了凸輪機構(gòu)的虛擬設計系統(tǒng)框架,開發(fā)出了一種能夠?qū)Ω黝惓S猛馆啓C構(gòu)進行虛擬設計的系統(tǒng)。
1 基本技術(shù)介紹
本軟件在wind0ws2o0O/NT平臺下,采用MATLAB所提供的M語言進行編程,以VRML技術(shù)實現(xiàn)凸輪機構(gòu)的三維造型,并通過MATLAB的虛擬現(xiàn)實工具箱所提供的接口來實現(xiàn)對虛擬場景的交互和仿真。
1.1 虛擬現(xiàn)實與VRML技術(shù)
虛擬現(xiàn)實(Virtual Reality)是指綜合利用計算機圖形系統(tǒng)和各種顯示、控制等接口設備生成的給人多種感官刺激和交互性操作的虛擬環(huán)境(Virtual Environ—ment),是一種高級的人機交互系統(tǒng)。虛擬現(xiàn)實具有多感知性(Multi—Sensory)、沉浸感(Immersion)、交互性(Interaction)、自主性(Autonomy)等特點,符合人們自然交互的習慣,是虛擬設計的基礎。
VRML(虛擬現(xiàn)實建模語言,Virtual Reality ModelingLanguage)是SGI公司開發(fā)的一種3D造型和渲染的圖形描述性語言,1997年12月被國際標準化組織ISOJYCI/SC24委員會認定為國際標準(ISO/IEC 14772一l:1997)。VRML是一種基于文本、描述圖形的三維造型和渲染的語言,在創(chuàng)建虛擬場景方面比任何編程語言都簡單。它通過節(jié)點(Node)定義了3D應用中大多數(shù)概念,如光源、視點、幾何形體、霧、材質(zhì)屬性和紋理映射等,具有交互功能強、平臺無關(guān)性、源代碼開放、體積小、通用性強等特點。VRML提供了6+1個自由度,可以沿著3個方向移動和旋轉(zhuǎn),同時還可以建立與其它三維空間的超鏈接。
1.2 MA rLAB及其虛擬現(xiàn)實工具箱
MATLAB是美國MathWorks公司開發(fā)的用于教育、工程與科學計算的軟件產(chǎn)品,是國際控制界公認的標準計算軟件。MATLAB主要由MATLAB 主程序、Simulink動態(tài)仿真系統(tǒng)和功能各異的MATLAB工具箱(Toolbox)3大部分組成。其中主程序包括了MATLAB語言(M語言)、開發(fā)環(huán)境、圖形句柄、數(shù)學函數(shù)庫和應用程序接口5個部分;Simulink是一個用來對動態(tài)系統(tǒng)進行建模、仿真和分析的軟件包,具有直觀、方便、靈活等優(yōu)點;MATLAB工具箱是MATLAB軟件在使用的過程中根據(jù)不同專業(yè)領域的特殊需要而用M語言編寫的一些M文件的集合,以方便地解決本領域內(nèi)常見的問題。目前MATLAB已擁有了50多個工具箱和功能模塊,能夠解決許多專業(yè)領域的問題,同時這些工具箱在MATLAB環(huán)境中可以相互調(diào)用,從而極大地擴展了MATLAB在各領域內(nèi)的能力。
MATLAB在6.1版以后便集成了虛擬現(xiàn)實工具箱(Virtual Reality Tolbox),將MATLAB和Simulink的能力拓展到了虛擬現(xiàn)實圖形。使用標準的VRML技術(shù),就可以通過MATLAB和Simulink環(huán)境生成三維場景:虛擬現(xiàn)實工具箱提供了靈活的與虛擬現(xiàn)實世界相連的MATLAB接口,通過這些接口,可以方便地完成對虛擬場景中各節(jié)點的控制,從而為MATLAB能在一個三維虛擬現(xiàn)實環(huán)境中進行可視化操作和與動態(tài)系統(tǒng)進行交互提供了一種有效的解決方案。
本文所用MATLAB為6.5.1版,相應的Simulink版本為5.1版,虛擬現(xiàn)實工具箱為Virtual Reality rbolbox 3.1:
2 軟件的設計思想
本虛擬設計系統(tǒng),集成有各類常用凸輪的工作曲面數(shù)據(jù)點的生成;三維圖形建模、顯示、觀察、控制;凸輪機構(gòu)的運動模擬;凸輪機構(gòu)的性能分析;用戶與虛場景的動態(tài)交互操作;壓力角、曲率及優(yōu)化分析;數(shù)據(jù)可視化、設計結(jié)果保存及系統(tǒng)幫助等一系列功能。系統(tǒng)開發(fā)的最基本的設計思想在于利用相對成熟的MATLAB和VRML各自的功能和特長,來降低虛擬設計系統(tǒng)實現(xiàn)的難度,簡化虛擬設計系統(tǒng)實現(xiàn)的過程,縮短系統(tǒng)開發(fā)周期。系統(tǒng)設計總體上遵循面向?qū)ο蟮脑O計思想,采用模塊化的設計方法,并采用MATLAl~所提供的面向?qū)ο缶幊谭绞降母呒壵Z言——M語言來編程實現(xiàn):
在程序?qū)崿F(xiàn)時,利用MATLAB中有關(guān)的計算、圖形函數(shù),實現(xiàn)系統(tǒng)在數(shù)值計算及可視化方面的功能;利用MATLAB的圖形用戶界面(GU)技術(shù),開發(fā)用戶與系統(tǒng)交互的人機界面;通過編程實時生成VRML場景文件;利用VRML的三維造型和圖形渲染功能實現(xiàn)系統(tǒng)的三維圖形及交互控制功能;利用MATLAB中的simli~仿真模型及虛擬現(xiàn)實工具箱中的有關(guān)接口函數(shù),實現(xiàn)凸輪機構(gòu)在虛擬場景中的動態(tài)仿真。
3 系統(tǒng)的功能模塊
本系統(tǒng)共含有啟動模塊、主界面模塊、參數(shù)錄入模塊、運動規(guī)律模塊、優(yōu)化分析模塊、參數(shù)校核模塊、虛擬原型生成模塊、仿真模型模塊等8個功能模塊,每個功能模塊將通過所包含的程序完成預定的功能,各功能模塊說明如下:
啟動模塊 本模塊由系統(tǒng)啟動程序camvdstart.Ill組成。該程序主要以基于命令行的方式來構(gòu)建一個系統(tǒng)啟動的歡迎界面,并將系統(tǒng)的開發(fā)單位及版權(quán)等信息反應到該界面上。
主界面模塊 主界面模塊由程序camvirtualde—sign.Ill構(gòu)成,它和參數(shù)錄入模塊中的有關(guān)程序一起運行,構(gòu)成用戶與系統(tǒng)交互的凸輪機構(gòu)虛擬設計的主界面:與啟動程序類似,camvirtualdesign.Ill也主要是以基于命令行的方式來構(gòu)建圖形用戶界面,它提供了用戶與系統(tǒng)交互界面的基本框架,也是系統(tǒng)調(diào)用和管理其它模塊的基本模塊。基于方便用戶使用、窗口設置精要的思想,該模塊通過加強共用、實時刷新等方法和技術(shù),將各類凸輪機構(gòu)設計的交互界面都集中在一個主界面上,用戶只需在主界面上操作即可完成各類凸輪機構(gòu)的設計、分析和仿真全過程,從而大大減少了人機界面窗口,保證了系統(tǒng)界面的簡潔,方便了用戶的使用參數(shù)錄入模塊 該模塊根據(jù)不同的凸輪機構(gòu)類型提供相應的參數(shù)錄入界面,以完成凸輪機構(gòu)的各項參數(shù)輸入。該功能模塊包含有多個子程序模塊,每個子程序?qū)a(chǎn)生一個圖形界面,顯示在主界面模塊提供的“凸輪機構(gòu)參數(shù)錄入?yún)^(qū)”內(nèi)。各子程序提供的界面之間存在著關(guān)聯(lián)設置,同一時間只能調(diào)用某一子程序,即只能顯示一種子程序所提供的界面,之前調(diào)用的子程序所提供的界面將被清除。
運動規(guī)律模塊 本模塊由運動規(guī)律子程序movementrule.Ill來實現(xiàn)其功能。該程序通過s~tch⋯case結(jié)構(gòu)語句收錄了常用的l6種運動規(guī)律的位移、速度、加速度和躍度無因次表達式,當該程序被調(diào)用時,程序通過傳遞過來的運動規(guī)律標識符的值,運行計算相應的運動規(guī)律各無因次表達式的值并將其返回給調(diào)用函數(shù)或工作空間(Workspace)。
優(yōu)化分析模塊該模塊由一些與各凸輪機構(gòu)類型相對應的優(yōu)化分析子程序組成。這些子程序針對不同類型凸輪機構(gòu)需要進行優(yōu)化分析的內(nèi)容,通過相應的數(shù)學表達式計算分析,而后通過可視化命令函數(shù)plot在綜合顯示區(qū)以圖形的方式顯示出來。用戶通過配合
使用通用按鈕區(qū)內(nèi)的有關(guān)按鈕,對綜合顯示區(qū)內(nèi)的圖形進行操作、觀察和分析,以幫助選擇比較理想的有關(guān)參數(shù)。
參數(shù)校核模塊 參數(shù)校核模塊用于對各類凸輪機構(gòu)的壓力角和曲率半徑進行檢查校核,以確保凸輪機構(gòu)的有關(guān)性能。由于各類凸輪機構(gòu)需校核的參數(shù)不盡相同,各校核的表達式也不盡相同,所以該模塊也包含有若干個不同的子程序。
虛擬原型生成模塊 虛擬原型生成模塊是系統(tǒng)的重要功能模塊,它包含有數(shù)種子程序,分別用“等轉(zhuǎn)角法”計算各類凸輪機構(gòu)的工作曲面的空間坐標值,而后根據(jù)一定的約束關(guān)系自動生成相應的凸輪和從動件的虛擬原型VRML文件,并配以一定的背景、燈光、視點和場景信息,構(gòu)成一個完整的凸輪機構(gòu)虛擬場景VRML文件。該功能模塊是本系統(tǒng)實現(xiàn)三維可視化和虛擬動態(tài)仿真的基礎。實現(xiàn)時,軟件用多面體的邊界表示法來定義和存儲凸輪的形體信息。這樣,通過各凸輪機構(gòu)的數(shù)據(jù)模型求出凸輪工作輪廓曲線的空間坐標后,再通過VRML中的有關(guān)節(jié)點實現(xiàn)凸輪工作曲面的空間造型,進而實現(xiàn)凸輪和凸輪機構(gòu)的三維造型,其實現(xiàn)過程按“規(guī)劃凸輪機構(gòu)幾何結(jié)構(gòu)一獲取運動參數(shù)和幾何參數(shù)一取步長,確定等分角一的無因次化處理一調(diào)用運動規(guī)律子程序一計算工作曲面邊界坐標一計算凸輪邊界坐標一計算從動件坐標一數(shù)據(jù)處理一規(guī)劃虛擬場景結(jié)構(gòu)一VRML文件生成”的流程進行。
仿真模型模塊該功能模塊包含有各種不同的凸輪機構(gòu)simlink仿真模型,在系統(tǒng)進行虛擬仿真時根據(jù)不同的凸輪類型調(diào)用相應的模型,實現(xiàn)對虛擬場景中的凸輪機構(gòu)的控制和運動仿真。系統(tǒng)通過以上八種功能模塊問的調(diào)用和數(shù)據(jù)傳遞,形成一個有機的整體,從而完成各類凸輪機構(gòu)的虛擬設計。系統(tǒng)功能模塊的調(diào)用關(guān)系及工作機理如圖1
所示。

4 系統(tǒng)的實現(xiàn)
選擇系統(tǒng)啟動程序cmnvdstart.m運行,系統(tǒng)在顯示啟動界面幾秒后將自動進入凸輪機構(gòu)虛擬設計主界面。用戶在主界面上通過單選框和下拉式菜單選擇完待設計的凸輪機構(gòu)類型后,主界面的參數(shù)錄入?yún)^(qū)將刷新顯示所選凸輪機構(gòu)的設計參數(shù)錄入界面。通過該界面,用戶可設計一些常用的凸輪機構(gòu),圖2為設計滾子直動從動件圓柱凸輪時截取的人機界面。其中右側(cè)部分為設計主界面,左側(cè)部分是在設計需要三維顯示和動態(tài)仿真時才自動打開的裝有blaxxun CC3D插件的IE瀏覽器,用戶可對瀏覽器進行隨意拖放和大小調(diào)整,還可對其中的虛擬場景進行交互操作。
設計過程中系統(tǒng)將通過綜合顯示區(qū)為用戶提供一些有關(guān)參數(shù)優(yōu)化、性能分析的等方面的信息,如圖2中的綜合顯示區(qū)內(nèi)顯示的是所選從動件運動規(guī)律的無因次化運動特性圖,通過右側(cè)的“縮放開關(guān)”與“柵格顯示”按扭可對該圖進行放大、縮小和背景柵格顯示、關(guān)閉等處理。圖3是設計盤形凸輪機構(gòu)時綜合顯示區(qū)內(nèi)的有關(guān)輔助優(yōu)化的分析圖例,圖3b是對圖3a進行局部放大并打開柵格顯示時的情況。對壓力角或曲率半徑的校核,系統(tǒng)將以彈出信息框的方式給出校核結(jié)果和改進提示。另外,若用戶在設計時出現(xiàn)了漏設、錯設的設計參數(shù)或錯誤操作,系統(tǒng)也將以彈出信息框的方式給出錯誤提示。
當初步設計出凸輪機構(gòu)后,就可通過鼠標操作,對所設計的凸輪機構(gòu)在虛擬場景中進行全方位的交互操作和觀察,并通過“三維仿真”和“停止仿真”按鈕進行虛擬動態(tài)仿真、控制仿真進程。這時還可通過“性能分析”按鈕,在綜合顯示區(qū)內(nèi)觀察凸輪運動時的一些運動參數(shù)特性:圖4、圖5等是利用本系統(tǒng)設計的尖底直動從動件盤形凸輪機構(gòu)和弧面分度凸輪機構(gòu),對設計滿意的凸輪機構(gòu)的參數(shù)、圖形等數(shù)據(jù)可通過“保存數(shù)
據(jù)”按鈕保存到用戶指定的文件夾。
5 結(jié)語
VRML是一種標準的、應用廣泛的虛擬現(xiàn)實技術(shù),具有功能較強、源代碼開放、較易實現(xiàn)等優(yōu)點;MAT—LAB軟件功能強大,其語言語句簡單,內(nèi)涵豐富,形式開放,可擴展性好,所集成的虛擬現(xiàn)實工具箱將MAT—LAB/Simlink的卓越功能拓展到了VRML所創(chuàng)造的虛擬世界之中。將MATLAB與VRML相結(jié)合來開發(fā)凸輪機構(gòu)虛擬設計系統(tǒng),能合理利用MATLAB軟件和VRML技術(shù)已有的優(yōu)點,吸取各自的長處,從而有效降
低軟件開發(fā)的難度和強度,對縮短軟件開發(fā)周期,提高軟件性能具有重要意義。該系統(tǒng)的實現(xiàn),使得用戶能夠快速地對各種常用的凸輪機構(gòu)進行設計和虛擬仿真,同時也為以MATLABT和VRML為基礎開發(fā)其它虛擬設計系統(tǒng)奠定了一定的實踐基礎。