夏 青,楊劍鋒
(蘭州交通大學(xué) 自動化與電氣工程學(xué)院,蘭州730070)
在基于全球?qū)Ш叫l(wèi)星系統(tǒng) (Global Navigation Satellites System, GNSS)的列車運行控制系統(tǒng)中,數(shù)字軌道地圖不但可以校正GNSS定位誤差,還可作為線路信息數(shù)據(jù)庫,將列車控制集中到車載環(huán)境中,降低成本[1]。軌道地圖精度越高,列車定位精度也就越高,對列車的控制也就越精確。因此,生成一份高精度的數(shù)字軌道地圖是非常必要的。
大量彎曲軌道在數(shù)字軌道地圖中的表示是一個難點,既要保證精度,又要考慮存儲效率,不能造成數(shù)據(jù)存儲量過大而影響系統(tǒng)的實時性。目前常用的曲線表示方法如NURBS表示會造成數(shù)據(jù)存儲量過大以及地圖匹配算法的復(fù)雜。折線表示法是用折線表示曲線的方法,根據(jù)精度要求確定分段數(shù),這種方法沒有將線路按照其特點進(jìn)行劃分,勢必會增加不必要的分段,影響了數(shù)據(jù)存儲效率。
鐵路線路都是由直線、圓曲線、緩和曲線組成。軌道曲線的繪制,就是采集線路上若干離散點的坐標(biāo),擬合出描述軌道線形的參數(shù),在數(shù)字軌道地圖中表示出來。為了準(zhǔn)確描述線形,需要將軌道劃分為以上3種線元,再根據(jù)各個線元的特點分別擬合。該方法的關(guān)鍵在于準(zhǔn)確的判斷測量點位于哪一種線元上。為此,本文提出根據(jù)角度差法對線路進(jìn)行劃分,并給出最小二乘直線、圓曲線擬合以及緩和曲線擬合算法。
首先建立線路直角坐標(biāo)系,將測得數(shù)據(jù)轉(zhuǎn)換為該坐標(biāo)系下的測點坐標(biāo),測量時存在大量多余觀測,因此需要從獲得的測點坐標(biāo)中按照一定的間隔(10或20m)提取坐標(biāo)值,使得相鄰2點構(gòu)成的弧長相等(直線可看作半徑無窮大的曲線),將提取的測量點在坐標(biāo)系中標(biāo)出。如圖1,輸入12個測量點坐標(biāo)值。
設(shè)點i的坐標(biāo)為(xi, yi),則計算出點i與點i+1所形成的線段與Y軸的夾角θi為
圖1中我們由上述方法分別計算出θ1到θ11的值。
圖1 計算θi值示意圖
根據(jù)解析幾何原理,若測點位于直線上,則點i與點i+1所形成的線段與Y軸的夾角θi值不變;若測點位于圓曲線上,則θi值的變化值△θi為一定值。根據(jù)這一性質(zhì)可實現(xiàn)對測量點的篩選,基本思想是:
(1)計算相鄰2個夾角θi與θi+1的差的絕對值△θi=|θi+1-θi|,該值為θi的變化值,如在圖1中我們可以得到△θ1到△θ10;
(2) 比較相鄰2個θi的變化值,看它們的差的絕對值是否小于一個給定的正常數(shù)ε(這個正常數(shù)由測量和計算誤差以及軌道地圖精度要求所決定),即判斷△θi與ε的大小,若△θi<ε,則認(rèn)為點i、點i+1、點i+2在一條直線上,以此類推,當(dāng)△θi<ε(j>i)時,該直線段上的測點篩選結(jié)束。由此,篩選出所有直線段上的測點;
(3)當(dāng)△θj<ε時,令ai=|△θi+1-△θi,比較ai與ε值的大小,當(dāng)ai<ε時,則認(rèn)為點i、點i+1、點i+2在一條圓曲線上,以此類推,當(dāng)aj>ε()ji>時,該條圓曲線上的測點篩選結(jié)束。由此,篩選出所有圓曲線段上的測點;
(4)若不滿足上述條件,可認(rèn)為測點位于緩和曲線段上。
在實際運用時,通過設(shè)置給定正常數(shù)ε值的大小,可以減小誤差并達(dá)到更加理想的軌道分段。一般計算出的圓曲線段θi的變化值△θi越大,設(shè)定的正常數(shù)ε的值相對較大可以取得更好的分段效果。
由θi角度的變化規(guī)律,篩選出直線、緩和曲線、圓曲線的測量點,分別選取3種線元上的測點進(jìn)行參數(shù)擬合計算。
設(shè)直線方程的形式為y=ax+b,獲得直線線元上的坐標(biāo)(x1, y1),(x2, y2),…(xk, yk),則由最小二乘原理,則可以求得a、b的值分別為:
根據(jù)上式對各點坐標(biāo)值進(jìn)行一次計算就可求出a,b,即可得到目標(biāo)直線方程。
采樣圓曲線上的測點坐標(biāo)(x1, y1),(x2, y2),…(xk, yk),設(shè)R0為圓曲線半徑,(X0, Y0)為圓心坐標(biāo)。運用最小二乘法進(jìn)行圓曲線擬合,各測點殘差平方和函數(shù)為:
根據(jù)最小二乘法原理有:
由式(3)和(4)化簡整理可得擬合出的圓曲線的半徑和圓心坐標(biāo)為:
由式(5)可以看出,由最小二乘法圓擬合的形式雖然復(fù)雜,但只需要對各點坐標(biāo)計算一次即可得出圓曲線半徑和圓心坐標(biāo),因此該算法的擬合速度是很快的。
常用的緩和曲線方程屬于三次拋物線型,其表達(dá)式為:
其中:(x, y)為緩和曲線上任意一點坐標(biāo),R為圓曲線半徑,l0為緩和曲線的長度。該方程的坐標(biāo)原點是直緩點。
對緩和曲線采用三次多項式擬合,足以保證軌道地圖的精度要求。采樣緩和曲線上的測點坐標(biāo)(x1, y1),(x2, y2),…(xk, yk),擬合方程為:
只需要4個數(shù)據(jù)點的值就可確定式(7)中的a、b、c、d參數(shù)的值。
按照上述方法分別估計出鐵路線路中的直線、圓曲線、緩和曲線3種線形的參數(shù),就可以將參數(shù)存儲為數(shù)字地圖的形式。
圖2 線路數(shù)據(jù)篩選計算程序
按照上述算法,利用Visual C# 2005編制線路測點數(shù)據(jù)篩選計算程序,如圖2。選取某一包含直線、緩和曲線、圓曲線的典型路段作算例,測量點數(shù)據(jù)按20 m等間隔提取,選取測量點數(shù)42個,程序在讀取測量點的坐標(biāo)數(shù)據(jù)后,能夠判斷出測量點所在的線元,從而大致判斷出所選線路段中各線元上的測點,這里我們將ε設(shè)定為0.000 5。根據(jù)判斷的結(jié)果在MATLAB下編制相應(yīng)的擬合程序?qū)?種線元進(jìn)行擬合。所得的線路參數(shù)為:圓曲線半徑為802.033 m;緩和曲線長度分別為110.23 m,105.06 m。對同一組數(shù)據(jù)進(jìn)行多次分段擬合,并對擬合的結(jié)果進(jìn)行誤差校驗,結(jié)果表明,擬合出的線路參數(shù)不存在較大的偶然誤差和系統(tǒng)誤差,擬合精度符合要求。圖3為對不同線元擬合得到的線形。
圖3 不同線元分別擬合的結(jié)果
本文針對鐵路線路的特點,提出鐵路線路分段擬合算法,根據(jù)2點確定的直線角度變化對線路進(jìn)行分段,再用最小二乘原理對3種線元分別進(jìn)行擬合。線路分段算法計算速度快,效率高,人工參與量少,能夠準(zhǔn)確的判斷觀測點數(shù)據(jù)所在的線元類型,進(jìn)而準(zhǔn)確地擬合出各個線元。相比于未作線路分段的擬合方法,可得到更加精確的線路參數(shù),使軌道地圖數(shù)據(jù)存儲效率和精度得到一定的提高。應(yīng)用最小二乘原理處理測量點坐標(biāo),計算過程的實質(zhì)是最小二乘約束的整體優(yōu)化過程,可準(zhǔn)確恢復(fù)線路的各項參數(shù)。
[1] 張雅靜,王劍,蔡伯根. 基于GNSS的虛擬應(yīng)答器研究[J] . 鐵道學(xué)報,2008,30(1):104-108.