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

圖1 物體導(dǎo)出效果

圖2 扇門軸心設(shè)置透視圖
扇門開啟時(shí),其內(nèi)側(cè)恰好收攏于機(jī)箱內(nèi);閘機(jī)安裝嚴(yán)格按照門機(jī)廠家的官方尺寸,關(guān)閉后扇門最小間距為50mm,如圖3所示。為了便于觀察運(yùn)動(dòng)狀態(tài),模型中扇形角度大于實(shí)際扇門角度。

圖3 扇門官方安裝設(shè)置
為保證扇門在關(guān)閉時(shí)間距為50mm,在兩扇門的中間創(chuàng)建一個(gè)0.05×0.05×0.1的輔助物體。關(guān)閉時(shí),使兩扇門剛好和這個(gè)長(zhǎng)方體接觸;同理,靠?jī)蛇叺膬蓚€(gè)輔助物體分別用于實(shí)現(xiàn)扇門開啟到位的檢測(cè),如圖4所示。為了不影響觀察,仿真時(shí)將其設(shè)置為不可見。

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

圖5 單個(gè)扇門開啟功能模塊
為了保證每次扇門打開會(huì)不停旋轉(zhuǎn)直到到位,需要讓_BG_OpenOneBar BG模塊循環(huán)執(zhí)行。對(duì)于兩個(gè)扇門,這里將它們各自的操作封裝到一個(gè)BG模塊_ BG_OpenGate中,這樣設(shè)計(jì)保證了每次執(zhí)行BG模塊都能讓兩個(gè)扇門轉(zhuǎn)動(dòng),直到開啟到位,如圖6所示。

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

圖7 安全區(qū)域示意圖
關(guān)門模塊的搭建與開門模塊類似,不同之處在于轉(zhuǎn)動(dòng)方向和輔助物體相關(guān)的邏輯判斷。如圖8所示。結(jié)合圖7容易理解,當(dāng)安全區(qū)域較大時(shí),一般不會(huì)出現(xiàn)乘客拖行李通過后行李被扇門阻擋的情況。

圖8 單個(gè)扇門關(guān)閉功能模塊
此處用Test BB模塊依次檢測(cè)它們的數(shù)據(jù)。如果指示都未被遮擋,則Wait For All BB模塊將觸發(fā)該BG模塊的bOut;反之不會(huì)觸發(fā),如圖9所示。

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

圖10 安全區(qū)域傳感器檢測(cè)模塊
另外障礙物對(duì)扇門關(guān)閉的阻礙可以通過對(duì)兩個(gè)扇門添加群組碰撞設(shè)置實(shí)現(xiàn),其中群組成員根據(jù)后續(xù)仿真內(nèi)容將乘客或行李添加進(jìn)去。使用Object Slider BB模塊可以簡(jiǎn)單實(shí)現(xiàn)這個(gè)功能,該群組成員則賦予了對(duì)扇門的碰撞阻擋效果,如圖11所示。

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

圖12 所有傳感器仿真模塊

圖13 傳感器數(shù)據(jù)整合

圖14 并行機(jī)制的運(yùn)用
當(dāng)傳感器數(shù)量較多時(shí),仿真的系統(tǒng)消耗也將增大,而針對(duì)傳感器的碰撞檢測(cè)也有優(yōu)化的必要。例如當(dāng)乘客或者行李遠(yuǎn)離某些傳感器時(shí),沒有必要針對(duì)那些傳感器進(jìn)行碰撞檢測(cè)[5]。這里將傳感器列入多個(gè)長(zhǎng)方體區(qū)域,當(dāng)乘客或行李的包圍盒沒有和長(zhǎng)方體區(qū)域的包圍盒發(fā)生碰撞時(shí),就不對(duì)區(qū)域內(nèi)的傳感器進(jìn)行碰撞檢測(cè),理論上可以降低某些區(qū)域傳感器的系統(tǒng)消耗[6-8]。如圖15所示。
借鑒傳統(tǒng)的層次包圍盒碰撞檢測(cè)性能公式[9]。


圖15 “虛擬區(qū)域”透視圖效果
可以得出優(yōu)化后的性能公式:

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

則:

設(shè)NV=10,ns=20,NV1在0到10間變化,依據(jù)之前設(shè)定,此時(shí)必滿足NP1≤ns×NV1,另X、Y、Z軸分別為NV1、NP1和,如圖16所示??梢钥闯霎?dāng)NV1較小的時(shí)候優(yōu)化效果較好,且NP1越小,效果越好;當(dāng)NV1達(dá)到某個(gè)臨界值后,優(yōu)化開始產(chǎn)生負(fù)面效果,且此時(shí)NP1越小,效果越差。綜上所述:NP1越大,優(yōu)化效果越接近于0;NP1越小,NV1在臨界值NV1前、后分別呈現(xiàn)極端的正面效果和極端的負(fù)面效果。從圖像效果來看,極端的正面效果要遠(yuǎn)遠(yuǎn)強(qiáng)于極端的負(fù)面效果。

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