王 凱, 李群明, 徐 舟
(中南大學(xué) 機(jī)電工程學(xué)院,湖南 長(zhǎng)沙 410083)
對(duì)樣品的精確定位是中子衍射譜儀殘余應(yīng)力測(cè)量的前提[1]。完成精確標(biāo)定后,迫切需要一種簡(jiǎn)單易用、可視化操作、流程化處理標(biāo)定數(shù)據(jù)、實(shí)現(xiàn)樣品臺(tái)運(yùn)動(dòng)仿真的軟件,用于計(jì)算生成運(yùn)動(dòng)腳本,完成樣品臺(tái)運(yùn)動(dòng)仿真,從而指導(dǎo)實(shí)際的樣品臺(tái)自動(dòng)化測(cè)量樣品中的殘余應(yīng)力。英國(guó)開(kāi)放大學(xué)的James J A[2]已經(jīng)開(kāi)發(fā)出實(shí)現(xiàn)殘余應(yīng)力測(cè)量的仿真軟件SScanSS(strain scanning simulation software),并已廣泛應(yīng)用于澳大利亞的KOWARI、英國(guó)的ENGINX、美國(guó)的NRSF2等中子譜儀中。目前,國(guó)內(nèi)尚未有成熟且廣泛使用的中子譜儀運(yùn)動(dòng)仿真軟件可配套用于我國(guó)正著手研制的首臺(tái)中子衍射譜儀。在眾多可視化軟件比如OpenGL,DirectX,VRML,交互式數(shù)據(jù)語(yǔ)言(interactive data language,IDL),QT,LabVIEW,MFC等中[3],IDL具有快速可視化、語(yǔ)法簡(jiǎn)單高效、功能完善等優(yōu)點(diǎn),國(guó)內(nèi)IDL更多地應(yīng)用于氣象系統(tǒng)、地質(zhì)遙感等方面。何全軍利用IDL實(shí)現(xiàn)了對(duì)氣象數(shù)據(jù)的體視化顯示[4],實(shí)現(xiàn)對(duì)地形的三維可視化[5];潘舒放[6]利用IDL實(shí)現(xiàn)了無(wú)人機(jī)遙感影像拼接研究;湯泉[7]采用IDL開(kāi)發(fā)了遙感系統(tǒng)。
本文選用IDL進(jìn)行開(kāi)發(fā),從而處理標(biāo)定的實(shí)驗(yàn)數(shù)據(jù),生成運(yùn)動(dòng)腳本,完成樣品臺(tái)運(yùn)動(dòng)仿真。
根據(jù)中子衍射原理,設(shè)計(jì)了基于標(biāo)準(zhǔn)探針的定位測(cè)量方案。首先,由激光掃描儀掃描樣品的三維輪廓并建立樣品坐標(biāo)系,同時(shí)測(cè)量出樣品表面的基準(zhǔn)點(diǎn);然后采用雙全站儀光學(xué)標(biāo)定方法,由前方交會(huì)原理[8]標(biāo)定出樣品基準(zhǔn)點(diǎn)、樣品臺(tái)坐標(biāo)系、中子衍射坐標(biāo)系;最后通過(guò)對(duì)齊樣品上的公共基準(zhǔn)點(diǎn),確定樣品在雙全站儀中的位姿,由坐標(biāo)轉(zhuǎn)換確定樣品坐標(biāo)系、中子衍射坐標(biāo)系相對(duì)樣品臺(tái)坐標(biāo)系的位姿矩陣。根據(jù)上述標(biāo)定過(guò)程,在軟件中可分為8個(gè)流程,如圖1,實(shí)現(xiàn)數(shù)據(jù)處理和可視化等功能。
圖1 中子衍射譜儀軟件流程
IDL軟件界面布局由單元組件通過(guò)繼承關(guān)系形成一個(gè)“倒金字塔”結(jié)構(gòu)。設(shè)計(jì)的界面基本布局由一個(gè)頂級(jí)容器組件構(gòu)成,內(nèi)含菜單欄、工具欄、頂級(jí)Tab組件,如圖2。菜單欄由文件、編輯、幫助欄組成,而工具欄提供了一些快捷工具,可方便用戶(hù)操作。
圖2 基于IDL的界面布局設(shè)計(jì)
將Tab標(biāo)簽界面分成多個(gè)子Tab界面,有助于程序員按照流程進(jìn)行開(kāi)發(fā),也有助于用戶(hù)按照流程進(jìn)行操作。在子Tab界面左邊,主要用于交互組件的開(kāi)發(fā),交互組件主要有下拉菜單組件、按鈕組件、文本組件、復(fù)合界面組件等。
軟件開(kāi)發(fā)的重點(diǎn)是三維可視化。IDL三維可視化的原理是對(duì)象圖形法,即對(duì)象實(shí)體和對(duì)象實(shí)體可按照一定空間關(guān)系進(jìn)行疊加,如同“壘積木”般可快速構(gòu)建三維場(chǎng)景。可視化窗口由一個(gè)顯示組件構(gòu)成,如圖3。由IDL語(yǔ)言可構(gòu)建出如圖4的三維中子譜儀場(chǎng)景。
圖3 三維可視化窗口構(gòu)成
圖4 三維可視化的中子譜儀場(chǎng)景
事件管理機(jī)制的原理主要分為事件關(guān)聯(lián)、數(shù)據(jù)傳遞、事件響應(yīng)3個(gè)方面,如圖5。
圖5 事件管理機(jī)制
1)事件關(guān)聯(lián):IDL可通過(guò)Xmanger命令進(jìn)行頂層管理的原理進(jìn)行實(shí)現(xiàn),調(diào)用方式為:
Xmanager,Name,ID,[關(guān)鍵字]
其中,Name指向Name_event.pro的事件響應(yīng)程序,ID指向頂級(jí)容器組件。
2)數(shù)據(jù)傳遞:采用自定義的(*pState)指針,對(duì)所有存儲(chǔ)變量、界面控件進(jìn)行數(shù)據(jù)傳遞,具體由Widget_info,Widget_control等命令在事件程序Name_event.pro中進(jìn)行實(shí)現(xiàn)。
3)事件響應(yīng):主要實(shí)現(xiàn)對(duì)鍵盤(pán)操作、鼠標(biāo)操作等事件的響應(yīng),實(shí)現(xiàn)響應(yīng)后,需要調(diào)用相應(yīng)的數(shù)據(jù)處理程序完成。通常將數(shù)據(jù)處理程序編寫(xiě)成子程序,方便調(diào)試和重復(fù)調(diào)用。
為實(shí)現(xiàn)樣品臺(tái)的運(yùn)動(dòng)仿真,需根據(jù)樣品臺(tái)運(yùn)動(dòng)學(xué)關(guān)系進(jìn)行求解。因樣品臺(tái)X,Y,Z三軸平移運(yùn)動(dòng)和繞Z軸旋轉(zhuǎn)運(yùn)動(dòng)的運(yùn)動(dòng)關(guān)系是可解耦的,故運(yùn)動(dòng)腳本分2步計(jì)算:將測(cè)量點(diǎn)平移到衍射點(diǎn);將測(cè)量矢量對(duì)齊散射矢量。
設(shè)全站儀坐標(biāo)系為{D},中子衍射坐標(biāo)系為{M},樣品臺(tái)坐標(biāo)系為{N},樣品坐標(biāo)系為{S},如圖6。實(shí)驗(yàn)中的坐標(biāo)系{S},{N},{M}由基于前方交會(huì)原理的雙全站儀實(shí)現(xiàn)標(biāo)定。
圖6 各坐標(biāo)系示意
(1)
(2)
(3)
設(shè)樣品臺(tái)的平移量表示為(ΔX,ΔY,ΔZ),故由式(2)、式(3)可得
[ΔX,ΔY,ΔZ,0]T=NPM-NPS
(4)
(5)
(6)
當(dāng)移動(dòng)樣品臺(tái)使測(cè)量點(diǎn)到達(dá)衍射點(diǎn)后,需旋轉(zhuǎn)樣品臺(tái)使測(cè)量矢量對(duì)齊散射矢量,設(shè)旋轉(zhuǎn)角度θ為NQ和NV的夾角
(7)
實(shí)際旋轉(zhuǎn)樣品臺(tái)時(shí)還需區(qū)分左旋或右旋θ,才能確保將測(cè)量矢量對(duì)齊散射矢量。因此,由測(cè)量矢量NV與散射矢量NQ的向量積可確定樣品臺(tái)旋轉(zhuǎn)方向
U=NV×NQ=(ux,uy,uz)
(8)
若uz≥0,樣品臺(tái)左旋即逆時(shí)針旋轉(zhuǎn)θ使NV對(duì)齊NQ;反之,樣品臺(tái)右旋即順時(shí)針旋轉(zhuǎn)θ使NV對(duì)齊NQ,如圖7。
圖7 旋轉(zhuǎn)方向判斷
限于篇幅,將重點(diǎn)闡述4個(gè)過(guò)程。建立對(duì)實(shí)驗(yàn)數(shù)據(jù)處理的雙全站儀標(biāo)定數(shù)據(jù)處理界面。由該界面的結(jié)果可確定空間中樣品基準(zhǔn)點(diǎn)坐標(biāo)、樣品臺(tái)坐標(biāo)系、中子衍射坐標(biāo)系。
經(jīng)過(guò)數(shù)據(jù)處理,得到樣品上8個(gè)基準(zhǔn)點(diǎn)分別在樣品坐標(biāo)系、樣品臺(tái)坐標(biāo)系中的坐標(biāo),如表1。
表1 樣品上8個(gè)基準(zhǔn)球球心坐標(biāo) mm
(9)
根據(jù)位姿矩陣式(9),樣品在樣品臺(tái)中的位姿顯示如圖8所示。
圖8 樣品在樣品臺(tái)中位姿
經(jīng)坐標(biāo)轉(zhuǎn)換,得中子衍射坐標(biāo)系{M}相對(duì)樣品臺(tái)坐標(biāo)系{N}的位姿矩陣
(10)
(11)
經(jīng)過(guò)數(shù)據(jù)處理,可得Q矢量在中子衍射坐標(biāo)系的齊次坐標(biāo)為(-0.844 25,0.525 94,0,0)T。
如表2,給定2個(gè)測(cè)量點(diǎn),其對(duì)應(yīng)的位于XOY平面的測(cè)量矢量,如表3。
表2 樣品坐標(biāo)系中的2個(gè)測(cè)量點(diǎn)
表3 樣品坐標(biāo)系中測(cè)量點(diǎn)對(duì)應(yīng)的測(cè)量矢量
將表2、表3中的數(shù)據(jù)導(dǎo)入IDL中,可得到測(cè)量點(diǎn)、測(cè)量矢量的可視化顯示,如圖9。
圖9 導(dǎo)入測(cè)量點(diǎn)和測(cè)量矢量并可視化顯示
根據(jù)樣品臺(tái)運(yùn)動(dòng)仿真計(jì)算模型式(4)、式(7)、式(8),給定測(cè)量點(diǎn)表2及測(cè)量矢量表3,實(shí)驗(yàn)數(shù)據(jù)處理結(jié)果式(9)、式(11),即可編程計(jì)算得到每個(gè)測(cè)量點(diǎn)對(duì)應(yīng)的運(yùn)動(dòng)腳本。
根據(jù)運(yùn)動(dòng)腳本,對(duì)樣品測(cè)量點(diǎn)1在測(cè)量矢量1上的應(yīng)力探測(cè)進(jìn)行運(yùn)動(dòng)仿真(其余同理),效果如圖10。從圖10(b)可以看到,該測(cè)量點(diǎn)已位于中子衍射點(diǎn),測(cè)量矢量對(duì)齊Q散射矢量運(yùn)動(dòng)腳本如圖11(a)。
圖10 基于IDL的樣品臺(tái)運(yùn)動(dòng)仿真
為了進(jìn)一步分析本文運(yùn)動(dòng)仿真軟件生成的運(yùn)動(dòng)腳本圖11(a)的正確性,與SScanSS的樣品臺(tái)運(yùn)動(dòng)腳本圖11(b)進(jìn)行對(duì)比。
圖11 2個(gè)軟件的樣品臺(tái)運(yùn)動(dòng)腳本對(duì)比
從圖11可以看出,兩者的X平臺(tái)、Y平臺(tái)的運(yùn)動(dòng)目標(biāo)位置相差約1 μm,可能是兩個(gè)軟件的數(shù)據(jù)保存精度不同引起的。雖然本文設(shè)計(jì)的譜儀模型與SScanSS中KOWARI模型存在一些結(jié)構(gòu)行程差異,但并不影響兩者在X,Y方向的平移目標(biāo)位置。而兩者的Z平臺(tái)的運(yùn)動(dòng)目標(biāo)位置相差247.5 mm±1 μm,這是由于本文譜儀模型Z方向設(shè)計(jì)行程為550 mm,而KOWARI為797.5 mm,兩者正好相差247.5 mm。兩者的Z轉(zhuǎn)臺(tái)的旋轉(zhuǎn)量相差154.816°,-205.184°,這是由于設(shè)計(jì)的中子譜儀探測(cè)器位于面向中子屏蔽大鼓的右側(cè),而KOWARI的探測(cè)器則位于面向大鼓的左側(cè),導(dǎo)致建立的中子衍射坐標(biāo)系存在差異。由該對(duì)比可知,本文基于IDL計(jì)算生成的運(yùn)動(dòng)腳本可完成樣品臺(tái)的運(yùn)動(dòng)仿真,從而指導(dǎo)實(shí)際的中子譜儀樣品臺(tái)運(yùn)動(dòng)。
1)基于IDL開(kāi)發(fā)的人機(jī)交互界面具備數(shù)據(jù)處理、可視化操作等功能,均為了最終實(shí)現(xiàn)樣品臺(tái)運(yùn)動(dòng)仿真,該軟件界面友好,簡(jiǎn)單易用,處理效率高;
2)樣品臺(tái)運(yùn)動(dòng)仿真結(jié)果表明:樣品臺(tái)可將樣品中各個(gè)測(cè)量點(diǎn)依次移動(dòng)到中子衍射點(diǎn),并將測(cè)量矢量對(duì)齊散射矢量,實(shí)現(xiàn)中子衍射仿真測(cè)量,從而指導(dǎo)實(shí)際應(yīng)力探測(cè)中的樣品臺(tái)運(yùn)動(dòng);
3)下一步將繼續(xù)研究運(yùn)動(dòng)仿真中的碰撞檢測(cè)問(wèn)題,確保中子譜儀樣品臺(tái)的安全使用。