好好学习,天天向上,学科吧欢迎您!
当前位置:首页 >> 最新范文 内容页

后方交会MATLAB程序实习报告

后方交会MATLAB程序实习报告 本文关键词:交会,实习报告,程序,MATLAB

后方交会MATLAB程序实习报告 本文简介:《摄影测量学》单像空间后方交会实习报告班级:XXXX00000姓名:XXX000学号:XXXXXXXXXXXXX指导教师:XXX1、实习目的1、掌握空间后方交会的定义和实现算法;2、了解摄影测量平差的基本过程;3、熟练MATLAB等程序编写。2、实习原理利用至少三个已知地面控制点的坐标、、,与其影像

后方交会MATLAB程序实习报告 本文内容:

《摄

学》

单像空间后方交会

实习报告

级:

XXXX00000

名:

X

X

X000

号:XXXXXXXXXXXXX

指导教师:

X

X

X

1、

实习目的

1、掌握空间后方交会的定义和实现算法;

2、了解摄影测量平差的基本过程;

3、熟练MATLAB等程序编写。

2、

实习原理

利用至少三个已知地面控制点的坐标、、,与其影像上对应的三个像点的影像坐标、、,根据共线方程,反求该像片的外方位元素。

共线条件方程式:

将共线式线性化并取一次小值项得:

3、

解算过程

①获取已知数据。包括影像比例尺1/m,平均摄影距离(航空摄影的航高)H,内方位元素x0、y0、f,控制点的空间坐标X、Y、Z。

②量测控制点的像点坐标并进行必要的影像坐标系统误差改正,得到像点坐标。

③确定未知数的初始值。单像空间后方交会必须给出待定参数的初始值,在竖直航空摄影且地面控制点大体对称分布的情况下,Xs0和Ys0为均值,Zs0为航高,φ、ω、κ的初值都设为0。或者κ的初值可在航迹图上找出或根据控制点坐标通过坐标正反变换求出。

④计算旋转矩阵R。利用角元素近似值计算方向余弦值,组成R阵。

⑤逐点计算像点坐标的近似值。利用未知数的近似值按共线条件式计算控制点像点坐标的近似值(x),(y)。

⑥逐点计算误差方程式的系数和常数项,组成误差方程式。

⑦计算法方程的系数矩阵ATA与常数项ATL,组成法方程式。

⑧解求外方位元素。根据法方程,解求外方位元素改正数,并与相应的近似值求和,得到外方位元素新的近似值。

⑨检查计算是否收敛。将所求得的外方位元素的改正数与规定的限差比较,通常对φ,ω,κ的改正数△φ,△ω,△κ给予限差,通常为0.000001弧度,当3个改正数均小于0.000001弧度时,迭代结束。否则用新的近似值重复④~⑧步骤的计算,直到满足要求为止。

四、程序框图

五、主要代码

[fn,pn,fi]=uigetfile(.txt,选择文件

);

I=load([pn

fn]);

x=I(:,1)

;y=I(:,2)

;X=I(:,3)

;Y=I(:,4)

;Z=I(:,5)

;

s=0;S=0;

for

i=1:3;

j=i+1;

sij=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);

Sij=sqrt((X(i)-X(j))^2+(Y(i)-Y(j))^2);

s=s+sij;

S=S+Sij;

end

m=S*1000/s;

f=153.24;

Xs0=(X(1)+X(2)+X(3)+X(4))/4;

Ys0=(Y(1)+Y(2)+Y(3)+Y(4))/4;

Zs0=m*f;

fai0=0;omig0=0;ka0=0;

for

v=1:+inf;

a1=cos(fai0)*cos(ka0)-sin(fai0)*sin(omig0)*sin(ka0);

a2=-cos(fai0)*sin(ka0)-sin(fai0)*sin(omig0)*cos(ka0);

a3=-sin(fai0)*cos(omig0);

b1=cos(omig0)*sin(ka0);

b2=cos(omig0)*cos(ka0);

b3=-sin(omig0);

c1=sin(fai0)*cos(ka0)+cos(fai0)*sin(omig0)*sin(ka0);

c2=-sin(fai0)*sin(ka0)+cos(fai0)*sin(omig0)*cos(ka0);

c3=cos(fai0)*cos(omig0);

R=[a1

a2

a3;b1

b2

b3;c1

c2

c3];

l=[];A=[];

for

h=1:4;

O=a1*(X(h)-Xs0)+b1*(Y(h)-Ys0)+c1*(Z(h)-Zs0);

P=a2*(X(h)-Xs0)+b2*(Y(h)-Ys0)+c2*(Z(h)-Zs0);

Q=a3*(X(h)-Xs0)+b3*(Y(h)-Ys0)+c3*(Z(h)-Zs0);

x1=-f*O/Q;

y1=-f*P/Q;

a11=(a1*f+a3*x(h))/Q;

a12=(b1*f+b3*x(h))/Q;

a13=(c1*f+c3*x(h))/Q;

a14=y(h)*sin(omig0)-(x(h)/f*(x(h)*cos(ka0)-y(h)*sin(ka0))+f*cos(ka0))*cos(omig0);

a15=-f*sin(ka0)-x(h)/f*(x(h)*sin(ka0)+y(h)*cos(ka0));

a16=y(h);

a21=(a2*f+a3*y(h))/Q;

a22=(b2*f+b3*y(h))/Q;

a23=(c2*f+c3*y(h))/Q;

a24=-x(h)*sin(omig0)-(y(h)/f*(x(h)*cos(ka0)-y(h)*sin(ka0))-f*sin(ka0))*cos(omig0);

a25=-f*cos(ka0)-y(h)/f*(x(h)*sin(ka0)+y(h)*cos(ka0));

a26=-x(h);

lx=x(h)-x1;

ly=y(h)-y1;

lh=[lx

ly]

;

Ah=[a11,a12,a13,a14,a15,a16;a21,a22,a23,a24,a25,a26];

A=[A;Ah];

l=[l;lh];

end

XX=inv(AA)*Al;

Xs0=Xs0+XX(1);

Ys0=Ys0+XX(2);

Zs0=Zs0+XX(3);

fai0=fai0+XX(4);

omig0=omig0+XX(5);

ka0=ka0+XX(6);

R=[a1,a2,a3;b1,b2,b3;c1,c2,c3]

Xs=Xs0

Ys=Ys0

Zs=Zs0

fai=fai0

omig=omig0

ka=ka0

If

abs(XX(4))<0.0000291b1,b2,b3;c1,c2,c3];

V=A*XX-l;

Qii=inv(AA);

m0=sqrt(VV/2);

mi=m0*sqrt(Qii);

m=diag(mi);

m=[m(1),m(2),m(3),m(4)/pi*180*3600,m(5)/pi*180*3600,m(6)/pi*180*3600];

mXs=m(1);mYs=m(2);mZs=m(3);mfai=m(4);momig=m(5);mka=m(6);

fp=fopen(

后方交会计算结果.txt,wt

);

fprintf(fp,迭代次数:%d/n,v);

fprintf(fp,/n旋转矩阵R:/n

);

[m,n]=size(R);

for

i=1:1:m

for

j=1:1:n

if

j==n

fprintf(fp,%g/n,R(i,j));

else

fprintf(fp,%g/t,R(i,j));

end

end

end

fprintf(fp,/n外方位元素解:/n

);

fprintf(fp,Xs=%g/t,Xs);fprintf(fp,Ys=%g/t,Ys);fprintf(fp,Zs=%g/n,Zs);

fprintf(fp,φ=%g/t,fai);fprintf(fp,ω=%g/t,omig);fprintf(fp,κ=%g/n,ka);

fprintf(fp,/n单位权中误差的值:mo=%g/n,m0);

fprintf(fp,/n外方位元素中误差为:/n

);

fprintf(fp,mXs=%g米/t,mXs);fprintf(fp,mYs=%g米/t,mYs);fprintf(fp,mZs=%g米/n,mZs);

fprintf(fp,mφ=%g秒/t,mfai);fprintf(fp,mω=%g秒/t,momig);fprintf(fp,mκ=%g秒/n,mka);

6、

实习结果

1、起算数据

2、运行结果

3、几次迭代的数据

TAG标签: