肖 穎,王靖欣
(重慶金美通信有限責任公司,重慶400030)
虛擬現(xiàn)實技術(shù)在自動控制中的應(yīng)用
肖 穎,王靖欣
(重慶金美通信有限責任公司,重慶400030)
針對閘機等自動控制設(shè)備,提出了一種基于虛擬現(xiàn)實和自動代碼生成技術(shù)的開發(fā)和調(diào)試技術(shù)。利用3DSMAX繪制3D模型,利用Virtools實現(xiàn)3D模型的互動,而通行策略的處理方案源于MATLAB/Stateflow模型及其生成的C代碼,借助MATLAB的繪圖功能和傳統(tǒng)碰撞檢測算法對仿真進一步優(yōu)化。多種工具相輔相成,完成底層代碼的設(shè)計和仿真調(diào)試工作,不僅能節(jié)省大量的硬件成本,縮短研發(fā)周期,還避免了設(shè)備模型對調(diào)試人員造成的意外傷害,具有一定的可靠性和可行性。
閘機;自動代碼生成;虛擬現(xiàn)實
隨著計算機技術(shù)的不斷發(fā)展,虛擬現(xiàn)實技術(shù)已經(jīng)被廣泛應(yīng)用到國防、工業(yè)、藝術(shù)等方面,它極大地降低了開發(fā)成本和風險,結(jié)合逐漸成熟的自動代碼生成技術(shù),能讓研發(fā)過程更為嚴謹和科學。而閘機作為軌道交通的主要設(shè)備,關(guān)系著乘客安全和車站利益,其通行檢測策略則是通行控制的關(guān)鍵。將虛擬現(xiàn)實技術(shù)和自動代碼生成技術(shù)運用于閘機設(shè)計,對類似自動控制系統(tǒng)的開發(fā)具有較高的參考價值,將帶來較大的收益!
為構(gòu)建方便,忽略兩端斜面,直接將機箱看成由兩個長方體組成。其它的傳感器、扇門等機械部件均由基本集合體及其組合體構(gòu)成,人物模型及動作源于網(wǎng)絡(luò)共享素材。將它們調(diào)整到與現(xiàn)實一致的比例后,導(dǎo)入Virtools平臺。如圖1和圖2所示。
圖1 物體導(dǎo)出效果
圖2 扇門軸心設(shè)置透視圖
扇門開啟時,其內(nèi)側(cè)恰好收攏于機箱內(nèi);閘機安裝嚴格按照門機廠家的官方尺寸,關(guān)閉后扇門最小間距為50mm,如圖3所示。為了便于觀察運動狀態(tài),模型中扇形角度大于實際扇門角度。
圖3 扇門官方安裝設(shè)置
為保證扇門在關(guān)閉時間距為50mm,在兩扇門的中間創(chuàng)建一個0.05×0.05×0.1的輔助物體。關(guān)閉時,使兩扇門剛好和這個長方體接觸;同理,靠兩邊的兩個輔助物體分別用于實現(xiàn)扇門開啟到位的檢測,如圖4所示。為了不影響觀察,仿真時將其設(shè)置為不可見。
圖4 扇門及輔助物體示意圖
開門動作的實現(xiàn)不需要考慮障礙物的影響。對任意一扇門,開門前先通過Face Face Intersection BB模塊判斷扇門和兩側(cè)輔助物體是否發(fā)生碰撞;如果發(fā)生碰撞則進行接下來的轉(zhuǎn)動,Per Second和Rotate BB模塊組合實現(xiàn)每秒轉(zhuǎn)指定角度的功能;如未發(fā)生碰撞則不再轉(zhuǎn)動。將該功能封裝到一個BG模塊_BG_OpenOneBar中。除了給BG添加bIn、p In,另外添加處于有碰撞(未開啟到位)和無碰撞(已開啟到位)情況下的兩個bOut[1],如圖5所示。
圖5 單個扇門開啟功能模塊
為了保證每次扇門打開會不停旋轉(zhuǎn)直到到位,需要讓_BG_OpenOneBar BG模塊循環(huán)執(zhí)行。對于兩個扇門,這里將它們各自的操作封裝到一個BG模塊_ BG_OpenGate中,這樣設(shè)計保證了每次執(zhí)行BG模塊都能讓兩個扇門轉(zhuǎn)動,直到開啟到位,如圖6所示。
圖6 兩個扇門開啟功能模塊
扇門的關(guān)閉在仿真中較為復(fù)雜:①將扇門兩端20cm左右的范圍劃分為安全區(qū)域,如果正在進行關(guān)門操作,且安全區(qū)域內(nèi)有傳感器被遮擋,必須馬上將關(guān)門操作變?yōu)殚_門,這里的依據(jù)是閘機的功能需求;②門機自身的機械特性讓門機撞擊到障礙物時會受阻。此處的安全區(qū)域如圖7中虛線區(qū)域所示。
圖7 安全區(qū)域示意圖
關(guān)門模塊的搭建與開門模塊類似,不同之處在于轉(zhuǎn)動方向和輔助物體相關(guān)的邏輯判斷。如圖8所示。結(jié)合圖7容易理解,當安全區(qū)域較大時,一般不會出現(xiàn)乘客拖行李通過后行李被扇門阻擋的情況。
圖8 單個扇門關(guān)閉功能模塊
此處用Test BB模塊依次檢測它們的數(shù)據(jù)。如果指示都未被遮擋,則Wait For All BB模塊將觸發(fā)該BG模塊的bOut;反之不會觸發(fā),如圖9所示。
圖9 安全區(qū)域傳感器檢測模塊
完整的關(guān)門操作首先需要_BG_SafeZoneSensorTest BG模塊進行傳感器數(shù)據(jù)判斷,如果安全區(qū)域沒有傳感器被遮擋,則通過_BG_CloseOneBar BG模塊進行關(guān)門操作,直到關(guān)閉到位;否則在開始到關(guān)閉完成前,安全區(qū)域內(nèi)傳感器的任何遮擋將導(dǎo)致扇門打開,并一直循環(huán)判斷傳感器數(shù)據(jù),直到適合關(guān)門并完成關(guān)門操作。將上述功能封裝到BG模塊_BG_ CloseGate中,可以實現(xiàn)每次激活此BG模塊都能讓扇門按照功能需求和實際情況完成扇門關(guān)閉操作,如圖10所示。
圖10 安全區(qū)域傳感器檢測模塊
另外障礙物對扇門關(guān)閉的阻礙可以通過對兩個扇門添加群組碰撞設(shè)置實現(xiàn),其中群組成員根據(jù)后續(xù)仿真內(nèi)容將乘客或行李添加進去。使用Object Slider BB模塊可以簡單實現(xiàn)這個功能,該群組成員則賦予了對扇門的碰撞阻擋效果,如圖11所示。
圖11 群組碰撞設(shè)置
可以將傳感器檢測功能視為定長線段(對應(yīng)固定位置的光束)與人物模型或者行李模型的碰撞(或不碰撞)。這里借助了Virtools中的Ray Intersection模塊進行碰撞檢測,并添加一個Wait For All BB模塊強制讓所有的子模塊同步[2],用以獲取某一時刻所有傳感器數(shù)據(jù)。如圖12所示。
邏輯模型是自動代碼生成的原材料。以通過某區(qū)域的檢測模塊為例,整個通行過程是一個連續(xù)漸變的過程,將其看作是在若干個狀態(tài)間的轉(zhuǎn)換,而其中三個傳感器是狀態(tài)轉(zhuǎn)換的主要依據(jù)??梢圆捎脿顟B(tài)機形式的模型作為該模塊的主體,但是在每次執(zhí)行狀態(tài)轉(zhuǎn)換前將三個傳感器數(shù)據(jù)整合在一起。這里采用默認連接結(jié)合流程圖的方式[3]。
另外再添加一個與其Parallel(并行)而非Exclusive(互斥)的狀態(tài)圖,以實現(xiàn)狀態(tài)轉(zhuǎn)換的操作,并保持如圖相對的上下位置,以實現(xiàn)固定的執(zhí)行次序[4]。
圖12 所有傳感器仿真模塊
圖13 傳感器數(shù)據(jù)整合
圖14 并行機制的運用
當傳感器數(shù)量較多時,仿真的系統(tǒng)消耗也將增大,而針對傳感器的碰撞檢測也有優(yōu)化的必要。例如當乘客或者行李遠離某些傳感器時,沒有必要針對那些傳感器進行碰撞檢測[5]。這里將傳感器列入多個長方體區(qū)域,當乘客或行李的包圍盒沒有和長方體區(qū)域的包圍盒發(fā)生碰撞時,就不對區(qū)域內(nèi)的傳感器進行碰撞檢測,理論上可以降低某些區(qū)域傳感器的系統(tǒng)消耗[6-8]。如圖15所示。
借鑒傳統(tǒng)的層次包圍盒碰撞檢測性能公式[9]。
圖15 “虛擬區(qū)域”透視圖效果
可以得出優(yōu)化后的性能公式:
其中,T1—碰撞檢測的總代價,NV0—未發(fā)生碰撞的包圍盒(“虛擬區(qū)域”&&乘客模型)對數(shù),CV0—對未發(fā)生碰撞的包圍盒相交測試的耗費,NV1—發(fā)生碰撞的包圍盒(“虛擬區(qū)域”&&乘客模型)對數(shù),CV1—對發(fā)生碰撞的包圍盒相交測試的耗費;NP0′—發(fā)生碰撞的包圍盒中未發(fā)生幾何碰撞的幾何元素對數(shù),CP0—對未發(fā)生幾何碰撞的幾何元素做相交測試的耗費,NP1′—發(fā)生碰撞的包圍盒中,發(fā)生幾何碰撞的幾何元素對數(shù),CP1—對發(fā)生幾何碰撞的幾何元素做相交測試的耗費。
當劃分的區(qū)域數(shù)量一定,且每個區(qū)域內(nèi)傳感器數(shù)量一定時:
此時設(shè)一個區(qū)域內(nèi)的傳感器個數(shù)為ns。另外還有:NV—參與包圍盒相交測試的包圍盒對數(shù),且NV=NV0+NV1(優(yōu)化后);NP—參與幾何相交測試的幾何元素對數(shù),且NP=NP0+NP1(優(yōu)化前);NP′—發(fā)生碰撞的包圍盒中,參與幾何相交測試的幾何元素對數(shù),且NP′=NP0′+NP1′(優(yōu)化后);對于同一種模型下的同一種情況,針對優(yōu)化前后的兩種算法,必有NP0≥P0′,NP1=NP1′,NP≥NP′。
性能變化:
則:
設(shè)NV=10,ns=20,NV1在0到10間變化,依據(jù)之前設(shè)定,此時必滿足NP1≤ns×NV1,另X、Y、Z軸分別為NV1、NP1和,如圖16所示。可以看出當NV1較小的時候優(yōu)化效果較好,且NP1越小,效果越好;當NV1達到某個臨界值后,優(yōu)化開始產(chǎn)生負面效果,且此時NP1越小,效果越差。綜上所述:NP1越大,優(yōu)化效果越接近于0;NP1越小,NV1在臨界值NV1前、后分別呈現(xiàn)極端的正面效果和極端的負面效果。從圖像效果來看,極端的正面效果要遠遠強于極端的負面效果。
圖16 優(yōu)化分析圖
閘機通行策略設(shè)計是虛擬現(xiàn)實技術(shù)結(jié)合自動代碼生成技術(shù)的一項典型應(yīng)用,能夠完成閘機底層代碼設(shè)計的大部分工作,并在提高效率、降低開發(fā)成本的同時設(shè)計出一套較為完善的產(chǎn)品。這里基于閘機設(shè)計項目提出了一套相對科學的自動控制系統(tǒng)開發(fā)手段,證實其有較為廣泛的應(yīng)用前景。
[1]王靖欣.軌道交通閘機系統(tǒng)的人員檢測與判別技術(shù)[D].重慶:重慶大學,2012.
[2]GONG J,AN J,CUIL.Research and Application for Collision Detection Algorithm in Virtools;proceedings of the Business Computing and Global Informatization(GCGIN)[C].2011 International Com ference on,2001(7):29-31.
[3]CHUNQING C.Formal Analysis for Stateflow Diagrams;proceedings of the Secure Software Integration and Reliability Improvement Companion(SSIRI-C)[C].2010 Fourth International Conference on,2010(6):9-11.
[4]周建華.支持Simulink/Stateflow的自動代碼生成器研究與實現(xiàn)[D].成都:電子科技大學,2011.
[5]周東諭.碰撞檢測算法及在汽車虛擬現(xiàn)實仿真平臺中的應(yīng)用[D].重慶:重慶郵電大學,2011.
[6]沈?qū)W利,吳瓊.基于包圍盒和空間分割的混合碰撞檢測算法[J].計算機工程,2012,38(6):256-258.
[7]李苗.實時碰撞檢測算法分析與比較[J].計算機與現(xiàn)代化,2011(6):88-90.
[8]李永帥.基于Virtools的中學物理虛擬實驗室的構(gòu)建方法研究[D].山東:山東建筑大學,2011.
[9]閆方舉,楊衛(wèi)平,劉培順.混合包圍體碰撞檢測算法的優(yōu)化研究[J].電腦知識與技術(shù),2011,7(28):7012-7026.
Aplication of Virtual Reality Technology in Automation Control
XIAO Ying,WANG Jing-xin
(Chongqing Jinmei Communication Co.,Ltd.,Chongqing 400030,China)
Relying on the automatic control devices,this paper presents a new method of simulation,which conduct drawing with 3DS MAX,interacting by Virtools and building the logic model with MATLAB/Stateflow for C code,based on the technology of virtual reality and automatic code generation.The simulation will be improved on the basis of traditional collision detection algorithm.Designing and debugging with these tools can reduce hardware cost and development cycle and avoid injuring the debugger,and it has good reliability and feasibility.
Entry gate;Automatic Code Generation;Virtual reality
10.3969/j.issn.1002-2279.2014.03.021
TP391.9
:A
:1002-2279(2014)03-0072-05
肖穎(1976-),女,重慶市沙坪壩區(qū)人,碩士研究生,高級工程師,主研方向:嵌入式系統(tǒng)開發(fā)。
2013-09-13