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

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