華純潔,郎誠(chéng)廉
(同濟(jì)大學(xué) 電氣工程系,上海 201804)
城軌線路教學(xué)電子沙盤的建模與研究
華純潔,郎誠(chéng)廉
(同濟(jì)大學(xué) 電氣工程系,上海 201804)
本文以地鐵運(yùn)行線路為基礎(chǔ),通過合理的線路布局,在合適的地點(diǎn)布置車站、信號(hào)機(jī)、樹木和建筑模型,搭建成逼真的城軌線路教學(xué)電子沙盤。利用OSG(OpenSceneGraph)技術(shù)驅(qū)動(dòng)電子沙盤中的列車運(yùn)行。
電子沙盤;OpenFlight API ;OpenSceneGraph
沙盤在軍事、規(guī)劃、工程、旅游及地理教學(xué)中有著廣泛的應(yīng)用。傳統(tǒng)沙盤存在制作困難、成本高、不易修改、不便移動(dòng)等缺點(diǎn)。與傳統(tǒng)模擬沙盤相比,電子沙盤有以下優(yōu)勢(shì):不需要實(shí)物材料,制作簡(jiǎn)單,費(fèi)用低廉,速度快??砂匆蟮挠^察位置、視角等參數(shù)顯示,瀏覽方便。
本文利用Multigen Creator三維建模軟件,設(shè)計(jì)列車綜合性電子沙盤,使用OSG技術(shù),實(shí)現(xiàn)列車實(shí)時(shí)運(yùn)行可視化仿真。
本文目標(biāo)是構(gòu)造一條具有教學(xué)意義的城軌電子沙盤,通過線路能夠了解城軌線路的常用類型、各類線路參數(shù)、各類信號(hào)燈與車站分布及列車的運(yùn)行控制。主要工作分為以下3部分。
(1)軌道線路的建模
利用VC++與OpenFlight API相結(jié)合的方法來完成軌道線路的建模。
OpenFlight API是由一系列C文件和Creator模型系統(tǒng)的庫(kù)文件的編程接口。通過API可以進(jìn)行OpenFlight模型的轉(zhuǎn)換、實(shí)時(shí)仿真、自動(dòng)建模以及通過插件形式對(duì)Creator進(jìn)行功能擴(kuò)展。
(2)周邊場(chǎng)景以及建筑物的建模
在進(jìn)行周邊場(chǎng)景的建模時(shí),本文主要利用Multigen Creator中的相關(guān)技術(shù)實(shí)現(xiàn)高逼真度的場(chǎng)景。
Multigen Creator建模軟件完全針對(duì)可視化仿真應(yīng)用,集成了多邊形建模、矢量建模和地形生成等多種高級(jí)功能。
(3)實(shí)現(xiàn)列車控制
在實(shí)現(xiàn)列車控制方面本文選用三維渲染引擎OpenSceneGraph(OSG),OSG具有效率高、移植能力強(qiáng)、開源免費(fèi)等優(yōu)點(diǎn)。根據(jù)這些優(yōu)點(diǎn),將OSG應(yīng)用到列車視景控制中,可實(shí)現(xiàn)功能靈活、渲染效果高、研發(fā)成本低的三維渲染應(yīng)用程序。
2.1 線路規(guī)劃
本文主要構(gòu)建了城市地鐵中出現(xiàn)的一些常見軌道線路,包括正線、渡線、停車場(chǎng)等。在建模期間需要考慮線路緩和曲線、彎道、坡道和超高等關(guān)鍵參數(shù)的選取,這些都是影響列車運(yùn)行的重要參數(shù)。
2.1.1 彎道最小半徑曲線
設(shè)定最小曲線半徑標(biāo)準(zhǔn)是因?yàn)榈罔F在轉(zhuǎn)彎時(shí),其離心力作用彎道外側(cè)并產(chǎn)生橫向力,這種力會(huì)對(duì)鋼軌產(chǎn)生擠壓和摩擦,當(dāng)半徑過小時(shí),會(huì)增大輪軌磨耗,同時(shí)影響到列車的安全運(yùn)行,為了保證列車的安全運(yùn)行,降低車輪和軌道的維護(hù)投資,在進(jìn)行地鐵線路平面曲線設(shè)計(jì)中,就應(yīng)該根據(jù)不同速度等級(jí)設(shè)計(jì)要求選用相應(yīng)的最小曲線半徑。按《地鐵設(shè)計(jì)規(guī)范》中規(guī)定,最小曲線半徑標(biāo)準(zhǔn)如表1所示。
表1 最小曲線半徑標(biāo)準(zhǔn)
2.1.2 坡道參數(shù)
根據(jù)國(guó)家《地鐵設(shè)計(jì)規(guī)范》(2003版),對(duì)地鐵線路最大坡度的要求,正線的最大坡度不宜大于30‰,困難地段可采用35‰;聯(lián)絡(luò)線、出入線的最大坡度不宜大于40‰(均不考慮各種坡度折減值)。對(duì)于采用動(dòng)力坡的地段,通常動(dòng)力坡在25‰以上,對(duì)于不采用動(dòng)力坡的地段,坡度宜平緩。故對(duì)大坡度沒有嚴(yán)格定義,通??梢哉J(rèn)為坡度在20‰以上屬于大坡度。
對(duì)于坡段長(zhǎng)度,規(guī)范要求線路坡段長(zhǎng)度不宜小于遠(yuǎn)期列車長(zhǎng)度,并應(yīng)滿足相鄰豎曲線間的夾直線長(zhǎng)度的要求,其夾直線長(zhǎng)度不宜小于50 m,而對(duì)于最大坡長(zhǎng),規(guī)范沒有明確要求,一般根據(jù)區(qū)間的實(shí)際情況而定,對(duì)于不同的線路,有的是幾百米,有的則是幾公里。
2.1.3 緩和曲線長(zhǎng)度
緩和曲線長(zhǎng)度的選擇和計(jì)算應(yīng)注意以下幾點(diǎn):(1)超高順坡率;(2)超高時(shí)變率;(3)最大超高與最大欠超高;(4)限制未平衡離心加速度時(shí)變率。最終確定緩和曲線長(zhǎng)度的計(jì)算公式如下:
其中,V為設(shè)計(jì)速度(km/h),R為曲線半徑(m),H為超高(m),1為緩和曲線長(zhǎng)度。
2.1.4 模型比例及參數(shù)選取
(1)線路彎道半徑
根據(jù)上文中的彎道參數(shù)分析,如表1所示??紤]到彎道半徑的設(shè)計(jì)需包含不同車型在不同情況下的運(yùn)行環(huán)境,所以線路彎道半徑在模型中選取300 m。
(2)坡道參數(shù)
根據(jù)上文中的坡道分析,通常認(rèn)為坡度在20‰以上屬于大坡道,具有典型性,所以上下坡道坡度統(tǒng)一為20‰,即為長(zhǎng)大坡道,其中坡道底面長(zhǎng)度1 km,坡道高度20 m。
(3)緩和曲線長(zhǎng)度
根據(jù)上文中緩和曲線的長(zhǎng)度分析,根據(jù)式(1),(2),(3)分別得到的緩和曲線長(zhǎng)度都是大于等于20 m,所以緩和曲線長(zhǎng)度選為20 m,它綜合了列車不同速度條件下緩和曲線的長(zhǎng)度。
(4)站間距
本文設(shè)計(jì)有3個(gè)站點(diǎn),考慮到典型性,前兩個(gè)之間距離為小站,后兩站之間距離為大站。按照實(shí)際情況出發(fā),前兩站間距2 km為小站,后兩站間距4 km為大站。
(5)車站長(zhǎng)度
根據(jù)一般情況,車站的長(zhǎng)度設(shè)計(jì)為145 m。(6)模型整體大小
模型的線路結(jié)構(gòu)為環(huán)線,即線路走向按環(huán)形分布,考慮到線路設(shè)計(jì)有高架部分,地下部分,這樣選擇能為其節(jié)省空間而且利于觀察。同時(shí)綜合上面的參數(shù)分析,確定模型整體長(zhǎng)度為2.4 km,寬1.8 km,能夠滿足計(jì)算機(jī)屏幕4:3的比例顯示,適應(yīng)多數(shù)人的視覺習(xí)慣,且這樣的大小已經(jīng)能夠包含線路中的主要信息。
2.2 獲取模型空間坐標(biāo)
首先畫出軌道的橫斷面,通過中心點(diǎn)得到各頂點(diǎn)坐標(biāo),連接后生成軌道橫斷面模型,然后把中心線上各點(diǎn)都作為軌道橫斷面的中心點(diǎn)將其連接,最后生成軌道線路圖。線路的曲線部分由多條直線近似構(gòu)成。
獲取線路的中心線空間坐標(biāo)是生成線路模型的重要數(shù)據(jù)。讀取中心線空間坐標(biāo)步驟:(1)確定軌道半徑、坡度、緩和曲線長(zhǎng)度和超高等關(guān)鍵參數(shù)。(2)確定電子沙盤模型比例,選取坐標(biāo)軸上關(guān)鍵點(diǎn)坐標(biāo)。(3)利用Multigen Creator中road建模工具根據(jù)關(guān)鍵點(diǎn)坐標(biāo)完成線路規(guī)劃。(4)利用Multigen Creator中road建模工具Write Path方法獲得線路中心線空間坐標(biāo)。
描述線路中心線的完整數(shù)據(jù)如表2所示。
表2 描述線路中心線的數(shù)據(jù)
其中X、Y、Z用來確定道路模型在場(chǎng)景中的位置,代表道路模型中心點(diǎn)的坐標(biāo)。H、P、R用來確定道路模型的朝向,代表道路模型繞3個(gè)坐標(biāo)軸的旋轉(zhuǎn)角度。
2.3 線路模型生成方法
所有準(zhǔn)備數(shù)據(jù)都做好之后,通過VC++與OpenFlight API生成線路模型。在數(shù)據(jù)庫(kù)中,首先定義數(shù)據(jù)庫(kù)db節(jié)點(diǎn),即FLT文件的根節(jié)點(diǎn),利用函數(shù)mgAttach()將Group節(jié)點(diǎn)錄入根節(jié)點(diǎn)下,然后依次是Object節(jié)點(diǎn)、Polygon節(jié)點(diǎn)和Vertex節(jié)點(diǎn)。根據(jù)錄入的坐標(biāo)數(shù)據(jù),利用GenVertex()函數(shù)生成FLT文件中的點(diǎn),然后利用GenPoly()函數(shù)將生成的4個(gè)點(diǎn)依次連接起來形成面,最后利用函數(shù)mgSetAttlist(prec,fltPolyTexture)紋理映射。
通過相關(guān)空間公式處理后得到的數(shù)據(jù)是決定線路平面線形的點(diǎn),這些點(diǎn)是整個(gè)線路模型剖面的幾何中心點(diǎn)或是其它點(diǎn)(根據(jù)不同類型線路而定),通過這些點(diǎn)和相關(guān)公式推算出線路模型的立體模型關(guān)鍵點(diǎn)坐標(biāo)。
綜上所述,三維建模軟件中沒有完全順滑的曲線,可以用多個(gè)直線連接替代曲線。其坐標(biāo)通用公式為:
其中x[k][j],y[k][j],z[k][j]為縱斷面上關(guān)鍵點(diǎn)的空間坐標(biāo),point[k].x,point[k].y,point[k].z為平面上關(guān)鍵點(diǎn)的坐標(biāo),point[k].h為平面上兩關(guān)鍵點(diǎn)連線與y軸的夾角。
最后結(jié)合中心線坐標(biāo)和關(guān)鍵點(diǎn)公式,利用VC++與OpenFlight API函數(shù)生成模型,并用Multigen Creator顯示,如圖1所示。
圖1 線路模型
場(chǎng)景建模的對(duì)象為建筑物、花草樹木、地形地貌等,主要分4個(gè)步驟構(gòu)建模型:(1)進(jìn)行數(shù)據(jù)采集及預(yù)處理,主要是紋理數(shù)據(jù)。(2)利用Creator軟件進(jìn)行模型的構(gòu)建,包括地貌和建筑物。(3)對(duì)建好的模型貼上紋理和材質(zhì),使其與真實(shí)地物相似。(4)使用外部應(yīng)用技術(shù),對(duì)建好的模型進(jìn)行集成,生成.flt的模型文件。
通過紋理映射技術(shù)對(duì)于模型不需要進(jìn)行詳細(xì)建模,并且有著很高的逼真度。在處理紋理貼圖過程中,通過Photoshop,使用變換、復(fù)制、粘貼以及明亮的調(diào)節(jié)工具來糾正變形的紋理,得到理想的紋理。
外部引用技術(shù),是在創(chuàng)建軌道場(chǎng)景幾何對(duì)象時(shí),使不同的.flt文件單獨(dú)在一個(gè).flt文件中創(chuàng)建。利用外部引用技術(shù)能夠有效的降低模型數(shù)據(jù)庫(kù)的規(guī)模,節(jié)省內(nèi)存和存儲(chǔ)空間,提高系統(tǒng)資源的利用率。模型的層次結(jié)構(gòu)如圖2所示。
圖2 樹形結(jié)構(gòu)
通過以上分析,最終生成包括軌道線路、信號(hào)燈、車站及場(chǎng)景模型,如圖3和圖4所示。
圖3 整體效果圖
圖4 局部效果圖
仿真驅(qū)動(dòng)程序開始載入已經(jīng)建好的電子沙盤模型到現(xiàn)場(chǎng)視景中,讀入所有的軌道線路數(shù)據(jù)。將軌道線路分段,即選取某點(diǎn)為出發(fā)點(diǎn),在進(jìn)入道岔前此部分為section1,道岔后部為section2,以此類推,每次進(jìn)出道岔都給定一個(gè)section標(biāo)號(hào),如圖5所示。
圖5 軌道分段
通過軌道線路數(shù)據(jù)能夠得到每段section的長(zhǎng)度,此時(shí)控制列車勻速前進(jìn),經(jīng)過一定時(shí)間能夠計(jì)算出列車的運(yùn)行距離。由此就可以通過列車出發(fā)點(diǎn)和列車已行駛距離結(jié)合每段軌道線路長(zhǎng)度計(jì)算出列車的當(dāng)前位置。確定列車位置后將其顯示在屏幕上即完成列車控制。
本文主要介紹了城軌線路教學(xué)電子沙盤中線路設(shè)計(jì)及周邊場(chǎng)景的建模,使用OSG三維渲染引擎實(shí)時(shí)渲染和控制場(chǎng)景中的列車運(yùn)行。此電子沙盤有很強(qiáng)的綜合性,能夠模擬列車運(yùn)行環(huán)境,很大限度地接近現(xiàn)實(shí)中不同情況,解決了物理沙盤建立和修改不靈活的問題。它能夠反映列車各種運(yùn)行情況,其中包括列車上下坡道、進(jìn)出站點(diǎn)、進(jìn)出車場(chǎng)、站后停車、站后折返及不同信號(hào)燈指示時(shí)列車的運(yùn)行情況,在城市軌道交通系統(tǒng)的運(yùn)作展示及教學(xué)實(shí)踐方面有著積極的作用。
[1]岳 軍.地鐵線路平面曲線設(shè)計(jì)相關(guān)參數(shù)的確定[J].城市建設(shè)理論研究,2013(11).
[2] 練松良.軌道工程[M].上海:同濟(jì)大學(xué)出版社,2006.
[3] 王永梅,舒娛琴,胡偉平. 虛擬華師校園三維模型的構(gòu)建[J].華南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2007(4).
[4]譚浩強(qiáng).C++程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.
[5]王 銳,錢學(xué)雷.OpenSceneGraph三維渲染引擎設(shè)計(jì)與實(shí)踐[M].北京:清華大學(xué)出版社,2009(11).
責(zé)任編輯 陳 蓉
Modeling of teaching electronic sand table for Urban Transit
HUA Chunjie, LANG Chenglian
( Department of Electrical Engineering, Tongji University, Shanghai 201804, China )
Modeling of teaching electronic sand table for Urban Transit was designed based on lines of subway. The teaching electronic sand table could be implemented by the route of reasonable layout, placing the stations, semaphore, trees and buildings along the line. OSG technology was used to simulate functions of trains in the electronic sand table.
electronic sand table; OpenFlight AP; OpenSceneGraph(OSG)
U231.2∶TP39
A
1005-8451(2014)08-0045-04
2014-01-08
華純潔,在讀碩士研究生;郎誠(chéng)廉,高級(jí)工程師。