一种测量地球表面两点间距离的方法及装置的制作方法

文档序号:5908250阅读:188来源:国知局
专利名称:一种测量地球表面两点间距离的方法及装置的制作方法
技术领域
本发明涉及测量地球表面两点间距离的方法及装置,尤其是实时地将全球卫星定位系统(GPS)接收机测量的地球表面两个点的地理坐标,通过8位微处理机的快速处理换算成距离的方法及装置。
背景技术
地球表面两点间的距离是指地球表面两个点在地球表面的弧长。目前,直接的测量方法如运用光学测量仪器测得的是两点间的直线距离,方法误差比较大。另外有用车辆通过累计车轮转数,再计算对应长度的测量方法,累计误差比较大。比较科学、精确的的测量方法是先测量的地球表面两个点的地理坐标,再使用能支持比较复杂的数学函数的计算机运用球面几何计算公式S=R×cos-1(cos(x1)×cos(x2)×cos(y1-y2)+sin(x1)×sin(x2))其中点1的纬度、经度分别为x1、y1,点2的纬度、经度为x2、y2,其单位为度,范围-90<x1、x2<90,-180<y1、y2<180。R为地球半径,单位为米。
计算出两点间的距离S。该方法的缺陷之一是不能实时得到测量结果,二是计算中涉及正弦函数、余弦函数、反余弦函数,特别是负数的浮点乘法运算,对计算机的功能要求比较高,不适合开发简单实用的实时测量装置。

发明内容
本发明旨在提供一种能实时地测量地球表面两个点的地理坐标,通过微处理机的快速处理换算成地球表面两个点间距离的方法及按该方法测量地球表面两点间距离的装置。
本发明测量地球表面两点间距离的方法所采用的技术方案是对精确计算地球表面两点间距离的公式进行化简、近似,得到一个比较简单便于微处理机处理的只含有加法、减法、整形数乘法的计算式,式中系数涉及开方和余弦函数的运算预先计算出来制成数据表存入微处理机的内存中,配合计算查表指针的简单程序段和查表,由微处理机将GPS接收机的测量地球表面两点的地理坐标运用上述计算式快速换算成两点间的距离。该方法包括以下步骤在微处理机的内存中预先存入一个以纬度为参变量的余弦函数表及一个以两点的经度差和纬度差为参变量的长度修正系数表;用全球卫星定位系统(GPS)接收机测量的地球表面两个点的地理坐标;由微处理机计算所述的两个点的经度差的绝对值D;由微处理机计算所述的两个点的纬度差的绝对值C;由微处理机以所述的第一个点的纬度为指针从所述的余弦函数表中查出余弦系数J;由微处理机以所述的两个点的经度差的绝对值D和纬度差的绝对值C为参变量计算出指针E,以指针E从所述的长度修正系数表中查出长度修正系数K;由微处理机计算S=(C+D×J)×K,得出地球表面所述的两点间的距离S。
特别是对于8位的微处理机所述的余弦函数表中的各数据项J’顺序是10000×cos(x1)从x1=0以1为步长增加到90的对应的值,从该余弦函数表中查出余弦系数J’,计算D×J’的值再除以10000得到D×J的值;所述的长度修正系数表中的各数据项K顺序是1852×(F)2+(1-F)2]]>从F=0,以0.01为步长增加到1的对应的值;所述的指针E由下述程序段计算步骤1,E=0,Q=0;步骤2,若Q≥100*C则转移到步骤6;步骤3,Q=Q+C+D×J;步骤4,E=E+1;步骤5,转移到步骤2;步骤6,返回。
用GPS接收机的测量地球表面两点间距离的装置,包括GPS接收机、微处理机和直流电源;直流电源向GPS接收机和微处理机供电;GPS接收机的输入/输出接口与微处理机相连;微处理机中运行一个程序,该程序包括预先存入的一个以纬度为参变量的余弦函数表及一个以两点的经度差的绝对值和纬度差的绝对值为参变量的长度修正系数表;
在微处理机的输入设备控制下从GPS接收机采集地球表面两个点的地理坐标;计算所述的两个点的经度差的绝对值D;计算所述的两个点的纬度差的绝对值C;以所述的第一个点的纬度为指针从所述的余弦函数表中查出余弦系数J;以所述的两个点的经度差D的绝对值和纬度差的绝对值C为参变量计算出指针E,以指针E从所述的长度修正系数表中查出长度修正系数K;计算S=(C+D×J)×K,得出地球表面所述的两点间的距离S并送微处理机的显示设备显示。
所述的微处理机包括中央处理器(CPU)、具有数码显示器和键盘的显示/输入设备、只读存储器(ROM)和随机存储器(RAM);ROM和RAM分别连接CPU的地址和数据总线;显示/输入设备的输入/输出接口连接CPU的一个输入/输出接口;GPS接收机的输入/输出接口连接CPU的另一个输入/输出接口。
特别是所述的CPU是8位的单片机;所述的程序、余弦函数表和长度修正系数表存放在ROM中;余弦函数表中的各数据项顺序是10000×cos(x1)从x1=0以1为步长增加到90的对应的值;长度修正系数表中的各数据项K顺序是1852×(F)2+(1-F)2]]>从F=0,以0.01为步长增加到1的对应的值;所述的指针E由下述程序段计算
步骤1,E=0,Q=0;步骤2,若Q≥100*C则转移到步骤6;步骤3,Q=Q+C+D×J;步骤4,E=E+1;步骤5,转移到步骤2;步骤6,返回。
本发明测量地球表面两点间距离的方法,将GPS接收机的测量地球表面两点的地理坐标由微处理机通过加法、减法、乘法,配合计算查表指针的简单程序段和查表,快速换算成两点间的距离。测量工作进行的速度快,而且比较准确。本发明用GPS接收机的测量地球表面两点间距离的装置,以简单的微处理机与GPS接收机联机,运用上述方法完成测量任务,结构简单,机动性好,测量工作进行的速度快,而且比较准确适合与数字化地理勘测系统配套。


图1是本发明用GPS接收机的测量地球表面两点间距离的装置一个实施例的结构示意图。
图2是本发明图1实施例的程序流程图。
具体实施例方式本发明用GPS接收机的测量地球表面两点间距离的装置一个实施例是一个车载的装置,它的结构如图1所示。该装置包括GPS接收机1、微处理机2和直流电源3。
GPS接收机1为市售产品,它有一个称为GPS模块11的接收机模块和一部GPS天线12。GPS天线12装在车身外侧并连接GPS模块11的天线端子。GPS模块11的输入/输出接口为异步TTL串行输入/输出接口,它与微处理机2相连。
微处理机2包括中央处理器(CPU)21、只读存储器(ROM)22和随机存储器(RAM)23、具有数码显示器和键盘的显示/输入设备24、看门狗25。CPU21是一个8位的单片机,它的型号为80C51。ROM22和RAM23分别连接CPU21的地址和数据总线;ROM22为电可擦写型EEPROM,其中存储着测量控制程序和一个以纬度为参变量的余弦函数表及一个以测量到的两点的经度差的绝对值和纬度差的绝对值为参变量的长度修正系数表;RAM23用于测量控制程序运行时存放数据。显示/输入设备24的输入/输出接口连接CPU21的一个串行输入/输出接口。GPS模块11的输入/输出接口连接CPU21的另一个串行输入/输出接口,该串行输入/输出接口是用CPU21的一个中断输入端、一个I/O端和一个定时器构成的仿真串行输入/输出接口。CPU21的该中断输入端连接GPS模块11的输入/输出接口的TX端,CPU21的该I/O端连接GPS模块11的输入/输出接口的RX端;上述定时器的定时按GPS模块11数据传输的波特率设定。测量控制程序中设置一个外部中断处理子程序处理接收GPS模块11发送的一个字节的数据,设置一个向GPS模块11发送的一个字节数据的子程序,还设置一个由上述两个子程序启动调用的定时器软件中断处理子程序处理由该I/O端发送/接收一位数据。看门狗25是防止CPU21的程序运行中进入死循环或程序“跑飞”的通用模块,它连接CPU21的复位信号输入端和另一个I/O端。
直流电源3包括车载电源31和电源转换模块32,车载电源31为12V的直流电源,它向电源转换模块32供电;电源转换模块32将12V的直流电源转换为5V的直流电源向GPS模块11和微处理机2供电。
微处理机2中运行的主程序流程,请参看图2。
该程序中使用一个以纬度为参变量的余弦函数表,该表中的各数据项J’顺序是10000×cos(x1)从x1=0以1为步长增加到90的对应的值,请参看表1。
表16363H,6362H,635dH,6356H,634bH,633dH,632dH,6319H,6302H,624cH,6230H,6210H,6151H,612bH,6102H,603bH,600cH,5f3fH,5f0aH,5e37H,5d60H,5d23H,5c47H,5c05H,5b23H,5a3fH,5957H,590aH,581dH,572eH,563cH,5547H,5450H,5356H,525aH,515bH,505aH,4f56H,4e50H,4d47H,4c3cH,4b2fH,4a1fH,490dH,475dH,4647H,452eH,4413H,425bH,413cH,401bH,3e5dH,3d38H,3c12H,3a4dH,3923H,375bH,362eH,3463H,3332H,3200H,3030H,2e5eH,2d27H,2b53H,2a1aH,2843H,2707H,252eH,2353H,2214H,2037H,1e5aH,1d17H,1b38H,1958H,1813H,1631H,144fH,1308H,1124H,0f40H,0d5bH,0c12H,0a2dH,0847H,0661H,0517H,0330H,014aH,0H注1.本表中的数值ABCDH=AB×100+CD;其中AB,CD均为16进制的100以内的数。
2.本表中的数值用于实际运算时要除以10000才是真正的余弦函数值。
该程序中还使用一个以GPS接收机1测量到的两点的经度差的绝对值和纬度差的绝对值为参变量的长度修正系数表,该表中各数据项K顺序是1852×(F)2+(1-F)2]]>从F=0,以0.01为步长增加到1的对应的数值,请参看表2。
表21234H,1221H,120fH,1161H,114fH,113dH,112cH,111bH,110aH,105dH,104dH,103cH,102cH,101dH,100dH,0f62H,0f53H,0f45H,0f36H,0f28H,0f1bH,0f0dH,0f00H,0e58H,0e4cH,0e40H,0e34H,0e29H,0e1eH,0e14H,0e0aH,0e00H,0d5bH,0d53H,0d4aH,0d43H,0d3bH,0d35H,0d2eH,0d28H,0d23H,0d1eH,0d1aH,0d16H,0d12H,0d10H,0d0dH,0d0bH,0d0aH,0d09H,0d09H,0d09H,0d0aH,0d0bH,0d0dH,0d10H,0d12H,0d16H,0d1aH,0d1eH,0d23H,0d28H,0d2eH,0d35H,0d3bH,0d43H,0d4aH,0d53H,0d5bH,0e00H,0e0aH,0e14H,0e1eH,0e29H,0e34H,0e40H,0e4cH,0e58H,0f00H,0f0dH,0f1bH,0f28H,0f36H,0f45H,0f53H,0f62H,100dH,101dH,102cH,103cH,104dH,105dH,110aH,111bH,112cH,113dH,114fH,1161H,120fH,1221H,1234H注本表中的数值ABCDH=AB×100+CD;其中AB,CD均为16进制的100以内的数。
主程序中步骤50“初始化”,包括CPU21的初始化、显示/输入设备24的初始化、GPS模块11的初始化。CPU21的初始化包括CPU21内部寄存器的初始赋值、I/O端口的定义赋值、串行输入/输出接口和仿真串行输入/输出接口初始参数赋值。显示/输入设备24的初始化包括初始状态设定。GPS模块11的初始化包括设定GPS模块11的工作方式设定、数据传送方式设定、启动搜星。上述初始化赋值和操作在相关使用说明书和开发资料中有详细介绍,不再赘述。
主程序中步骤51“等待采集命令”,包括向显示/输入设备24输出提示可开始采集的信息和接收从显示/输入设备24输入的命令数据,将该数据存入RAM23的一个暂存单元,判断该暂存单元中的地理坐标数据的有效性。无效,则返回重复本步骤;有效,转下一步骤。该命令可以规定是一条命令语句,也可以规定是一个按键的输入。
主程序中步骤52“采集参照点的地理坐标”,包括开放接收GPS模块11数据的外部中断,接收GPS模块11数据,将该数据存入RAM23的一个暂存单元,关闭接收GPS模块11数据的外部中断,判断该暂存单元中的地理坐标数据的有效性。无效,则返回重复本步骤;有效,转下一步骤。
主程序中步骤53“提取经纬度”,包括按GPS数据格式从上述暂存单元中提取经度的字符型数据并转化成二进制数据,将该数据存入RAM23的Y1存储单元;从上述暂存单元中提取纬度的字符型数据并转化成二进制数据,将该数据存入RAM23的X1存储单元。
主程序中步骤54“等待采集目标点命令”,包括向显示/输入设备24输出提示可开始采集目标点的信息和接收从显示/输入设备24输入的命令数据,将该数据存入RAM23的一个暂存单元,判断该暂存单元中的地理坐标数据的有效性。无效,则返回重复本步骤;有效,转下一步骤。
主程序中步骤55“采集目标点的地理坐标”,包括开放接收GPS模块11数据的外部中断,接收GPS模块11数据,将该数据存入RAM23的一个暂存单元,关闭接收GPS模块11数据的外部中断,判断该暂存单元中的地理坐标数据的有效性。无效,则返回重复本步骤;有效,转下一步骤。
主程序中步骤56“提取经纬度”,包括按GPS数据格式从上述暂存单元中提取经度的字符型数据并转化成二进制数据,将该数据存入RAM23的Y2存储单元;从上述暂存单元中提取纬度的字符型数据并转化成二进制数据,将该数据存入RAM23的X2存储单元。
主程序中步骤57“计算两个点的经度差的绝对值D”,包括从RAM23的Y1存储单元和Y2存储单元取出数据Y1和Y2,计算Y1-Y2的差值并取绝对值的数据,将该数据存入RAM23的D存储单元。
主程序中步骤58“计算两个点的纬度差的绝对值C”,包括从RAM23的X1存储单元和X2存储单元取出数据X1和X2,计算X1-X2的差值并取绝对值的数据,将该数据存入RAM23的C存储单元。
主程序中步骤59“查余弦函数表”,包括从RAM23的X1存储单元取出数据X1,计算第一个点的纬度X1取整数的数据,以该数据为指针从ROM中的余弦函数表中查出余弦系数的数据,将该数据存入RAM23的J’存储单元。
主程序中步骤60“计算D×J”,包括从RAM23的D存储单元和J’存储单元取出数据D和J’,计算D×J’的值再除以10000得到的数据,将该数据存入RAM23的D×J存储单元。
主程序中步骤61“计算C+D×J”,包括从RAM23的C存储单元和D×J存储单元取出数据C和D×J,计算C+D×J得到的数据,将该数据存入RAM23的C+D×J存储单元。
主程序中步骤62“计算指针E”,包括从RAM23的D存储单元和C+D×J存储单元取出数据C和C+D×J,执行下述程序段步骤1,E=0,Q=0;步骤2,若Q≥100*C则转移到步骤6;
步骤3,Q=Q+C+D×J;步骤4,E=E+1;步骤5,转移到步骤2;步骤6,返回。
计算得到指针E的数据。
主程序中步骤63“查长度修正系数表”,包括使用上一步骤得到的指针E从ROM中的长度修正系数表中查出长度修正系数K;主程序中步骤64“计算S=(C+D×J)×K”,包括从RAM23的C+D×J存储单元取出数据C+D×J,使用上一步骤得到的长度修正系数K计算(C+D×J)×K得到的数据,将该数据存入RAM23的S存储单元。
主程序中步骤65“显示两点间的距离”,包括从RAM23的S存储单元取出数据S,向显示/输入设备24输出表达两点间的距离的提示信息和数据S进行显示。
下面,附带说明该测量地球表面两点间距离的装置所使用的方法中计算公式S=(C+D×J)×K的推导过程。
设点1的纬度、经度分别为x1、y1,点2的纬度、经度为x2、y2,其单位为度。范围-90<x1、x2<90,-180<y1、y2<180,R为地球半径,单位为米。
地球表面的两点距离,其实质就是地球半径与这两点的弦对应的大圆的弧度的积。公式如下
S=R×cos-1(cos(x1)×cos(x2)×cos(y1-y2)+sin(x1)×sin(x2))--(1)设A=sin(y1-y22);]]>B=sin(x1-x22)|y1-y2|;]]>C=|x1-x2|;D=|y1-y2|;由(1)得S=R×cos-1(cos(x1)×cos(x2)×(1-2×A2)+sin(x1)×sin(x2))=R×cos-1(cos(x1-x2)-2×A2×cos(x1)×cos(x2))=R×cos-1(1-2×B2-2×A2×cos(x1)×cos(x2))∵cos-1(1-y)≈2y]]>(说明令θ=cos-1(1-y),有1-y=cosθ,得y=2sin2θ2,]]>于是近似得到2y≈θ2,即cos-1(1-y)≈2y)]]>=R×4×B2+4×A2×cos(x1)×cos(x2)]]>又∵sin(x)≈x×π180;]]>所以A2=(y1-y22)2;]]>B2=(x1-x22)2.]]>=R×π180×C2+D2×cos(x1)×cos(x2)]]>又∵cos(X1)≈cos(X2),且R×π180=1852]]>=1852×C2+(Dcos(x1))2------------(2)]]>公式(2)就是用来计算地球表面两点间距离的近似公式。该式有开方运算,在微处理机中进行计算比较复杂,占用时间长,须进一步简化。
∵x2+y2=(x+y)×(xx+y)2+(1-xx+y)2]]>设F=CC+Dcosx1----(3)]]>将(2)分成两部分计算S=(C+Dcos(x1))×1852(F)2+(1-F)2----(4)]]>公式(4)就是本发明中用来计算地球表面两点间距离的近似公式。其中,cos(x1)可以先由X1从0到90之间顺序取值,用别的软件计算cos(x1)值,生成一个余弦系数表。计算中需要使用cos(x1)的值时,直接以X1为指针,查余弦系数表取得该值。同理,1852(F)2+(1-F)2]]>可以先由F从0到1之间顺序取值,用别的软件计算1852(F)2+(1-F)2]]>值,生成一个长度修正系数表。计算中需要使用1852(F)2+(1-F)2]]>的值时,先计算出F,查表得到1852(F)2+(1-F)2]]>值。
计算F的值,最直接的方法是用公式(3)计算。但从长度修正系数表中取出对应值,还要按长度修正系数表生成次序,由F的值计算该对应值在长度修正系数表中位置的指针E,使用指针E将该对应值从长度修正系数表中取出。这种作法还嫌繁琐。我们规定,F从0到1之间等步长N增加,得到的1852(F)2+(1-F)2]]>值顺序生成长度修正系数表。将步长值N和指针E引入公式(3);F=E×N=CC+Dcosx1----(5)]]>则有(E-1)×(C+D×cos(x1))<C/N≤E×(C+D×cos(x1))---(6)从公式(6),令J=cos(x1)可以用以下的程序段计算出E的值步骤1,E=0,Q=0;步骤2,若Q≥(1/N)×C则转移到步骤6;步骤3,Q=Q+C+D×J;步骤4,E=E+1;步骤5,转移到步骤2;步骤6,返回。
前述的实施例中,步长N=0.01,所以该计算E值的程序段中判断条件选择100×C。
权利要求
1.一种测量地球表面两点间距离的方法,它包括以下步骤在微处理机的内存中预先存入一个以纬度为参变量的余弦函数表及一个以两点的经度差的绝对值和纬度差的绝对值为参变量的长度修正系数表;用全球卫星定位系统(GPS)接收机测量的地球表面两个点的地理坐标;由微处理机计算所述的两个点的经度差的绝对值D;由微处理机计算所述的两个点的纬度差的绝对值C;由微处理机以所述的第一个点的纬度为指针从所述的余弦函数表中查出余弦系数J;由微处理机以所述的两个点的经度差的绝对值D和纬度差的绝对值C为参变量计算出指针E,以指针E从所述的长度修正系数表中查出长度修正系数K;由微处理机计算S=(C+D×J)×K,得出地球表面所述的两点间的距离S。
2.根据权利要求1所述的一种测量地球表面两点间距离的方法,其特征是所述的余弦函数表中的各数据项J’顺序是10000×cos(x1)从x1=0以1为步长增加到90的对应的值,从该余弦函数表中查出余弦系数J’,计算D×J’的值再除以10000得到D×J的值;所述的长度修正系数表中的各数据项K顺序是1852×(F)2+(1-F)2]]>从F=0,以0.01为步长增加到1的对应的值;所述的指针E由下述程序段计算步骤1,E=0,Q=0;步骤2,若Q≥100*C则转移到步骤6;步骤3,Q=Q+C+D×J;步骤4,E=E+1;步骤5,转移到步骤2;步骤6,返回。
3.一种测量地球表面两点间距离的装置,其特征是包括GPS接收机、微处理机和直流电源;直流电源向GPS接收机和微处理机供电GPS接收机的输入/输出接口与微处理机相连;微处理机中运行一个程序,该程序包括预先存入的一个以纬度为参变量的余弦函数表及一个以两点的经度差的绝对值和纬度差的绝对值为参变量的长度修正系数表;在微处理机的输入设备控制下从GPS接收机采集地球表面两个点的地理坐标;计算所述的两个点的经度差的绝对值D;计算所述的两个点的纬度差的绝对值C;以所述的第一个点的纬度为指针从所述的余弦函数表中查出余弦系数J;以所述的两个点的经度差的绝对值D和纬度差的绝对值C为参变量计算出指针E,以指针E从所述的长度修正系数表中查出长度修正系数K;计算S=(C+D×J)×K,得出地球表面所述的两点间的距离S并送微处理机的显示设备显示。
4.根据权利要求3所述的一种测量地球表面两点间距离的装置,其特征是所述的微处理机包括CPU、具有数码显示器和键盘的显示/输入设备、ROM和RAM;ROM和RAM分别连接CPU的地址和数据总线;显示/输入设备的输入/输出接口连接CPU的一个输入/输出接口;GPS接收机的输入/输出接口连接CPU的另一个输入/输出接口。
5.根据权利要求4所述的一种测量地球表面两点间距离的装置,其特征是所述的CPU是8位的单片机;所述的程序、余弦函数表和长度修正系数表存放在ROM中;余弦函数表中的各数据项J’顺序是10000×cos(x1)从x1=0以1为步长增加到90的对应的值,从该余弦函数表中查出余弦系数J’,计算D×J’的值再除以10000得到D×J的值;长度修正系数表中的各数据项K顺序是1852×(F)2+(1-F)2]]>从F=0,以0.01为步长增加到1的对应的值;所述的指针E由下述程序段计算步骤1,E=0,Q=0;步骤2,若Q≥100*C则转移到步骤6;步骤3,Q=Q+C+D×J;步骤4,E=E+1;步骤5,转移到步骤2;步骤6,返回。
全文摘要
本发明是一种测量地球表面两点间距离的方法,将GPS接收机测量的地球表面两点的地理坐标由微处理机通过加法、减法、乘法,其中系数涉及开方和余弦函数的运算预先计算出来制成数据表存入微处理机的内存中,配合计算查表指针的简单程序段和查表,快速换算成两点间的距离。测量工作进行的速度快,而且比较准确。本发明用GPS接收机的测量地球表面两点间距离的装置,以简单的微处理机与GPS接收机联机,运用上述方法完成测量任务,结构简单,机动性好,测量工作进行的速度快,而且比较准确适合与数字化地理勘测系统配套。
文档编号G01S19/42GK1635333SQ20031011470
公开日2005年7月6日 申请日期2003年12月30日 优先权日2003年12月30日
发明者韦昌荣, 李家祥, 陈从华, 刘仁学 申请人:厦门雅迅网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1