吳 坤 李 繼
(林同棪國際工程咨詢(中國)有限公司,401121,重慶//第一作者,高級工程師)
線路里程、偏距與坐標(biāo)互算在軌道交通設(shè)計中經(jīng)常遇到。線路專業(yè)經(jīng)常需要把線路中心線周邊一系列點(diǎn)提供給地勘單位進(jìn)行鉆孔勘探。待勘點(diǎn)由建筑、結(jié)構(gòu)等專業(yè)確定。由于建筑、結(jié)構(gòu)等專業(yè)制圖比例并非1∶1 000,且不一定在原位制圖,所以只能將待勘點(diǎn)以里程、偏距的形式提供給線路專業(yè)。而在線路敷設(shè)前期,地勘單位無法以里程、偏距放樣,線路專業(yè)需將待勘點(diǎn)信息轉(zhuǎn)化成坐標(biāo),以便勘探定位。同理,地勘單位返回的勘探結(jié)果以坐標(biāo)表示點(diǎn)信息,線路專業(yè)需將其轉(zhuǎn)化為里程、偏距形式反饋給各專業(yè)。
傳統(tǒng)做法是線路專業(yè)將各專業(yè)提供的待勘點(diǎn)里程偏距信息繪制于圖紙上,然后再一一查詢坐標(biāo),填寫表格;對于地勘單位返回的勘測結(jié)果,處理方式類似。線路專業(yè)需將待測點(diǎn)繪制在圖紙上,然后量出對應(yīng)的里程、偏距,填寫表格。此過程工作量十分巨大,且極易出錯。而國內(nèi)主流軌道交通線路設(shè)計軟件均無線路里程、偏距與坐標(biāo)互算功能。因此,十分有必要開發(fā)一款線路里程、偏距與坐標(biāo)互算的軟件。
通過程序互算里程、偏距與坐標(biāo),無法借助于圖形進(jìn)行直觀判斷,傳統(tǒng)基于圖形的測量算法無法應(yīng)用。本文結(jié)合軌道交通線路基本知識,借助解析幾何手段和微分思想,著重研究線路里程、偏距與坐標(biāo)互算的計算機(jī)算法。
無論已知線路里程、偏距計算點(diǎn)坐標(biāo)還是已知點(diǎn)坐標(biāo)計算里程、偏距,都必須已知線路數(shù)據(jù)。所謂線路數(shù)據(jù)是指線路的起點(diǎn)坐標(biāo)、終點(diǎn)坐標(biāo)、各交點(diǎn)坐標(biāo)、各曲線半徑、緩和曲線長和斷鏈信息等。本文討論的所有內(nèi)容均建立在線路數(shù)據(jù)已知的基礎(chǔ)上。
線路還原是指通過已有的線路信息:起點(diǎn)坐標(biāo)、終點(diǎn)坐標(biāo)、交點(diǎn)坐標(biāo)、曲線半徑、緩和曲線長、斷鏈等線路信息,計算出線路上每個直緩(或直圓)點(diǎn)、緩直(或圓直)點(diǎn)的坐標(biāo)和里程。這樣,線路被分成若干段,每一段只包含單一的直線或曲線,方便后面進(jìn)行里程和偏距的計算。計算方法可以查找道路勘測設(shè)計相關(guān)的書籍,這里不作討論。
線路已分成單純的直線或曲線段,為了計算方便且精確,首先判斷點(diǎn)的投影在線路的哪一段直線或曲線上。
如圖1所示,圖中有一個待求點(diǎn)P和線路的3個直線段,分別是A段、B段、C段。P′為P點(diǎn)在線路上的投影。為了判斷P點(diǎn)投影所在位置,用待求點(diǎn)P為頂點(diǎn),3個直線段分別為對邊做三角形,判斷P點(diǎn)投影落在其中某一直線段上,圖1中,P點(diǎn)投影落在B段直線上,則∠B1、∠B2均為銳角。
圖1 待求點(diǎn)投影位置判斷圖(直線段)
用計算機(jī)計算時,先判斷待求點(diǎn)是否落在線路直線段上。如果找到待求點(diǎn)投影落在某一直線段上,即終止計算,進(jìn)行下一步計算。如果待求點(diǎn)投影沒有落在直線段上,繼續(xù)判斷待求點(diǎn)投影是否落在曲線段上。
如圖2所示,圖中有待求點(diǎn)P和線路的2段曲線,分別是曲線M和曲線N。為確定待求點(diǎn)在哪一段曲線上,用待求點(diǎn)為頂點(diǎn),以曲線為對邊做扇形。計算扇形半徑與曲線兩端點(diǎn)處切線所形成的夾角,即圖中的∠A2′與∠B1′。待求點(diǎn)投影落在A段直線和曲線M的交界位置時,∠A2=∠A2′=90°,待求點(diǎn)投影離開A段直線稍向曲線M移動微小距離d,都會導(dǎo)致∠A2′<90°。同理,待求點(diǎn)投影離開B段直線稍向曲線M移動微小距離d′,都會導(dǎo)致∠B1′<90°。由此可知,待求點(diǎn)投影落在某一段曲線上的充要條件是:該點(diǎn)與曲線形成的扇形半徑與曲線兩端點(diǎn)處切線所形成夾角為銳角。
圖2 待求點(diǎn)投影位置判斷圖(曲線段)
需要說明的是,當(dāng)待求點(diǎn)投影剛好落在直線與曲線的交點(diǎn)上時,既可以認(rèn)為該投影落在直線上,也可以認(rèn)為該點(diǎn)投影落在曲線上。為方便計算,本文將投影認(rèn)定為落在直線段上。
如果待求點(diǎn)投影落在直線段上,可以利用該點(diǎn)與直線段圍成的三角形求解。如圖3所示,三角形的3個頂點(diǎn)分別為:待求點(diǎn)P以及B1、B2,其中B1為緩直點(diǎn)(或圓直點(diǎn)),B2為直緩點(diǎn)(或直圓點(diǎn))。此兩點(diǎn)的坐標(biāo)已經(jīng)在線路還原步驟中計算得出。利用余弦定理和射影定理,可以求解投影點(diǎn)P′距B1緩直點(diǎn)(或圓直點(diǎn))的距離D和線段PP′的長度L,B1緩直點(diǎn)(或圓直點(diǎn))的里程加上D即為待求點(diǎn)投影的里程,L即為待求點(diǎn)偏距。
如果待求點(diǎn)投影落在第n個曲線段上,需要先把曲線離散成散點(diǎn),并計算出每一個點(diǎn)的坐標(biāo)。離散精度根據(jù)工程需要設(shè)置,一般取1.0 mm或0.5 mm,精度設(shè)為d。曲線上各點(diǎn)坐標(biāo)的計算方法成熟,此處不贅述。分別計算曲線離散點(diǎn)與待求點(diǎn)的距離,距離最小的曲線離散點(diǎn)即是待求點(diǎn)的投影點(diǎn),最小距離即是待求點(diǎn)的偏距。設(shè)該離散點(diǎn)的順序號為i,曲線起點(diǎn)里程為直緩點(diǎn)(或直圓點(diǎn)),則待求點(diǎn)投影的里程可以表示為:直緩點(diǎn)里程+id(或直圓點(diǎn)里程+id)。
以某條1 km長的曲線為例,按1 mm為精度離散,離散點(diǎn)有1×106個,離散點(diǎn)坐標(biāo)全部按雙精度形存儲,其占用內(nèi)存為2×1×106×8字節(jié),約15.2 M,在計算機(jī)硬件突飛猛進(jìn)的今天,15.2M的內(nèi)存對計算機(jī)運(yùn)行不會造成明顯影響。
圖3 偏距和投影里程計算圖
當(dāng)待求點(diǎn)投影落在直線段時,可以利用線路與某一基準(zhǔn)線的夾角來判斷待求點(diǎn)在線路的左側(cè)或右側(cè),如圖4所示。
圖4 待求點(diǎn)位置判定圖(直線段)
圖5 待求點(diǎn)位置判定圖(曲線段)
已知里程與偏距計算該點(diǎn)坐標(biāo)比較容易,除了知道待求點(diǎn)的里程與偏距外,還需要判斷待求點(diǎn)處于線路前進(jìn)方向的左側(cè)還是右側(cè)。
線路還原的方法與作用同前文,此處不再贅述。
首先判斷待求點(diǎn)投影在線路的直線段還是曲線段上,以便采取不同的計算方法。由于里程已知,通過待求點(diǎn)里程與直緩(直圓)、緩直(圓直)點(diǎn)的相對位置,即可輕松判斷待求點(diǎn)投影位置。設(shè)待求點(diǎn)里程為H,若緩直點(diǎn)里程Hhz n(圓直點(diǎn)里程Hyz n) 當(dāng)待求點(diǎn)投影P′落在直線上時,設(shè)該段線路前一個交點(diǎn)的交點(diǎn)號為n。利用交點(diǎn)n的曲線末端點(diǎn)緩直點(diǎn)(或圓直點(diǎn))和交點(diǎn)n+1曲線起端點(diǎn)直緩點(diǎn)(或直圓點(diǎn))的坐標(biāo),求出線路前進(jìn)方向與X軸正向夾角α,角度范圍0~2π。具體求法參考平面解析幾何,不在此文討論范圍。 偏距已知,設(shè)為L。角α取值范圍不同,待求點(diǎn)位于線路左、右側(cè)不同,待求點(diǎn)坐標(biāo)表達(dá)式則不同。設(shè)投影點(diǎn)坐標(biāo)為P′(x′,y′),待求點(diǎn)坐標(biāo)為P(x,y),則有如表1所示的坐標(biāo)關(guān)系表達(dá)式。 表1 待求點(diǎn)坐標(biāo)表達(dá)式 化簡表1中表達(dá)式,可得通用表達(dá)式,見表2。 表2 待求點(diǎn)通用坐標(biāo)表達(dá)式 當(dāng)待求點(diǎn)投影P′落在曲線上,其計算理論與已知坐標(biāo)求里程和偏距時,與待求點(diǎn)投影P′落在直線上的計算理論相類似,不再贅述。 若線路中含有斷鏈,計算里程、偏距和坐標(biāo)時要受到斷鏈影響。斷鏈主要有長鏈和短鏈兩種。斷前里程大于斷后里程時為長鏈,斷前里程小于斷后里程時為短鏈。其中長鏈具有重復(fù)里程。 當(dāng)線路中存在斷鏈時,計算必須加入斷鏈信息。斷鏈主要信息為斷前里程與斷后里程。為方便計算機(jī)計算,可在錄入斷鏈的同時錄入斷鏈所處的交點(diǎn)區(qū)間。一般情況下,斷鏈全在直線上,且斷鏈影響范圍內(nèi)不會再出現(xiàn)斷鏈時,此處可以不考慮斷鏈在曲線上和斷鏈重疊的情況。當(dāng)線路中存在長鏈時,若是已知里程、偏距求坐標(biāo)的待求點(diǎn)剛好在斷鏈影響范圍內(nèi),則該待求點(diǎn)里程存在兩種可能性。錄入已知條件時,需要錄入該待求點(diǎn)里程是否為長鏈的重復(fù)里程。 首先不考慮斷鏈,用第1節(jié)介紹的方法求出里程與偏距,其中只有里程受到斷鏈影響。設(shè)不考慮斷鏈求出的里程為H,最終里程為Ht,H所處的直線段前一個交點(diǎn)為交點(diǎn)n。把里程H與交點(diǎn)n以前的所有斷鏈長度做代數(shù)和,求出H′。若H′所處直線段無斷鏈,則H′=Ht;若H′所處直線段有斷鏈,需再判斷H′是否在本段直線上的斷鏈的影響范圍內(nèi)。若在,與斷鏈長度做代數(shù)和得出Ht;若不在,H′=Ht。設(shè)斷前里程為Dq,斷后里程為Dh,可得以下公式: 式中: Dqi——第i個斷鏈的斷前里程; Dhi——第i個斷鏈的斷后里程; Dqn——第n個斷鏈的斷前里程; Dhn——第n個斷鏈的斷后里程。 首先,不考慮該已知里程H為長鏈重復(fù)里程,求出真實(shí)里程H′。若該點(diǎn)是長鏈重復(fù)里程,在H′基礎(chǔ)上加上長鏈長度即為真實(shí)里程。 通過上文的研究,得出線路里程、偏距與坐標(biāo)互算的新算法。此算法脫離了圖形,采用了全數(shù)字計算方式,使得計算機(jī)實(shí)現(xiàn)成為可能。 基于研究成果,筆者以VC++為例,實(shí)現(xiàn)了線路里程、偏距與坐標(biāo)互算程序。該程序可以實(shí)現(xiàn)里程、偏距與坐標(biāo)的互算,支持Excel導(dǎo)入基本數(shù)據(jù)和計算結(jié)果導(dǎo)出Excel。經(jīng)大量工程驗證,該程序完全滿足工程精度要求,且大大提高了工作效率。以筆者曾經(jīng)就職的設(shè)計院為例,該程序可以在10 min內(nèi)完成原來1~2 d的工作,深受好評。 圖6和圖7展示了程序界面與計算成果。 圖6 程序界面 圖7 計算成果輸出2.3 待求點(diǎn)坐標(biāo)計算
3 斷鏈的處理
3.1 斷鏈數(shù)據(jù)信息
3.2 基于待求點(diǎn)坐標(biāo)計算線路里程與偏距時的斷鏈處理
3.3 基于待求點(diǎn)里程與偏距計算該點(diǎn)坐標(biāo)時的斷鏈處理
4 成果應(yīng)用