求助一个关于gps统计车辆油耗的问题

juny0302 2012-06-21 09:58:30
通过gps车载设备获取到的车辆油量数据并且已把这些数据保存到数据库中.如何通过这些数据统计判断一段时间内的加油点(加过几次油),并且计算这段时间的油耗总量?数据如下
时间 油量
... ...
2012-01-02 16:36:00 42
2012-01-02 16:36:22 42
2012-01-02 16:37:00 43
2012-01-02 16:37:30 42
2012-01-02 16:38:00 42
2012-01-02 16:38:30 47
2012-01-02 16:39:00 60
2012-01-02 16:39:30 76
2012-01-02 16:40:00 93
2012-01-02 16:40:16 103
2012-01-02 16:40:46 119
2012-01-02 16:41:16 134
2012-01-02 16:41:46 148
2012-01-02 16:42:18 160
2012-01-02 16:42:48 173
2012-01-02 16:43:18 185
2012-01-02 16:43:48 196
2012-01-02 16:44:18 201
2012-01-02 16:44:34 201
2012-01-02 16:45:04 201
2012-01-02 16:45:34 201
2012-01-02 16:46:02 200
2012-01-02 16:46:34 200
2012-01-02 16:47:00 200
2012-01-02 16:47:22 199
2012-01-02 16:47:34 199
2012-01-02 16:48:04 198
2012-01-02 16:48:30 198
2012-01-02 16:48:34 198
2012-01-02 16:48:52 199
2012-01-02 16:49:22 200
2012-01-02 16:49:52 201
2012-01-02 16:50:22 198
2012-01-02 16:50:52 197
... ...
...全文
179 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
juny0302 2012-06-30
  • 打赏
  • 举报
回复
用wanghui0380可以判断加了几次油
fsstolw 2012-06-21
  • 打赏
  • 举报
回复
根据wanghui0380的滤波处理,再给你一个如何判断加油的建议:
因为你这个应用有个特点,车在行进的时候是不可能加油的,所以,按你的采集频率,可以把多个时间内油量不变的数据取其中一个作为有效数据,因为这时候油量不变说明车没动,这时候的数据是准确的,也是有效的,而在这个时间之后油量开始增加了,那就可以表明在加油了。
wanghui0380 2012-06-21
  • 打赏
  • 举报
回复
而求加了几次油

考虑一下实际状况,加一次有大概不会超过3分钟。

那么做5数据(差不多2分半) 和 10数据(5分钟左右)的加权平滑移动判定,基本可以统计出这个数量(加权平滑移动判定稍微有点延迟,不过没关系,反正只是统计加了几次油,又不统计精确时间,这个延迟可以忍受)
wanghui0380 2012-06-21
  • 打赏
  • 举报
回复
个人认为你这个数据还是比较好处理的,如果都是30秒一计算

个人觉着,使用5数的加权均线基本可以把干扰项平滑掉
wanghui0380 2012-06-21
  • 打赏
  • 举报
回复
采集的时候就应该把数据预先处理一下,应该预先和上次的记录比较得到差值

这些差值就是波形图

总耗油就是所有的负值相加。当然加过几次油,理论上是统计正值数(不过就想楼上说的,你这个采集频率太高,有干扰的需要滤波后判定)
fsstolw 2012-06-21
  • 打赏
  • 举报
回复
看你的数据,恐怕采集的不太准确吧?
因为你是按30秒间隔采集上来的,这中间不可能发生加油这个操作的,因为30秒就根本不可能加进油去,但是你的油量数据已经增加了几十升了。
当然,有一种可能就是你这段数据在采集的时候正好也是车正在加油的时候,它从2012-01-02 16:36:22 这时候是42升一直到2012-01-02 16:44:18 加满为201升的最大油量了,这中间花了将近18分钟。
建议你是否把采集时间间隔调整大一些,按2分钟来算,也许数据就容易分析了。
christ 2012-06-21
  • 打赏
  • 举报
回复
我觉得应该定义一个值 跟相邻的两条数据的油量差作比较,高于这个值记为加油状态,可以避免因车辆颠簸引起的误差,加油时可能会有几条连续的数据都是加油状态,那么这几条连续的数据只记为一次加油, 可以得出加油次数
耗油量可以这样算,每一次加油(可能会有连续的几条数据都属于加油状态)的前一条数据即为加油前的油量,用这次加油后(达到最高值时)的油量减去,则得出此次加了多少油,将每次加的油量相加得到这段时间一共加了多少油,再加上最后一条数据,减去第一条数据油量即为这段时间总耗油量

juny0302 2012-06-21
  • 打赏
  • 举报
回复
油量表示 邮箱里当前剩余的油的数量
__天涯寻梦 2012-06-21
  • 打赏
  • 举报
回复
这油量是耗油量还是剩余油量,这些数字的变化都说不通啊
juny0302 2012-06-21
  • 打赏
  • 举报
回复
再补充一点,车辆在行驶过程中肯定会有颠簸的情况,这时传感器获取的数据有误差,这就造成数据油量数据在可能是这样的 200...190...180..181..182....170 就是在减少的过程中,有可能出现几条增大的,然后继续减小.
juny0302 2012-06-21
  • 打赏
  • 举报
回复
设备通过传感器获取到当前时间,油箱里还剩多少油,然后定时(30秒)把这条数据发送到服务器上,我的程序现在已经把数据保存到数据库中了,在做报表分析的过程中遇到上述问题.现在的问题已经跟设备没关系了,就是想根据统计出某段时间(时间区间由用户确定 )内,某辆车加过几次油,每次加油加了多少,现在就是不知道该怎么通过数据来分析出加油点.
garfieldzf 2012-06-21
  • 打赏
  • 举报
回复
1 通过这些数据统计判断一段时间内的加油点(加过几次油)。
这个数据首先得看看设备的API吗? 从单纯的数据上能看出来加油状态?

2 这段时间的油耗总量?
有了第一个答案才能算这个答案。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧