实验三-利用matlab程序设计语言完成某工程导线网平差计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三利用matlab程序设计语言完成某工
程导线网平差计算
实验数据;
某工程项目按城市测量规范(CJJ8-99)不设一个二级导线网作为首级平面控制网,主要技术要求为:平均边长200cm,测角中误差±8,导线全长相对闭合差<1/10000,最弱点的点位中误差不得大于5cm,经过测量得到观测数据,设角度为等精度观测值、测角中误差为m=±8秒,鞭长光电测距、测距中误差为m=±√smm,根据所学的‘误差理论与测量平差基础’提出一个最佳的平差方案,利用matlab完成该网的严密平差级精度评定计算;
平差程序设计思路:
1采用间接平差方法,12个点的坐标的平差值作为参数.利用matlab进行坐标反算,求出已知坐标方位角;根据已知图形各观测方向方位角;
2计算各待定点的近似坐标,然后反算出近似方位角,近似边.计算各边坐标方位角改正数系数;
3确定角和边的权,角度权Pj=1;边长权Ps=100/S;
4计算角度和边长的误差方程系数和常数项,列出误差方程系数矩阵B,算出Nbb=B’PB,W=B’Pl,参数改正数x=inv(Nbb)*W;角
度和边长改正数V=Bx-l;
6 建立法方程和解算x,计算坐标平差值, 精度计算;程序代码以及说明:
s10=;s20=;
s30=;s40=;
s50=;s60=;
s70=;s80=;
s90=;s100=;
s110=;s120=;
s130=;s140=; %已知点间距离
Xa=;Ya=;
Xb=;Yb=;
Xc=;Yc=;
Xd=;Yd=;
Xe=;Ye=;
Xf=;Yf=; %已知点坐标值
a0=atand((Yb-Ya)/(Xb-Xa))+180;
d0=atand((Yd-Yc)/(Xd-Xc));
f0=atand((Yf-Ye)/(Xf-Xe))+360; %坐标反算方位角a1=a0+(163+45/60+4/3600)-180
a2=a1+(64+58/60+37/3600)-180;
a3=a2+(250+18/60+11/3600)-180;
a4=a3+(103+57/60+34/3600)-180;
a5=d0+(83+8/60+5/3600)+180;
a6=a5+(258+54/60+18/3600)-180-360;
a7=a6+(249+13/60+17/3600)-180;
a8=a7+(207+32/60+34/3600)-180;
a9=a8+(169+10/60+30/3600)-180;
a10=a9+(98+22/60+4/3600)-180;
a12=f0+(111+14/60+23/3600)-180;
a13=a12+(79+20/60+18/3600)-180;
a14=a13+(268+6/60+4/3600)-180;
a15=a14+(180+41/60+18/3600)-180; %推算个点方位角
aa=[a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a12 a13 a14 a15]' X20=Xb+s10*cosd(a1);
X30=X20+s20*cosd(a2);
X40=X30+s30*cosd(a3);
X50a=X40+s40*cosd(a4);
X60=Xd+s50*cosd(a5);
X70=X60+s60*cosd(a6);
X80=X70+s70*cosd(a7);
X90=X80+s80*cosd(a8);
X100=X90+s90*cosd(a9);
X50c=X100+s100*cosd(a10);
X130=Xf+s110*cosd(a12);
X140=X130+s120*cosd(a13);
X150=X140+s130*cosd(a14);
X50e=X150+s140*cosd(a15); %各点横坐标近似值
X0=[X20 X30 X40 X60 X70 X80 X90 X100 X130 X140 X150 X50a X50c X50e]'
Y20=Yb+s10*sind(a1);
Y30=Y20+s20*sind(a2);
Y40=Y30+s30*sind(a3);
Y50a=Y40+s40*sind(a4);
Y60=Yd+s50*sind(a5);
Y70=Y60+s60*sind(a6);
Y80=Y70+s70*sind(a7);
Y90=Y80+s80*sind(a8);
Y100=Y90+s90*sind(a9);
Y50c=Y100+s100*sind(a10);
Y130=Yf+s110*sind(a12);
Y140=Y130+s120*sind(a13);
Y150=Y140+s130*sind(a14);
Y50e=Y150+s140*sind(a15); %个点从坐标近似值
Y0=[Y20 Y30 Y40 Y60 Y70 Y80 Y90 Y100 Y130 Y140 Y150 Y50a Y50c Y50e]'
P=[X0 Y0];
X50=(X50a+X50c+X50e)/3
Y50=(Y50a+Y50c+Y50e)/3
s4=sqrt((Y40-Y50)^2+(X40-X50)^2);
s1=sqrt((Y100-Y50)^2+(X100-X50)^2);
s14=sqrt((Y150-Y50)^2+(X150-X50)^2);
A1=[cosd(a1) cosd(a2) cosd(a3) cosd(a4) cos(a5) cosd(a6) cosd(a7) cosd(a8) cosd(a9) cosd(a10) cosd(a12) cosd(a13) cosd(a14) cosd(a15)]';
B11=[sind(a1) sind(a2) sind(a3) sind(a4) sin(a5) sind(a6) sind(a7) sind(a8) sind(a9) sind(a10) sind(a12) sind(a13) sind(a14) sind(a15)]';
s=blkdiag(s10,s20,s30,s4,s50,s60,s70,s80,s90,s10',s110, s120,s130,s14);
a=*inv(s)*B11
b=*inv(s)*A1
ab4=atand((Y50-Y40)/(X50-X40))+180;
ab10=atand((Y50-Y100)/(X50-X100));
ab14=atand((Y50-Y150)/(X50-X150))+360;
m4=ab4-a3+180;
m10=ab10-a9+180;
m11=ab4-ab10;