导线网平差资料_第1页
导线网平差资料_第2页
导线网平差资料_第3页
导线网平差资料_第4页
导线网平差资料_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

'***********************************************************************************'本程序用于单一附(闭)合导线严密平差计算,采用按角度条件平差法。以方向观测值中'误差的先验值作为单位权中误差。计算结果可求得各待定点的坐标平差值及其点位精度Mx,My,'及M,并计算出各待定点误差椭圆元素E,F,Z''参考文献:郭久训.《控制网平差程序设计》北京:原子能出版社,2004.8''平差数据来源:潘正风等.《数字测图原理与方法》武汉大学出版社186页表6-5''等级:所用平差数据为首级图根导线数据(精度很不高)。本程序中写出了方位角和导线全长相对闭合差的判'别,但考虑到程序的通用性,将这些限差判断当作了注释处理,而不实际运行。''程序不足:没有导线网的图形表达。'***********************************************************************************Privatei%,j%,n%,tc#,tb#,B_x!,B_y!,e1!,e2!,m!,m0#,z#,aaAsBoolean,bbAsBoolean,ccAsBoolean',ddAsBooleanPrivateNaa#(2,2),Naa逆#(2,2),W#(2),K#(2),qq#(2),fx#(2),fy#(2)PrivateA#(),Q#(),V#(),C#(),mx#(),my#(),mk#(),e#(),f#(),zz#()PrivatePo()AsPoint'文件格式说明:'文件格式详见文件"平差数据.txt"'PrivateSub打开文件_Click()'打开文件Dimff$,temp$,A_name$,A_x!,A_y!,A_l#,A_s!,B_name$,B_l#,C_name$,C_x!,C_y!,D_name$,D_x!,D_y!Form1.Cls'清屏CommonDialog1.DialogTitle="打开数据文件"CommonDialog1.FileName=""CommonDialog1.ShowOpen'出错处理OnErrorGoToFileErrff=CommonDialog1.FileName'ff是文件路径名OpenffForInputAs#1'以顺序文件方式打开文件,使用inputLineInput#1,temp'读取文件中的说明语句LineInput#1,temp'读取文件中的说明语句LineInput#1,temp'读取文件中的说明语句Input#1,n'读取n,n为(测站数-1)ReDimPo(n)AsPoint'定义Po(n),其中Po(0)存A点数据,Po(n)存B点数据,Po(1)到Po(n-1)存n-1个未知点数据。LineInput#1,temp'读取文件中的说明语句LineInput#1,temp'读取文件中的说明语句Input#1,m,e1,e2'读取先验方向观测值中误差m,测距仪固定误差e1,比例误差e2LineInput#1,temp'读取文件中的说明语句LineInput#1,temp'读取文件中的说明语句Input#1,C_name,C_x,C_y'读取已知点CInput#1,A_name,A_x,A_y,A_l,A_s'读取已知点AFori=1Ton-1'读取n-1个未知点Input#1,Po(i).name,Po(i).l,Po(i).sNextiInput#1,B_name,B_x,B_y,B_l'读取已知点BInput#1,D_name,D_x,D_y'读取已知点DClose#1tc=ZBiaoFSuan(C_x,C_y,A_x,A_y)'坐标反算,求点C到A的坐标方位角,并记作tc,单位是度tb=ZBiaoFSuan(B_x,B_y,D_x,D_y)'坐标反算,求点B到D的坐标方位角,并记作tb,单位是度Po(0).name=A_name:Po(0).x=A_x:Po(0).y=A_y:Po(0).l=A_l:Po(0).s=A_s'Po(0)存A点数据Po(n).name=B_name:Po(n).x=B_x:Po(n).y=B_y:Po(n).l=B_l'Po(n)存B点数据Fori=0TonPo(i).l=deg(Po(i).l)'将观测方向左角的单位度分秒化作度NextiReDimQ#(2*n),A#(2,2*n),V#(2*n),C#(1,2*n-2),mx#(n-1),my#(n-1),_mk#(n-1),e#(n-1),f#(n-1),zz#(n-1)'变量重新定义bb=TrueMsgBox"文件已成功打开",,"提示"显示平差数据ffA(1,i)=Cos(Po(i).t/p0)A(2,i)=Sin(Po(i).t/p0)Q(i)=(e1+e2*Po(i).s*0.0001)^2/m^2'求距离观测值的权倒数Nexti'求WW(0)=(Po(n).t-tb)*3600'单位是sW(1)=(Po(n).x-B_x)*100'单位是cmW(2)=(Po(n).y-B_y)*100'单位是cmFori=0Ton-1sums=sums+Po(i).sNexti'限差判断'这是首级图根导线的精度要求,其中n+1为测站数'IfAbs(W(0))>40*Sqr(n+1)OrSqr((W(1)/100)^2+(W(2)/100)^2)/sums>0.00025Then'方位角闭合差和导线全长相对闭合差'ExitSub'EndIf'dd=TrueEndSub'''PrivateSub组法方程式()Dimg%Fori=0To2Forj=iTo2'由于Naa是对称的,只求其上三角即可。Forg=0To2*nNaa(i,j)=Naa(i,j)+A(i,g)*A(j,g)*Q(g)NextgNextjNextiEndSub'''对于3*3的矩阵来说,利用公式Naa逆=Naa*/|Naa|去求Naa的逆即可,其中Naa*是伴随矩阵。PrivateSub求逆求K()Dimee#,ii#,jj#,kk#,det#'det是|Naa|的值ee=1Fori=0To2ee=ee*Naa(i,i)Nextiee=ee+2*Naa(0,1)*Naa(1,2)*Naa(0,2)ii=Naa(0,1)^2jj=Naa(0,2)^2kk=Naa(1,2)^2det=ee-(ii*Naa(2,2)+jj*Naa(1,1)+kk*Naa(0,0))'求伴随矩阵Naa*,用Naa逆存储Naa逆(0,0)=Naa(1,1)*Naa(2,2)-kkNaa逆(0,1)=Naa(0,2)*Naa(1,2)-Naa(0,1)*Naa(2,2)Naa逆(1,0)=Naa逆(0,1)Naa逆(1,1)=Naa(0,0)*Naa(2,2)-jjNaa逆(0,2)=Naa(0,1)*Naa(1,2)-Naa(0,2)*Naa(1,1)Naa逆(2,0)=Naa逆(0,2)Naa逆(2,2)=Naa(0,0)*Naa(1,1)-iiNaa逆(1,2)=Naa(0,2)*Naa(0,1)-Naa(0,0)*Naa(1,2)Naa逆(2,1)=Naa逆(1,2)'求Naa逆Fori=0To2Forj=0To2Naa逆(i,j)=Naa逆(i,j)/detNextjNexti'求KFori=0To2Forj=0To2K(i)=K(i)-Naa逆(i,j)*W(j)NextjNextiEndSub''''PrivateSub求改正数和平差值()Dimpvv#pvv=0Fori=0To2*nForj=0To2V(i)=V(i)+K(j)*A(j,i)*Q(i)'求改正数VNextjpvv=pvv+V(i)*V(i)/Q(i)'求pvvNextim0=Sqr(pvv/3)'求单位权中误差m0Fori=0Ton-1Po(i).s=Po(i).s+V(i)/100'求导线边长的平差值,其中边长改正数的单位是厘米,边长的单位是米NextiFori=0TonPo(i).l=Po(i).l+V(n+i)/3600'求导线左角的平差值,其中角度改正数的单位是秒,角度的单位是度NextiEndSub''列出待定点坐标的权函数式,据此进行精度评定。'PrivateSub精度评定()Dimuu#,vv#,ww#,ss#,r#,kk!Forj=1Ton-1uu=0:vv=0:ww=0Fori=0Toj-1C(0,i)=Cos(Po(i).t/p0)C(1,i)=Sin(Po(i).t/p0)C(0,n+i)=(Po(i).y-Po(j).y)/2062.65C(1,n+i)=(Po(j).x-Po(i).x)/2062.65uu=uu+C(0,i)^2*Q(i)+C(0,n+i)^2*Q(n+i)vv=vv+C(1,i)^2*Q(i)+C(1,n+i)^2*Q(n+i)ww=ww+C(0,i)*C(1,i)*Q(i)+C(0,n+i)*C(1,n+i)*Q(n+i)NextiForkk=0To2ss=0:r=0Fori=0Toj-1ss=ss+A(kk,i)*C(0,i)*Q(i)+A(kk,n+i)*C(0,n+i)*Q(n+i)r=r+A(kk,i)*C(1,i)*Q(i)+A(kk,i+n)*C(1,n+i)*Q(n+i)Nextifx(kk)=ss:fy(kk)=rNextkkForkk=0To2ss=0:r=0Fori=0To2ss=ss-Naa逆(kk,i)*fx(i)r=r-Naa逆(kk,i)*fy(i)NextiK(kk)=ss:qq(kk)=rNextkkFori=0To2uu=uu+fx(i)*K(i)vv=vv+fy(i)*qq(i)ww=ww+fx(i)*qq(i)Nextimx(j)=m0*Sqr(Abs(uu))my(j)=m0*Sqr(Abs(vv))mk(j)=Sqr((mx(j))^2+(my(j))^2)'每个点的点位中误差,单位cmr=uu+vvss=Sqr((uu-vv)^2+4*ww^2)e(j)=m0*Sqr((r+ss)/2)'点位误差椭圆元素E,单位cmf(j)=m0*Sqr(Abs(r-ss)/2)'点位误差椭圆元素F,单位cmz=Atn(2*ww/(uu-vv))z=z/2*p0Ifz<0Thenz=z+90Ifww<0Thenz=z+180zz(j)=dms(z)'点位误差椭圆元素ZNextjEndSub'''PrivateFunction显示平差数据(ByValfname$)DimlinesfromFile$,Nextline$OpenfnameForInputAs#1DoUntilEOF(1)LineInput#1,NextlinelinesfromFile=linesfromFile+Nextline+Chr(13)LoopClose#1PrintlinesfromFileEndFunction'''PrivateSub显示平差结果()Print"平差结果:"Print"---------------------------------

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论