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

4 系統(tǒng)的實(shí)現(xiàn)
選擇系統(tǒng)啟動程序cmnvdstart.m運(yùn)行,系統(tǒng)在顯示啟動界面幾秒后將自動進(jìn)入凸輪機(jī)構(gòu)虛擬設(shè)計(jì)主界面。用戶在主界面上通過單選框和下拉式菜單選擇完待設(shè)計(jì)的凸輪機(jī)構(gòu)類型后,主界面的參數(shù)錄入?yún)^(qū)將刷新顯示所選凸輪機(jī)構(gòu)的設(shè)計(jì)參數(shù)錄入界面。通過該界面,用戶可設(shè)計(jì)一些常用的凸輪機(jī)構(gòu),圖2為設(shè)計(jì)滾子直動從動件圓柱凸輪時(shí)截取的人機(jī)界面。其中右側(cè)部分為設(shè)計(jì)主界面,左側(cè)部分是在設(shè)計(jì)需要三維顯示和動態(tài)仿真時(shí)才自動打開的裝有blaxxun CC3D插件的IE瀏覽器,用戶可對瀏覽器進(jìn)行隨意拖放和大小調(diào)整,還可對其中的虛擬場景進(jìn)行交互操作。
設(shè)計(jì)過程中系統(tǒng)將通過綜合顯示區(qū)為用戶提供一些有關(guān)參數(shù)優(yōu)化、性能分析的等方面的信息,如圖2中的綜合顯示區(qū)內(nèi)顯示的是所選從動件運(yùn)動規(guī)律的無因次化運(yùn)動特性圖,通過右側(cè)的“縮放開關(guān)”與“柵格顯示”按扭可對該圖進(jìn)行放大、縮小和背景柵格顯示、關(guān)閉等處理。圖3是設(shè)計(jì)盤形凸輪機(jī)構(gòu)時(shí)綜合顯示區(qū)內(nèi)的有關(guān)輔助優(yōu)化的分析圖例,圖3b是對圖3a進(jìn)行局部放大并打開柵格顯示時(shí)的情況。對壓力角或曲率半徑的校核,系統(tǒng)將以彈出信息框的方式給出校核結(jié)果和改進(jìn)提示。另外,若用戶在設(shè)計(jì)時(shí)出現(xiàn)了漏設(shè)、錯(cuò)設(shè)的設(shè)計(jì)參數(shù)或錯(cuò)誤操作,系統(tǒng)也將以彈出信息框的方式給出錯(cuò)誤提示。
當(dāng)初步設(shè)計(jì)出凸輪機(jī)構(gòu)后,就可通過鼠標(biāo)操作,對所設(shè)計(jì)的凸輪機(jī)構(gòu)在虛擬場景中進(jìn)行全方位的交互操作和觀察,并通過“三維仿真”和“停止仿真”按鈕進(jìn)行虛擬動態(tài)仿真、控制仿真進(jìn)程。這時(shí)還可通過“性能分析”按鈕,在綜合顯示區(qū)內(nèi)觀察凸輪運(yùn)動時(shí)的一些運(yùn)動參數(shù)特性:圖4、圖5等是利用本系統(tǒng)設(shè)計(jì)的尖底直動從動件盤形凸輪機(jī)構(gòu)和弧面分度凸輪機(jī)構(gòu),對設(shè)計(jì)滿意的凸輪機(jī)構(gòu)的參數(shù)、圖形等數(shù)據(jù)可通過“保存數(shù)
據(jù)”按鈕保存到用戶指定的文件夾。

5 結(jié)語
VRML是一種標(biāo)準(zhǔn)的、應(yīng)用廣泛的虛擬現(xiàn)實(shí)技術(shù),具有功能較強(qiáng)、源代碼開放、較易實(shí)現(xiàn)等優(yōu)點(diǎn);MAT—LAB軟件功能強(qiáng)大,其語言語句簡單,內(nèi)涵豐富,形式開放,可擴(kuò)展性好,所集成的虛擬現(xiàn)實(shí)工具箱將MAT—LAB/Simlink的卓越功能拓展到了VRML所創(chuàng)造的虛擬世界之中。將MATLAB與VRML相結(jié)合來開發(fā)凸輪機(jī)構(gòu)虛擬設(shè)計(jì)系統(tǒng),能合理利用MATLAB軟件和VRML技術(shù)已有的優(yōu)點(diǎn),吸取各自的長處,從而有效降
低軟件開發(fā)的難度和強(qiáng)度,對縮短軟件開發(fā)周期,提高軟件性能具有重要意義。該系統(tǒng)的實(shí)現(xiàn),使得用戶能夠快速地對各種常用的凸輪機(jī)構(gòu)進(jìn)行設(shè)計(jì)和虛擬仿真,同時(shí)也為以MATLABT和VRML為基礎(chǔ)開發(fā)其它虛擬設(shè)計(jì)系統(tǒng)奠定了一定的實(shí)踐基礎(chǔ)。