论文部分内容阅读
[摘要]介绍直接将GPS定位信息输入计算机进行高斯变换,以快速准确获取炮兵所需的定位信息的原理和方法。
[关键词]GPS定位 高斯变换
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2009)0110067-01
一、引言
目前很多型号的GPS定位仪只接收和显示定位点的经纬度球面坐标信息,而很多实用场合需采用平面直角坐标,如
炮兵射击计算。这是一个球面坐标到平面坐标的非线性变换。利用计算机编程接收并提取GPS定位信息,经高斯变换求解比现行方法更快速准确。也为进一步直接在电子地图上定位导航、炮兵射击诸元的快速计算、作战方案标图等创造了条件。
二、实现原理
GPS定位仪通过RS-232接口电路接入笔记本电脑,由监控程序实时接收,经高斯变换程序求解,获取炮兵所需的定
位信息,再由后续程序在电子地图上定位导航、进行炮兵射击诸元[1]的快速计算、作战方案标图等其它操作。
三、GPS定位信息的接收与提取
根据GPS通信的NEMA0183协议,其中$GPRMC帧的数据结构为:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,
结构中<3>和<5>即为纬度和经度数据,数据格式为ddmm..mmm和dddmm..mmm,通过MSComm控件可接收和提取纬度和经度数据,其程序为:
Private Sub MSComm1_OnComm()
Dim str1 As String
Dim ch As String
Dim j%,i%
Dim bi As Integer '对$GPRMC后逗号计数
Select Case MSComm1.CommEvent
Case comEvReceive
str1 = Trim(MSComm1.Input) '接收到的数据存入str1串
j = InStr(1, str1, "$GPRMC")'从str1串中查找串"$GPRMC"
If j < 1 Then
Text1.Text = "此次读失败"
Else
str1 = Right(str1, Len(str1) - j + 1)
j = Len(str1)
For i = 1 To j
ch = Mid(str1, i, 1)
If ch = "," Then bi = bi + 1
Else
If bi = 3 Then cw2 = cwd & ch '第三个逗号后是纬度数据
If bi = 5 Then cj2 = cjd & ch '第五個逗号后是纬度数据
If bi = 6 Then Exit For
End If
Next i
MSComm1.InBufferCount = 0'清空缓冲区
End If
End Select
End Sub
四、高斯变换方法
从球面坐标转换到平面坐标,我国平面直角坐标地图采用的是经差60分带法,将全球分为60个带,按高斯克吕格投影绘制,每投影带的中央经线为纵轴(X轴),赤道为横轴(Y轴),其投影变换的主要程序如下[2]:
Private Sub getxy()
b = Len(cwd)
wd = Val(Left(cwd, 2)) + Val(Right(cwd, b - 2)) / 60
b = Len(cjd)
jd = Val(Left(cjd, 3)) + Val(Right(cjd, b - 3)) / 60
wd = wd * 3.141592654 / 180
co = Cos(wd)
si = Sin(wd)
jd = jd * 3.141592654 / 180
m1 = jd * co
m = m1 ^ 2
t = Tan(wd)
n = 0.0067395018195 * co ^ 2
k = 6399596.65198801 / Sqr(1 + n)
z = 6367554* wd - (32009.8575 * si + 133.9602 * si ^ 3
+ 0.6976 * si ^ 5 + 0.0039 * si ^ 7) * co
x = z + k * t * (0.5 + (5 - t ^ 2 + 9 * n + 4 * n^ 2) * m/24
+ (61 - 58 * t ^ 2 + t ^ 4) * m ^ 2 / 720) * m
y = 500000 + k * (m1 + (1 - t ^ 2 + n) * m1 ^ 3 / 6 + (5 - 18 * t ^ 2 + t ^ 4 + 14 * n - 58 * n * t ^ 2) * m1 ^ 5 / 120)
Text2.Text = "纵坐标x =" & x & ",横坐标=" &y
End Sub
程序中jd、wd为从GPS信息中提取到的经度和纬度数值,x、y为经投影变换得到的平面直角坐标值。以上程序操作只需按一键即可完成,再接入测角测距仪数据,配上相关图库和射表数据库,大大提高了迫击炮机动射击的精度与速度。
参考文献:
[1]总参兵种部,《陆军炮兵射击教程》,北京:解放军出版社,1995.
[2]总参炮兵部,《军事地形学》,北京:解放军出版社,1988.
作者简介:
杨水根,南昌陆军学院科文教研室教授。
[关键词]GPS定位 高斯变换
中图分类号:TP2 文献标识码:A 文章编号:1671-7597(2009)0110067-01
一、引言
目前很多型号的GPS定位仪只接收和显示定位点的经纬度球面坐标信息,而很多实用场合需采用平面直角坐标,如
炮兵射击计算。这是一个球面坐标到平面坐标的非线性变换。利用计算机编程接收并提取GPS定位信息,经高斯变换求解比现行方法更快速准确。也为进一步直接在电子地图上定位导航、炮兵射击诸元的快速计算、作战方案标图等创造了条件。
二、实现原理
GPS定位仪通过RS-232接口电路接入笔记本电脑,由监控程序实时接收,经高斯变换程序求解,获取炮兵所需的定
位信息,再由后续程序在电子地图上定位导航、进行炮兵射击诸元[1]的快速计算、作战方案标图等其它操作。
三、GPS定位信息的接收与提取
根据GPS通信的NEMA0183协议,其中$GPRMC帧的数据结构为:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,
结构中<3>和<5>即为纬度和经度数据,数据格式为ddmm..mmm和dddmm..mmm,通过MSComm控件可接收和提取纬度和经度数据,其程序为:
Private Sub MSComm1_OnComm()
Dim str1 As String
Dim ch As String
Dim j%,i%
Dim bi As Integer '对$GPRMC后逗号计数
Select Case MSComm1.CommEvent
Case comEvReceive
str1 = Trim(MSComm1.Input) '接收到的数据存入str1串
j = InStr(1, str1, "$GPRMC")'从str1串中查找串"$GPRMC"
If j < 1 Then
Text1.Text = "此次读失败"
Else
str1 = Right(str1, Len(str1) - j + 1)
j = Len(str1)
For i = 1 To j
ch = Mid(str1, i, 1)
If ch = "," Then bi = bi + 1
Else
If bi = 3 Then cw2 = cwd & ch '第三个逗号后是纬度数据
If bi = 5 Then cj2 = cjd & ch '第五個逗号后是纬度数据
If bi = 6 Then Exit For
End If
Next i
MSComm1.InBufferCount = 0'清空缓冲区
End If
End Select
End Sub
四、高斯变换方法
从球面坐标转换到平面坐标,我国平面直角坐标地图采用的是经差60分带法,将全球分为60个带,按高斯克吕格投影绘制,每投影带的中央经线为纵轴(X轴),赤道为横轴(Y轴),其投影变换的主要程序如下[2]:
Private Sub getxy()
b = Len(cwd)
wd = Val(Left(cwd, 2)) + Val(Right(cwd, b - 2)) / 60
b = Len(cjd)
jd = Val(Left(cjd, 3)) + Val(Right(cjd, b - 3)) / 60
wd = wd * 3.141592654 / 180
co = Cos(wd)
si = Sin(wd)
jd = jd * 3.141592654 / 180
m1 = jd * co
m = m1 ^ 2
t = Tan(wd)
n = 0.0067395018195 * co ^ 2
k = 6399596.65198801 / Sqr(1 + n)
z = 6367554* wd - (32009.8575 * si + 133.9602 * si ^ 3
+ 0.6976 * si ^ 5 + 0.0039 * si ^ 7) * co
x = z + k * t * (0.5 + (5 - t ^ 2 + 9 * n + 4 * n^ 2) * m/24
+ (61 - 58 * t ^ 2 + t ^ 4) * m ^ 2 / 720) * m
y = 500000 + k * (m1 + (1 - t ^ 2 + n) * m1 ^ 3 / 6 + (5 - 18 * t ^ 2 + t ^ 4 + 14 * n - 58 * n * t ^ 2) * m1 ^ 5 / 120)
Text2.Text = "纵坐标x =" & x & ",横坐标=" &y
End Sub
程序中jd、wd为从GPS信息中提取到的经度和纬度数值,x、y为经投影变换得到的平面直角坐标值。以上程序操作只需按一键即可完成,再接入测角测距仪数据,配上相关图库和射表数据库,大大提高了迫击炮机动射击的精度与速度。
参考文献:
[1]总参兵种部,《陆军炮兵射击教程》,北京:解放军出版社,1995.
[2]总参炮兵部,《军事地形学》,北京:解放军出版社,1988.
作者简介:
杨水根,南昌陆军学院科文教研室教授。