在车载导航系统的开发过程中,为了对自车状态进行描述,不可避免的要使用各 种物理量,如:车辆行进方向、车辆所在位置的经纬度座标、车速、时间等。容易理解,如果在一个变量被用来表示上述物理量信息时,我们需要为这个变量规定一 个单位,这样才能完整体现变量所代表的含义。没有单位,单纯通过一个变量具有的数值是无法表达物理量的完整含义的。   

出于性能和资源的考虑,通常使用整型数而非浮点型来表示物理量。为了使整型变量可以在足够高的精度上对物理量进行描述,导航系统中使用 的物理量单位通常比国际标准单位更小。例如,一个经纬度变量的定义: long lLongitude; // 1/2560秒   1/2560秒是一个非常小的单位,等于0.000390625秒。   

下面的表格列出了一些在导航系统中常见的物理量和单位: 物理量 常用单位 经纬度 1/256秒、1/2560秒、1/1000秒 速度 0.1千米/小时,0.25米/秒,节 长度 1/1000米,1/256米,1/2米 角度 360/65535 度、360/256度、1/1000度、分、秒 时间 秒、1/100秒、毫秒

2. 物理量单位与数据类型的选择   

如果不考虑性能问题,全部使用浮点型来描述物理量的话,那么应该尽量使用国际单位制中的标准单位或者常用单位。如果使用整型来描述物理 量的话,就需要对于数据类型和单位进行适当的选择。C语言中主要整型类型有三种, char、short和long,每种类型都有各自的有符号和无符号类型。接下来对数据类型和单位的选择进行分析。   

关于物理量单位的选择,一个整型变量所能表示的最小物理单位就是单位本身的物理含义,如果单位过大,这个整型变量所表示的物理量的精度 就较低,无法表示非常小的数值;反之如果选择过小的单位,虽然在精度上不存在问题,但受到整型数的数据范围限制,导致这个变量无法表示大数值的物理量。因 此在设计物理量单位的时候,要根据数据的取值范围和精度进行综合考虑。   

关于数据类型的选择,数据类型的位数越多,其能够表示的数值范围就越大,同时在内存资源上的开销也就越大;反之,数据类型的位数少的话 能够节省存储空间,但受到自身数值范围的限制,无法用来表达高精度要求的数据。因此在数据类型方面的选择,就是在系统资源和数据精度要求之间的权衡。   

下面以导航系统中两个典型的物理量为例进行分析。   

(1) 经纬度   导航系统中,描述经纬度的数据类型是4字节有符号整型long,物理量单位是1/2560 秒。如此设计用意何在?   

首先对于经纬度的数值范围进行分析。经度的范围是东经180度~西经180度,纬度的范围是南纬90度~北纬90度。为设计思路简单起 见,使用有符号整型的负数部分表示西经和南纬。因此,在地图数据的经纬度同时存在东经和西经,或者同时存在北纬和南纬的情况下,需要使用有符号数据类型来 保存经纬度。   

其次,需要在char、short和long这几种类型中进行选择。需要表示的最大数值范围是(-180度,180度),假设使用这三 种数据类型的最大取值范围来表示此区间,即可计算出这三种整型数能够支持的最小单位: long:360度 / 4294967296 = 0.00000008381903171539度,赤道附近约相当于0.00905米; short:360度 / 65536 =  0.00549316406度,赤道附近约相当于593.26172米; char:360度 / 256 = 1.40625度,赤道附近约相当于151875米。   

导航系统中GPS信号和地图数据的精度约为10米左右,显然char和short无法满足上述精度要求,因此数据类型便可以确定为有符号长整型long。   

关于物理量单位,在GN8007的GPS协议中,经纬度的单位是1/256秒,kiwi格式的地图数据中正规化经纬度大致相当于1 /220秒。为了数据精度在运算中不受到损失,所选择的单位应小于等于上述单位。而且为了计算方便,所选择单位最好是与上面单位成整数倍数关系。   

long类型能够表示的最小单位是360/4294967296度,约为1/3314秒。因此,单位的分母就是在256到3314范围 内选择一个尽量大的256的倍数。考虑到自然数中最常用的十进制,最终选择256的10倍作为单位的分母,即以1/2560秒作为经纬度的单位。   

(2)车辆角度   

导航系统中,车辆角度使用的是有符号short类型来表示,使用的单位是360/65536度,即以short的取值范围 [-32768, 32767]来表示360度,所能够表达的最高精度约为0.00549度。数据类型和单位的选择出于以下原因: a、 该单位的精度足以满

车载导航系统中常用物理量和单位相关推荐

  1. 导航系统中常用坐标系

    原文地址:导航系统中常用坐标系作者:阿元 (1) 地心惯性坐标系(简称i系)-OXiYiZi: 原点在地球中心,它不参与地球自转,OXi.OYi轴在赤道平面内正交并指向空间的两颗星,OZi轴平行与地球 ...

  2. 车载导航系统中GPS的定位

    首先购买的车载导航系统有GPS信号接受功能,可以接收GPS的经纬度信号,然后导航终端里面安装的导航地图可以很详细的显示具体的经纬度坐标和地物信息.导航终端通过接收器接收到卫星24小时不间断发射的免费经 ...

  3. Linux车载导航程序,嵌入式Linux在车载导航系统中的应用.pdf

    湖南文理学院 课程设计报告 课程名称: 嵌入式系统课程设计 专业班级: 自动化 11102班 学号( 10) 学生姓名: 指导教师: XXX 完成时间: 2014 年 6 月 6 日 报告成绩: 评阅 ...

  4. Android中常用的距离单位

    px(像素):每个px对应屏幕上的一个点. dip或dp:(device independent pixels,设备独立像素):一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dip=1px ...

  5. 车载导航应用的哪些计算机知识,三维模拟智能车载导航系统的设计与实现

    三维模拟智能车载导航系统的设计与实现 智能车载导航系统作为城市智能交通系统的重要分支之一,它涉及到许多计算机及相关专业的专业技术知识,如无线电通信技术,多媒体技术,数据库技术,地理信息系统知识,离散数 ...

  6. OpenFOAM量纲及常用物理量的表达形式

    OpenFOAM中一般使用的是国际单位,分别为: 编号 名称 单位 1 质量(Mass) kg 2 长度(Length) m 3 时间(Time) s 4 温度(Mass) K 5 物质量(Tempe ...

  7. 有限元分析中的材料性能单位

    (本人发表于 simwe 网站的一篇资料.由于博文的排版问题,可能看不清楚,感兴趣的朋友可发信 htbbzzg@163.com 索取 DOC 文件) 摘要:本文对使用有限元软件分析工程问题时的材料性能 ...

  8. 基于ARM9的车载导航系统的技术分析

    基于ARM9的车载导航系统的技术分 目 次 摘要 ------------------------------------ 3 1 嵌入式系统简介 -------------------------- ...

  9. linux 车载导航源代码,基于Linux的嵌入式车载导航系统的设计

    3.4.2 裁减配置及编译 修改完内核设置后,就可以对内核进行裁减配置及编译了,在配置中剪裁掉冗余的部分,使编译生成的最终的内核的映像文件代码量尽可能小.执行如下命令: # make menuconf ...

最新文章

  1. python曲线拟合笔记
  2. 【计算机网络】网络层 : 路由算法 ( 路由算法分类 | 静态路由算法 | 动态路由算法 | 全局性动态路由算法 | 分散性动态路由算法 | 分层次路由选择协议 )
  3. 设置linux防火墙服务不开机启动,Linux关闭防火墙并设置开机启动/不启动
  4. java虚拟机及加载class文件的原理机制
  5. Python学习笔记:异步IO(1)
  6. 科大星云诗社动态20210221
  7. 03.full_text interval查询
  8. JavaScript面向对象——深入理解默认的继承方式原型链
  9. ThinkPHP3.2 volist嵌套循环显示原理
  10. [html] 解释下什么是ISISO8859-2字符集?
  11. RabbitMQ——work queue
  12. Mybatisの常见面试题
  13. python自带笔记本电脑_Python执行速度:笔记本电脑与台式机
  14. ObjC学习6-分类、协议及预处理程序
  15. 计算机网络安全 单词
  16. 解决JSP文件乱码问题
  17. docker 搭建在线vscode编辑器
  18. 20161214_namelist.input说明
  19. Unity教程之-Unity游戏技能Skill系统架构设计
  20. 重磅 !程序猿月薪7万可以落户北京!

热门文章

  1. TypeError: Data must not be unicode
  2. day 05总结(格式化输出的三种方式/基本运算符/if判断)
  3. R6饮料AK赛(NOIP模拟赛)/省选专练HDU 5713 K个联通块
  4. 战术网络安全检查表 | Symantec Connect
  5. Java文件File操作一:文件的创建和删除
  6. 初学WPF,做一款小游戏练习一下
  7. 最全攻略:数据分析师必备Python编程基础知识
  8. GUN ARM汇编中标号的引用在汇编和C语言中区别(monitor_flash_len = _bss_start - _armboot_start;)
  9. python写传奇脚本,Python趣味打怪:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...
  10. 上某些网站的时候要小心,不要以为 HTTPS 就安全了