空间前方交会程序使用说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

空间前方交会程序使用说明
(一)空间前方交会原理
用空间前方交会法测定空间点的三维坐标常用于高精度的工业测量,例如控制装配、整机安装、轴线校正等,这些测量工作往往要求在现场快速给出大量观测点的计算结果。

空间前方交会的原理如图1所示,A 、B 为安置两台精密工业测量经纬仪(或全站仪)的测站中心点,P 1、P 2为长度L 的基准尺的两个端点。

以A 为原点,其天顶方向为Z 轴,AB 的水平方向AB′为X 轴,建立右手独立坐标系A-XYZ ;首先在测站A 、B 点分别观测基准尺两端 P 1、P 2点水平角
)2,1(,=i i i βα与天顶距)2,1(,)()(=i Z Z B i A i ,以及AB 间的天顶距(AB 的高差h 未
知时),计算基线AB 的长度b ,然后由A 、B 两点对各空间目标进行交会定点。

A
Z
X
图1 空间前方交会原理
(二)空间前方交会计算公式
1.基线尺端点的三维坐标计算
若A 、B 两点基线的近似长度为0b ,则根据图1的几何关系,可导得由A 点计算P i 点三维坐标的公式为
)
sin(cot sin )sin(sin sin )sin(sin cos )(0
)(0
0i i A i i A i i i i i i i i i i i Z b z b y b x βαββαβαβαβα+=+=+= (1)
从B 点计算P i 点的z 坐标的公式为
h Z b z i i B i i B i ++=)
sin(cot sin )(0
)(βαα (2)
从A 、B 点测定P i 点的z 坐标之差及其平均值为:
)()(B i A i i z z z -=∆ (3)
)(2
1
)()(B i A i i z z z +=
(4) 2.两台全站仪间的高差计算
两台全站仪横轴之间的高差h 可以用瞄准大致在水平方向的同一个目标,分别用三角高程测量的方法测定其高差,按两台仪器测得高差之差计算h 。

3.测站中心点间的基线长度计算
由基准尺的两个端点P 1、P 2的坐标可求得计算基准尺的计算长度为:
2212212210)()()(z z y y x x L -+-+-= (5)
如果基准尺水平安置,则可用下式计算;
2212210)()(y y x x L -+-= (6)
因基准尺精确长度L 已知,可按下式计算基线精确长度,
L L
b b = (7) 4.目标点三维坐标计算
求得了基线的精确长度b ,可交会计算任何目标点的三维坐标,为了便于计算器的程序编制,计算公式(1)、(2)进行改写如下:
)
sin(sin )sin(sin i i i
B i i i
A b
D b D βααβαβ+=+= (8)
i
A i i A i D y D x ααsin cos == (9)
h
Z D z Z D z B i B B i A i A A i +÷=÷=)()()()(tan tan (10)
(三)空间前方交会计算LISP程序设计
根据空间前方交会计算的特点:(1)从两个测站向目标点观测水平角和天顶距的前方交会计算需要多次进行;(2)每个角度的“度.分秒”记录数值都需要化为弧度单位才能在LISP程序中运算;(3)读取文件中的每一行角度观测值(水平角和天顶距)均以字符形式记录,需要分段区分并作数据的类型转换。

以上3项计算需要编写成子程序,才符合程序设计的简洁和灵活的原则。

空间前方交会计算LISP程序的设计框图如图6.2所示。

主程序名为SPSEC(Space Intersection)。

子程序ANGTORAD(Angle to Radian)用于角度化为弧度(角度的记录形式为:“度.分秒”,因此在LISP语言中没有现成的函数);子程序INTERSEC (Intersection)用于前方交会;子程序READLINE(Read a Line)用于从记录文件中读取一行数据,区分各个观测角度,并再调用子程序ANGTORAD化为弧度。

主程序
图2空间前方交会程序设计框图
程序中的全局变量为:
datum, datum0—基准尺长度及其近似值;
b0—基线长度及其近似值;
h—两测站的高差;
A, B—交会水平角;
Za, Zb —交会天顶距;
x, y, z —交会点坐标;
A1, B1, Za1, Zb1 —基准尺左端点交会水平角和天顶距;
A2, B2, Zb1, Zb2 —基准尺右端点交会水平角和天顶距;
R—基准尺长度与其近似值的比值;
dx, dy, dz —基准尺两端点近似坐标的坐标差;
P11, x11, y11, z11 —基准尺左端点的点位和坐标;
P22, x22, y22, z22 —基准尺右端点的点位和坐标;
PA, PB —两测站点的点位。

子程序中的局部变量如各个子程序开首括弧内所示。

以下为“空间前方交会计算程序”全文:
;《空间前方交会计算程序》
;Space Intersection
(defun angtorad(/ A B C D E);“角度值由度.分秒化为弧度”子程序
(setq dms (atof ang));角度值子字符串转换为实数
(setq A (fix dms));整度数
(setq B (* (- dms A) 100));分数
(setq C (fix B));整分数
(setq D (* (- B C) 100));秒数
(setq E (+ A (/ C 60.0) (/ D 3600)));“度.分秒”化为以度为单位
(setq hu (* (/ E 180) PI));度为单位化为弧度
); endsub (Angle to Radian)
(defun intersec(/ C D z1 z2 P p1 p2 p3);“前方交会”子程序
(setq C (+ A B) D (* b0 (/ (sin B) (sin C))))
(setq x (* D (cos A)) y (* D (sin A)));计算目标点平面坐标
(setq z1 (* D (/ (cos Za) (sin Za))));从两个测站计算目标点高程
(setq z2 (+ (* D (/ (sin A) (sin B) (/ (sin Zb) (cos Zb)))) h))
(setq z (/ (+ z1 z2) 2) dz (- z1 z2));计算平均高程及高程差(检核)
(if (= out "y") (progn ;在屏幕展绘点位和注记坐标以及输出于文件
(setq P (list x y z))
(command "point" P "" "");展绘点位
(setq p1 (list (+ x 0.03) (- y 0.05) z))
(setq p2 (list (+ x 0.03) (- y 0.10) z))
(setq p3 (list (+ x 0.03) (- y 0.15) z))
(command "text" p1 0.04 0 (rtos x 2 4) "");注记点的坐标
(command "text" p2 0.04 0 (rtos y 2 4) "")
(command "text" p3 0.04 0 (rtos z 2 4) "")
(princ "\n" f2)
(princ " x=" f2) (Princ (rtos x 2 5) f2);文件输出目标点坐标及高程差
(princ " y=" f2) (princ (rtos y 2 5) f2)
(princ " z=" f2) (princ (rtos z 2 5) f2)
(princ " dz=" f2) (princ dz f2)
)); endprogn endif
); endsub (Intersection)
(defun readline(/ line);“从一行中分段读取两测站方向值和天顶距并化为弧度”子程序 (setq line (read-line f1))
(setq ang (substr line 1 12)) (angtorad) (setq A hu);A站方向值
(setq ang (substr line 13 12)) (angtorad) (setq Za hu);A站天顶距
(setq ang (substr line 25 12)) (angtorad) (setq B hu);B站方向值
(setq ang (substr line 37 12)) (angtorad) (setq Zb hu);B站天顶距
); endsub (Read a Line)
(defun c:spsec();空间前方交会主程序(Space Intersection)
(setq out nil);“输出”变量初始值
(setq file1 (getstring "\n 输入数据文件名(*.txt):") f1 (open file1 "r")) (setq file2 (getstring "\n 输出数据文件名(*.txt):") f2 (open file2 "w")) (princ " 《空间前方交会目标点三维坐标》" f2);输出文件标题
(setq datum (read (read-line f1)));基准尺长度
(setq b0 (read (read-line f1)));两测站间基线近似长度
(setq h (read (read-line f1)));两测站间高差
(readline) (intersec) (setq x1 x y1 y z1 z);交会基准尺左端点坐标
(setq A1 A Za1 Za B1 B Zb1 Zb)
(readline) (intersec) (setq x2 x y2 y z2 z);交会基准尺右端点坐标
(setq A2 A Za2 Za B2 B Zb2 Zb)
(setq dx (- x1 x2) dy (- y1 y2) dz (- z1 z2))
(setq datum0 (sqrt (+ (* dx dx) (* dy dy))));基准尺观测长度
(setq R (/ datum datum0) b0 (* b0 R));长度比及基线精确长度
(princ "\n" f2) (princ "长度比=" f2) (princ (rtos R 2 6) f2);输出长度比 (princ "\n" f2) (princ "基线长=" f2) (princ (rtos b0 2 4) f2);输出基线长 (princ "\n" f2) (princ "(1)基准尺端点坐标及高程差:" f2)
(setq out "y") ;需要屏幕显示及文件输出坐标,“输出”变量赋值
(command "layer" "m" "datum2" "c" 1 "" "");基准尺端点图层
(setq A A1 Za Za1 B B1 Zb Zb1) (intersec);计算基线改正后基准尺端点坐标
(setq x11 x y11 y z11 z) (setq P11 (list x11 y11 z11))
(setq A A2 Za Za2 B B2 Zb Zb2) (intersec)
(setq x22 x y22 y z22 z) (setq P22 (list x22 y22 z22))
(command "pdmode" 34 "pdsize" 0.03 "a" "");设置点的形式和大小
(command "point" P11 "point" P22 "" "");展绘基准尺端点
(command "text" P11 0.05 0 "P1" "")
(command "text" P22 0.05 0 "P2" "")
(command "layer" "m" "station" "c" 2 "" "");测站点图层
(setq PA (list 0 0 0) PB (list B0 0 h))
(command "point" PA "point" PB "");展绘测站点
(command "text" PA 0.05 0 "A" "")
(command "text" PB 0.05 0 "B" "")
(command "layer" "m" "aim" "c" 4 "" "");目标点图层
(princ "\n" f2) (princ "(2)目标点坐标及高程差:" f2)
(setq m (read (read-line f1)));读取交会目标点数
(repeat m
(readline) (intersec);循环读取目标点交会角和进行坐标计算,展绘点位
); end repeat
(command "zoom" "e" "")
(princ)
);end (Program for Spaec Intersection)
(四)空间前方交会算例
用LISP程序计算的空间前方交会的实例如图3和图4所示。

已知数据、观测的交会角值和计算结果均注明于图上。

图3所示为测定A、B两站间基线长度的计算,输入的已知数据为基准尺的长度L=2.0000(m)、基线近似长度b0=3.2200(m)和两测站间的高差h=0.1000(m),输入的观测数据如图中所示。

计算结果得到基线的精确长度b=3.2230(m)。

图4所示为测定目标点T1,T2,T3三维坐标的计算,输入数据和计算结果都标明于图中。

以下为此例的输入数据文件(“;”号后为数据的说明,不包含在数据文件中):
2.00 ;基准尺长度
3.22 ;基线近似长度
0.10 ;两测站高差
60.505204 74.094935 40.065279 80.062663 ;A、B站水平方向、天顶距
29.034438 80.093274 83.133099 73.321423
3 ;目标点个数
88.024982 60.595535 37.551721 72.283391 ;A、B站水平方向、天顶距
53.521126 67.290622 64.003939 66.513494
36.515340 74.011574 101.281847 66.340716
....以下为此例的输出数据文件:.....
《空间前方交会目标点三维坐标》
长度比=1.000935
基线长=3.223
(1)基准尺端点坐标及高程差:
x=1.03040 y=1.84731 z=0.6000 dz=3.47437e-007
x=3.02341 y=1.68021 z=0.6000 dz=3.36552e-007
(2)目标点坐标及高程差:
x=0.08340 y=2.44601 z=1.3567 dz=2.80638e-007
x=1.93251 y=2.64720 z=1.3586 dz=2.45778e-006
x=3.80151 y=2.85061 z=1.3606 dz=1.80321e-007
A
Y
X
000
3.2230
0.1000
图3 空间前方交会基线长度测定
A
Y
X
3.22300
0.1000
00
α = 8
8°02′49.82″z 1= 3.2230
图4 空间前方交会目标点测定。

相关文档
最新文档