matlab大圆航线,基于MATLAB和C#混合编程的大圆航线计算器设计
行業(yè)曲線industryappraisement
可替代度影響力可實(shí)現(xiàn)度行業(yè)關(guān)聯(lián)度真實(shí)度
利用現(xiàn)有的大圓航線算法,分別通過(guò)MATLAB和C#編寫大圓航線正反解的算法和大圓航線計(jì)算器顯示界面,以及利用MATLAB和C#.NET混合編程的方式對(duì)大圓航線計(jì)算器進(jìn)行了設(shè)計(jì),并對(duì)所設(shè)計(jì)的大圓航線計(jì)算器進(jìn)行了驗(yàn)證,驗(yàn)證結(jié)果表明大圓航線計(jì)算器具備較高精確性和有效性,為大圓航線計(jì)算提供了便捷的計(jì)算方式。
大圓航線又稱為大地主題解算,是指在地球上從一點(diǎn)航行到另一點(diǎn)時(shí),過(guò)兩點(diǎn)的大圓劣弧,用于進(jìn)行地球橢球面上兩位置點(diǎn)間的距離和方位角的計(jì)算。船舶或飛機(jī)進(jìn)行遠(yuǎn)距離航行時(shí),一般情況下均采用大圓航線進(jìn)行航行,以縮短航程和航行時(shí)間。目前關(guān)于大地主題的解算算法很多,例如T.Vincenty的嵌入系數(shù)法,巴烏曼投影法,以及貝塞爾公式等。這些大地主題解算的算法為本文所設(shè)計(jì)的大圓航線計(jì)算器提供了可靠的算法基礎(chǔ)和有效保障。大圓航線大圓航線包括大圓航線正解和大圓航線反解。大圓航線正解是指已知地球上起點(diǎn)的經(jīng)緯度坐標(biāo),計(jì)算從該位置點(diǎn)以某一方位角航行一定距離后的終點(diǎn)位置經(jīng)緯度坐標(biāo);大圓航線反解是指已知地球上兩位置點(diǎn)經(jīng)緯度坐標(biāo),計(jì)算該兩點(diǎn)間的大圓航線距離和正反方位角,示意圖如圖1所示。設(shè)起點(diǎn)A的經(jīng)緯度坐標(biāo)為11(B,L),終點(diǎn)B的經(jīng)緯度坐標(biāo)為22(B,L),s表示起點(diǎn)和終點(diǎn)間的大圓航線長(zhǎng)度,表示大圓航線在赤道的方位角,12,表示大圓航線的正反方位角,a、b、f分別表示橢球的長(zhǎng)半軸、短半軸和扁率。本文以T.Vincenty的嵌入系數(shù)法為參考總結(jié)出大圓航線正反解解算過(guò)程。大圓航線正解大圓航線正解過(guò)程如下:首先,根據(jù)起點(diǎn)A緯度,計(jì)算起點(diǎn)A的球面歸化緯度1U:11tanU=(1-f)tanL計(jì)算大圓航線與橢球赤道的交點(diǎn)和起點(diǎn)A在橢球上的球面角距:111tan=tanU/cos則可得到大圓航線在赤道的方位角,11sin=cosUsin通過(guò)計(jì)算大圓航線長(zhǎng)度修正項(xiàng)?,同時(shí)計(jì)算大圓航線與赤道的交點(diǎn)到大圓航線中點(diǎn)的球面角距m,以及點(diǎn)A與點(diǎn)B間的球面角距。22222u=cos(a-b)/b2221[64(125)]256uM=++u-+u222[128(6437)]512uN=+u-+u1(2)/2m=+sbM=+?2sin[cos2cos(12cos2)/4]mm?=N+B-+圖1大圓航線
對(duì)公式(7)式至(9)進(jìn)行迭代,直至點(diǎn)A與點(diǎn)B間的球面角距的變化可忽略不計(jì)。初始迭代條件為式(8)的第一項(xiàng)。然后計(jì)算起點(diǎn)與終點(diǎn)的經(jīng)度差?B,1111tanB?(sinsin)/(cosUcos-sinUsincos)最后分別計(jì)算終點(diǎn)的經(jīng)緯度坐標(biāo)22(B,L)。11121222111sincoscossincostan(1)[sin(sinsincoscoscos)]UULfUU+=-+-21B=?B+B大圓航線反解大圓航線反解過(guò)程如下:初始迭代值:'21?B=B-B然后計(jì)算起點(diǎn)與終點(diǎn)的球面角距,2'2'221212sin=(cosUsin?B)+(cosUsinU-sinUcosUcos?B)'1212cossin=UsinU+cosUcosUcos?Btan=sin/cos其中2U表示終點(diǎn)的球面歸化緯度1U,22tanU=(1-f)tanL'12sin=cosUcosUsin?B/sin212cos2cos2sinsin/cosm=-UU對(duì)式(14)至式(19)進(jìn)行迭代,直至'?B的改變量可以忽略不計(jì)。22cos[4(43cos)]16fC=+f-'2(1)sin{sin[cos2cos(12cos2)]}mm?B=?B--C
總結(jié)
以上是生活随笔為你收集整理的matlab大圆航线,基于MATLAB和C#混合编程的大圆航线计算器设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ASP.NET查找路由表RouteTab
- 下一篇: 华为网络工程师HCIP认证考试之223