博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
车载导航系统中常用物理量和单位
阅读量:6463 次
发布时间:2019-06-23

本文共 1975 字,大约阅读时间需要 6 分钟。

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

出于性能和资源的考虑,通常使用整型数而非浮点型来表示物理量。为了使整型变量可以在足够高的精度上对物理量进行描述,导航系统中使用的物理量单位通常比国际标准单位更小。例如,一个经纬度变量的定义: 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、 该单位的精度足以满

转载地址:http://ezhzo.baihongyu.com/

你可能感兴趣的文章
在linux上获得线程id的方法,在linux上获得线程id的方法
查看>>
linux 挂载 ftp iso,Linux下用curlftpfs挂载FTP服务器 [CentOS]
查看>>
cts测试linux指令skip,CTS测试命令详细
查看>>
linux 窗口居中,OpenGL设置窗口居中显示方法
查看>>
linux 连网vim安装,Ubuntu下安装Gvim及添加菜单项目[多图]
查看>>
c语言字符串getline,如何使用std :: getline()将文本文件读入C中的字符串数组?
查看>>
山科c语言考试题库,山科c语言考试重点.doc
查看>>
c语言实例 魔术师的猜牌术(1),C语言实例 魔术师的猜牌术(1)
查看>>
c语言 蛇形矩阵,蛇形矩阵输出是要怎么写代码,感觉没有眉目啊,大佬能说一下思想吗...
查看>>
c语言假设有21根火柴棍,10道火柴棍趣味智力题,据说全对的都是天才!
查看>>
国二考vb和c语言,全国计算机二级《VB》练习题及答案(2)
查看>>
c语言双链表的插入和删除,关于....多向循环双链表的插入和删除技术点,求大神帮破...
查看>>
c#语言结构体定义,深入解析C#编程中struct所定义的结构
查看>>
android static 函数调用吗,无法对非静态方法进行静态引用(Android getApplicationContext())...
查看>>
android百度地图画圆,使用百度地图Api,在地图上画圆形区域
查看>>
小米android n 分屏,官方确认!这些小米手机都支持分屏
查看>>
html动态图片怎么设背景,微信8.0状态背景视频怎么设置?状态视频动态背景图设置教程[多图]...
查看>>
html禁用ctrl健,保护网站版权JS代码 禁止 Ctrl和S、F12控制台、保存页面、复制文字...
查看>>
传递HTML字符串virtual,是否可以将VirtualFile用作HTML模板提供程序?如何?
查看>>
html模型的作用,数据模型的作用是什么
查看>>