• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      自由設站邊角同測交會法在礦山測量中的應用及C#程序編制

      2021-03-07 02:42:04閆朋遠趙曉舉林文明
      礦山測量 2021年1期
      關鍵詞:邊角弧度交會

      閆朋遠,趙曉舉,林文明

      (平頂山天安煤業(yè)股份有限公司二礦,河南 平頂山 467000)

      礦山測量受作業(yè)場所限制,往往在井下狹長的井巷中開展,通視條件較差,一旦某個控制點被損壞,就可能造成剩余控制點不通視,傳統(tǒng)的測量方法將無法繼續(xù)進行坐標傳遞。為解決此問題,常采用交會測量[1]。然而傳統(tǒng)的交會測量不僅計算公式、精度評定復雜,且在僅有兩個不通視控制點的情況下同樣不適用。本文結合井下現(xiàn)場實際,利用自由設站法[2-3],選取與前后控制點均通視的位置自由架設全站儀,采用邊角交會的測量方法[4],通過三角函數(shù)及坐標的正反算計算出待定點坐標。

      1 自由設站邊角同測交會法測量的理論基礎

      交會測量是一種常用的控制測量方法,傳統(tǒng)意義上交會測量分為前方交會、后方交會。早期受邊長測量精度遠低于角度測量精度的限制,前方交會與后方交會只觀測角度,然后采用對應的交會計算公式,計算待定點坐標,計算公式與精度評定較復雜。隨著測距儀器精度的提高,以及井下測量條件的限制,采用自由設站邊角同測的交會方法進行特殊條件下的控制測量,更具有可操作性。

      1.1 自由設站邊角同測交會法

      假設井下巷道有已知點A與已知點B,兩點不通視,為了進行下一步控制測量,選擇一處既能與A通視又能與B通視的地點,設置待定點P,如圖1所示。

      圖1 自由設站邊角同測交會法

      在待定點P處架設全站儀,測量水平角∠P,水平邊長SAP、SBP,利用已知點A坐標(XA,YA)、已知點B坐標(XB,YB),采用自由設站邊角同測交會法計算待定點P坐標,具體計算步驟如下。

      根據(jù)正弦定理,代入∠P、SAB、SBP,計算得到∠B:

      (1)

      根據(jù)坐標反算[5],可以求得方位角αAB,再由方位角計算公式得到αBP:

      (2)

      αBP=αAB+∠B-π

      (3)

      將XB、YB、αBP、SBP代入坐標正算,推導出待定點P坐標(XP,YP)的自由設站邊角同測交會法計算公式:

      (4)

      1.2 精度評定

      利用中誤差傳播定律對自由設站邊角同測交會法計算得到的待定點坐標進行精度評定[6-7]。

      以觀測值SAP、SBP、∠P為自變量,以SAB、αAB為已知數(shù),對式(4)進行展開:

      (5)

      將式(5)分別對SAP、SBP、∠P求偏導數(shù):

      (6)

      根據(jù)中誤差傳播定律,計算待定點P的點位中誤差[8]:

      (7)

      將式(6)代入式(7)中,計算得到自由設站邊角同測交會法中的待定點P的中誤差方程:

      (8)

      式中,mSAP、mSBP為水平邊長SAP、SBP的測邊中誤差;m∠P為水平角∠P的測角中誤差;ρ″為常數(shù)206 265。

      2 C#程序編制

      2.1 算法設計

      為了便于自由設站邊角同測交會法的實施與計算,在提高計算效率的同時,減少人為計算錯誤,選擇利用計算機編程,實現(xiàn)上述算法步驟,具體算法流程圖如圖2所示。

      圖2 自由設站邊角同測交會法算法流程圖

      2.2 程序編制

      2.2.1 窗體設計

      C#是微軟公司發(fā)布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言,它綜合了VB的可視化操作和C++的高運行效率[9]。本文利用C#良好的圖形用戶界面(GUI),以視窗的模式,進行交會計算,使得計算簡單化、準確化,如圖3所示。

      圖3 自由設站邊角同測交會法GUI界面

      2.2.2 關鍵程序

      (1)變量定義

      doubleX1; //已知點A的X坐標

      doubleY1; //已知點A的Y坐標

      doubleX2; //已知點B的X坐標

      doubleY2; //已知點B的Y坐標

      doubleX3; //待定點P的X坐標

      doubleY3; //待定點P的Y坐標

      doubleS12; //已知點A-已知點B的水平邊長

      doubleα12; //已知點A-已知點B的方位角,單位:弧度

      doubleJ1; //∠已知點A,單位:弧度

      doubleJ2; //∠已知點B,單位:弧度

      doubleJ3; //∠待定點P,單位:弧度

      doubleS13; //水平邊長:已知點A-待定點P

      doubleS23; //水平邊長:已知點B-待定點P

      doubleα13; //已知點A-待定點P的方位角,單位:弧度

      doubleα23; //已知點B-待定點P的方位角,單位:弧度

      (2)坐標反算

      S12 = Math.Sqrt(Math.Pow(X2 -X1, 2) + Math.Pow(Y2 -Y1, 2));

      double temp12= Math.Atan(Math.Abs(Y2 -Y1) /Math.Abs (X2 -X1));

      if ((Y2 -Y1) > 0 && (X2 -X1) > 0)

      α12 = temp12;

      else if ((Y2 -Y1) > 0 && (X2 -X1) < 0)

      α12 = Math.PI - temp12;

      else if ((Y2 -Y1) < 0 && (X2 -X1) < 0)

      α12 = Math.PI + temp12;

      else if ((Y2 -Y1) < 0 && (X2 -X1) > 0)

      α12 = 2 * Math.PI - temp12;

      (3)正弦定理及內角平差

      //正弦定理計算三角形各內角

      J1 = Math.Asin(S23 * Math.Sin(J3) /S12);

      J2 = Math.Asin(S13 * Math.Sin(J3) /S12);

      //三角形內角平差

      double temp = Math.PI - (J1 +J2 +J3);

      double temp1 =J1 + temp / 3;

      J1 = temp1;

      double temp2 =J2 + temp / 3;

      J2 = temp2;

      double temp3 =J3 + temp / 3;

      J3 = temp3;

      (4)坐標正算

      if (radioButton1.Checked == true) //已知點A-已知點B-待定點P順時針

      {

      //利用已知點2-待定點,計算待定點坐標

      α23 =α12 -J2 + Math.PI;

      double dx=S23 * Math.Cos(α23);

      double dy=S23 * Math.Sin(α23);

      double temp1X3 =X2 + dx;

      double temp1Y3 =Y2 + dy;

      //利用已知點1-待定點,計算待定點坐標

      α13 =α12 +J1;

      dx=S13 * Math.Cos(α13);

      dy=S13 * Math.Sin(α13);

      double temp2X3 =X1 + dx;

      double temp2Y3 =Y1 + dy;

      //取平均值

      X3 = (temp1X3 + temp2X3) / 2;

      Y3 = (temp1Y3 + temp2Y3) / 2;

      //結果輸出

      textBox9.Text = Convert.ToString(Math.Round(X3, 3));

      textBox10.Text = Convert.ToString(Math.Round(Y3, 3));

      }

      else if(radioButton2.Checked==true) //已知點A-已知點B-待定點P逆時針

      {

      //利用已知點2-待定點,計算待定點坐標

      α23 =α12 +J2 - Math.PI;

      double dx=S23 * Math.Cos(α23);

      double dy=S23 * Math.Sin(α23);

      double temp1X3 =X2 + dx;

      double temp1Y3 =Y2 + dy;

      //利用已知點1-待定點,計算待定點坐標

      α13 =α12 -J1;

      dx=S13 * Math.Cos(α13);

      dy=S13 * Math.Sin(α13);

      double temp2X3 =X1 + dx;

      double temp2Y3 =Y1 + dy;

      //取平均值

      X3 = (temp1X3 + temp2X3) / 2;

      Y3 = (temp1Y3 + temp2Y3) / 2;

      //結果輸出

      textBox9.Text = Convert.ToString(Math.Round(X3, 3));

      textBox10.Text = Convert.ToString(Math.Round(Y3, 3));

      }

      3 工程實例

      3.1 計算實例

      巷道中現(xiàn)有A、B兩個控制點,A點坐標(XA=39 593.812,YA=37 509.644),B點坐標(XB=39 544.608,YB=37 533.971),A、B兩點不通視,如圖4所示。

      圖4 工程實例

      采用自由設站邊角同測交會法,在與A、B兩點同時通視的任意地點設置待定點P,并于P點處架設全站儀,測得水平邊長SAP=39.607 m、SBP=31.856 m,水平角∠P=99°47′45″。將以上已知數(shù)據(jù)與測量數(shù)據(jù)分別輸入窗口對應位置,選擇“逆時針”,單擊“交會計算”,就可計算得到待定點P坐標(XP=39 574.726,YP=37 544.349),如圖5所示。

      圖5 計算實例

      3.2 精度評定

      通過坐標反算可得SAB=54.889 m。此次實測所選用的測量儀器為尼康2.M防爆型全站儀,測角

      中誤差為2″,測距中誤差為2+2 ppm,因此可得:

      m∠P=2″

      mSAP=2+0.039 607×2=2.079 mm

      mSBP=2+0.031 856×2=2.064 mm

      (9)

      將式(9)以及SAB、SAP、SBP、∠P,代入式(8)中計算可得:

      MP=2.7 mm

      經(jīng)自由設站邊角同測交會法計算所得的待定點P坐標點位中誤差為2.7 mm。根據(jù)《工程測量規(guī)范》5.2.1條“圖根點相對于鄰近等級控制點的點位中誤差不應大于圖上0.1 mm”[10],完全滿足1:100測圖精度要求。

      4 結 論

      經(jīng)實例驗證與精度評定,自由設站邊角同測交會法與C#程序,計算高效、結果可靠,可用于日常井巷測圖與支導線延伸。但如若作為基本控制點使用,仍需進一步提高測量精度與平差。

      猜你喜歡
      邊角弧度交會
      “織交會”打造大朗樣板
      應用旋轉的性質求邊角
      邊角雙核互相轉,環(huán)環(huán)相扣不變心——解三角形經(jīng)典題突破
      公交車逃生窗為什么要砸邊角處
      2019年,水交會來了!
      別樣風景“邊邊角”
      不自由
      詩潮(2017年2期)2017-03-16 20:02:06
      南瓜
      立方體星交會對接和空間飛行演示
      太空探索(2016年9期)2016-07-12 09:59:53
      希臘:日落最美的弧度
      Coco薇(2016年7期)2016-06-28 19:11:56
      建平县| 广德县| 大荔县| 秦皇岛市| 三台县| 贡山| 明溪县| 开远市| 绥芬河市| 谷城县| 白银市| 会昌县| 辉县市| 罗城| 阿图什市| 三江| 鲜城| 湾仔区| 阿拉善左旗| 宣城市| 北川| 林芝县| 文昌市| 南郑县| 安岳县| 商水县| 宜春市| 侯马市| 井陉县| 祥云县| 莱阳市| 柏乡县| 安龙县| 崇仁县| 峨边| 原阳县| 石渠县| 延津县| 天等县| 新安县| 长治市|