卫星导航定位程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
b a 1537
c INT b 122.1 365.25 d INT365.25.c e INT b d 30.6001 D b d INT 30.6001e FRAC JD 0.5 日 M e 112 INTe 14 月
Y c 4715 INT 7 M 10 年
• 李洪涛等,GPS应用程序设计,科学出版 社,1999。
• 本课程授课资料。
补充内容 > C/C++语言编码标准
• C/C++语言编码标准
– 文件组织
• 头文件 • 源文件
– 编码风格
• 命名规则 • 美学原理 • 注释 • 常量 • 变量 •类 • 流控制
补充内容 > 程序调试
• 插入调试语句 • 跟踪
• 新儒略日(Modified Julian Date - MJD)
– 定义:从儒略日中减去2,400,000.5天来得到, 给出的是从1858年11月17日子夜开始的天数。
– 特点:连续的,利于数学表达,数值比儒略日 小。
• 年积日
– 定义:从当年1月1日开始的天数。
• GPS时
– 定义:以1980年1月6日子夜为起点,用周数和 周ຫໍສະໝຸດ Baidu的秒数来表示。
时间算法 > 时间结构(类)(1/5)
• C/C++中有关时间的类型(1/2)
– time_t
– sturct tm
时间算法 > 时间结构(类)(2/5)
• C/C++中有关时间的类型(2/2)
– sturct _timeb
时间算法 > 时间结构(类)(3/5)
• 为何要自己定义(实现)时间结构(类)
时间算法 > 时间结构(类)(5/5)
• 自定义时间结构(2)
– 儒略日
适用于卫星导航定位的时间结构 - 儒略日
时间算法 > 常用时间算法(1/4)
• 日历时间与儒略日间的相互转换(1/2)
– 由日历时间转换到儒略日
JD INT365.25y INT 30.6001m 1
D UT 24 1720981.5 其中:
• 儒略日(Julian Date)
– 定义:是指从-4712年1月1日(即公元前4713 年1月1日)正午开始的天数。
– 提出:由J. J. Scaliger在1583年提出的,所以 该系统的名称源自Julius Scaliger(注意,不是 Julius Caesar)。
时间算法 > 时间的表示方法(2/2)
如果M 2,则y Y 1,m M 12 如果M 2,则y Y,m M JD为儒略日, Y 为年,M 为月,D为日,UT 为世界时。
INT 表示取实数的整数部分。
时间算法 > 常用时间算法(2/4)
• 日历时间与儒略日间的相互转换(2/2)
– 由儒略日转换到日历时间
a INTJD 0.5
– GPS时与年积日间的相互转换
• 参照上面方法进行
概述 > 教学
• 教学方法:课堂讲授+实习
– 课堂讲授 - 每周3学时 – 实习 - 每周4学时
• 要求
– 必须参加所有教学过程
• 考核方法
– 平时实习成果(30%) – 综合成果(40%) – 出勤(30%)
概述 > 参考文献
• 刘基余等,全球定位系统原理及其应用, 测绘出版社,1993。
• 李征航,空间定位技术及应用,武汉大学 讲义,2001。
卫星导航定位程序设计
卫星应用工程本科适用
第一章 概述
概述 > 课程目的
• 深入了解、掌握并实现GPS导航定位基本 算法
– GPS常用数据格式 – GPS导航定位常用算法
• 掌握C/C++程序设计方法
– 数据结构 – 编码方法 – 调试方法
概述 > 课程内容
• C/C++编码标准 • 基本常数和基本数值算法 • 有关时间的算法 • 有关坐标的算法 • RINEX和SP3格式数据的读取 • GPS卫星位置计算 • 电离层折射改正算法 • 对流层折射模型改正算法 • 伪距定位算法
N modINT JD 0.5,7 星期几
时间算法 > 常用时间算法(3/4)
• 日历时间与GPS时间间的相互转换
– 由日历时间转换到GPS时间(两步)
• 第一步:计算GPS周
GPS WEEK INT JD 2444244.5 7
• 第二步:计算一周内的秒数
– 由GPS时间转换到日历时间(两步)
– 设断点(Breakpoint) – 查看内容
实习题
• 采用C/C++语言,实现矩阵的加、减和乘 法运算,要求每种运算用函数实现。
第二章 时间算法
时间算法 > 概述
• 时间的概念
– 时间,是过程的意识经验,是动作或事件发生 时所经历的过程。
– 时间还是表示这些动作或事件的连续性的一维。
• 时间度量的两要素
– C/C++所提供的结构(类)无法满足要求,秒 为整型
– 在卫星导航定位中计算卫星位置时,时间至少 要求表示到10-6
– 在卫星导航定位中计算卫星到接收机天线之间 的距离时,时间至少要求表示到10-12
时间算法 > 时间结构(类)(4/5)
• 自定义时间结构(1)
– 日历时间
适用于卫星导航定位的时间结构 - 日历时间
• 第一步:由GPS时间转换到儒略日 • 第二步:由儒略日转换到日历时间
时间算法 > 常用时间算法(4/4)
• 年积日的计算
– 儒略日转换到年积日
• 第一步:计算出日历时间 • 第二步:计算出当年1月1日的儒略日 • 第三步:两个儒略日求差加1,得出年积日
– 年积日转换到儒略日
• 第一步:计算出当年1月1日的儒略日JD1 • 第二步:年积日加JD1减1得儒略日
– 起点 – 尺度
• 时间系统
– 太阳时、恒星时、力学时、原子时等
• 时间与卫星导航定位的关系
时间算法 > 时间的表示方法(1/2)
• 历法(日历表示法)
– 表示方法:年、月、日、时、分、秒。 – 基础:建立在地球绕日公转、月球绕地公转等 – 特点:反映季节变化,与日常生活密切相关;
非连续,不利于数学表达。
c INT b 122.1 365.25 d INT365.25.c e INT b d 30.6001 D b d INT 30.6001e FRAC JD 0.5 日 M e 112 INTe 14 月
Y c 4715 INT 7 M 10 年
• 李洪涛等,GPS应用程序设计,科学出版 社,1999。
• 本课程授课资料。
补充内容 > C/C++语言编码标准
• C/C++语言编码标准
– 文件组织
• 头文件 • 源文件
– 编码风格
• 命名规则 • 美学原理 • 注释 • 常量 • 变量 •类 • 流控制
补充内容 > 程序调试
• 插入调试语句 • 跟踪
• 新儒略日(Modified Julian Date - MJD)
– 定义:从儒略日中减去2,400,000.5天来得到, 给出的是从1858年11月17日子夜开始的天数。
– 特点:连续的,利于数学表达,数值比儒略日 小。
• 年积日
– 定义:从当年1月1日开始的天数。
• GPS时
– 定义:以1980年1月6日子夜为起点,用周数和 周ຫໍສະໝຸດ Baidu的秒数来表示。
时间算法 > 时间结构(类)(1/5)
• C/C++中有关时间的类型(1/2)
– time_t
– sturct tm
时间算法 > 时间结构(类)(2/5)
• C/C++中有关时间的类型(2/2)
– sturct _timeb
时间算法 > 时间结构(类)(3/5)
• 为何要自己定义(实现)时间结构(类)
时间算法 > 时间结构(类)(5/5)
• 自定义时间结构(2)
– 儒略日
适用于卫星导航定位的时间结构 - 儒略日
时间算法 > 常用时间算法(1/4)
• 日历时间与儒略日间的相互转换(1/2)
– 由日历时间转换到儒略日
JD INT365.25y INT 30.6001m 1
D UT 24 1720981.5 其中:
• 儒略日(Julian Date)
– 定义:是指从-4712年1月1日(即公元前4713 年1月1日)正午开始的天数。
– 提出:由J. J. Scaliger在1583年提出的,所以 该系统的名称源自Julius Scaliger(注意,不是 Julius Caesar)。
时间算法 > 时间的表示方法(2/2)
如果M 2,则y Y 1,m M 12 如果M 2,则y Y,m M JD为儒略日, Y 为年,M 为月,D为日,UT 为世界时。
INT 表示取实数的整数部分。
时间算法 > 常用时间算法(2/4)
• 日历时间与儒略日间的相互转换(2/2)
– 由儒略日转换到日历时间
a INTJD 0.5
– GPS时与年积日间的相互转换
• 参照上面方法进行
概述 > 教学
• 教学方法:课堂讲授+实习
– 课堂讲授 - 每周3学时 – 实习 - 每周4学时
• 要求
– 必须参加所有教学过程
• 考核方法
– 平时实习成果(30%) – 综合成果(40%) – 出勤(30%)
概述 > 参考文献
• 刘基余等,全球定位系统原理及其应用, 测绘出版社,1993。
• 李征航,空间定位技术及应用,武汉大学 讲义,2001。
卫星导航定位程序设计
卫星应用工程本科适用
第一章 概述
概述 > 课程目的
• 深入了解、掌握并实现GPS导航定位基本 算法
– GPS常用数据格式 – GPS导航定位常用算法
• 掌握C/C++程序设计方法
– 数据结构 – 编码方法 – 调试方法
概述 > 课程内容
• C/C++编码标准 • 基本常数和基本数值算法 • 有关时间的算法 • 有关坐标的算法 • RINEX和SP3格式数据的读取 • GPS卫星位置计算 • 电离层折射改正算法 • 对流层折射模型改正算法 • 伪距定位算法
N modINT JD 0.5,7 星期几
时间算法 > 常用时间算法(3/4)
• 日历时间与GPS时间间的相互转换
– 由日历时间转换到GPS时间(两步)
• 第一步:计算GPS周
GPS WEEK INT JD 2444244.5 7
• 第二步:计算一周内的秒数
– 由GPS时间转换到日历时间(两步)
– 设断点(Breakpoint) – 查看内容
实习题
• 采用C/C++语言,实现矩阵的加、减和乘 法运算,要求每种运算用函数实现。
第二章 时间算法
时间算法 > 概述
• 时间的概念
– 时间,是过程的意识经验,是动作或事件发生 时所经历的过程。
– 时间还是表示这些动作或事件的连续性的一维。
• 时间度量的两要素
– C/C++所提供的结构(类)无法满足要求,秒 为整型
– 在卫星导航定位中计算卫星位置时,时间至少 要求表示到10-6
– 在卫星导航定位中计算卫星到接收机天线之间 的距离时,时间至少要求表示到10-12
时间算法 > 时间结构(类)(4/5)
• 自定义时间结构(1)
– 日历时间
适用于卫星导航定位的时间结构 - 日历时间
• 第一步:由GPS时间转换到儒略日 • 第二步:由儒略日转换到日历时间
时间算法 > 常用时间算法(4/4)
• 年积日的计算
– 儒略日转换到年积日
• 第一步:计算出日历时间 • 第二步:计算出当年1月1日的儒略日 • 第三步:两个儒略日求差加1,得出年积日
– 年积日转换到儒略日
• 第一步:计算出当年1月1日的儒略日JD1 • 第二步:年积日加JD1减1得儒略日
– 起点 – 尺度
• 时间系统
– 太阳时、恒星时、力学时、原子时等
• 时间与卫星导航定位的关系
时间算法 > 时间的表示方法(1/2)
• 历法(日历表示法)
– 表示方法:年、月、日、时、分、秒。 – 基础:建立在地球绕日公转、月球绕地公转等 – 特点:反映季节变化,与日常生活密切相关;
非连续,不利于数学表达。