相对定向课程设计报告_第1页
相对定向课程设计报告_第2页
相对定向课程设计报告_第3页
相对定向课程设计报告_第4页
相对定向课程设计报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告相对定向元素计算2023年 5月 15日设计任务 3作业原理 33条件及数据-------------------------------------------------------------------- 3作业过程

--------------------------------------------------------------------------- 3程序流程

----------------------------------------------------------------------------- 4源程序

----------------------------------------------------------------------------- 5计算结果

--------------------------------------------------------------------------- 10心得体会与建议 10设计任务承受连续像对相对定向方法,计算出两张像片的相对定向元素,并运用一种高级语言解决此问题。作业原理解析法相对定向原理点的三维坐标。Bx B BY Z111相对定向的共面条件:〔S11S22〕=,即F=X Y Z111X Y Z2 2 3B,B片的五个定向元素

,,,

b,b

两个基线元素改为角度形Y Z 2 2 2 Y Z式表示,如下,μ和ν为极限的偏角和倾角。b b·tanb · Y X X bb X ·tanb ·Z cos Xbbbbb1XXX将上式代入共面条件方程,B=m·b,F=X1XY1YZZ=bXX1XY1YZ1=0222222Z条件及数据左片右片点号x(mm)y(mm)x(mm)y(mm)1-6.0911.983左片右片点号x(mm)y(mm)x(mm)y(mm)1-6.0911.983-5.564-3.20227.0980.9247.694-2.83034.5381.0685.098-2.87846.8581.2087.429-2.5785-10.050-0.514-9.152-5.6426-8.0891.293-7.441-3.981作业过程原始数据的输入及像点坐标的预处理把在像点坐标量测仪器上量测出的各定向点的坐标换算成以像主点为原点的像点坐标并作系统误差改正。确定相对定向元素的初始值:对于连续像对法进展相对定向,假设是航线的第一个像对,则左像片的角元素为零;初始值取零,基线重量by、bz也取零,bx取标准点位第一点的左右视差,即bx=(x1-x2)1。计算左片的方向余弦值,组成旋转矩阵R1,计算左片各像点的像空间关心坐标系X1,Y1,Z1。计算右片的方向余弦值,组成旋转矩阵R2,计算基线重量by和bz。计算右片各像点的空间关心坐标X2,Y2,Z2,计算各项点的投影系数N,N2Q;逐点组成误差方程并法化,完成法方程系数矩阵和常数项矩阵的计算。解法方程,求出相对定向元素的改正数。计算相对定向元素的值。依据法方程,由式X=〔AtA〕-1ATL解求外方位元素改正数,并与相应的近似值求和,得到外方位元素的近似值。0.00003rad,如满足条件,则完毕相对定向计算。4.4~4.9。程序流程源程序#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include<iomanip.h>#include<math.h>const int N=6;inti,j,k;doubleb,x[6][3],y[6][3],z[6][3]={0};//求转置矩阵template<typenameT1,typenameT2>voidTranspose(T1*mat1,T2*mat2,inta,intb){for(i=0;i<a;i++)for(j=0;j<b;j++)mat2[j][i]=mat1[i][j];return;}//求矩阵的乘积template<typenameT1,typenameT2>voidArray_mul(T1*mat1,T2*mat2,T2*result,inta,intb,intc){ inti,j,k;for(i=0;i<a;i++){for(j=0;j<c;j++){result[i][j]=0;for(k=0;k<b;k++)result[i][j]+=mat1[i][k]*mat2[k][j];}}return;}//求逆矩阵voidswap(double*a,double*b){doublec;c=*a;*a=*b;*b=c;};Inverse(doubleA[5][5],intn){inti,j,k;doubled;intJS[N],IS[N];for(k=0;k<n;k++){d=0;for(i=k;i<n;i++)for(j=k;j<n;j++){if(fabs(A[i][j])>d){d=fabs(A[i][j]);IS[k]=i;JS[k]=j;};};if(d+1.0==1.0)return0;if(IS[k]!=k)for(j=0;j<n;j++)swap(&A[k][j],&A[IS[k]][j]);if(JS[k]!=k)for(i=0;i<n;i++)swap(&A[i][k],&A[i][JS[k]]);A[k][k]=1/A[k][k];for(j=0;j<n;j++)if(j!=k)A[k][j]=A[k][j]*A[k][k];for(i=0;i<n;i++)if(i!=k)for(j=0;j<n;j++)if(j!=k)A[i][j]=A[i][j]-A[i][k]*A[k][j];for(i=0;i<n;i++)if(i!=k)A[i][k]=-A[i][k]*A[k][k];};for(k=n-1;k>=0;k--){for(j=0;j<n;j++)if(JS[k]!=k)swap(&A[k][j],&A[JS[k]][j]);for(i=0;i<n;i++)if(IS[k]!=k)swap(&A[i][k],&A[i][IS[k]]);};return1;}//原始数据导入voidInput{ doublem;j=0;i=0;ifstreamf1(“左片各点像空间坐标.txt“);if(!f1){cerr<<“左片各点像空间坐标.txtfilenotopen!“<<endl;exit(1);}while(f1>>m){x[i][j++]=m;if(j>=3){i++;j=0;}}f1.close;cout<<“左片各点像空间坐标坐标为:“<<endl;for(i=0;i<6;i++)for(j=0;j<3;j++){if(j%3==0)cout<<endl;cout<<setw(8)<<x[i][j];}cout<<endl;i=0;j=0;ifstreamf2(“右片各点像空间坐标.txt“);if(!f2){cerr<<“右片像各点空间坐标.txtfilenotopen!“<<endl;exit(1);}while(f2>>m){y[i][j++]=m;if(j>=3){i++;j=0;}}f2.close;cout<<“右片各点像空间坐标坐标为:“<<endl;for(i=0;i<6;i++)for(j=0;j<3;j++){if(j%3==0)cout<<endl;cout<<setw(8)<<y[i][j];}cout<<endl;b=0.000527;}voidmain{double a[5]={0},d[5]={0}, R[3][3], N[2][6],A[6][5],l[6][1],ATA[5][5],ATl[5][1],DG[5][1];intt=0;Input;do{

AT[5][6],t++;for(i=0;i<5;i++)a[i]=a[i]+d[i];//计算旋转矩阵R[0][0]=cos(a[0])*cos(a[2])-sin(a[0])*sin(a[1])*sin(a[2]);R[0][1]=-cos(a[0])*sin(a[2])-sin(a[0])*sin(a[1])*cos(a[2]);R[0][2]=-sin(a[0])*cos(a[1]);R[1][0]=cos(a[1])*sin(a[2]);R[1][1]=cos(a[1])*cos(a[2]);R[1][2]=-sin(a[1]);R[2][0]=sin(a[0])*cos(a[2])+cos(a[0])*sin(a[1])*sin(a[2]);R[2][1]=-sin(a[0])*sin(a[2])+cos(a[0])*sin(a[1])*cos(a[2]);R[2][2]=cos(a[0])*cos(a[1]);//计算右片各点空间关心坐标for(i=0;i<6;i++)for(j=0;j<3;j++)z[i][j]=R[j][0]*y[i][0]+R[j][1]*y[i][1]+R[j][2]*y[i][2];for(i=0;i<6;i++){N[0][i]=(b*z[i][2]-b*a[4]*z[i][0])/(x[i][0]*z[i][2]-z[i][0]*x[i][2]);N[1][i]=(b*x[i][2]-b*a[4]*x[i][0])/(x[i][0]*z[i][2]-z[i][0]*x[i][2]);}for(i=0;i<6;i++)l[i][0]=N[0][i]*x[i][1]-N[1][i]*z[i][1]-b*a[3];for(i=0;i<6;i++){A[i][0]=-z[i][0]*z[i][1]/z[i][2]*N[1][i];A[i][1]=-(z[i][2]+z[i][1]*z[i][1]/z[i][2])*N[1][i];A[i][2]=z[i][0]*N[1][i];A[i][3]=b;A[i][4]=-z[i][1]*b/z[i][2];}Transpose(A,AT,6,5);Array_mul(AT,A,ATA,5,6,5);Inverse(ATA,5);Array_mul(AT,l,ATl,5,6,1);Array_mul(ATA,ATl,D,5,5,1);for(i=0;i<5;i++)for(j=0;j<1;j++)d[i]=DG[i][j];}while((fabs(d[0])>0.00003)||(fabs(d[1])>0.00003)||(fabs(d[2])>0.00003)||(fabs(d[3])>0.00003)||(fabs(d[4])>0.00003));cout<<“迭代次数为:“<<t<<endl;cout<<“未知数的解为:“<<endl;cout<<“ψ=“<<a[0]<<“,“<<“ω=“<<a[1]<<“,“<<“κ=“<<a[2]<<“,“cout<<“μ=“<<a[3]<<“,“<<“γ=“<<a[4]<<“.“<<endlofstreamf3(“相对定向元素计算结果.txt“);if(!f3){cerr<<“相对定向元素计算结果.txtfilenotopen!“<<endl;exit(1);}f3<<“迭代次数为:“<<t<<endl;f3<<“相对定向元素的值为:“<<endl;f3<<“ψ=“<<a[0]<<“,“<<“ω=“<<a[1]<<“,“<<“κ=“<<a[2]<<“,“f3<<“bv=“<<b*a[3]<<“,“<<“bw=“<<b*a[4]<<“.“<<endl;f3.close;}计算结果迭代次数为:6相对定向元素的值为:ψ=-0.042273,ω=-0.030104,κ=0.0974731,bv=0.0480279m,bw=-0.0165497m.心得体会与建议提到心得体会,首先心里冒出一个词—“内疚原理和技术上,都不用很费心,相对难度没那么大。但是,此次作业我又延期了。这点格外己都厌烦极了自己这个毛病,以后肯定要改掉这个坏习惯

温馨提示

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

评论

0/150

提交评论