肖 穎,王靖欣
(重慶金美通信有限責任公司,重慶400030)
虛擬現實技術在自動控制中的應用
肖 穎,王靖欣
(重慶金美通信有限責任公司,重慶400030)
針對閘機等自動控制設備,提出了一種基于虛擬現實和自動代碼生成技術的開發和調試技術。利用3DSMAX繪制3D模型,利用Virtools實現3D模型的互動,而通行策略的處理方案源于MATLAB/Stateflow模型及其生成的C代碼,借助MATLAB的繪圖功能和傳統碰撞檢測算法對仿真進一步優化。多種工具相輔相成,完成底層代碼的設計和仿真調試工作,不僅能節省大量的硬件成本,縮短研發周期,還避免了設備模型對調試人員造成的意外傷害,具有一定的可靠性和可行性。
閘機;自動代碼生成;虛擬現實
隨著計算機技術的不斷發展,虛擬現實技術已經被廣泛應用到國防、工業、藝術等方面,它極大地降低了開發成本和風險,結合逐漸成熟的自動代碼生成技術,能讓研發過程更為嚴謹和科學。而閘機作為軌道交通的主要設備,關系著乘客安全和車站利益,其通行檢測策略則是通行控制的關鍵。將虛擬現實技術和自動代碼生成技術運用于閘機設計,對類似自動控制系統的開發具有較高的參考價值,將帶來較大的收益!
為構建方便,忽略兩端斜面,直接將機箱看成由兩個長方體組成。其它的傳感器、扇門等機械部件均由基本集合體及其組合體構成,人物模型及動作源于網絡共享素材。將它們調整到與現實一致的比例后,導入Virtools平臺。如圖1和圖2所示。

圖1 物體導出效果

圖2 扇門軸心設置透視圖
扇門開啟時,其內側恰好收攏于機箱內;閘機安裝嚴格按照門機廠家的官方尺寸,關閉后扇門最小間距為50mm,如圖3所示。為了便于觀察運動狀態,模型中扇形角度大于實際扇門角度。

圖3 扇門官方安裝設置
為保證扇門在關閉時間距為50mm,在兩扇門的中間創建一個0.05×0.05×0.1的輔助物體。關閉時,使兩扇門剛好和這個長方體接觸;同理,靠兩邊的兩個輔助物體分別用于實現扇門開啟到位的檢測,如圖4所示。為了不影響觀察,仿真時將其設置為不可見。

圖4 扇門及輔助物體示意圖
開門動作的實現不需要考慮障礙物的影響。對任意一扇門,開門前先通過Face Face Intersection BB模塊判斷扇門和兩側輔助物體是否發生碰撞;如果發生碰撞則進行接下來的轉動,Per Second和Rotate BB模塊組合實現每秒轉指定角度的功能;如未發生碰撞則不再轉動。將該功能封裝到一個BG模塊_BG_OpenOneBar中。除了給BG添加bIn、p In,另外添加處于有碰撞(未開啟到位)和無碰撞(已開啟到位)情況下的兩個bOut[1],如圖5所示。

圖5 單個扇門開啟功能模塊
為了保證每次扇門打開會不停旋轉直到到位,需要讓_BG_OpenOneBar BG模塊循環執行。對于兩個扇門,這里將它們各自的操作封裝到一個BG模塊_ BG_OpenGate中,這樣設計保證了每次執行BG模塊都能讓兩個扇門轉動,直到開啟到位,如圖6所示。

圖6 兩個扇門開啟功能模塊
扇門的關閉在仿真中較為復雜:①將扇門兩端20cm左右的范圍劃分為安全區域,如果正在進行關門操作,且安全區域內有傳感器被遮擋,必須馬上將關門操作變為開門,這里的依據是閘機的功能需求;②門機自身的機械特性讓門機撞擊到障礙物時會受阻。此處的安全區域如圖7中虛線區域所示。

圖7 安全區域示意圖
關門模塊的搭建與開門模塊類似,不同之處在于轉動方向和輔助物體相關的邏輯判斷。如圖8所示。結合圖7容易理解,當安全區域較大時,一般不會出現乘客拖行李通過后行李被扇門阻擋的情況。

圖8 單個扇門關閉功能模塊
此處用Test BB模塊依次檢測它們的數據。如果指示都未被遮擋,則Wait For All BB模塊將觸發該BG模塊的bOut;反之不會觸發,如圖9所示。

圖9 安全區域傳感器檢測模塊
完整的關門操作首先需要_BG_SafeZoneSensorTest BG模塊進行傳感器數據判斷,如果安全區域沒有傳感器被遮擋,則通過_BG_CloseOneBar BG模塊進行關門操作,直到關閉到位;否則在開始到關閉完成前,安全區域內傳感器的任何遮擋將導致扇門打開,并一直循環判斷傳感器數據,直到適合關門并完成關門操作。將上述功能封裝到BG模塊_BG_ CloseGate中,可以實現每次激活此BG模塊都能讓扇門按照功能需求和實際情況完成扇門關閉操作,如圖10所示。

圖10 安全區域傳感器檢測模塊
另外障礙物對扇門關閉的阻礙可以通過對兩個扇門添加群組碰撞設置實現,其中群組成員根據后續仿真內容將乘客或行李添加進去。使用Object Slider BB模塊可以簡單實現這個功能,該群組成員則賦予了對扇門的碰撞阻擋效果,如圖11所示。

圖11 群組碰撞設置
可以將傳感器檢測功能視為定長線段(對應固定位置的光束)與人物模型或者行李模型的碰撞(或不碰撞)。這里借助了Virtools中的Ray Intersection模塊進行碰撞檢測,并添加一個Wait For All BB模塊強制讓所有的子模塊同步[2],用以獲取某一時刻所有傳感器數據。如圖12所示。
邏輯模型是自動代碼生成的原材料。以通過某區域的檢測模塊為例,整個通行過程是一個連續漸變的過程,將其看作是在若干個狀態間的轉換,而其中三個傳感器是狀態轉換的主要依據。可以采用狀態機形式的模型作為該模塊的主體,但是在每次執行狀態轉換前將三個傳感器數據整合在一起。這里采用默認連接結合流程圖的方式[3]。
另外再添加一個與其Parallel(并行)而非Exclusive(互斥)的狀態圖,以實現狀態轉換的操作,并保持如圖相對的上下位置,以實現固定的執行次序[4]。

圖12 所有傳感器仿真模塊

圖13 傳感器數據整合

圖14 并行機制的運用
當傳感器數量較多時,仿真的系統消耗也將增大,而針對傳感器的碰撞檢測也有優化的必要。例如當乘客或者行李遠離某些傳感器時,沒有必要針對那些傳感器進行碰撞檢測[5]。這里將傳感器列入多個長方體區域,當乘客或行李的包圍盒沒有和長方體區域的包圍盒發生碰撞時,就不對區域內的傳感器進行碰撞檢測,理論上可以降低某些區域傳感器的系統消耗[6-8]。如圖15所示。
借鑒傳統的層次包圍盒碰撞檢測性能公式[9]。


圖15 “虛擬區域”透視圖效果
可以得出優化后的性能公式:

其中,T1—碰撞檢測的總代價,NV0—未發生碰撞的包圍盒(“虛擬區域”&&乘客模型)對數,CV0—對未發生碰撞的包圍盒相交測試的耗費,NV1—發生碰撞的包圍盒(“虛擬區域”&&乘客模型)對數,CV1—對發生碰撞的包圍盒相交測試的耗費;NP0′—發生碰撞的包圍盒中未發生幾何碰撞的幾何元素對數,CP0—對未發生幾何碰撞的幾何元素做相交測試的耗費,NP1′—發生碰撞的包圍盒中,發生幾何碰撞的幾何元素對數,CP1—對發生幾何碰撞的幾何元素做相交測試的耗費。
當劃分的區域數量一定,且每個區域內傳感器數量一定時:
此時設一個區域內的傳感器個數為ns。另外還有:NV—參與包圍盒相交測試的包圍盒對數,且NV=NV0+NV1(優化后);NP—參與幾何相交測試的幾何元素對數,且NP=NP0+NP1(優化前);NP′—發生碰撞的包圍盒中,參與幾何相交測試的幾何元素對數,且NP′=NP0′+NP1′(優化后);對于同一種模型下的同一種情況,針對優化前后的兩種算法,必有NP0≥P0′,NP1=NP1′,NP≥NP′。
性能變化:

則:

設NV=10,ns=20,NV1在0到10間變化,依據之前設定,此時必滿足NP1≤ns×NV1,另X、Y、Z軸分別為NV1、NP1和,如圖16所示。可以看出當NV1較小的時候優化效果較好,且NP1越小,效果越好;當NV1達到某個臨界值后,優化開始產生負面效果,且此時NP1越小,效果越差。綜上所述:NP1越大,優化效果越接近于0;NP1越小,NV1在臨界值NV1前、后分別呈現極端的正面效果和極端的負面效果。從圖像效果來看,極端的正面效果要遠遠強于極端的負面效果。

圖16 優化分析圖
閘機通行策略設計是虛擬現實技術結合自動代碼生成技術的一項典型應用,能夠完成閘機底層代碼設計的大部分工作,并在提高效率、降低開發成本的同時設計出一套較為完善的產品。這里基于閘機設計項目提出了一套相對科學的自動控制系統開發手段,證實其有較為廣泛的應用前景。
[1]王靖欣.軌道交通閘機系統的人員檢測與判別技術[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的自動代碼生成器研究與實現[D].成都:電子科技大學,2011.
[5]周東諭.碰撞檢測算法及在汽車虛擬現實仿真平臺中的應用[D].重慶:重慶郵電大學,2011.
[6]沈學利,吳瓊.基于包圍盒和空間分割的混合碰撞檢測算法[J].計算機工程,2012,38(6):256-258.
[7]李苗.實時碰撞檢測算法分析與比較[J].計算機與現代化,2011(6):88-90.
[8]李永帥.基于Virtools的中學物理虛擬實驗室的構建方法研究[D].山東:山東建筑大學,2011.
[9]閆方舉,楊衛平,劉培順.混合包圍體碰撞檢測算法的優化研究[J].電腦知識與技術,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-),女,重慶市沙坪壩區人,碩士研究生,高級工程師,主研方向:嵌入式系統開發。
2013-09-13