文档库 最新最全的文档下载
当前位置:文档库 › 基于MATLAB的控制网平差程序设计--第六章源代码

基于MATLAB的控制网平差程序设计--第六章源代码

基于MATLAB的控制网平差程序设计--第六章源代码
基于MATLAB的控制网平差程序设计--第六章源代码

近似坐标计算的函数-calcux0y0函数(126页)

function [x0,y0]=calcux0y0(x0,y0,e,d,sid,g,f,dir,s,t,az,pn,xyknow,xyunknow,point,aa,bb,cc)

%本函数的作用是计算待定点的近似坐标

format short; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% time=0;prelength=length(xyknow);non_orient=0;point_angle=0;

while length(xyunknow)>0

%考虑的计算方法有:1.极坐标;2.前方交会;3.测边交会;4.后方交会;

%5.无定向导线的两种情况:(1)已知两个点;(2)分离的已知点与方位角;基本思路:%采用循环的方法逐一对每一个未知点进行以上各种方法条件的搜索,满足后即解算。

aa0=[];bb0=[];cc0=[];%记录搜索到两条观测边但需用户给顺序的点,注意要放在while 里面。

time=time+1; % 用于统计循环次数。

way=0;

for i=xyunknow %依次循环向量中的各元素

%============================================================= =====

%方法1.极坐标条件搜索与计算-->way=1,基本思路:找到或求出一个方位角,找出一条边。

temp1=[]; temp2=[]; temp3=[]; temp4=[]; temp5=[]; temp6=[]; temp7=[]; temp8=[];

temp9=[]; temp10=[];A=[];B=[];P=[];

%第一步:寻找观测条件:两种情况:一是有已知方位角;二是由两个已知点及方向观测值推出方位角。

temp7=find(t==i);

if length(temp7)>0

temp8=find(xyknow==s(temp7(1)));

if length(temp8)>0

temp9=find(e==s(temp7(1))&d==t(temp7(1))|e==t(temp7(1))&d==s(temp7(1)));

if length(temp9)>0 %第一种情况:有已知方位角(一般适用于闭合导线)

S=mean(sid(temp9));

Alfa0=az(temp7(1));

x0(i)=x0(s(temp7(1)))+S*cos(Alfa0);

y0(i)=y0(s(temp7(1)))+S*sin(Alfa0);

way=1;method(i)=11;%----->由已知方位角算出

end

end

else

temp1=find(f==i);%第二种情况:由两个已知点及方向观测值推出方位角(适用于附合、支导线)

if length(temp1)>0

for j=xyknow

temp2=find(g(temp1)==j);

if temp2>0

temp3(end+1)=temp1(temp2);

end

end %找到所有以已知点为起点,以i为终点的方向值位置,并存放于temp3中

if length(temp3)>0

for j=temp3

temp4=find(e==g(j)&d==f(j)|e==f(j)&d==g(j));

if temp4>0 %找到一条观测边

temp5=g(j);

for k=xyknow

temp6=find(g==temp5&f==k);

if temp6>0 %找到另一个方向值位置

A=k;B=temp5;

S=mean(sid(temp4));

dir1=dir(temp6);dir2=dir(j);

way=1;

method(i)=12;%由两个已知点及方向观测值算得

break;

end

end

end

end

end

end

%第二步:按极坐标公式计算坐标

if way==1

deltax=x0(B)-x0(A);

deltay=y0(B)-y0(A);

a1=alfa(deltax,deltay);

a2=a1+dir2-dir1;

if a2<0

a2=a2+2*pi;

end

if a2>2*pi

a2=a2-2*pi;

end

x0(i)=x0(B)+S*cos(a2);

y0(i)=y0(B)+S*sin(a2);

end

end

%%================================================================ ======

%方法2:前方搜索与计算way=2

%思路:找出合适的A,B点,然后对A,B,P进行逆时针排序,照公式计算坐标

if way==0

%第一步:搜索合适的A,B点

temp1=[];temp2=[];temp3=[];temp4=[];temp5=[];temp6=[];temp7=[];temp8=[];

A=[];B=[];P=[];

temp1=find(f==i); %找出终点为i的方向值位置

for j=xyknow

temp2=find(g(temp1)==j);

if temp2>0

temp3(end+1)=temp1(temp2);

end

end %找出起点为已知点,终点为目标点未知点的方向值位置,记录在temp3中

if length(temp3)>1

for j=g(temp3)

for k=g(temp3)

temp4=find(g==j&f==k);

if temp4>0

temp5(end+1)=temp4;%temp5中记录了所有与目标未知点有观测的已知点之间方向观测值的位置

end

end

if length(temp5)>0

for j=temp5

temp6=find(g(temp5)==f(j)&f(temp5)==g(j));

if temp6>0

way=2;method(i)=2;

P=i;

A=g(i);

B=f(j);

break;

end

end

end %找出一组合适的A,B即可,退出循环

end

if way==2 %第二步:对A,B,P进行逆时针排序

[A,B,P]=reorderunknow(A,B,P,1,g,f,dir);

bet1=beta(P,A,B,g,f,dir);

bet2=beta(P,B,A,g,f,dir);

%%第三步:代入公式计算坐标

if(bet1~=pi/2)&(bet2~=pi/2)

x0(P)=(x0(A)*tan(bet1)+x0(B)*tan(bet2)+(y0(B)-y0(A))*tan(bet1)*tan(bet2))/(tan(bet1)+tan(bet2 ));

y0(P)=(y0(A)*tan(bet1)+y0(B)*tan(bet2)+(x0(A)-x0(B))*tan(bet1)*tan(bet2))/(tan(bet1)+tan(bet2 ));

else

sidab=sqrt((x0(A)-x0(B))^2+(y0(A)-y0(B))^2);

alfaab=alfa(x0(B)-x0(A),y0(B)-y0(A));

alfaap=alfaab-bet1;

if alfaap<0

alfaap=alfaap+2*pi;

end

if bet1==pi/2

sidap=tan(bet2)*sidab;

else

sidap=sidab/cos(bet1);

end

x0(P)=x0(A)+sidap*cos(alfaap);

y0(P)=y0(A)+sidap*sin(alfaap);

end

end %for if wey==2

end % for if way==0

%%============================================================ ======

%方法3 :测边交会与计算way=3,思路:三种算法:一是找到一个端点为所求目标未知点的三条边

%二是寻求方向观测信息以对A,B,P进行逆时针排序,三是给出A,B,P的排列顺序。

if way==0

temp1=[];temp2=[];temp3=[];temp4=[];temp5=[];temp6=[];temp7=[];temp8=[];i1=0;

A=[];B=[];C=[];P=[];

%第一步:搜索合适的A,B,C点或带有方向观测值的A,B点

temp1=find(e==i|d==i);

if length(temp1)>0

for j=xyknow

temp2=find(e(temp1)==j|d(temp1)==j);

if temp2>0

temp3(end+1)=temp1(temp2);

end

end

if length(temp3)>2 %第一种: 找到至少带有已知点的3条边,不需排序即可进行计算

way=3;i1=1;

P=i;

if e(temp3(1))==i

A=d(temp3(1)); %A

else

A=e(temp3(1));

end

if e(temp3(2))==i

B=d(temp3(2)); %B

else

B=e(temp3(2));

end

if e(temp3(3))==i

C=d(temp3(3)); %C

else

C=e(temp3(3));

end

s1=sid(temp3(1));s2=sid(temp3(2));s3=sid(temp3(3));

elseif length(temp3)==2 %只能找到两条带有已知点的边

P=i;

if e(temp3(1))==i

A=d(temp3(1)); %A

else

A=e(temp3(1));

end

if e(temp3(2))==i

B=d(temp3(2)); %B

else

B=e(temp3(2));

end

%第二种:需进一步查找方向观测值信息,以对A,B,P进行逆时针排序n1=find(g==A&f==P);n2=find(g==A&f==B);

n3=find(g==B&f==P);n4=find(g==B&f==A);

n5=find(g==P&f==A);n6=find(g==P&f==B);

if n1>0&n2>0

way=3;i1=2;

[A,B,P]=reorderunknow(A,B,P,1,g,f,dir);

elseif n3>0&n4>0

way=3;i1=2;

[B,A,P]=reorderunknow(B,A,P,1,g,f,dir);

elseif n5>0&n6>0

way=3;i1=2;

[A,B,P]=reorderunknow(A,B,P,2,g,f,dir);

else %第三种:需给出A,B,P的排列顺序

temp4=find(cc==P);

if length(temp4)>0

A=aa(temp4(1));B=bb(temp4(1));

way=3;i1=2;

else

aa0(end+1)=A;bb0(end+1)=B,cc0(end+1)=P;

end

end

end

end

%第二步:坐标计算

if way==3&i1==1 %三个已知点,三条边长

method(i)=31;

deltx=x0(B)-x0(A);

delty=y0(B)-y0(A);

alfaAB=alfa(deltx,delty);

ss=sqrt(deltx*deltx+delty*delty);

ee=(s1*s1+ss*ss-s2*s2)/(2*ss);ff=sqrt(s1*s1-ee*ee);

xp1=x0(A)+ee*cos(alfaAB)+ff*sin(alfaAB);

yp1=y0(A)+ee*sin(alfaAB)-ff*cos(alfaAB);

xp2=x0(A)+ee*cos(alfaAB)-ff*sin(alfaAB);

yp2=y0(A)+ee*sin(alfaAB)+ff*cos(alfaAB);

s4=sqrt((xp1-x0(C))^2+(yp1-y0(C))^2);

s5=sqrt((xp2-x0(C))^2+(yp2-y0(C))^2);

if abs(s4-s3)

x0(P)=xp1;

y0(P)=yp1;

else

x0(P)=xp2;

y0(P)=yp2;

end

elseif way==3&i1==2 %由方向观测值确定逆时针顺序后坐标计算

q1=find(e==A&d==P|e==P&d==A);

s1=sid(q1);

q2=find(e==B&d==P|e==P&d==B);

s2=sid(q2);

method(i)=32;

deltx=x0(B)-x0(A);

delty=y0(B)-y0(A);

alfaAB=alfa(deltx,delty);

ss=sqrt(deltx*deltx+delty*delty);

ee=(s1*s1+ss*ss-s2*s2)/(2*ss);ff=sqrt(s1*s1-ee*ee);

x0(P)=x0(A)+ee*cos(alfaAB)+ff*sin(alfaAB);

y0(P)=y0(A)+ee*sin(alfaAB)-ff*cos(alfaAB);

end

end %if way==0

%=============================================================== =====

%方法4:后方交会搜索与计算way=4

%思路:1.找到三个已知点;2.判断是否是危险圆;3.坐标计算

%第一步:找点

if way==0

temp1=[];temp2=[];temp3=[];temp4=[];temp5=[];temp6=[];

A=[];B=[];C=[];P=[];

temp1=find(g==i);%找出起点为P的方向值位置

if length(temp1)>2

for j=xyknow

temp2=find(f(temp1)==j);

if temp2>0

temp3(end+1)=temp1(temp2);%记录起点为P终点为已知点的方向值位置

end

end

if length(temp3)>2 %找到三个或者三个以上的点

A=f(temp3(1));B=f(temp3(2));P=i;

for j=3:length(temp3)

C=f(temp3(j));

[A,B,C]=reorderknow(A,B,C,x0,y0);%将A,B,C排成顺时针方向

sa=sqrt((x0(C)-x0(B))^2+(y0(C)-y0(B))^2);

sb=sqrt((x0(C)-x0(A))^2+(y0(C)-y0(A))^2);

sc=sqrt((x0(A)-x0(B))^2+(y0(A)-y0(B))^2);

angleA=acos((sb*sb+sc*sc-sa*sa)/(2*sb*sc));

angleB=acos((sa*sa+sc*sc-sb*sb)/(2*sa*sc));

angleC=acos((sa*sa+sb*sb-sc*sc)/(2*sa*sb));

temp4=find(g==i&f==A);

RA=dir(temp4);

temp5=find(g==i&f==B);

RB=dir(temp5);

temp6=find(g==i&f==C);

RC=dir(temp6);

alfa1=RC-RB;beta1=RA-RC;gama1=RB-RA;

alfa2=beta(B,P,C,g,f,dir);

beta2=beta(A,P,C,g,f,dir);

gama2=beta(A,P,B,g,f,dir);

%%第二步:判断四点是否共圆

if(angleA==alfa2&angleB==beta2)|(angleA==alfa2&angleC==gama2)|(angleC==gama2&angleB ==beta2)

continue %危险圆!!!!!!!!!!!!!!!!

else

%第三步:非危险圆,坐标计算

way=4;method(i)=4;

PA=tan(alfa1)*tan(angleA)/(tan(alfa1)-tan(angleA));

PB=tan(beta1)*tan(angleB)/(tan(beta1)-tan(angleB));

PC=tan(gama1)*tan(angleC)/(tan(gama1)-tan(angleC));

x0(P)=(PA*x0(A)+PB*x0(B)+PC*x0(C))/(PA+PB+PC);

y0(P)=(PA*y0(A)+PB*y0(B)+PC*y0(C))/(PA+PB+PC);

break;

end

end % for j=3:length(temp3)

end %if length(temp3)>2

end %if length(temp1)>2

end %if way==0

%=============================================================== =====

%求出一个未知点的近似坐标后终止循环,更新已知点点号和未知点点号数组

if way>0

temp=[];

xyknow(end+1)=i;

temp=find(xyunknow==i);

xyunknow(temp:end-1)=xyunknow(temp+1:end);

xyunknow=xyunknow(1:end-1);

break; %%%%%%% for i=xyunknow

end % if way>0

end %for i=xyunknow

%================================================================= =====

%方法5.倘若对所有未知点循环一次的过程中一个也未求出,则考虑用无定向导线计算%way==5

%第一种情况:已知条件为两个或者两个以上点的坐标

if(length(xyknow)==prelength)&(way==0)&(length(xyknow)>=2)

siddir=0;seeksid=0;seekdir=0;

for j=xyknow

for k=xyunknow

temp1=[];

temp1=find(e==j&d==k|e==k&d==j);

if(length(temp1)>0) %找到与已知点联测的一条边的另一端点

seeksid=1;siddir=1;

break;

end

end

if seeksid==1

break;

end

end

if seeksid==0 %未找到与已知点联测的一条边的另一端点,则找方向观测的另一个端点

for j=xyknow

for k=xyunknow

temp1=[];

temp1=find(g==j&f==k|g==k&f==j);

if(length(temp1)>0) %找到方向观测的另一端点

seekdir=1;seekdir=1;

break;

end

end

if seekdir==1

break;

end

end

end

if siddir==1 % (length(temp1)>0)

trueX0=x0;trueY0=y0;x0=[];y0=[];xyknow=[];xyunknow=[];

x0(j)=0.0;y0(j)=0.0; % 能用此方法解决,建立新的坐标系

if seeksid==1

x0(k)=mean(sid(temp1));y0(k)=0;

elseif seekdir==1

x0(k)=1000;y0(k)=0;

end

non_orient=1; %更新已知点数组和未知点数组

xyknow=[j k];

point(find(point==k|point==j))=[];

xyunknow=point';

end

%============================================================== =====

%第二种情况:已知条件为一个已知点和一个方位角,但分散开。

elseif(length(xyknow)==prelength)&(way==0)&(length(xyknow==1)&(length(s)>0)) temp1=[];

temp1=find(xyunknow==s(1));

if length(temp1)>0

trueX0=x0;trueY0=y0;x0=[];y0=[];xyknow=[];xyunknow=[];

x0(s(1))=0;y0(s(1))=0;

point_angle=1;

xyknow=[s(1)];

point(find(point==s(1)))=[];

xyunknow=point';

end

%============================================================== =====

elseif(non_orient==0&way==0)|(way==0&non_orient==1&length(xyunknow)>0)|(point_angel==

0&way==0)|(way==0&point_angle==1&length(xyunknow)>0)

if length(cc0)>0

msgbox('需给出有关点的排列顺序,并设置控制参数为1,否则近似坐标无法计算!!!','Warning','warn');

pn(aa0)

pn(bb0)

pn(cc0)

dbquit;

else

if length(xyknow)<=prelength

msgbox('近似坐标根本无法求出!!!','Warning','warn');

dbquit;

elseif length(xyknow)>prelength&length(xyknow)

msgbox('近似坐标已求出一部分,但无法全部求出!!!','Warning','warn');

xyknow=pn(xyknow);

dbquit;

end

end

end

end

%================================================================= =====

%如果是采用无定向导线,则还需进行坐标转换,坐标转换模型

% trueX0=DX+A*X0+B*Y0;trueY0=DY-B*X0+A*Y0

if non_orient==1&length(xyunknow)==0

n=length(trueX0); %无定向导线

for j=1:n

AA(2*j-1,1)=1;AA(2*j-1,2)=0;AA(2*j-1,3)=x0(j);AA(2*j-1,4)=y0(j);

AA(2*j,1)=0;AA(2*j,2)=1;AA(2*j,3)=y0(j);AA(2*j,4)=-x0(j);

WW(2*j-1)=trueX0(j);

WW(2*j)=trueY0(j);

end

ddx=inv(AA'*AA)*AA'*WW';sd=length(pn);

for j=(n+1):sd

trueX0(j)=ddx(1)+ddx(3)*x0(j)+ddx(4)*y0(j);

trueY0(j)=ddx(2)-ddx(4)*x0(j)+ddx(3)*y0(j);

method(j)=510+method(j);

end

x0=[];y0=[];

x0=trueX0,y0=trueY0;

elseif point_angel==1&length(xyunknow)==0

DX=trueX0-x0(1);DY=trueY0-y0(1); %一个已知点加方位角,坐标平移

for j=2:sd

trueX0(j)=x0(j)+DX;

trueY0(j)=y0(j)+DY;

method(j)=520+method(j);

end

x0=[];y0=[];

x0=trueX0;y0=trueY0;

end

end

return

其中调用的reorderknow函数(138页)

function [A,B,C]=reorderknow(A,B,C,x0,y0)

%本函数的作用是调整A,B,C三点的顺序,A,B,C三点已知deltx1=x0(B)-x0(A);delty1=y0(B)-y0(A);

deltx2=x0(C)-x0(A);delty2=y0(C)-y0(A);

alfaAB=alfa(deltx1,delty1);

alfaAC=alfa(deltx2,delty2);

bet=alfaAC-alfaAB;

if bet<0

bet=bet+2*pi;

end

if bet>pi

temp=A;A=B;B=temp;

end

测绘程序设计—实验八 水准网平差程序设计报告

《测绘程序设计(https://www.wendangku.net/doc/035717485.html,)》 上机实验报告 (Visual C++.Net) 班级:测绘0901班 学号:0405090204 姓名:代娅琴 2012年4月29日

实验八平差程序设计基础 一、实验目的 ?巩固过程的定义与调用 ?巩固类的创建与使用 ?巩固间接平差模型及平差计算 ?掌握平差程序设计的基本技巧与步骤 二、实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关。 1.水准网间接平差模型: 2.计算示例:

近似高程计算:

3.水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权; (5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 4.水准网高程近似值计算算法 5.输入数据格式示例

实验代码: #pragma once class LevelControlPoint { public: LevelControlPoint(void); ~LevelControlPoint(void); public: CString strName;//点名 CString strID;//点号 float H; bool flag;//标记是否已经计算出近似高程值,若计算出则为,否则为}; class CDhObs { public: CDhObs(void); ~CDhObs(void); public: LevelControlPoint* cpBackObj;//后视点 LevelControlPoint* cpFrontObj;//前视点 double ObsValue;//高差值 double Dist;//测站的距离 }; #include"StdAfx.h" #include"LevelControlPoint.h" LevelControlPoint::LevelControlPoint(void) {

水准网按条件平差算例

在图 表9-1 试求: (1)1P 、2P 及3P 点高程之最或然值; (2)1P 、2P 点间平差后高差的中误差。 解:(1)列条件方程式,不符值以“mm ”为单位。 已知3,7==t n ,故437=-=r ,其条件方程式为 ??? ? ???=--+=-+--=-+--=++-01030707742643765521v v v v v v v v v v v v (2)列函数式: 555v h x F +== 故 15=f 0764321======f f f f f f (3)组成法方程式。 1)令每公里观测高差的权为1,按1/i i s p =,将条件方程系数及其与权倒数之乘积填于表9-2中。 2)由表9-2数字计算法方程系数,并组成法方程式:

????????????----------5221251021411013????????????d c b a k k k k +????? ???????---1377=0 表9-2 条件方程系数表 (4)法方程式的解算。 1)解算法方程式在表9-3中进行。 2)[]pvv 计算之检核。 [][]wk pvv -= []467.35=-wk 由表9-3中解得[]47.35-=pvv ,两者完全一致,证明表中解算无误。 (5)计算观测值改正数及平差值见表9-4。 (6)计算321,,P P P 点高程最或然值。 359.3611=+=x H H A P m 012.3722=+=x H H A P m

表9-4 改正数与平差值计算表 (7)精度评定。 1)单位权(每公里观测高差)中误差 2)21,P P 点间平差后高差中误差 mm 0.34 47.35±=±=μmm P m F F 2.252.00.31 ±=±=±=μ

水准网平差(VB代码)

(误差理论与测量平差础) 课程设计报告 系(部):土木工程系 实习单位:山东交通学院 班级:测绘084 学生姓名:田忠星学号080712420 带队教师:夏小裕﹑周宝兴 时间:10 年12 月13日到10 年12 月19日 山东交通学院

目录: 1.摘要P3 2.概述P3 3.水准网间接平差程序设计思路P3—P4 4. 平差程序流程图P4—P6 5. 程序源代码及说明P7—P23 6. 计算结果P23—P26 7. 总结P26—P27

一:摘要 在测量工作中,为了能及时发现错误和提高测量成果的精度,常作多余观测,这就产生了平差问题。在一个平差问题中,当所选的独立参数X?的个数等于必要观测数t时,可将每个观测值表达成这t个参数的函数,组成观测方程,这种以观测方程为函数模型的平差方法,就是间接平差。 二:概述: 该课程设计的主要目是对水准网进行间接平差,在输入数据后依次计算高程近似值﹑误差方程和平差计算。 三:水准网间接平差程序设计思路 1.根据平差问题的性质,选择t个独立量(既未知点的高程)作为参数X? 2. 将每一个观测量的平差值(既观测的高程差值)分别表达成 3.由误差方程系数B和自由项组成法方程,法方程个数等于参数的个数t ; 4. 解算法方程,求出参数X?,计算参数(高程)的平差值 X?=X0 +x?; 5.由误差方程计算V,求出观测量(高差)平差值6.评定精度 单位权中误差 V L L+ = ∧ V L L+ = ∧

平差值函数的中误差 四:平差程序流程图 1. 已知数据的输入 需要输入的数据包括水准网中已知点数﹑未知点数以及这些点的点号,已知高程和高差观测值﹑距离观测值。程序采用文件方式进行输入,约定文件输入的格式如下: 第一行:已知点数﹑未知点数﹑观测值个数 第二行:点号(已知点在前,未知点在后) 第三行:已知高程(顺序与上一行的点号对应) 第四行:高差观测值,按“起点点号,终点点号。高差观测值,距离观测值”的顺序输入。 本节中使用的算例的数据格式如下 2,3,7 1,2,3,4,5 5.016,6.016 1,3,1.359,1.1 1,4,2.009,1.7 2,3,0.363,2.3 ,?20s u n PV V r PV V T T +-==σ. ???0????σσQ =

基于MATLAB的控制网平差程序设计--第六章源代码

近似坐标计算的函数-calcux0y0函数(126页) function [x0,y0]=calcux0y0(x0,y0,e,d,sid,g,f,dir,s,t,az,pn,xyknow,xyunknow,point,aa,bb,cc) %本函数的作用是计算待定点的近似坐标 format short; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% time=0;prelength=length(xyknow);non_orient=0;point_angle=0; while length(xyunknow)>0 %考虑的计算方法有:1.极坐标;2.前方交会;3.测边交会;4.后方交会; %5.无定向导线的两种情况:(1)已知两个点;(2)分离的已知点与方位角;基本思路:%采用循环的方法逐一对每一个未知点进行以上各种方法条件的搜索,满足后即解算。 aa0=[];bb0=[];cc0=[];%记录搜索到两条观测边但需用户给顺序的点,注意要放在while 里面。 time=time+1; % 用于统计循环次数。 way=0; for i=xyunknow %依次循环向量中的各元素 %============================================================= ===== %方法1.极坐标条件搜索与计算-->way=1,基本思路:找到或求出一个方位角,找出一条边。 temp1=[]; temp2=[]; temp3=[]; temp4=[]; temp5=[]; temp6=[]; temp7=[]; temp8=[]; temp9=[]; temp10=[];A=[];B=[];P=[]; %第一步:寻找观测条件:两种情况:一是有已知方位角;二是由两个已知点及方向观测值推出方位角。 temp7=find(t==i); if length(temp7)>0 temp8=find(xyknow==s(temp7(1))); if length(temp8)>0 temp9=find(e==s(temp7(1))&d==t(temp7(1))|e==t(temp7(1))&d==s(temp7(1))); if length(temp9)>0 %第一种情况:有已知方位角(一般适用于闭合导线) S=mean(sid(temp9)); Alfa0=az(temp7(1)); x0(i)=x0(s(temp7(1)))+S*cos(Alfa0); y0(i)=y0(s(temp7(1)))+S*sin(Alfa0); way=1;method(i)=11;%----->由已知方位角算出 end end else temp1=find(f==i);%第二种情况:由两个已知点及方向观测值推出方位角(适用于附合、支导线) if length(temp1)>0 for j=xyknow

控 制 网 平 差 报 告

控制网平差报告 [控制网概况] 计算软件:南方平差易2005 网名:成都学院1-6教导线网 计算日期:2014-07-02 观测人:赵磊 记录人:薛佳丽 计算者:薛佳丽 检查者: 测量单位:成都学院测绘工程一班 备注:第六小组 平面控制网等级:国家四等,验前单位权中误差:2.50(s) 已知坐标点个数:2 未知坐标点个数:8 未知边数:9 最大点位误差[D] = 0.0118 (m) 最小点位误差[B] = 0.0068 (m) 平均点位误差= 0.0109 (m) 最大点间误差=0.0102(m) 最大边长比例误差= 53 平面网验后单位权中误差=1.88(s) [边长统计]总边长:1211.146(m),平均边长:134.572(m),最小边长:51.705(m),最大边长:262.760(m) [闭合差统计报告]

高程网平差 -------------------------------------------------------------------- APPROXIMATE HEIGHT -------------------------------------------------------------------- No. Name Height(m) -------------------------------------------------------------------- 1 A1 500.0000 2 A2 499.6860 3 A3 499.3690 4 A4 499.2295 5 B1 497.9570 6 B2 497.1505 7 C1 495.7295 8 C2 495.0625 9 D1 495.5515 10 D2 494.9110 11 E1 494.5825

《测绘程序设计》实验指导书

《测绘遥感程序设计》 实验指导书 (Visual C++.net) (供测绘工程专业用) (2015年修订) 戴吾蛟编 二零一五年三月 中南大学测绘与遥感科学系

前言 测绘遥感程序设计上机实验是学习本门课程的重要环节之一,实验的设置是为了配合课堂教学,使学生熟练掌握和深入理解课堂教学内容,进一步强化测绘程序设计、测量学及测量平差原理的理解,掌握利用Visual C++.net进行常用的测量程序以及控制网的间接平差程序设计。 实验内容 本门课程必做的实验有(在Visual C++.net 2008 环境下): 1.Visual C++.net环境、基本控件及简单程序设计(三角形面积计算) 2.控制结构程序设计(方位角计算、地心坐标至大地坐标转换) 3.数组、指针(多边形面积计算) 4.函数(交会定点函数设计、高斯投影正反算程序设计) 5.类的创建(大地四边形类设计、角度类设计) 6.文件(Cass测量数据整理) 7.图形程序设计(位移序列曲线图形程序设计) 8.常用测量计算(无定向导线简易计算程序设计) 9.平差程序设计(水准网间接平差程序设计) 修订说明:由于2012版培养方案增加了8课时,实验课时也相应增加了4课时。为此,本实验指导书将高斯投影正反算提前,并要求以函数的形式编写。增加了大地四边形类设计以及无定向导线简易计算程序设计。

实验1 Visual C++.net环境和简单程序设计 一、实验目的 ?掌握Visual https://www.wendangku.net/doc/035717485.html,的安装和启动。 ?了解VC++ 2008的菜单系统、工具栏和各种基本窗体。 ?理解VC++.net开发应用程序的步骤。 ?掌握基于对话框的程序设计。 ?掌握按钮、文本框和标签框的基本使用方法 ?掌握使用MSDN帮助文档 二、实验内容 1.启动与退出VC++.net,熟悉VC++.net的开发环境,通过向导生成基于对话 框的应用程序。使用MSDN查看命令按钮、标签和文本框的主要属性和方法。 2.打开Microsoft visual studio 2008 文档,浏览“Visual studio 文档”目录下的 内容,并从“Visual studio 文档->Visual C++->示例”目录下下载一个程序,编译并运行之。 3.设计一个已知三边边长计算三角形面积的程序。计算模型如下: 海伦公式:) )( )( (c p b p a p p S- - - =,其中 2c b a p + + = 提示: (1)在【文件】菜单上执行【新建】,然后选择“项目” 。 (2)在【项目类型】窗格中,选择【Visual C++】下的“MFC”项。在【模板】窗格中,选择“MFC 应用程序”模板,输入应用程序名称“××××”。按向导创建名为“×××××”的 MFC应用程序。 (3)在窗体上放置4个文本框、4个静态框、3个命令按钮(其中两个缺省); (4)设置控件属性,如Static1的Caption属性设置成“a=”,用于提示Edit 框的输入边长a;

水准网间接平差程序设计(C++)

//////////////////////////////////////////////////// // visual C++6.0 编译通过 // //////////////////////////////////////////////////// /////////////////////////////////////////////////// // 参考资料 // // 部分网络资料 // // 宋力杰《测量平差程序设计》 // //连壁《基于matlab的控制网平差程序设计》 // /////////////////////////////////////////////////// #include #include #include #include #include using namespace std; //////////////////////////////////////////////////////////////////////////class class SZWPC { private: int gcz_zs; //高差总数 int szd_zs; //总点数 int yz_szd_zs; //已知点数 double m_pvv; //[pvv] int *qsd_dh; //高差起点号 int *zd_dh; //高差终点号 char **dm; //点名地址数组 double *gcz; //观测值数组 double *szd_gc; //高程值数组 double *P; //观测值的权 double *ATPA,*ATPL; //法方程系数矩阵与自由项 double *dX; //高程改正数、平差值 double *V; //残差 double m_mu; //单位权中误差 public: SZWPC(); ~SZWPC(); int ij(int i,int j);//对称矩阵下标计算函数 bool inverse(double a[],int n);//对称正定矩阵求逆(仅存下三角元素)(参考他人)

测绘程序设计实验八水准网平差程序设计报告完整版

测绘程序设计实验八水准网平差程序设计报告 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

《测绘程序设计》上机实验报告 (Visual C++.Net) 班级:测绘0901班 学号: 04 姓名:代娅琴 2012年4月29日

实验八平差程序设计基础 一、实验目的 巩固过程的定义与调用 巩固类的创建与使用 巩固间接平差模型及平差计算 掌握平差程序设计的基本技巧与步骤 二、实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关。 1.水准网间接平差模型: 2.计算示例:

近似高程计算: 3.水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权; (5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 4.水准网高程近似值计算算法

5.输入数据格式示例 实验代码: #pragma once class LevelControlPoint { public: LevelControlPoint(void); ~LevelControlPoint(void);

public: CString strName;trName=pstrData[0]; m_pKnownPoint[i].strID=pstrData[0]; m_pKnownPoint[i].H=_tstof(pstrData[1]); m_pKnownPoint[i].flag=1;trName=pstrData[i]; m_pUnknownPoint[i].strID=pstrData[i]; m_pUnknownPoint[i].H=0;lag=0;pBackObj=SearchPointUsingID(pstrData[0]);pFrontObj=Sea rchPointUsingID(pstrData[1]);ObsValue=_tstof(pstrData[2]);ist=_tstof(pstrData[3]);trID==ID) {return &m_pKnownPoint[i];} } return NULL; } trID==ID) {return &m_pUnknownPoint[i];} } return NULL; } LevelControlPoint* AdjustLevel::SearchPointUsingID(CString ID) { LevelControlPoint* cp; cp=SearchKnownPointUsingID(ID); if(cp==NULL) cp=SearchUnknownPointUsingID(ID); return cp; } void AdjustLevel::ApproHeignt(void)lag!=1) { pFrontObj->strID==m_pUnknownPoint[i].strID) && m_pDhObs[j].cpBackObj->flag==1 ) { =m_pDhObs[i].cpBackObj->H - m_pDhObs[i].ObsValue;*/ m_pUnknownPoint[i].H=m_pDhObs[j].cpBackObj->H + m_pDhObs[j].HObsValue; m_pUnknownPoint[i].flag=1; break; } } if(m_pUnknownPoint[i].flag!=1)pBackObj- >strID==m_pUnknownPoint[i].strID) && m_pDhObs[j].cpFrontObj->flag==1 ) { =m_pDhObs[j].cpFrontObj->H-m_pDhObs[j].HObsValue;

GPS控制网平差总结报告.doc

西南林业大学 《全球卫星定位系统原理》GPS控制网平差实习 (2012级) 题目静态GPS控制网平差总结报告 学院土木工程学院 专业测绘工程 学号20120456023 学生姓名施向文 任课教师朱毅 西南林业大学土木工程学院测绘工程系 2015年07月 12 日

目录 1 实习目的 0 2 实习任务 0 3 数据处理依据 0 4 精度要求 0 5 已有成果数据 0 6 数据处理过程 (1) 6.1创建作业及数据导入 (1) 6.2基线预处理 (1) 6.2.1静态基线处理设置 (1) 6.2.2处理基线 (2) 6.2.3搜索闭合环 (2) 6.3设置坐标系 (2) 6.4网平差 (2) 6.5高程内外符合精度检验 (3) 6.5.1内符合精度 (3) 6.5.2外符合精度 (3) 7 数据处理成果 (3) 7.1二维平面坐标平差 (3) 7.1.1 平差参数 (3) 7.1.2 平面坐标 (4) 7.2高程拟合 (7) 7.2.1 平差参数 (7) 7.2.2 外符合精度 (7) 7.2.3内符合精度 (9) 8 质量简评 (11) 9 总结 (12)

静态GPS网平差总结报告 1 实习目的 通过对静态GPS控制网的数据处理,从实践中加深对理论知识的理解。通过本次实习还可以熟悉GPS数据处理软件,现在的数据处理基本用软件处理,使用软件也是必备的一个技能。 2 实习任务 本次实习的任务: (1)静态GPS外业数据基线预处理,预处理基线的方差比应尽量调整在99.9,处理后搜索闭合环要基本合格。 (2)选择/建立坐标系,建立昆明87坐标系。 (3)输入已知点并进行网平差,检测内外符合精度。 (4)撰写数据处理总结报告。 3 数据处理依据 依据《卫星定位城市测量技术规范CJJ/T 73—2010》备案号J990—2010 4 精度要求 二维平差中误差1cm 高程拟合中误差2cm 高程内符合中误差3cm 高程外符合中误差5cm 5 已有成果数据 (1)静态GPS外业数据成果(RINEX) (2)已知点的三维坐标,坐标成果见下表

测量平差编程

误差理论与测量平差上机指导书 辽宁工程技术大学 测绘与地理科学学院测绘工程系

目录 Visual C++ 6.0开发平台简介 (1) MFC概述 (1) 实验1 矩阵加法与乘法运算 (3) 实验2 矩阵转置与求逆运算 (6) 实验3 误差椭圆元素计算 (13) 实验4 水准网间接平差程序设计 (15)

Visual C++ 6.0开发平台简介 Visual C++提供了一个支持可视化编程的集成开发环境:Visual Studio(又名Developer Studio)。Developer Studio是一个通用的应用程序集成开发环境,它不仅支持Visual C++,还支持Visual Basic,Visual J++,Visual InterDev等Microsoft系列开发工具。Developer Studio包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用Developer Studio,可以完成创建、调试、修改应用程序等的各种操作。 Developer Studio采用标准的多窗口Windows用户界面,并增加了一些新特性,使得开发环境更易于使用,用户很容易学会它的使用方法。 由于Developer Studio是一个可视化的开发工具,在介绍Developer Studio 的各个组成部分之前,首先了解一下可视化编程的概念。可视化技术是当前发展迅速并引人注目的技术之一,它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来。可视化编程是它的重要应用之一。所谓可视化编程,就是指:在软件开发过程中,用直观的具有一定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、浏览操作,软件开发过程表现为鼠标点击按钮和拖放图形化的对象以及指定对象的属性、行为的过程。这种可视化的编程方法易学易用,而且大大提高了工作效率。 Visual C++的集成开发环境Developer Studio提供了大量的实用工具以支持可视化编程特性,它们包括:项目工作区、ClassWizard、AppWizard、WizardBar、Component Gallery等。 MFC概述 MFC是一个编程框架。MFC (Microsoft Foundation Class Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。

水准网的条件平差

目录 目录 (1) 观测误差 (2) 摘要: (2) 关键词: (2) 引言 (3) 1水准测量 (4) 1.1水准测量的原理 (4) 1.2水准网 (5) 2条件平差 (6) 2.1衡量精度的指标 (6) 2.2条件平差的原理 (8) 3水准网的平差 (14) 3.1必要观测与多余观测 (14) 3.2条件方程 (14) 3.3条件平差法方程式 (14) 3.4条件平差的精度评定 (15) 3.5水准网的条件平差 (18) 致谢 (20) 参考文献 (21)

观测误差 —由观测者、外界环境引起的偶然误差 学生: xxx 指导教师:xxx 摘要: 对一系列带有偶然误差的观测值,采用合理的的方法消除它们间的不符值,得出未知量的最可靠值;以及评定测量成果的精度。 关键词: 偶然误差;观测值;精度

引言 测量工作中,要确定地面点的空间位置,就必须进行高程测量,确定地面点的高程。几何水准测量是高程测量中最基本、最精密的一种方法。通过测量仪器,工具等任何手段获得的以数字形式表示的空间信息,即观测量。然而,测量是一个有变化的过程,受仪器、观测值、外界环境因素的影响,观测的结果与客观上存在的一个能反映其真正大小的数值,即真值(理论值),有一定的差异。可以说在测量中产生误差是不可避免的。所以,观测值不能准确得到,在测量上称这种差异为观测误差。根据其对观测结果影响的性质,可将误差分为系统误差和偶然误差两种。前者可以通过在观测过程中采取一定的措施和在观测结果中加入改正数,消除或减弱它的影响,使其达到忽略不计的程度。但是,观测结果中,不可避免地包含了后者,它是不可消除的,但可以选择较好的观测条件或采用适当的数据处理方法减弱它。现在我们要讨论的就是采用适当的数据处理方法来减弱其对水准测量中的影响。

水准网平差c++代码

水准网平差 结果 #include #include #include #include #define max 50 class CMatrix { public: CMatrix(){row=0; column=0;}; // 默认构造函数 CMatrix(int i, int j){row=i;column=j;} // 构造函数一 CMatrix(const CMatrix& m); // 复制构造函数 ~CMatrix(void){/*cout<<"谢谢使用,矩阵所占空间以释放!"<

结点水准网外业检核及平差计算

结点水准网外业检核及平差计算 如图所示结点水准网,BM1、BM2、BM3为已知水准点,高程分别为 m H 099.971=,m H 065.1002=, m H 475.963=,观测高差和水准路线 长度见下表,试计算A1点的高程平差值及其中误差。 一、三等水准测量外业检核 1、测站限差 等级 水准仪 型号 视距 (m) 前后 视距差 (m ) 前后视距累计差 (m ) 视线高度 黑红面 读数差 (mm) 黑、红面 高差之差 (mm) 三等 DS3 ≤75 ≤2 ≤5 三丝能读数 2.0 3.0 2、测段、附合路线或环线闭合差 测量等级 测段、路线往返测 高差不符值 (mm ) 附合路线或环线闭合差(mm ) 检测已测测 段高差之差 (mm ) 平原 山岭 三等 K 12± L 12± L 15± R 20± h3 h2 h1 S1 S2S3

二、测段外业计算与检核 测 段 实测高差(m) 往返测高差不符值 (mm ) 往返测高差 不符值限差 (mm ) 测段路线 长度均值(km ) 往返测高差 平均值 (m ) 往测 返测 BM1-A1 -0.178 +0.180 +2 ±5 0.240 -0.179 BM2-A1 -3.147 +3.147 0 ±5 0.175 -3.147 BM3-A1 +0.443 -0.442 +1 ±4 0.127 +0.442 三、外业附合路线或闭合路线计算与检核 附合路线 起点高程 (m ) 实测高差(m ) 终点高程 (m ) 路线长度(km ) 闭合差 (mm ) 限差 (mm ) h 1 h 2 BM1- BM2 97.099 -0.179 +3.147 100.065 0.415 +2 ±7 BM1- BM3 97.099 -0.179 -0.442 96.475 0.367 +3 ±7 BM2- BM3 100.065 -3.147 -0.442 96.475 0.302 -1 ±6 终始H h h H f h -++=21 (注意h2方向) 四、待定点高程最或是值及精度计算 路 线 号 起始点 高程 (m ) 实测 高差 (m ) 结点观 测高程 (m ) 路线 长度 (km ) 权 i i S C P = 改正数V (km ) Pvv 1 97.099 -0.179 96.920 0.240 4.1667 - 2 16.6668 2 100.065 -3.147 96.918 0.175 5.714 3 0 0 3 96.475 +0.442 96.917 0.127 7.8740 +1 7.8740 ∑ 17.755 24.5408 结点高程及中 误差 计算 结点高程: [][] P PH H A = 1= 96.918m 改正数:i A A i H H V 11-= 单位权误差:[] 1 ?0-=n pvv σ=±3.50mm 结点高程最或是值中误差:[] P A H 0??1 σ σ ==±0.83mm

GPS静态控制测量网平差报告

FJ -3 工程测量技术交流群18874248 省道S 229南坑至源头段 二级公路改建工程 GPS 静态控制测量 网平差报告 萍 乡 公 路 勘 察 设 计 院 二○一一年九月 目 录 一、 GPS 控制点成果表…………………………………………1 二、 GPS 控制点网示意图………………………………………1 三、 GPS 控制网平差报告……………………………………1~4

一、G PS控制点成果表 二、GPS控制点网示意图 三、GPS控制网平差报告 1 坐标系统 1.1 坐标系统名称 Beijing54 1.2 基准参数

1.3 投影参数 M0 =1.00000000 投影比率 H = 0.0000 投影高 Bm =0投影面的平均纬度 B0 =0:00:00.00N 原点纬度 L0 =113:50:00.00E 中央子午线 N0 =0.0000 北向加常数 E0 =500000.0000 东向加常数 回到顶部 2 三维无约束平差2.1 平差参数 2.2 基线向量及改正数 2.3 τ(Tau)检验表 2.4 τ(Tau)检验直方图

2.5 自由网平差坐标 回到顶部 3 二维约束平差 3.1 平差参数 3.2 平面距离平差值 3.3 平面坐标 ***** 回到顶部

4 高程拟合 4.1 平差参数 4.2 高程拟合坐标 240.7246 回到顶部 5 基线闭合差 Baseline Type rms dx dy dz distance ------------------------------------------------------------------------------------------- G1->G2.242A 99.9 0.0077 -1046.7333 -648.5635 534.7004 1342.4566 G1->G3.242A 99.9 0.0068 -3110.1745 -2426.1123 1829.3052 4348.0529 G2->G3.242A 99.9 0.0062 -2063.4456 -1777.5444 1294.6074 3015.5398 ------------------------------------------------------------------------------------------- 同步环( 3 baselines) 相对误差= 0.76ppm EX = 0.0043 EY = -0.0043 EZ = -0.0026 8706.0493 Baseline Type rms dx dy dz distance ------------------------------------------------------------------------------------------- G1->G4.242B 65.6 0.0072 -5107.6816 -3742.5441 2584.4937 6839.1999 G1->G2.242A 99.9 0.0077 -1046.7333 -648.5635 534.7004 1342.4566 G2->G4.242B 99.9 0.0072 -4060.9524 -3093.9755 2049.7944 5501.4248 ------------------------------------------------------------------------------------------- 同步环( 3 baselines) 相对误差= 0.48ppm EX = -0.0041 EY = 0.0051 EZ = 0.0010 13683.0814 Baseline Type rms dx dy dz distance ------------------------------------------------------------------------------------------- G1->GD1.242X 99.9 0.0087 507.9850 -1545.3781 3267.2106 3649.7818 G1->G2.242A 99.9 0.0077 -1046.7333 -648.5635 534.7004 1342.4566 G2->GD1.242X 99.9 0.0065 1554.7134 -896.8104 2732.5118 3269.2543 ------------------------------------------------------------------------------------------- 同步环( 3 baselines) 相对误差= 0.80ppm EX = -0.0048 EY = 0.0042 EZ = 0.0017 8261.4927 Baseline Type rms dx dy dz distance ------------------------------------------------------------------------------------------- G3->G4.242B 99.9 0.0063 -1997.5067 -1316.4322 755.1870 2508.6519 G1->G3.242A 99.9 0.0068 -3110.1745 -2426.1123 1829.3052 4348.0529 G1->G4.242B 65.6 0.0072 -5107.6816 -3742.5441 2584.4937 6839.1999 ------------------------------------------------------------------------------------------- 同步环( 3 baselines) 相对误差= 0.12ppm EX = -0.0003 EY = 0.0004 EZ = 0.0015 13695.9047 Baseline Type rms dx dy dz distance ------------------------------------------------------------------------------------------- G3->GD1.242X 99.9 0.0071 3618.1569 880.7382 1437.9069 3991.7835 G1->G3.242A 99.9 0.0068 -3110.1745 -2426.1123 1829.3052 4348.0529 G1->GD1.242X 99.9 0.0087 507.9850 -1545.3781 3267.2106 3649.7818 ------------------------------------------------------------------------------------------- 同步环( 3 baselines) 相对误差= 0.42ppm EX = 0.0026 EY = -0.0040 EZ = -0.0015 11989.6182 Baseline Type rms dx dy dz distance ------------------------------------------------------------------------------------------- G4->GD1.242X 99.9 0.0073 5615.6650 2197.1667 682.7190 6068.7182 G1->G4.242B 65.6 0.0072 -5107.6816 -3742.5441 2584.4937 6839.1999 G1->GD1.242X 99.9 0.0087 507.9850 -1545.3781 3267.2106 3649.7818 ------------------------------------------------------------------------------------------- 同步环( 3 baselines) 相对误差= 0.16ppm EX = 0.0015 EY = -0.0007 EZ = -0.0022 16557.6999

水准网平差软件使用说明

电子水准仪数据处理及平差软件 用户操作手册 中铁二院工程集团有限责任公司 二零零九年

目录 1引言 (1) 1.1 编写目的 (1) 1.2 背景 (1) 2软件的功能和性能 (1) 2.1 软件功能和适用范围 (1) 2.1.1软件的主要功能有: (1) 2.1.2软件的主要输出内容包括: (1) 2.2 软件的性能 (2) 3运行环境 (2) 3.1 硬件设备 (2) 3.2 支持软件 (2) 3.3 数据存储 (2) 4软件安装说明 (3) 5“电子水准仪数据处理及平差软件”使用说明 (3) 5.1选择工作路径 (3) 5.2“电水数据处理”菜单 (4) 5.2.1设置转换参数 (4) 5.2.2生成高差文件 (5) 5.2.3生成平差文件 (6) 5.2.4输出观测手簿 (6) 5.3“高程平差处理”菜单 (6) 5.3.1选择平差文件 (7) 5.3.2闭合差计算 (7) 5.3.3网平差处理 (8) 5.4“结果显示”菜单 ........................................................................ 错误!未定义书签。6“电子水准仪数据处理与平差软件”文件说明 (8)

1引言 1.1编写目的 《“电子水准仪数据处理及平差软件”用户操作手册》是高速铁路沉降观测评估软件之一“电子水准仪数据处理及平差软件”的使用说明,能够指导测量技术人员正确使用“电子水准仪数据处理及平差软件”。 1.2背景 为了满足高速铁路线下沉降变形观测与评估的需要,适应铁路施工与评估单位对其数据处理的要求,中铁二院工程集团有限责任公司研制了自主版权的“电子水准仪数据处理及平差软件”。 2软件的功能和性能 2.1软件功能和适用范围 电子水准仪数据处理及平差软件,是专为我国高速铁路线下沉降观测评估而设计的电子水准仪数据处理与高程平差计算软件。 2.1.1软件的主要功能有: 1、根据需要选择工作路径; 2、根据设置生成高差文件; 3、生成平差文件; 4、输出观测手簿; 5、闭合环自动搜索与闭合差计算; 6、网平差处理与成果输出; 2.1.2软件的主要输出内容包括: 1、可输出高程控制网测段实测高差数据;

MATLAB水准网间接平差课程作业程序

条件平差 A=[1 -1 0 0 1 0 0;0 0 1 -1 1 0 0;0 0 1 0 0 1 1;0 1 0 -1 0 0 0]; Q=diag(s); W=zeros(4,1); W(1)=h(1)-h(2)+h(5); W(2)=h(3)-h(4)+h(5); W(3)=h(3)+h(6)+h(7); W(4)=h(2)-h(4)+H(1)-H(2); W=W.*1000; Naa=A*Q*(A'); K=-1.*inv(Naa)*W; V=Q*(A')*K; L=h'+V./1000; X=zeros(1,3); X(1)=H(1)+L(1); X(2)=H(1)+L(2); X(3)=H(2)-L(7); ZWC=sqrt(V'*inv(Q)*V/4); QLL=Q-Q*A'*inv(Naa)*A*Q; ZWC_h5=ZWC*sqrt(QLL(5,5)); 间接平差 h1=1.359; h2=2.009; h3=0.363; h4=1.012; h5=0.657; h6=0.238; h7=-0.595; H1=5.016 H2=6.016 h=[h1 h2 h3 h4 h5 h6 h7]' s=[1.1 1.7 2.3 2.7 2.4 1.4 2.6]' B=[1 0 0 ;0 1 0; 1 0 0;0 1 0 ; -1 1 0 ; -1 0 1 ;0 0 -1 ] p=diag(1./s) l=[0;0;4;3;7;2;0] W=B'*p*l Nbb=B'*p*B x=inv(Nbb)*W V=(B*x-l) H=h+V/1000 Q=inv(Nbb) n=7;

相关文档
相关文档 最新文档