大圆航程计算实验报告_第1页
大圆航程计算实验报告_第2页
大圆航程计算实验报告_第3页
大圆航程计算实验报告_第4页
大圆航程计算实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、本科实验报告学 号 姓 名 专 业 实验名称 大圆航程计算实验一、摘要大圆航程计算实验,本实验主要描述了两地之间的飞行路线最短问题,可以找到最短的飞行路线,解决飞机航行问题。本实验给出了大圆航程计算实验的matlab实现,只要给出两地的经度及纬度,则可以计算出航点之间的距离,从而得出它们之间的最短飞行路线。二、实验目的及要求根据地球的模型,利用数学原理,找出一条两地的最短航线路程,给出matlab程序的实现,用于计算求出任意两地之间最短的大圆航程问题。 三、实验仪器设备计算机四、实验方案设计(一)原理描述 1、大远航程线在半径为 R的球面上给定两点 P1、P2,由 P1 到 P2长度最短的球面

2、曲线称为大圆航程线。 大圆航程线在球心O以及P1、P2所定平面上;大圆航程线位于过球心的平面与球面相交的大圆弧上。 大圆航程线长度计算公式 L = Ra其中,a是OP1与OP2之间夹角(单位:弧度)球心到P1(x1,y1,z1)和球心到P2(x2,y2,z2), 两向量所张成夹角a的计算方法2、经纬度转换为直角坐标公式是P点处球面法线和赤道面的夹角( 90o +90o).向北取正为北纬,向南取负为南纬. 是P点与地球自转轴所在平面与起始子午面的夹角( 180o +180o).由起始子午线起算,向东取正为东经,向西取负为西经。 x = R cos cosy = R cos sinz = R si

3、n(二)实验过程设计1. 首先查找到自己所在城市的经纬度,然后北京、上海、东京、旧金山、纽约任意选定一个城市2. 根据经纬度计算出相应的数据,然后进行处理3. Matlab程序编写。4. 利用给出的两地的经度和纬度,可以近似计算两地的飞行的航线的最短路程。(三)实验假设条件本实验的假设条件:两地之间的球面距离最短。(即通过两地(点)及球心的的大圆中两地的弧长距离最短)五、实验内容及步骤 (一)实验调试步骤1、地球图形绘制:(必要的原理介绍和程序)地球图形绘制程序如下:clc;R=6400; %圆半径theta=(-9:0.5:9)*pi/18;%theta角度范围fai=(-18:0.5:18

4、)*pi/18;%fai角度范围X=R*cos(theta)*cos(fai);Y=R*cos(theta)*sin(fai);Z=R*sin(theta)*ones(size(fai);colormap(0 0 1)%颜色调整,RGB配色,参数小于1即可调出各种颜色mesh(X,Y,Z)title(大圆航迹线计算);hold on;%保持图像2、大圆航程计算问题的matlab实现(必要的原理介绍和程序)【问题】从自己家乡飞往以下任一城市(北京上海东京旧金山纽约)的大圆航线。航点纬度经度北京北纬40o东经116o上海北纬31o东经122 o东京北纬36o东经140 o旧金山北纬37o西经123

5、 o纽约北纬41o西经76o3、球面上大圆航程图形绘制(必要的原理介绍和程序)我家乡山东烟台的经纬度为:北纬37o,东经121o实验过程中用到的m文件如下: airline.m %用来画圆跟大圆航程,显示航程 distance.m %用来计算两个点之间的大圆航程 line0.m%在圆上画出大圆航程 transform.m %将经纬度转化成直角坐标 drawsphere.m%用来画球面1. airline.mclc;drawsphere();hold on;p1=37 121 %山东烟台 东经:121 北纬:37p2=41 -76 %New Yorkd=distance(p1,p2)op1=tr

6、ansform(p1);op2=transform(p2);format short gline0(op1,op2)2. distance.mfunction d=distance(p1,p2)R=6400+10; theta=p1(1)*pi/180;fai=p1(2)*pi/180;x1=R*cos(theta)*cos(fai); y1=R*cos(theta)*sin(fai);z1=R*sin(theta);pp1=x1,y1,z1;theta=p2(1)*pi/180;fai=p2(2)*pi/180;x2=R*cos(theta)*cos(fai); y2=R*cos(theta

7、)*sin(fai);z2=R*sin(theta);pp2=x2,y2,z2;d=R*acos(pp1*pp2/R2);3. line0.mfunction d=line0(p1,p2)p=p1;p2;n=2;r=norm(p1);for k=1:7 q1=p(1:n-1,:); q2=p(2:n,:); e=0.5*(q1+q2); for j=1:n-1 e(j,:)=r*e(j,:)/norm(e(j,:); end n=2*n-1; p(1:2:n,:)=p; p(2:2:n-1,:)=e;endx1=p1(1);x=p(:,1);x2=p2(1);y1=p1(2);y=p(:,2)

8、;y2=p2(2);z1=p1(3);z=p(:,3);z2=p2(3);plot3(x1,y1,z1,r,x,y,z,b,LineWidth,2)d=r*acos(p1*p2/r2);4. transform.mfunction op1=transform(p1)R=6400+10;theta=p1(1)*pi/180;fai=p1(2)*pi/180;x1=R*cos(theta)*cos(fai);y1=R*cos(theta)*sin(fai);z1=R*sin(theta);op1=x1,y1,z1;5. drawsphere.mfunction drawsphere()R=6400

9、;theta=(-9:1.5:9)*pi/18;fai=(-18:1.5:18)*pi/18;X=R*cos(theta)*cos(fai);Y=R*cos(theta)*sin(fai);Z=R*sin(theta)*ones(size(fai);colormap(0 0.8 0)mesh(X,Y,Z)title(大圆航线图)(二)实验调试过程中存在的问题及解决方法1、在实验中存在以下问题a) Function函数的使用;b) 将地点坐标的经纬度形式改为三维向量形式、c) 对线条的处理2、解决问题的思路及方法解决方法l Function函数的使用方法:新建m文件把function函数复制进去

10、;保存的文件名与函数名相同,保存到当前工作目录,然后在命令窗口调用function函数。l 将经纬度转换成向量函数:在之前已经写好的距离函数中截取一部分得到向量函数,即transform.ml 颜色线宽的表示方法:plot(x1, y1, 选项1, x2, y2, 选项2, )上面的plot格式中,选项是指为了区分多条画出曲线的 颜色,线型及标记点而设定的曲线的属性.MATLAB在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来颜色属性r 红色 m 粉红g 绿色 c 青色b 兰色 w 白色y 黄色 k 黑色线型属性- 实线 - 虚线: 点线 -. 点划线标记点属性. 用点号绘制各数据点 用上三角绘制各数据点+ 用+号绘制各数据点 v 用下三角绘制各数据点* 用*号绘制各数据点 用右三角绘制各数据点 . 用.号绘制各数据点 用左三角绘制各数据点s或squar 用正方形绘制各数据点p 用五角星绘制各数据点d或diamond用菱 形绘制各数据点 h 用六角星绘制各数

温馨提示

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

评论

0/150

提交评论