卫星导航定位算法与程序设计(2014) - 第1课
导航与定位系统课程设计

导航与定位系统课程设计一、课程目标知识目标:1. 理解导航与定位系统的基本概念,掌握其工作原理;2. 了解全球定位系统(GPS)在我国的应用领域和发展趋势;3. 掌握导航与定位技术在生活中的应用及其对科技进步的贡献。
技能目标:1. 学会使用GPS设备进行定位和导航;2. 能够运用所学知识解决简单的导航与定位问题;3. 培养学生的空间想象能力和逻辑思维能力。
情感态度价值观目标:1. 培养学生对导航与定位技术的兴趣,激发其探索科技的热情;2. 增强学生的团队合作意识,使其在合作学习中共同进步;3. 培养学生关注社会热点问题,提高其社会责任感和使命感。
课程性质:本课程为科普性质课程,旨在让学生了解导航与定位技术的基本原理和应用,培养学生的科技素养。
学生特点:六年级学生具有较强的求知欲和好奇心,具备一定的合作能力和自主学习能力。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,以生动有趣的方式传授知识,引导学生主动参与课堂,提高其学习兴趣和积极性。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容1. 导航与定位系统的基本概念与原理- 导航与定位的定义与分类- 全球定位系统(GPS)的构成与工作原理- 我国导航与定位技术的发展概况2. GPS定位技术在生活中的应用- 交通导航:汽车导航、手机导航等- 地理信息系统(GIS):地图制作、城市规划等- 灾难救援:地震、山洪等自然灾害救援3. 导航与定位技术的未来发展- 北斗导航系统的发展与应用- 车联网技术的兴起与应用- 室内定位技术的发展趋势4. 实践活动与案例分析- 使用GPS设备进行定位与导航操作- 分析导航与定位技术在生活中的具体应用案例- 探讨导航与定位技术对社会发展的积极影响教学内容依据课程目标进行选择和组织,确保科学性和系统性。
教学大纲明确教学内容安排和进度,结合课本相关章节,包括导航与定位基本概念、技术应用、未来发展趋势等。
卫星导航定位算法与程序设计_常用参数和公式讲解

《卫星导航定位算法与程序设计》课程常用参数和常用公式一览编制人:刘晖最后更新:2010年11月26日1、常用参考框架的几何和物理参数1.1 ITRFyy 主要的大地测量常数长半轴a=6.3781366×106m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球动力因子J2=1.0826359×10-3;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.25642;椭球正常重力位U0=6.26368560×107 m2/s2;γ=9.7803278 m/s2;赤道正常重力e光速c=2.99792458×108 m/s。
1.2 GTRF主要的大地测量常数长半轴a=6.37813655×106 m;地球引力常数GM=3.986004415×1014 m3/s2;地球动力因子J2=1.0826267×10-3;扁率1/f =298.25769。
1.3 WGS84(Gwwww)主要的大地测量常数长半轴a=6.3781370×106 m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.257223563;椭球正常重力位U0=62636860.8497 m2/s2;γ=9.7803267714m/s2;赤道正常重力e短半轴b=6356752.3142m;引力位二阶谐系数2,0C=-484.16685×10-6;第一偏心率平方2e=0.00669437999013;e'=0.006739496742227。
第二偏心率平方21.4 PZ90 主要的大地测量常数长半轴a=6.378136×106m;地球引力常数GM=3.9860044×1014 m3/s2;fM=3.5×108 m3/s2;地球大气引力常数a地球自转角速度ω=7.292115×10-5 rad/s。
卫星导航定位程序设计

实习题
• 采用C/C++语言,实现矩阵的加、减和乘 法运算,要求每种运算用函数实现。
第二章 时间算法
时间算法 > 概述
• 时间的概念
– 时间,是过程的意识经验,是动作或事件发生 时所经历的过程。
– 时间还是表示这些动作或事件的连续性的一维。
• 时间度量的两要素
N modINT JD 0.5,7 星期几
时间算法 > 常用时间算法(3/4)
• 日历时间与GPS时间间的相互转换
– 由日历时间转换到GPS时间(两步)
• 第一步:计算GPS周
GPS WEEK INT JD 2444244.5 7
• 第二步:计算一周内的秒数
– 由GPS时间转换到日历时间(两步)
– 起点 – 尺度
• 时间系统
– 太阳时、恒星时、力学时、原子时等
• 时间与卫星导航定位的关系
时间算法 > 时间的表示方法(1/2)
• 历法(日历表示法)
– 表示方法:年、月、日、时、分、秒。 – 基础:建立在地球绕日公转、月球绕地公转等 – 特点:反映季节变化,与日常生活密切相关;
非连续,不利于数学表达。
概述 > 教学
• 教学方法:课堂讲授+实习
– 课堂讲授 - 每周3学时 – 实习 - 每周4学时
• 要求
– 必须参加所有教学过程
• 考核方法
– 平时实习成果(30%) – 综合成果(40%) – 出勤(30%)
概述 > 参考文献
• 刘基余等,全球定位系统原理及其应用, 测绘出版社,1993。
• 李征航,空间定位技术及应用,武汉大学 讲义,2001。
卫星导航与定位系统基本定位算法

卫星导航与定位系统基本定位算法卫星导航与定位系统是一种利用卫星进行定位和导航的技术系统。
其基本原理是将卫星发射到空间中,通过卫星与地面站之间的通信,获取由卫星发射的信号,并利用这些信号计算出接收器所处的位置。
在卫星导航与定位系统中,基本的定位算法主要包括距离测量、时间测量、角度测量以及协作测量等。
首先,距离测量是卫星导航与定位系统中最基本的定位算法之一、在距离测量中,接收器通过接收来自卫星的信号,计算信号传播的时间,并以此推断出接收器与卫星之间的距离。
距离测量的方法主要包括伪距测量和载波相位测量。
伪距测量是利用信号传播时间与光速之间的线性关系,计算出接收器与卫星之间的距离。
而载波相位测量则是通过计算接收信号的相位差,进一步提高距离测量的精度。
其次,时间测量也是卫星导航与定位系统中常用的定位算法之一、在时间测量中,接收器通过接收来自卫星的定位信号和与卫星同步的精确时间信号,根据信号的传播时间差计算出接收器的定位信息。
时间测量的准确性对于卫星导航与定位系统的定位精度具有重要影响。
因此,接收器需要具备高精度的时钟设备。
此外,角度测量也是卫星导航与定位系统中一种常用的定位算法。
角度测量是通过测量接收器与卫星之间的夹角,计算出接收器所处的位置。
角度测量的方法主要包括方位角测量和仰角测量。
方位角测量是通过测量接收器与卫星之间的方位角,计算接收器的经度位置。
而仰角测量则是通过测量接收器与卫星之间的仰角,计算接收器的纬度位置。
最后,协作测量是卫星导航与定位系统中一种相对较新的定位算法。
协作测量是指通过多个接收器之间的协作,共同对卫星信号进行测量,并计算出各个接收器所处的位置。
协作测量可以提高定位精度,并且对于一些特殊环境下的定位任务具有重要意义,如建筑物高楼、山区等。
总之,卫星导航与定位系统的基本定位算法包括距离测量、时间测量、角度测量和协作测量等。
这些定位算法通过计算卫星信号的传播时间、接收器与卫星之间的夹角等参数,计算出接收器所处的位置信息。
卫星导航定位实验报告

China University of Mining and Technology 《卫星导航定位算法与程序设计》实验报告学号: 07122825姓名:王亚亚班级:测绘12—1指导老师:王潜心/张秋昭/刘志平中国矿业大学环境与测绘学院2015-07-01实验一编程实现读取下载的星历一、实验要求:读取RINEX N 文件,将所有星历放到一个列表(数组)中。
并输出和自己学号相关的卫星编号的星历文件信息。
读取RINEX O文件,并输出指定时刻的观测信息。
二、实验步骤:1、下载2014年的广播星历文件和观测值文件,下载地址如下:ftp:///gps/data/daily/2014/2、要求每一位同学按照与自己学号后三位一致的年积日的数据文件和星历文件,站点的选择必须选择与姓氏首字母相同的站点的数据,以王小康同学为例,学号:07123077,需下载077那天的数据。
有些同学的学号365<后三位<730,则取学号后三位-365,以姜平同学为例:学号10124455,下载455-365=90 天的数据,有些同学的学号730<后三位<=999,则取学号后三位-730,以万伟同学为例:学号:07122854,则下载854-730 = 124天的数据。
可以选择wnhu0124.14n wnhu0124.14o 根据上述要求我下载了2014年第95天的数据,选择其中的wsrt0950.14n和wsrt0950.14o星历文件。
指定时刻(学号后五位对应在年积日对应的秒最相近时刻)的观测值信息如张良09123881,后五位23881,取23881-3600*6= 2281秒,6点38分01秒,最近的历元应该是6点38分00秒的数据。
根据计算与我最接近的观测时刻为2014年4月5日6点20分30.00秒。
3、编程思路:利用rinex函数读取星历文件中第14颗卫星的星历数据并输出显示。
对数据执行762次循环找到对应的2014年4月5日6点20分30.00秒,并输出观测值。
卫星导航定位算法与程序设计(2014) - 第1课

12
软件开发前的准备工作
• 问题定义
– 必须弄清楚你想要解决的问题是什么 – 本课程的问题定义:实现事后处理的GPS标准单点定 位、测速的软件。
13
准备工作
• 需求分析
– 需求详细描述了一个软件系统需要解决的问题
• 明确的需求可以保证是由用户而不是程序员决定系统的功能。 • 明确的需求也可以避免引起争议。 • IBM、GTE、TRW 的数据表明.修正在总体结构阶段发现的 需求错误,将比当时就发现并 修正的成本要高出 5 倍,如果 是在编码阶段,要高出 10 倍,在单元或系统测试阶段,高 20 倍, 在验收测试阶段,高 50 倍,而在维护阶段,竟要比原来 高出多达 100 倍! • 充分进行需求分析是一个项目成功的关键
时间与坐标转换算法 卫星位置与速度计算方法 误差改正算法 。。。。。。
掌握C/C++程序设计方法
项目设计方法 数据结构 编码方法 调试方法
3
课程内容①
软件创建方法与基本过程 C/C++程序设计方法:开发工具,编译,调试 C/C++编码标准 基本算法
5
课程安排①
讲 课 内 容 及 时 数 日/月 至 日/月 周 次 学 时 练习内容及时数 习题课 等 课堂 时数 课外 时数 实验(上机)内容及时数 课堂实习(实验、上 机)内容 课堂 时数 (教 材 章 节 、 名 称)
课 外 时 数
17/1021/10 24/1028/10 31/104/11 7/1111/11 14/1118/11 21/1125/11 28/112/12 5/129/12
有关时间的算法 有关坐标的算法 矩阵运算
卫星导航定位算法与程序设计讲义

第1章
1.1 GPS 算法与程序设计 .......................................................................................... 1 1.2 MATLAB ................................................................................................................ 1 1.3 课程目的及内容 ................................................................................................. 3 第2章 程序设计基础........................................................................................ 4 2.1 程序设计基本思想 ............................................................................................. 4
卫星导航定位算法与程序设计_单点定位程序流程

GPS 单点定位程序流程、计算流程读取RINEX N 文件,将所有星历放到一个列表(数组) ephlst 中。
数据预处理根据epoch 中的卫星号和历元时刻T R 在ephlst 查找相应的卫星星历,1、 2、 读取RINEX 以件,读取一个历元观测值epoch3、 4、 准则T R TOE3600.0s 。
程序初始化,置测站概略位置为X r ,接收机钟差初值dt r 。
X oX 0 X YdtZ 第一次迭代,取X 。
o cdt r 00 05、选择epoch 中一颗卫星S i 观测值,设其伪距为 S6、计算卫星§的信号发射的概略时刻T*方法如下:a )卫星S i 的信号传播时间:0S Si / c dt r dt Si ;dt Si 为卫星钟差,需要进行相对论改正;b )卫星S i 的信号发射时刻:T S T RSi;c )卫星S i在T Si 时刻的位置X ST SiX SY SiZ Sid )对卫星位置X Si T Si 进行地球自转改正,得到Xje )根据X W i T Si 和测站概略位置X r 计算卫星和测站的几何距离 R Sf )根据几何距离R Si 求信号传播时间IS R S /cg ) 如果/ o S 10 7,则退出迭代。
T 1SiT R :即为卫星信号发射时刻h )否则0siSi,回带到b )进行迭代。
7、 求卫星§方向余弦V V siVW S77Ss入入 I S 丫丫 sZZ s At o'S —,b iS ,炬’S,b ; 1R iR S R S8、 求卫星S 在观测方程式中的余数项:其中:Si ——卫星S j 的伪距观测值;R Si ——卫星S 到测站的几何距离;c dt S 以米表示的卫星S i 的钟差;d trop ——对流层延迟改正量,单位米,用简化的hopfield 模型计算;diono ——电离层延迟改正量,单位米,采用无电离层伪距组合观测值时,此项为 0;D RTCM ——对伪距的差分改正值,此处为 0;10、 重复第6— 9步,计算每颗卫星的系数和余数项11、 将所有卫星的系数组成误差方程,以x,y,z,cdt r为未知参数进行求解,形式应该是:AX Lb S 0 t 1So 玻。
卫星导航定位算法与程序设计_常用参数和公式讲解

卫星导航定位算法与程序设计_常用参数和公式讲解卫星导航定位算法是通过接收多颗卫星发出的信号来确定接收器的位置的算法。
常用的卫星导航系统有美国的全球定位系统(GPS)、俄罗斯的格洛纳斯系统和欧洲的伽利略系统等。
下面将讲解卫星导航定位算法中的常用参数和公式。
1.GPS系统参数GPS系统中的常用参数包括信号传播速度、卫星时钟频率、卫星位置、接收机时钟误差等。
信号传播速度是指电磁波在真空中传播的速度,约为3×10^8米/秒。
卫星时钟频率是指卫星发射信号的频率,它与卫星位置和传播速度有关。
卫星位置是指卫星在天空中的位置坐标,它是通过星历数据确定的。
接收机时钟误差是指接收器时钟与它所处的卫星系统时钟之间的差异。
2.GPS接收机参数GPS接收机中的常用参数包括接收机观测量、接收机时钟和接收机位置等。
接收机观测量是指接收机接收到的卫星信号的信息,包括卫星信号的到达时间、信号强度等。
接收机时钟是指接收机内部的时钟,它用于测量到达时间和计算位置信息。
接收机位置是指接收机的地理位置坐标,它是待求解的定位参数,通过卫星信号的到达时间和卫星位置计算得出。
3.定位算法卫星导航定位算法主要包括距离测量和位置计算两个步骤。
距离测量是通过测量接收机与卫星之间的距离,从而确定接收机与卫星的空间几何关系。
常用的距离测量方法有伪距测量和载波相位测量两种。
伪距测量是通过测量卫星信号的传播时间来计算距离,利用的是卫星信号中的导航消息和接收机观测量。
载波相位测量是通过测量卫星信号的相位差来计算距离,具有更高的精度,但需要更复杂的算法和硬件支持。
位置计算是根据距离测量结果和卫星位置信息,利用三角测量原理来计算接收机的位置。
常用的位置计算方法有单点定位和差分定位两种。
单点定位是通过接收机与至少四颗卫星之间的距离测量结果,利用三边测量原理计算接收机的位置。
差分定位是在单点定位的基础上,利用额外的参考站测量数据对接收机的位置进行修正,提高定位精度。
卫星导航定位程序设计

卫星导航定位程序设计
1.接收器硬件设计
接收器硬件设计主要包括天线、收发器和处理器等组件的选择和连接。
天线是接收卫星信号的设备,需要选择合适的频段和增益。
收发器用于接
收和发送信号,需要选择能够接收卫星导航信号的收发器。
处理器是用于
处理和计算接收到的信号,需要选择能够处理卫星导航算法的处理器。
2.接收器软件设计
接收器软件设计主要包括信号接收和解码、数据处理和位置计算等功
能的实现。
信号接收和解码需要将接收到的卫星信号转换成数字信号,并
解码出导航数据。
数据处理包括对接收到的导航数据进行误差校正和数据
筛选等处理。
位置计算是根据接收到的导航数据计算出接收器所处位置的
过程,常用的定位算法有精确度位置系统(PPP)和差分GPS(DGPS)等。
3.位置数据处理和计算
4.界面设计与用户交互
总结:
卫星导航定位程序设计涉及到接收器硬件和软件的设计,以及位置数
据的处理和计算。
在接收器硬件设计中,需要选择合适的天线、收发器和
处理器等组件。
在接收器软件设计中,需要实现信号接收和解码、数据处
理和位置计算等功能。
在位置数据处理和计算中,需要进行数据预处理、
数据校正和数据融合等过程。
在界面设计与用户交互中,需要设计简洁明
了的界面,提供实时的位置信息,并方便用户进行操作和查询。
卫星导航定位算法与程序设计讲义

卫星导航定位算法与程序设计讲义导航定位是指通过卫星导航系统获取位置信息的过程。
在卫星导航系统中,定位算法和程序设计起着至关重要的作用。
本讲义将介绍卫星导航定位算法的基本原理和程序设计的要点。
一、卫星导航定位算法基本原理接收信号:接收器接收到卫星发射的信号,通过测量信号的到达时间来计算接收器与卫星之间的距离。
由于信号传播速度是已知的,所以可以通过测量时间的差异来计算距离。
伪距测量:伪距是指信号从卫星发射到接收器接收到的时间乘以光速。
接收器以测量接收信号的到达时间为基础,通过乘以光速得到信号传播的距离。
位置计算:通过接收到的多颗卫星的伪距测量结果,结合卫星的位置和钟差等信息,使用三角定位或者加权最小二乘法等方法来计算出接收器的位置。
二、卫星导航定位程序设计要点接收信号的处理:接收信号的处理包括信号接收和时间测量两个方面。
在接收信号的过程中,需要考虑信号的衰减和干扰等问题,可以通过信号处理算法来提高信号的质量。
时间测量可以使用硬件设备或者操作系统提供的时间戳功能来实现。
伪距测量的计算:伪距测量的计算需要根据接收到的信号和接收器的时钟同步信息来计算出信号传播的时间,并乘以光速得到伪距。
在计算过程中需要考虑钟差和多径干扰等因素,并使用滤波算法来提高测量的准确性。
位置计算的实现:位置计算的实现可以使用三角定位或者加权最小二乘法等方法。
在使用三角定位时,需要知道至少三颗卫星的位置信息和伪距测量结果。
在使用加权最小二乘法时,可以通过考虑误差权重来提高位置计算的精度。
三、总结卫星导航定位算法和程序设计是卫星导航系统的核心部分。
通过了解卫星导航定位算法的基本原理和程序设计的要点,可以更好地理解和实现卫星导航定位功能。
同时,还可以通过改进算法和程序设计来提高定位的准确性和稳定性。
GPS卫星定位坐标计算及程序设计

Ai X i li 0
(3-5)
对式(3-5)求解,便得到接收机地心坐标的唯一
解
X i Ai1li
4.程序设计
• 1、GPS时间转换程序 • 2、利用广播星历计算卫星坐标程序 • 3、地面点近似坐标计算程序
5.实例计算和精度分析
• 以2009年5月7日南京工业大学江浦校区控 制网20号控制点观测数据为例,来说明如 何利用该程序计算卫星坐标和地面点的近 似坐标。该数据利用华测GPS接收机观测, 观测时间为2小时。
• 3.新儒略日(Modified Julian Day-MJD):从儒略 日中减去2400000.5天来得到,给出的是从1858年11 月17日子夜开始的天数。特点是数值比儒略日小。
• 4.年积日(Day Of Year-DOY):从当前1月1日开始 的天数。
• 5.GPS时(GPS Time):以1980年1月6日子夜为起点, 用周数和周内秒数来表示,为GPS系统内部计时法。
2.3GPS卫星的信号
• 导航电文 导航电文是包含有关卫星的星历、卫星工作状态 时间系统、卫星钟运行状态、轨道摄动改正、大 气折射改正和C/A码捕获P码等导航信息的数据码 (或D码),是利用GPS进行定位的数据基础。 导航电文的内容包括遥测码(TLW)、转换码 (HOW)、第一数据块、第二数据块和第三数据块 5部分。
RINEX数据格式
目前,RINEX格式已成为各厂商、学校、研究单 位在编制软件时采用的标准输入格式。RINEX格式 是纯ASCII码文本文件,共包含4个文件:
(1)观测数据文件:ssssdddf.yyo (2)导航文件:ssssdddf.yyn (3)气象数据文件:ssssdddf.yym (4)GLONASS数据文件:ssssdddf.yyg 其中:ssss——4个字母的测站名;
卫星导航定位算法与程序设计_单点定位程序流程

卫星导航定位算法与程序设计_单点定位程序流程单点定位是卫星导航中最基本的应用,其基本思路是通过接收多颗卫星发送的信号,计算出接收点的位置。
下面是单点定位的程序流程,包括信号接收、时间同步、伪距测量、卫星位置计算和接收点位置计算等过程。
1.信号接收首先,需要接收卫星发送的信号。
接收设备通常包括天线、前端放大器和接收机等部分。
天线用于接收来自卫星的信号,并将其转化为电信号。
前端放大器用于增强信号的强度。
接收机用于解调信号,并转化为数字信号。
2.时间同步接收到的信号包含了卫星发射时的时间信息。
根据信号传播的速度,可以计算信号传播的时间,从而获取卫星发送信号的时刻。
由于信号传播时间非常短(大约为纳秒级别),所以需要高精度的时钟和时间同步技术来确保准确性。
3.伪距测量根据接收到的时间信息,可以计算接收点到卫星的距离,称为伪距。
计算伪距需要考虑信号传播的时间以及信号在大气中的传播速度变化等因素。
此外,由于信号在传播过程中会受到噪声、多径效应等干扰,需要进行滤波和信号处理等技术来提高测量的准确性。
4.卫星位置计算卫星的位置信息是通过星历数据进行描述的。
星历数据包含了卫星的轨道参数、时刻信息等。
根据接收到的伪距数据,可以通过解算的方法计算出卫星的位置。
解算的方法有很多种,常用的有最小二乘法、扩展卡尔曼滤波等。
通过解算,可以得到每颗卫星的位置坐标。
5.接收点位置计算根据接收到多颗卫星的位置信息和伪距数据,可以通过三角测量的方法计算出接收点的位置坐标。
三角测量的原理是利用多个已知位置的点,通过测量到这些点的距离,计算出目标点的位置。
根据接收点到不同卫星的伪距数据,可以得到多个方程,通过求解这些方程可以计算出接收点的坐标。
6.坐标转换和精度提高计算出接收点的坐标后,可以进行坐标转换,将其转化为地理坐标或其他坐标系。
此外,由于测量误差和卫星位置误差等因素,单点定位的精度一般较低。
为了提高精度,可以采用差分定位、精密定位等方法。
卫星导航定位算法与程序设计_常用参数和公式讲解

《卫星导航定位算法与程序设计》课程常用参数和常用公式一览编制人:刘晖最后更新:2010年11月26日1、常用参考框架的几何和物理参数1.1 ITRFyy 主要的大地测量常数长半轴a=6.3781366×106m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球动力因子J2=1.0826359×10-3;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.25642;椭球正常重力位U0=6.26368560×107 m2/s2;γ=9.7803278 m/s2;赤道正常重力e光速c=2.99792458×108 m/s。
1.2 GTRF主要的大地测量常数长半轴a=6.37813655×106 m;地球引力常数GM=3.986004415×1014 m3/s2;地球动力因子J2=1.0826267×10-3;扁率1/f =298.25769。
1.3 WGS84(Gwwww)主要的大地测量常数长半轴a=6.3781370×106 m;地球引力常数(含大气层)GM=3.986004418×1014 m3/s2;地球自转角速度ω=7.292115×10-5 rad/s。
扁率1/f =298.257223563;椭球正常重力位U0=62636860.8497 m2/s2;γ=9.7803267714m/s2;赤道正常重力e短半轴b=6356752.3142m;引力位二阶谐系数2,0C=-484.16685×10-6;第一偏心率平方2e=0.00669437999013;e'=0.006739496742227。
第二偏心率平方21.4 PZ90 主要的大地测量常数长半轴a=6.378136×106m;地球引力常数GM=3.9860044×1014 m3/s2;fM=3.5×108 m3/s2;地球大气引力常数a地球自转角速度ω=7.292115×10-5 rad/s。
卫星导航定位算法与程序设计

卫星导航定位算法与程序设计卫星导航定位算法与程序设计主讲:刘晖副教授武汉大学卫星导航定位技术研究中心课程讲授次序中的位置建立起软件设计的宏观概念(战略层次); 巩固软件设计方法的知识; 训练从设计到实现的工作流程;软件设计相关编程语言相关掌握软件编程平台的使用(战术层次); 培养良好的编程习惯编程技巧的训练定位算法相关巩固卫星定位导航算法知识;软件设计和编程能力的实际应用;进一步了解卫星定位导航的发展第二讲软件工程方法概述内容软件工程方法概述概述传统方法――瀑布模型传统方法――瀑布模型面向对象的方法――快速原型法面向对象的方法――快速原型法两种方法的比较及其在软件开发中的作用传统方法软件设计概述面向对象的设计方法概述软件建模语言概述软件工程方法概述软件工程一般要经过需求分析、设计、编码、测试、运行维护等几个阶段传统的软件工程方法采用的是瀑布模型,即顺序模型现代软件工程一般采用面向对象的软件工程方法瀑布模型(线形顺序模型)线形顺序模型)定义阶段可行性研究与计划需求分析开发阶段维护阶段设计编码测试运行维护6按照传统瀑布模型开发软件的特点1.阶段间具有顺序性和依赖性。
1.阶段间具有顺序性和依赖性。
2.推迟实现的观点。
2.推迟实现的观点。
3.每个阶段必须完成规定的文档;3.每个阶段必须完成规定的文档;每个阶段结束前完成文档审查,每个阶段结束前完成文档审查,及早改正错误。
7 面向对象的软件工程方法对传统软件工程的改进:快速原型法(试用-反馈-修改,多次反复) 面向对象的软件工程:面向对象的方法(基本概念:对象、类、消息、继承、多态性、封装)优点:思维一致、稳定性好、可重用性好、可维护性好原型模型(快速原型法)原型模型(快速原型法)听取用户意见建造/修改原型用户测试运行原型原型范型9采用原型模型的软件生存周期分析定义系统需求生成原型原型化系统设计运行和维护含原型化的软件生存期测试编码程序设计10方法比较两种途径并不是相互排斥的,相反,它们是相互促进相互补充的。
卫星导航定位算法与程序设计_常用参数和公式

卫星导航定位算法与程序设计_常用参数和公式1.常用参数a.卫星位置参数:卫星导航系统中的卫星位置是定位算法的基础。
通过测量卫星与接收机之间的距离和时间来确定卫星位置。
常用参数包括卫星的位置坐标、卫星的高度角。
b.接收机位置参数:接收机位置是定位算法的另一个重要参数。
接收机的位置可以通过卫星和地面测量设备测量得到。
常用参数包括接收机的位置坐标、接收机的高度。
c.时间参数:时间也是定位算法中的关键参数。
接收机和卫星之间的时间差可以用来计算距离和速度。
常用参数包括接收机时间、卫星时间。
2.常用公式a.距离公式:距离是定位算法中的重要计算量。
可以使用众多的距离计算公式来计算接收机和卫星之间的距离。
最常用的距离公式是通过信号传播速度和时间差来计算的。
公式如下:距离=传播速度*时间差b.速度公式:速度是定位算法中的另一个重要计算量。
可以使用卫星和接收机之间的多组距离和时间差来计算速度。
最常用的速度公式基于速度是距离对时间的导数的事实。
速度=(距离1-距离2)/(时间1-时间2)c.定位公式:定位是定位算法的最终目标。
定位公式是通过卫星位置参数、接收机位置参数和距离参数来计算接收机的位置。
最常用的定位公式是三角法和多边形法。
公式如下:定位结果=三角法(卫星1位置,卫星2位置,卫星3位置,距离1,距离2,距离3)d.距离修正公式:由于信号传播过程中存在着多种误差,如系统误差、大气延迟等,需要对测量得到的距离进行修正。
最常用的修正公式是通过卫星与接收机之间的时间差、大气延迟和信号传播速度对距离进行修正。
公式如下:真实距离=测量距离+大气延迟-传播速度*时间差以上是卫星导航定位算法和程序设计中常用的一些参数和公式。
这些参数和公式是定位算法的基础,通过合理选择和使用这些参数和公式,可以有效地实现卫星导航定位算法,并得到准确的定位结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(测绘工程本科适用)
主讲:王甫红
1
武汉大学0. 概述
武汉大学 测绘学院 空间定位与导航工程研究所
©2005~2011
2
课程目的
深入了解、掌握并实现GPS导航定位基本算法
GPS常用数据格式文件的读取 GPS单点定位算法
8
第一章 程序设计总论
武汉大学 测绘学院 空间定位与导航工程研究所
©2005~2011
9
软件开发步骤
问题定义 需求分析 实现计划 总体设计 详细设计 创建即实现
系统集成 单元测试 系统测试 校正性的维护 功能强化
10
11
软件编码中的具体工作
• • • • • • • • • 验证基础工作已经完成,可以进行创建工作 设计和编写子程序与模块 创立数据类型并命名变量 选择控制结构并组织语句块 找出并修正错误 评审其它小组的细节设计和代码,同时接受其它小组评审 通过仔细地格式化和征集意见改进编码 对分别完成的软件单元进行综合 调整编码使其更小、更快
7
第一讲 程序设计总论 第二讲 C/C++编码规则
2
矩阵算法应用 文本文件读写 时间算法编程 坐标算法编程 Rinex星历文件读取
4
8
第三讲 时间算法与坐标算法
第四讲 Rinex文件数据读取 4.1 Rinex星历文件读取 4.2 Rinex观测文件读取
2
4
9
2
4
10
2
Rinex观测文件读取 卫星位置与速度计算 编程 卫星位置与速度计算 编程 电离层与对流层延迟 改正编程 单点定位与测速编程
5
课程安排①
讲 课 内 容 及 时 数 日/月 至 日/月 周 次 学 时 练习内容及时数 习题课 等 课堂 时数 课外 时数 实验(上机)内容及时数 课堂实习(实验、上 机)内容 课堂 时数 (教 材 章 节 、 名 称)
课 外 时 数
17/1021/10 24/1028/10 31/104/11 7/1111/11 14/1118/11 21/1125/11 28/112/12 5/129/12
4
11
第五讲 卫星位置与速度计算 第六讲 对流层、电离层延迟 改正 第七讲 单点定位与测速
2
4
12
2
4
13
2
4
14
2
6
教学
• 教学方法
– 课堂讲授 – 上机实习
• 要求
– 必须参加所有教学过程
• 考核方法
– 平时实习成果 – 综合成果 – 单点定位程序及报告
7
教材及参考资料
• 李征航等. GPS测量原理与数据处理,2005 • 李洪涛等. GPS应用程序设计,科学出版社, 1999 • C/C++参考书。
– 本课程软件的需求分析 • 程序的输入、输出,定位精度,文件的格式,程序 的运行环境等
14
准备工作
• 结构设计
– 程序的组织形式(模块设计) – 主要的数据结构 – 关键算法 – 用户界面,输入输出,内存管理 – 错误处理 – 结果设计检查
15
准备工作
• 选择编程语言
– 使用自己熟悉的编程语言 – 使用高级编程语言
22
矩阵类的功能②
功能
定义矩阵 矩阵赋值 矩阵运算(加、减、乘、求逆、特征值等) 矩阵元素操作 ……
23
课后作业
• 利用矩阵类,编写两矩阵相加、减、乘与 求逆的程序。
20
系统集成
• 把各个分离的软件部分合并成一个统一系 统。
软件维护与优化
21
矩阵类的使用①
class CMatrix { public: CMatrix(); // 基础构造函数 CMatrix(int nRows, int nCols); // 指定行列构造函数 CMatrix(int nRows, int nCols, double value[]); // 指定数据构造函数 CMatrix(int nSize); // 方阵构造函数 CMatrix(int nSize, double value[]); // 指定数据方阵构造函数 CMatrix(const CMatrix& other); // 拷贝构造函数 virtual ~CMatrix(); // 析构函数 // …… protected: int m_nNumColumns; // 矩阵列数 int m_nNumRows; // 矩阵行数 double*m_pData; // 矩阵数据缓冲区 };
12
软件开发前的准备工作
• 问题定义
– 必须弄清楚你想要解决的问题是什么 – 本课程的问题定义:实现事后处理的GPS标准单点定 位、测速的软件。
13
准备工作
• 需求分析
– 需求详细描述了一个软件系统需要解决的问题
• 明确的需求可以保证是由用户而不是程序员决定系统的功能。 • 明确的需求也可以避免引起争议。 • IBM、GTE、TRW 的数据表明.修正在总体结构阶段发现的 需求错误,将比当时就发现并 修正的成本要高出 5 倍,如果 是在编码阶段,要高出 10 倍,在单元或系统测试阶段,高 20 倍, 在验收测试阶段,高 50 倍,而在维护阶段,竟要比原来 高出多达 100 倍! • 充分进行需求分析是一个项目成功的关键
时间与坐标转换算法 卫星位置与速度计算方法 误差改正算法 。。。。。。
掌握C/C++程序设计方法
项目设计方法 数据结构 编码方法 调试方法
3
课程内容①
软件创建方法与基本过程 C/C++程序设计方法:开发工具,编译,调试 C/C++编码标准 基本算法
• 子程序具有强内聚性
– 每个子程序中只需所好一项工作
• 子程序的长度合适
– 最佳长度为一两页,即66~132行
• 子程序的参数传递
– 参数的格式,传递方式
• 防错性编程
18
软件编码
• • • • • 基本数据类型 自建数据类型 软件的控制问题 布局与风格 外部文档
19
调试与单元测试
• 调试用于改正错误。 • 测试是提高软件质量的方法
有关时间的算法 有关坐标的算法 矩阵运算
文件读取
RINEX格式数据的读取
4
课程内容②
GPS卫星位置计算 由广播星历计算卫星位置 由精密星历计算卫星位置 误差的模型改正算法 电离层折射改正算法 对流层折射模型改正算法 卫星钟差及钟漂的改正算法 码伪距单点定位与测速算法
16
建立子程序
• 设计程序
– 子程序命名,考虑效率 – 子程序的输入输出 – 考虑数据,逐步细化
• 检查程序 • 子程序编码 • 检查代码
17
高质量子程序的特点
• 子程序名称是否恰当
– – – – 用动词待目标的形式,如PrintReport() 使用返回值的描述,如cos() 描述子程序所做的工作 名字的长度符合需要(9~15个字符)