国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于智能全站儀的隧道超欠挖面積計(jì)算方法

2018-08-10 08:59
福建建筑 2018年7期
關(guān)鍵詞:鏈表圓弧交點(diǎn)

胡 博

(秦皇島市測(cè)繪大隊(duì) 河北秦皇島 066001)

0 引言

在隧道工程中,快速、準(zhǔn)確地計(jì)算隧道的超欠挖面積,對(duì)保障施工安全、控制工程成本、推進(jìn)工程進(jìn)度有著重要意義。智能全站儀的出現(xiàn),為隧道斷面檢測(cè)提供了強(qiáng)大、便捷的方法。通過編寫相應(yīng)的應(yīng)用程序,可以實(shí)現(xiàn)隧道斷面的自動(dòng)化檢測(cè)和實(shí)時(shí)計(jì)算。目前,已有大量針對(duì)隧道斷面檢測(cè)的機(jī)載應(yīng)用程序的研究,但現(xiàn)有的超欠挖面積計(jì)算的方法,多是將超挖面積和欠挖面積分解成多個(gè)三角形,再對(duì)各個(gè)三角形的面積求和,計(jì)算出單個(gè)超欠挖區(qū)域的面積[1,2]。此方法計(jì)算過程較為繁瑣,需要判斷不同的隧道斷面情形,并且將弧形的隧道設(shè)計(jì)斷面分解為若干個(gè)小三角形,是一種近似計(jì)算的方法,并非嚴(yán)密計(jì)算的方法。

基此,本文提出應(yīng)用格林公式,以快速、精確計(jì)算隧道超欠挖面積。

1 格林公式

格林公式,描述了平面上沿閉曲線L對(duì)坐標(biāo)的曲線積分與曲線L所圍成封閉區(qū)域D上的二重積分之間的密切關(guān)系,提供了計(jì)算封閉區(qū)域面積的精確方法[3],由其推導(dǎo)出的面積表達(dá)式為:

由于隧道斷面線實(shí)質(zhì)上為平面上的直線和曲線,因此,應(yīng)用格林公式計(jì)算隧道超欠挖面積具有可行性。本文由此出發(fā),研究適用于智能型全站儀編程的數(shù)學(xué)模型、數(shù)據(jù)結(jié)構(gòu)以及程序算法。

2 數(shù)學(xué)模型

首先,建立斷面坐標(biāo)系,坐標(biāo)系原點(diǎn)定義為軌面零高程線和斷面中心軸的交點(diǎn),以軌面零高程線為X軸,面向隧道前進(jìn)方向水平向右為正方向,以斷面中心軸為Y軸,豎直向上為正方向。

如圖1所示,在斷面坐標(biāo)系下中,虛線為設(shè)計(jì)斷面線,實(shí)線為實(shí)測(cè)斷面點(diǎn)的連線,JD1、 JD2、JD3……為隧道斷面實(shí)測(cè)點(diǎn)連線與設(shè)計(jì)斷面的若干交點(diǎn)。JD1和JD2、JD2和JD3之間的實(shí)測(cè)線段和設(shè)計(jì)線段分別構(gòu)成了封閉的面域A12和A23。面域A12的面積為JD1和JD2之間的超挖面積,面積A23的面積為JD2和JD3之間的欠挖面積。

圖1 實(shí)測(cè)與設(shè)計(jì)元素圍成的超欠挖面域

基此,將包圍超欠挖面域的封閉路徑的前進(jìn)方向定義為:“從起始交點(diǎn)出發(fā),沿實(shí)測(cè)線段順時(shí)針方向行進(jìn),到達(dá)下個(gè)交點(diǎn)后沿設(shè)計(jì)線段逆時(shí)針返回”。如圖1所示,包圍面域A12的封閉曲線的路徑為:由JD1出發(fā)沿實(shí)測(cè)線段順時(shí)針行進(jìn)到JD2,再由JD2沿設(shè)計(jì)斷面線逆時(shí)針行進(jìn)回到JD1;包圍面域A23的封閉曲線的路徑為:由JD2沿實(shí)測(cè)線段順時(shí)針行進(jìn)到JD3,再由JD3沿設(shè)計(jì)斷面線逆時(shí)針行進(jìn)回到JD2(這里的順、逆時(shí)針是相對(duì)于整個(gè)封閉的隧道斷面而言)。

這樣,包圍超挖面域的封閉路徑前進(jìn)方向相對(duì)其包圍的面域始終是順時(shí)針,如A12。包圍欠挖面域的封閉路徑的前進(jìn)方向相對(duì)于其所包圍的面域始終是逆時(shí)針,如A23。按照這樣定義的曲線積分的路徑,應(yīng)用格林公式計(jì)算出的超挖部分面積和欠挖部分面積正負(fù)號(hào)正好相反,于是通過積分結(jié)果的正負(fù)號(hào)來判定屬于超挖還是欠挖,相同正負(fù)號(hào)的計(jì)算結(jié)果累加,就能得到總的超挖面積和欠挖面積。

當(dāng)前的隧道工程中,常見的設(shè)計(jì)斷面形狀,主要有圓形、矩形、馬蹄形。其中,矩形斷面是由直線段相接構(gòu)成的,馬蹄形斷面則由弧度、長(zhǎng)短不同的多段圓弧相接構(gòu)成,而圓形斷面亦可看作圓心角為360°圓弧。因此,可以認(rèn)為,隧道的設(shè)計(jì)斷面由直線段和圓弧兩種元素構(gòu)成,設(shè)計(jì)斷面與實(shí)測(cè)斷面相交所形成的各超欠挖部分,也均由圓弧和線段兩種元素來表達(dá)。

為了便于計(jì)算機(jī)編程實(shí)現(xiàn),需要將線段和圓弧表示為參數(shù)式。

線段的參數(shù)表達(dá)式為:

x(t)=x1+tLcosA

y(t)=y1+tLsinA

其中,x1、y1分別為線段起始點(diǎn)坐標(biāo);

L為直線的長(zhǎng)度;

A為直線的方位角;

t為從0到1變化的參數(shù)。

圓弧的參數(shù)表達(dá)式為:

x(t)=xc+Rcos(A1-At)

y(t)=yc+Rsin(A1-At)

其中,xc,yc為圓心坐標(biāo);

A1為圓弧起始方位角;

A為圓弧的圓心角;

R為圓弧半徑;

t為從0變化到1的參數(shù)。

這樣,將公式(1)轉(zhuǎn)化為:

即針對(duì)組成封閉面域的各線段和圓弧進(jìn)行0到1的分段積分,并將積分結(jié)果求和,得出該封閉面域的面積。

綜上所述,利用格林公式積分可計(jì)算出超欠挖部分的面積,利用積分結(jié)果的正負(fù)號(hào)可以判斷出所計(jì)算出的面積屬于超挖還是欠挖。這樣,對(duì)不同正負(fù)值的面積計(jì)算結(jié)果進(jìn)行累加,便可得到總的超挖面積和欠挖面積。

3 數(shù)據(jù)結(jié)構(gòu)

搭載Windows Mobile操作系統(tǒng)的智能全站儀提供了C#語言的開發(fā)工具,在此用C#語言設(shè)計(jì)隧道斷面的元素類如下:

//圓弧類

Public class Arc

{

//圓心點(diǎn)坐標(biāo)

Private point2d center_point;

//起始方位角

Private double begin_angle;

//圓弧圓心角

Private double angle;

//圓弧半徑

Private double r;

//起點(diǎn)坐標(biāo)

Private point2d begin_point;

//終點(diǎn)坐標(biāo)

Private point2d end_point;

//構(gòu)造函數(shù)

Public void Arc(point2d center_point,double begin_angle,double angle,double r)

}

//線段類

Public class Line

{

//起點(diǎn)坐標(biāo)

private point2d begin_point;

//終點(diǎn)坐標(biāo)

Privte point2d end_point;

//線段方位角

Private double a;

//線段長(zhǎng)度

Private double length;

//構(gòu)造函數(shù)

Public void Line(point2d begin_point,point2d end_point);

}

在Arc和Line類中,所有成員變量均設(shè)置為只讀變量,僅由類的構(gòu)造函數(shù)進(jìn)行賦值。將設(shè)計(jì)斷面以及實(shí)測(cè)斷面表示為Arc和Line的鏈表,采用.net平臺(tái)的ArrayList數(shù)據(jù)結(jié)構(gòu)進(jìn)行順序存儲(chǔ)。

求解兩交點(diǎn)間封閉面域的面積,需要求得各交點(diǎn)的坐標(biāo),以及兩個(gè)交點(diǎn)間的設(shè)計(jì)斷面和實(shí)測(cè)斷面的元素信息。因此,設(shè)計(jì)交點(diǎn)類如下:

public class JD

{

//交點(diǎn)的坐標(biāo)

private point2d crd;

//交點(diǎn)所在的設(shè)計(jì)元素段鏈表中的索引

Private int id_survey;

//交點(diǎn)所在的實(shí)測(cè)元素段鏈表中的索引

Private int id_design;

//構(gòu)造函數(shù)

Public void JD(point2d crd,int id_survey,int id_design)

}

4 程序算法

首先,讀取隧道斷面的全站儀實(shí)測(cè)坐標(biāo),生成實(shí)測(cè)元素鏈表list_survery,讀取隧道斷面的設(shè)計(jì)元素,生成設(shè)計(jì)元素鏈表list_design,并遍歷鏈表所有元素,求出實(shí)測(cè)斷面與設(shè)計(jì)斷面的所有交點(diǎn):

for(int i=0;i

for(int j=0;j

CalculateJD(list_survey[i],list_design[i]);

CalcualteJD為計(jì)算兩線段、圓弧元素交點(diǎn)的函數(shù)。此處遍歷設(shè)計(jì)斷面和實(shí)測(cè)斷面中所有的元素,兩兩組合求解其交點(diǎn)坐標(biāo),若交點(diǎn)存在,則創(chuàng)建JD類的實(shí)例,存儲(chǔ)交點(diǎn)坐標(biāo)和生成交點(diǎn)的元素在其list_survey和list_design鏈表中的索引i和j。所有的JD實(shí)例依次存儲(chǔ)于鏈表list_JD中。

接下來,求解各個(gè)面域的超欠挖面積:

for(int i=0;i

{ CalculateArea(list_JD[i],list_JD[i+1]); }

CalcualteArea(list_JD[list_JD.Count-1],list_JD[0]);

CalculateArea為依據(jù)list_JD鏈表中相鄰的兩個(gè)交點(diǎn),計(jì)算兩交點(diǎn)間封閉面域面積的函數(shù)。此函數(shù)中,首先依據(jù)JD類中存儲(chǔ)的實(shí)測(cè)斷面元素和設(shè)計(jì)斷面元素的索引,找出list_JD[i]和list_JD[i+1]之間以及l(fā)ist_JD[list_JD.Length-1]和list_JD[0]之間的所有設(shè)計(jì)與實(shí)測(cè)元素,并用交點(diǎn)對(duì)其所在的線段和圓弧元素進(jìn)行截取,生成新的構(gòu)成兩交點(diǎn)間封閉面域的Arc和Line元素序列;然后,應(yīng)用公式(2)對(duì)此序列進(jìn)行分段積分,再求和算出兩點(diǎn)間面域的面積。

最后,判斷積分結(jié)果的正負(fù)號(hào)并分別累加,正的總和即為總超挖面積,負(fù)的總和即為總欠挖面積。

5 應(yīng)用實(shí)例

應(yīng)用武漢地鐵二號(hào)線虎泉-名都區(qū)間DK25+24.546和DK25+34.858斷面檢測(cè)數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),輸出AutoCAD文件格式的計(jì)算報(bào)告,并用AutoCAD圖上面積量算數(shù)據(jù)作為比較基準(zhǔn),以驗(yàn)證本文算法的正確性和精度。

該斷面為典型的多段圓弧組成的馬蹄形斷面。由于斷面實(shí)測(cè)數(shù)據(jù)均為超挖,為了充分驗(yàn)證算法有效性,人為修改了DK25+34.858斷面的實(shí)測(cè)數(shù)據(jù),使其出現(xiàn)欠挖部分。計(jì)算報(bào)告,如圖2~圖3所示。

圖2 DK25+24.546斷面計(jì)算報(bào)告

圖3 DK25+34.858斷面(修改后)計(jì)算報(bào)告

本文算法計(jì)算結(jié)果與AutoCAD圖上量算結(jié)果如表1所示。

表1 對(duì)比分析結(jié)果

對(duì)比表明,本文提到的算法計(jì)算結(jié)果與CAD圖上量算結(jié)果完全吻合,具有很高的精度。

6 結(jié)語

應(yīng)用格林公式能夠方便精確地計(jì)算出不規(guī)則封閉區(qū)域的面積,本文從此思路出發(fā),結(jié)合隧道斷面的特點(diǎn),給出了適合于計(jì)算機(jī)編程的數(shù)據(jù)結(jié)構(gòu)和具體的計(jì)算過程,并應(yīng)用地鐵隧道斷面檢測(cè)數(shù)據(jù)進(jìn)行了實(shí)驗(yàn)驗(yàn)證。

相較于現(xiàn)有的將超欠挖面域分解為若干個(gè)三角形,分別求解各個(gè)三角形面積再求和的近似計(jì)算方法,提出的方法具有以下優(yōu)點(diǎn):

(1)精度高。采用函數(shù)式表達(dá)設(shè)計(jì)和實(shí)測(cè)斷面的各個(gè)元素,應(yīng)用積分的方法計(jì)算超欠挖面積,數(shù)學(xué)模型嚴(yán)密,計(jì)算結(jié)果精確。

(2)通用性好。從單一思路出發(fā),不必事先判斷是超挖還是欠挖;應(yīng)用統(tǒng)一的線段、圓弧模型來表達(dá)隧道斷面,無需考慮各種各樣復(fù)雜的隧道斷面形式,都能夠得出計(jì)算結(jié)果。

(3)易于編程。本文提出的元素類模型設(shè)計(jì)簡(jiǎn)單合理,算法清晰明了,利于計(jì)算機(jī)編程實(shí)現(xiàn),能夠極好地應(yīng)用于智能全站儀的隧道斷面檢測(cè)軟件開發(fā)。

猜你喜歡
鏈表圓弧交點(diǎn)
淺析圓弧段高大模板支撐體系設(shè)計(jì)與應(yīng)用
外圓弧面銑削刀具
基于二進(jìn)制鏈表的粗糙集屬性約簡(jiǎn)
閱讀理解
跟麥咭學(xué)編程
基于鏈表多分支路徑樹的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
六圓弧齒廓螺旋齒輪及其嚙合特性
借助函數(shù)圖像討論含參數(shù)方程解的情況
試析高中數(shù)學(xué)中橢圓與雙曲線交點(diǎn)的問題
等截面圓弧無鉸板拱技術(shù)狀況評(píng)價(jià)
巴马| 高阳县| 柘荣县| 余江县| 包头市| 资源县| 新和县| 松江区| 长沙县| 益阳市| 宜州市| 湛江市| 天祝| 肃北| 峨边| 宽甸| 甘泉县| 黎城县| 新竹县| 栾城县| 澄江县| 宣城市| 浦东新区| 龙胜| 连州市| 鄂伦春自治旗| 浮山县| 潮州市| 若羌县| 章丘市| 克拉玛依市| 凤庆县| 稷山县| 开封县| 丹巴县| 珲春市| 云梦县| 巴南区| 个旧市| 东明县| 闽侯县|