王賓賓
(1.中鐵第一勘察設(shè)計院集團有限公司,陜西 西安 710043)
鐵路在長期的運營和維護過程中,其平面線形在不斷變化,且隨著時間的推移,實際線形與設(shè)計線形差異可能逐漸增大,具體表現(xiàn)為線路的直線部分發(fā)生彎曲,曲線部分的緩和曲線長度、曲線偏角和圓半徑與原設(shè)計值不符[1],因此需定期對既有鐵路的平面位置進行復(fù)測,再根據(jù)復(fù)測數(shù)據(jù)對軌道線形進行分段、擬合和優(yōu)化處理,計算得到線路各點的撥正量,最后通過盡量小的撥正量使已變形的軌道恢復(fù)到標(biāo)準(zhǔn)線形[2]。
有效管理既有鐵路的圖形、屬性數(shù)據(jù)是一項關(guān)鍵工作,參考文獻[3]~[5]實現(xiàn)了鐵路曲線的重構(gòu),但沒有建立既有鐵路曲線數(shù)據(jù)的管理系統(tǒng),數(shù)據(jù)管理難度較大,參考文獻[6]、[7]基于AutoCAD實現(xiàn)了既有鐵路的曲線擬合,但AutoCAD對圖形屬性的管理復(fù)雜,且沒有拓撲查詢功能,測量點的查詢、檢索和定位非常不便。鑒于此,本文基于SuperMap Objects.NET進行二次開發(fā),實現(xiàn)了既有鐵路圖形、屬性數(shù)據(jù)的一體化管理,具備空間查詢與圖形要素定位等功能[8-11];在此基礎(chǔ)上,研究并實現(xiàn)了曲率法軌中坐標(biāo)數(shù)據(jù)分段,直線、圓曲線正交最小二乘擬合[12-14],通過調(diào)整直線偏角、圓曲線半徑使全部軌中點的撥正量滿足橫向偏差限制值的要求。
既有鐵路曲線重構(gòu)系統(tǒng)選取Visual Studio2013作為集成開發(fā)工具,基于SuperMap Objects.NET,采用C#語言進行二次開發(fā),綜合應(yīng)用AxSuperMap、AxSuperLegend、AxSuperWkspManager和AxSuper Workspace作為系統(tǒng)的數(shù)據(jù)、圖形管理控件。
SuperMap Objects.NET是SuperMap公司提供的一款高性能用于開發(fā)桌面端軟件的SDK,基于Microsoft的.NET技術(shù)開發(fā)。它在共相式GIS內(nèi)核的基礎(chǔ)上,采用C++/CLI進行封裝,是純.NET的組件[8-10]。相較于ArcGIS Engine,SuperMap對功能的封裝性更高。針對開發(fā)規(guī)模較小的軟件系統(tǒng)來說,SuperMap更加簡單,開發(fā)效率更高、周期更短。
系統(tǒng)以C/S架構(gòu)模式實現(xiàn),體系結(jié)構(gòu)采用3層架構(gòu)(圖1),分別為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表現(xiàn)層。軟件框架采用接口與繼承設(shè)計模式,便于維護與拓展。數(shù)據(jù)訪問層負責(zé)與空間數(shù)據(jù)庫的直接交互,完成空間數(shù)據(jù)和屬性數(shù)據(jù)的存取。業(yè)務(wù)邏輯層是系統(tǒng)功能的主要實現(xiàn)場所,根據(jù)表現(xiàn)層的操作請求,利用數(shù)據(jù)訪問層獲取數(shù)據(jù),完成相關(guān)的算法實現(xiàn),并將結(jié)果存儲到空間數(shù)據(jù)庫中。表現(xiàn)層主要實現(xiàn)與用戶的人機交互,通過訪問業(yè)務(wù)邏輯層來完成相關(guān)的數(shù)據(jù)處理。3層體系結(jié)構(gòu)的建立,有助于提高系統(tǒng)的性能、可靠性和可伸縮性。
圖1 系統(tǒng)體系結(jié)構(gòu)
既有鐵路曲線重構(gòu)數(shù)據(jù)主要包括測量軌中坐標(biāo)點、擬合曲線、曲線分段信息等,數(shù)據(jù)量較小,適合以項目為單位進行組織管理。SuperMap文件數(shù)據(jù)庫以文件的形式管理數(shù)據(jù),數(shù)據(jù)文件較小,無需安裝大型的企業(yè)數(shù)據(jù)庫軟件,且文件數(shù)據(jù)庫遷移方便,適合既有鐵路測量數(shù)據(jù)的管理。SuperMap采用獨特的多源空間數(shù)據(jù)無縫集成技術(shù),提供了多種空間數(shù)據(jù)存儲格式,不同的數(shù)據(jù)存儲方式由不同的空間數(shù)據(jù)引擎負責(zé)維護。文件數(shù)據(jù)庫的創(chuàng)建過程為;首先創(chuàng)建文件工作空間(smw),然后在文件工作空間中創(chuàng)建文件數(shù)據(jù)源(SDB、SDD),最后分別創(chuàng)建軌中坐標(biāo)點、擬合曲線、曲線分段信息等數(shù)據(jù)集。SDB文件用于存儲圖形數(shù)據(jù),SDD文件用于存儲屬性數(shù)據(jù),SuperMap自動管理屬性數(shù)據(jù)和圖形數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系。
空間數(shù)據(jù)庫主要包括點數(shù)據(jù)集、線數(shù)據(jù)集、表格數(shù)據(jù)集和文本數(shù)據(jù)集。數(shù)據(jù)集是具有相同屬性的空間要素的集合,展現(xiàn)在地圖上稱為圖層[11]。各數(shù)據(jù)集表示的信息如表1所示。
表1 空間數(shù)據(jù)集設(shè)計
既有鐵路曲線重構(gòu)系統(tǒng)主要包括項目管理、視圖操作、數(shù)據(jù)處理、成果輸出和圖形工具等模塊,其中數(shù)據(jù)處理模塊的核心功能為測量點管理、曲線分段和曲線整正等;圖形工具模塊能實現(xiàn)圖層的快速標(biāo)注、圖形要素的快速選擇和屬性查看,幫助用戶快速完成曲線的擬合。
一個完整的鐵路曲線單元由夾直線、緩和曲線和圓曲線等線元構(gòu)成,線元之間的分界點依次為直緩(ZH)點、緩圓(HY)點、圓緩(YH)點和緩直(HZ)點[15]。曲線分段是通過確定上述4個特征點來實現(xiàn)測量點的分流,以便分別對直線和圓曲線進行擬合。前后兩段夾直線可確定曲線的偏角,以此來架構(gòu)曲線[3]。軌道平面曲線如圖2所示。
圖2 軌道平面曲線示意圖
沿線按里程由小到大的順序采用人工方式確定前后夾直線的起、終點,起、終點之間的全部測量點用于擬合直線,兩條夾直線中間的測量點用于擬合曲線。前夾直線的終點為曲線ZH點的概略位置,后夾直線的起點為曲線HZ點的概略位置,建立的前、后夾直線存入直線分段數(shù)據(jù)集中,然后利用相鄰的分段直線構(gòu)建曲線交點,并以此架構(gòu)曲線單元。
ZH點和HZ點確定后,還需確定HY點和YH點的概略位置,從而確定用于擬合圓曲線的測量點集合。國內(nèi)學(xué)者曾使用不同的方式確定緩和曲線與圓曲線的分界點,陳峰[4]等對正矢和超高進行了對比分析,認為正矢受平面坐標(biāo)的影響較大,存在波動,精度不理想,并利用超高值對曲線進行分段,若沒有測量軌道面的高程,該方法無法對曲線進行分段;張強[2]等利用弦斜率法對曲線進行分段,雖然平面測量誤差對弦斜率存在一定的影響,導(dǎo)致弦斜率存在一定的波動,但該方法無需軌面高程,能減少大量的外業(yè)工作。
既有鐵路外業(yè)采集時,通常按直線段50 m、曲線段20 m的間隔采集測量點。本文采用弦斜率法對曲線進行分段,首先選取曲線段中間位置的3個相鄰測量點構(gòu)成圓的兩段弦,再以兩弦之間的偏角α0為依據(jù),從曲線段的第一點開始,每次遍歷3個測量點并計算其偏角α,當(dāng)α≥0.9α0時,則認為HY點或YH點已找到。
曲線整正的目的在于還原既有鐵路曲線的線形,并計算得到每個測量點的撥正量。其具體計算過程為;首先根據(jù)圓曲線段實測坐標(biāo)點,利用正交最小二乘擬合得到圓曲線的半徑和圓心;然后計算前后兩段緩和曲線的長度,進而計算ZH點、HY點、YH點、HZ點的新位置以及各特征點的變化量;經(jīng)過多次迭代,直到4個特征點的變化量滿足給定的閾值為止。自動擬合的結(jié)果可能與工務(wù)臺賬差別較大,因此系統(tǒng)提供了人工調(diào)整功能,可結(jié)合工務(wù)臺賬調(diào)整曲線偏角、圓曲線半徑和緩和曲線長,在保證測量點撥正量滿足限差要求的前提下,使擬合結(jié)果盡量與工務(wù)臺賬接近。
既有鐵路曲線擬合時,需要確定每個測量點在擬合中線上的理論坐標(biāo),進而計算測量點的撥正量(測量點到理論點的偏移量)。不同線元上理論坐標(biāo)點的計算方式不同,對于直線段,從測量點向擬合直線作垂線,垂足即為測量點的理論坐標(biāo)點,測量點到直線的距離即為撥正量;對于圓曲線段,從測量點到圓心作直線,直線與圓弧的交點即為對應(yīng)的理論點,測量點與理論點的距離即為撥正量[5];緩和曲線段的計算相對復(fù)雜,參考文獻[4]給出了詳細的計算過程。
既有鐵路曲線重構(gòu)的整體流程為;首先利用鐵路軌中點的平面坐標(biāo)并結(jié)合工務(wù)臺賬,對測量點進行分段,確定每個曲線單元的前后夾直線和圓曲線所包含的測量點;然后利用曲線擬合算法分別對直線和圓曲線進行擬合,并不斷調(diào)整圓曲線半徑和緩和曲線長度,使得全部測量點滿足撥正量的限差要求。既有鐵路曲線重構(gòu)流程如圖3所示。
圖3 既有鐵路曲線重構(gòu)流程圖
在傳統(tǒng)最小二乘直線擬合的誤差方程中,自變量X被認為是精確值,沒有誤差,只考慮因變量Y與實際值之間的誤差;然而在實際工程中,測量坐標(biāo)X和Y均存在誤差,因此采用傳統(tǒng)最小二乘法擬合的直線不是最優(yōu)結(jié)果。正交最小二乘法的原理是使參與計算的離散點距函數(shù)圖形的最短距離平方和最小,綜合考慮了X、Y坐標(biāo)的誤差影響。正交最小二乘法擬合的線形與實際標(biāo)準(zhǔn)線形在整體上最接近,是一種最合理的擬合方法[12]。
直線方程可表示為;
式中,k為直線斜率;b為Y軸截距。
k、b為待求參數(shù),設(shè)k0、b0為其近似值,則有;
設(shè)某軌中點坐標(biāo)為Pi(xi,yi),則點到直線的距離為;
在直線正交最小二乘中,點到擬合直線的距離Di即為點的殘差,常表示為vi,將式(2)代入式(3)得到Pi到擬合直線的殘差為(在正交最小二乘中,殘差的平方為正值,可略去絕對值符號);
將式(4)按泰勒級數(shù)展開并取前兩項得到線性化的擬合直線殘差方程為[13-14];
根據(jù)式(5)依次列出每個測量點的殘差,并構(gòu)成誤差方程矩陣,再利用最小二乘原理[16]計算得到直線的參數(shù)。
圓曲線方程可表示為;
式中,(x0,y0)為圓心坐標(biāo);R為圓半徑。
設(shè)(x00,y00)、R0分別為圓心和半徑的近似值,則有;
設(shè)某軌中點坐標(biāo)為Pi(xi,yi),則點到圓心的距離為;
點的擬合殘差表示為vi,則有;
將式(7)、(8)代入式(9)得到Pi到擬合圓的殘差為;
將式(10)按泰勒級數(shù)展開并取前兩項得到線性化的擬合殘差方程為[14-15];
根據(jù)式(11)依次列出每個測量點的殘差,并構(gòu)成誤差方程矩陣,再利用最小二乘原理[16]計算得到圓曲線的參數(shù)。
按照上述設(shè)計思路,本文利用C#語言基于SuperMap Objects.NET開發(fā)了既有鐵路曲線重構(gòu)系統(tǒng)。為了驗證既有鐵路曲線重構(gòu)系統(tǒng)數(shù)據(jù)處理結(jié)果的合理性,本文選取某既有鐵路K277+299.80~K290+600區(qū)間的一段數(shù)據(jù),外業(yè)采集間隔為直線段50 m、曲線段20 m,總計采集605個測量點。將測量數(shù)據(jù)導(dǎo)入系統(tǒng),按里程由小到大順序擬合,首先通過曲線分段確定曲線的前后夾直線并構(gòu)建交點,計算曲線偏角并以此架構(gòu)曲線;然后利用曲線整正功能進行曲線自動分段和擬合,并結(jié)合工務(wù)臺賬,通過調(diào)整曲線偏角、偏移量、圓半徑與緩和曲線長度對自動擬合結(jié)果進行優(yōu)化,以直線5 cm、曲線15 cm為撥正量限差,直至全部測量點的撥正量滿足要求;最后計算每個測量點的理論里程。
全部曲線整正完成后,本文選取里程K280+49.870~K281+150.020區(qū)間的一段曲線,限于篇幅原因,僅給出了部分測量點的擬合結(jié)果,如表2所示。
表2 曲線擬合結(jié)果
該曲線單元105個測量點擬合后的撥正量絕對值如圖4所示,可以看出,結(jié)合工務(wù)臺賬調(diào)整后的撥正量滿足直線5 cm、曲線15 cm的限差要求,且調(diào)整后的撥正量明顯優(yōu)于自動擬合結(jié)果,實測里程K280+300處的撥正量最大,為11 cm。曲線單元擬合后的特征點如表3所示,擬合后的曲線要素如表4所示,可以看出,調(diào)整后的曲線要素與工務(wù)臺賬更接近。
表4 擬合后的曲線要素
圖4 撥正量曲線
1)本文利用C#語言,基于SuperMap Object.NET開發(fā)了既有鐵路曲線重構(gòu)系統(tǒng)。系統(tǒng)采用文件型數(shù)據(jù)庫對鐵路曲線數(shù)據(jù)進行管理,基于GIS實現(xiàn)了測量數(shù)據(jù)的查詢與檢索;采用圖形化方式實現(xiàn)了直線分段;以分段直線架構(gòu)曲線單元,通過弦斜率法進一步劃分緩和曲線和圓曲線;全部數(shù)據(jù)以圖形化方式管理,數(shù)據(jù)處理直觀方便,軟件操作簡單、步驟明晰。
2)本文利用正交最小二乘原理分別對直線和圓曲線進行擬合,并結(jié)合工務(wù)臺賬調(diào)整曲線偏角、圓曲線半徑與緩和曲線長,使全部測量點滿足橫向偏差的要求。實例結(jié)果表明,調(diào)整后的曲線要素更加接近工務(wù)臺賬,撥正量更小。