《控制测量课程设计.doc》由会员分享,可在线阅读,更多相关《控制测量课程设计.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流控制测量课程设计.精品文档.工程测量技术专业控制测量课程设计指导书附件一、 控制网优化设计机助程序本程序采用TURBOBASIC程序语言在微机上编制的。程序所依数学模型为附有条件的间接严差法,适用于三角网、测边网、边角网及导线网的设计。使用本程序时,需先对控制网中各点、方向观测边(双向及单向观测方向的总称)、测距边进行编号(编号方法见后面说明),然后依照设计方案,从图上量取待定点的近似坐标值,并确定单位权中误差预期值。为避免数据输入的错误并可修改一些数据,需在计算前利用TUBOR BASIC语言中的Edit能建立数据文件。一、程序使用说明(一
2、)运算前的准备工作:1测站点编号:从l开始,按自然数连续编号,先编未知点,后编已知点。 2方向观测边编号:从1开始,按自然数连续编号,次序任意,但已知点间之方向边编号均为“0”。3测距边编号:从1开始,按自然数连编号,次序任意。4确定待定点之近似坐标(由设计图上量取)。5. 确定单位权中误差预期值:。6确定观测方向的权和观测边长之权。 (以厘米为单位)7利用TURBO BASIC中的Edit“编辑功能建立近似坐标数据文件(文件名为:MLM-1TXT);建立各测站点上观测方向信息文件(文件名为MLM-2TXT);建立各观测边的信息文件(文件名为MLM-3TXT)。 (二)变量名称及含义1. 整体
3、变量。(控制信息)控制网中测站点的总个数;控制网中已知点的个数;网中设测站观测方向的测站点个数,对于测边网;网中未知点间、未知点与已知点间的观测方向边的个数(不包括已知点间的方向边),对于测边网;网中观测边长的个数,对于测角网;网中所带有的边长条件()和方向角条件()总数。2.局部变量k测站点上的实测方向数;照准点的编号; k点至i点的方向边编号;k点至i点的观测方向权;观测边的编号; k观测边一端点的编号; i观测边另一端点的编号;观测边长的权;边长条件个数; 方位角条件个数; 单位权中误差预期值; OI(i) 绝对误差椭圆长轴之方位角值(度为单位);E(i) 绝对误差椭圆长半轴值(厘米为单
4、位); F(i) 绝对误差椭圆短半轴值(厘米为单位);M(i) 点位中误差值(厘米为单位);H需要计算的相对误差椭圆个数;i需要计算相对误差椭圆的待定点编号;j需要计算相对误差椭圆的另一待定点编号;OI(0) i,j点的相对误差椭圆长轴方位角值(度为单位);E(0) i,j点的相对误差椭圆长半轴值(厘米为单位);F(0) i,j点的相对误差椭圆短半轴值(厘米为单位);M(0) i,j点的相对点位中误差值(厘米为单位);Diji,j点间的近似边长(米为单位);Tiji,j点间的近似坐标方位角(度为单位); Mti,j点间坐标方位角中误差(秒为单位);MSi,j点间边长中误差(厘米为单位);Mui
5、,j点间横向中误差(厘米为单位)。(三)提示符说明(键入控制网中测站点的总个数);(键入控制网中已知点的个数);=(键入观测方向的测站点个数,对于测边网);(键入待定边上的观测方向边个数,对于测边网)(键入观测边长的个数,对于测角网);(键入条件总数);(键入边长条件个数);(键入方位角条件个数);A(Al,2,);k(在第A个边长条件上,键入该边一端点编号);i(在第A个边长条件上,键入该边另一端点编号);A(Al,2,);k(在第A个方位角条件上,键该方位角一端点编号);i(在第A个方位角条件上,键该方位角另一端点编号);= (键入单位权中误差预期值);H(键入需要计算相对误差椭圆个数);
6、i(键入所需计算相对误差椭圆的一待定点编号);j(键入所需计算相对误差椭圆的另一待定点编号)。二、程序运算流程示意图结 束输入相对误差椭圆的有关信息:H、M0、i、j计算所需的相对误差椭圆元素输入单位权中误差预期值M0,计算所有待定点点位误差椭圆元素求解协因数阵组成法方程系数阵输入边长、方位角条件的有关信息并组成条件方程系数阵程序在A盘上读取数据文件中的有关控制点近似坐标,观测方向信息和观测边长信息并组成误差方程系数阵观测方向信息和观测边长信息并组成误差方程系数阵输入网的控制信息:N、N0、N1、Nf、NS、R启动“MLMYH”程序启动“TB”用Edit建立数据文件三、源程序清单10 inpu
7、t N=;n:input No=;n0:input N1=;n1:input Nf=;nf:input Ns=;ns: input R=;r12 pi=3.141592615 f=n1+nf+ns-1:t=(n-n0)*2+r-120 dim x(n-1),y(n-1),a(f,t-r),p(f),AA(T,T)25 OPEN A:mlm-1.TXT FOR INPUT AS #130 FOR A=0 TO N-135 INPUT #1,X(A),Y(A)40 NEXT A:CLOSE #147 IF NF=0 THEN 9548 OPEN A:mlm-2.TXT FOR INPUT AS #
8、250 FOR A=1 TO N1 :E=NF+A-1:K=A53 input #2,nk60 for b=1 to nk63 input #2,I,FI,PK64 P(E)=P(E)+PK65 IF FI =0 THEN 9066 FI=FI-167 GOSUB 3150:P(FI)=P(FI)+PK68 IF KN-N0 THEN 7970 A(FI,G)=AI:A(FI,G+1)=BI72 A(E,G)=A(E,G)+A(FI,G)*PK73 A(E,G+1)=A(E,G+1)+A(FI,G+1)*PK79 IF IN-N0 THEN 9080 A(FI,H)=-AI:A(FI,H+1)
9、=-BI85 A(E,H)=A(FI,H)*PK:A(E,H+1)=A(FI,H+1)*PK90 NEXT B : P(E)=-1./P(E)93 next A:CLOSE #295 if ns=0 then 17098 OPEN A:mlm-3.TXT FOR INPUT AS #3100 for a=1 to ns103 input #3,k,i,ps105 gosub 3150 :n3=n1+nf+a-1:p(n3)=ps107 if kn-n0 then 113110 a(n3,g)=-cos(ti*pi/180):a(n3,g+1)=-sin(ti*pi/180)113 if i n
10、-n0 then 120115 a(n3,h)=cos(ti*pi/180):a(n3,h+1)=sin(ti*pi/180)120 next a: CLOSE #3170 for a=0 to t-r:for b=0 to t-r:for c=0 to f175 aa(a,b)=aa(a,b)+a(c,a)*a(c,b)*p(c)180 next c:next b:next a185 if r=0 then 405186 b=(n-n0)*2-1187 input Rs=;rs188 if rs=0 then 212190 for a=1 to rs192 print So=;a;: ;19
11、5 input k=;K :input i=;I:CLS197 GOSUB 3150200 IF KN-N0 THEN 205202 AA(B+A,G)=-COS(TI*pi/180) :AA(G,B+A)=-COS (TI*pi/180):AA(B+A,G+1)=- SIN(TI*pi/180):AA(G+1,B+A)=-SIN (TI)205 IF I N-N0 THEN 210207 AA(B+A,H)=COS(TI*pi/180):AA(H,B+A)=COS(TI*pi/180):AA(B+A,H+1)= SIN( TI*pi/180):AA(H+1,B+A)=SIN(Ti*pi/18
12、0)210 NEXT A212 INPUT Rt=;rt214 IF RT=0 THEN 405215 FOR A=1 TO RT217 PRINT To=;A;: ;220 INPUT k=;K:input i=;I :CLS222 GOSUB 3150 :B=B+RS225 IF KN-N0 THEN 230227 AA(B+A,G)=AI:AA(G,B+A)=AI:AA(B+A,G+1)=BI:AA(G+1,B+A)=BI230 IF IN-N0 THEN 235232 AA(B+A,H)=-AI:AA(H,B+A)=-AI:AA(B+A,H+1)=-BI:AA(H+1,B+A)=-BI
13、235 NEXT A3150 YI=Y(I-1)-Y(K-1):XI=X(I-1)-X(K-1):D=SGN(YI)3350 IF ABS(XI) 0 THEN 34503400 TI=(90+(1-D)*90)*ABS(D) :GOTO 36003450 IF XI L THEN 576557 IF JL THEN 577560 Q1=AA(I,I)+AA(J,J)-AA(I,J)*2565 Q2=AA(I+1,I+1)+AA(J+1,J+1)-AA(I+1,J+1)*2570 Q3=AA(J,J+1)-AA(J,I+1)-AA(I,J+1)+AA(I,I+1)575 A=Q1+Q2:B=Q
14、1-Q2:C=Q3 :goto 578576 A=AA(J,J)+AA(J+1,J+1):B=AA(J,J)-AA(J+1,J+1):C=AA(J,J+1):GOTO 578577 A=AA(I,I)+AA(I+1,I+1):B=AA(I,I)-AA(I+1,I+1):C=AA(I,I+1)578 I=-1580 GOSUB 590584 NEXT P585 END590 IF ABS(B) 0 THEN 600595 D=90 :GOTO 605600 D=(180/pi)*ATN(2*C/B)605 G=SGN(D):D=ABS(G)*(1-G)*90+D)/2.610 G=SGN(C):
15、O=ABS(G)*(1-G)*45+D)615 B=SQR(B*B+4*C*C)616 M1=0.0:M2=0.0617 IF A+B0 THEN 622620 M1=SQR(M0*(A+B)622 IF A-B0 THEN 624623 M2=SQR (M0*(A-B)624 M3=206.265*(SQR(M1*SIN(TI-O*PI/180)2+(M2*COS(Ti-O*PI/180)2)/di625 M4=SQR(M1*SIN(TI-O*PI/180)2+(M2*COS(TI-O*PI/180)2)626 LPRINT USING ;OI(;USING #;(I+1);USING ;)
16、=+/-; USING#.#;o;using ;(o);635 LPRINT USING ;E(;USING#;(I+1);USING ;)=+/-; USING#.#;M1;USING ;(cm);637 LPRINT USING ;F(;USING #;(I+1);USING ;)=+/-; USING#.#;M2;USING ;(cm) ;LPRINT USING ;M(;USING #;(I+1);USING ;)=+/-; USING #.#;SQR(M12+M22);USING ;(cm)LPRINT -638 IF Z=0 THEN 725639 LPRINT USING ; D
17、ij=;USING #.#;DI;USING ;(m);640 LPRINT USING ; Tij=;USING #.#;TI;using ;(o);641 LPRINT USING ; Mt=+/-;USING #.#;M3;USING ;(s);642 LPRINT USING ; Ms=+/-;USING #.#;M4;USING ;(cm)LPRINT -725 RETURN四、算例设有一四等边角网如下图,A、B、C、D、E为已知点,P1、P2为待定点,求算P1、P2两点的误差椭圆及两点间的相对误差椭圆。测距仪的精度公式为:各点概略坐标值表(单位:m)已知点待定点点号xY点号xyA(
18、3)3143.245260.33P1(1)49336514B(4)4609.365025.70P2(2)46847993 C(5)7657.665071.90D(6)4157.208853.25(一)运算前的准备l. 编制各点概略坐标表。已知点坐标由成果表上转抄,待定点坐标由选点图上量得。2为确定观测边长的权,需用近似坐标计算近似边长:3按前述规定对各点、各观测方向边和边长进行编号(如上图)。4确定观测方向和观测边长的权,本例取,由公式: 其中由上式可求得各待定边的中误差为:则相应的权为:本例认为所有方向为等精度观测,所以观测方向的权均为1。5确定需要计算几个相对误差椭圆,一般确定几个能是最弱
19、边长或最弱方位角的待定边。本例只求算P1、P2两点间的一个相对误差椭圆(H=1)。 (二)上机操作1启动TURBO BASIC程序,键入TB。2选择Edit功能建立三个数据文件。本算例的三个数据文件如下: 近似坐标值 (A:MLM-1.TXT) 4933, 65144684, 79933143.24, 5260.334609.36, 5025.707657.66, 5071.904157.20, 8853.25各测站点上的观测方向信息和数据 (A:MLM-2.TXT)4,3,1,1,4,2,1,5,3,1,2,4,12,1,4,1,6,5,12,4,0,1,1,1,13,5,0,1,1,2,1,3,0,12,1,3,1,4,0,12,2,5,1,7,0,1各观测边长的信息和数据 (A:MLM-3.TXT)1,3,1.261,4,2.251,5,0.811,2,2.252,6,3.243.再File 中选择Load,提出优化设计程序MLM-YH。4.选择RUN驱动MLM-YH程序。5.输入64=6550= 1.8H1i1j2以上信息输入完后,计算机运算后便会给出打印结果。
限制150内