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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22
矩阵类的功能②
功能
定义矩阵 矩阵赋值 矩阵运算(加、减、乘、求逆、特征值等) 矩阵元素操作 ……
23
课后作业
• 利用矩阵类,编写两矩阵相加、减、乘与 求逆的程序。
8
第一章 程序设计总论
武汉大学 测绘学院 空间定位与导航工程研究所
©2005~2011
9
软件开发步骤
问题定义 需求分析 实现计划 总体设计 详细设计 创建即实现
系统集成 单元测试 系统测试 校正性的维护 功能强化
10
11
软件编码中的具体工作
• • • • • • • • • 验证基础工作已经完成,可以进行创建工作 设计和编写子程序与模块 创立数据类型并命名变量 选择控制结构并组织语句块 找出并修正错误 评审其它小组的细节设计和代码,同时接受其它小组评审 通过仔细地格式化和征集意见改进编码 对分别完成的软件单元进行综合 调整编码使其更小、更快
4
11
第五讲 卫星位置与速度计算 第六讲 对流层、电离层延迟 改正 第七讲 单点定位与测速
2
4
12
2
4
13
2
4
14
2
6
教学
• 教学方法
– 课堂讲授 – 上机实习
• 要求
– 必须参加所有教学过程
• 考核方法
– 平时实习成果 – 综合成果 – 单点定位程序及报告
7
教材及参考资料
• 李征航等. GPS测量原理与数据处理,2005 • 李洪涛等. GPS应用程序设计,科学出版社, 1999 • C/C++参考书。
卫星导航定位算法 与程序设计
(测绘工程本科适用)
主讲:王甫红
1
武汉大学 测绘学院 空间定位与导航工程研究所
©2005~2011
0. 概述
武汉大学 测绘学院 空间定位与导航工程研究所
©2005~2011
2
课程目的
深入了解、掌握并实现GPS导航定位基本算法
GPS常用数据格式文件的读取 GPS单点定位算法
时间与坐标转换算法 卫星位置与速度计算方法 误差改正算法 。。。。。。
掌握C/C++程序设计方法
项目设计方法 数据结构 编码方法 调试方法
3
课程内容①
软件创建方法与基本过程 C/C++程序设计方法:开发工具,编译,调试 C/C++编码标准 基本算法
有关时间的算法 有关坐标的算法 矩阵运算
文件读取
RINEX格式数据的读取
4
课程内容②
GPS卫星位置计算 由广播星历计算卫星位置 由精密星历计算卫星位置 误差的模型改正算法 电离层折射改正算法 对流层折射模型改正算法 卫星钟差及钟漂的改正算法 码伪距单点定位与测速算法
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; // 矩阵数据缓冲区 };
7
第一讲 程序设计总论 第二讲 C/C++编码规则
2
矩阵算法应用 文本文件读写 时间算法编程 坐标算法编程 Rinex星历文件读取
4
8
第三讲 时间算法与坐标算法
第四讲 Rinex文件数据读取 4.1 Rinex星历文件读取 4.2 Rinex观测文件读取
2
4
9
2
4
10
2
Rinex观测文件读取 卫星位置与速度计算 编程 卫星位置与速度计算 编程 电离层与对流层延迟 改正编程 单点定位与测速编程
12
软件开发前的准备工作
• 问题定义
– 必须弄清楚你想要解决的问题是什么 – 本课程的问题定义:实现事后处理的GPS标准单点定 位、测速的软件。
13
准备工作
• 需求分析
– 需求详细描述了一个软件系统需要解决的问题
• 明确的需求可以保证是由用户而不是程序员决定系统的功能。 • 明确的需求也可以避免引起争议。 • IBM、GTE、TRW 的数据表明.修正在总体结构阶段发现的 需求错误,将比当时就发现并 修正的成本要高出 5 倍,如果 是在编码阶段,要高出 10 倍,在单元或系统测试阶段,高 20 倍, 在验收测试阶段,高 50 倍,而在维护阶段,竟要比原来 高出多达 100 倍! • 充分进行需求分析是一个项目成功的关键
• 子程序具有强内聚性
– 每个子程序中只需所好一项工作
• 子程序的长度合适
– 最佳长度为一两页,即66~132行
• 子程序的参数传递
– 参数的格式,传递方式
• 防错性编程
18
软件编码
• • • • • 基本数据类型 自建数据类型 软件的控制问题 布局与风格 外部文档
19
调试与单元测试
Biblioteka Baidu• 调试用于改正错误。 • 测试是提高软件质量的方法
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
16
建立子程序
• 设计程序
– 子程序命名,考虑效率 – 子程序的输入输出 – 考虑数据,逐步细化
• 检查程序 • 子程序编码 • 检查代码
17
高质量子程序的特点
• 子程序名称是否恰当
– – – – 用动词待目标的形式,如PrintReport() 使用返回值的描述,如cos() 描述子程序所做的工作 名字的长度符合需要(9~15个字符)
– 本课程软件的需求分析 • 程序的输入、输出,定位精度,文件的格式,程序 的运行环境等
14
准备工作
• 结构设计
– 程序的组织形式(模块设计) – 主要的数据结构 – 关键算法 – 用户界面,输入输出,内存管理 – 错误处理 – 结果设计检查
15
准备工作
• 选择编程语言
– 使用自己熟悉的编程语言 – 使用高级编程语言
相关文档
最新文档