发明内容
为了实现车辆油耗的精确测量,本发明实施例提供了一种车辆耗油量测量方法。所述方法的技术方案如下:
本发明实施例提供了一种车辆耗油量测量方法,包括:
获取油量数据记录,并将获取的油量数据记录按时间排序;
判断当日第一条油量数据记录是否为车辆关闭状态下获取的,如果是,根据第一条及紧接的随后预设条油量数据记录中的剩余油量值计算第一油量平稳点P1,否则,找出车辆关闭状态下的第一条油量数据记录,根据车辆关闭状态下的第一条及紧接的随后预设条油量数据记录中的剩余油量值计算第二油量平稳点P1′,然后对所述P1′进行补偿,补偿后记为P1″;
判断当日最后一条油量数据记录是否为车辆关闭时获取的,如果是,根据最后一条及紧接的向前预设条油量数据记录中的剩余油量值计算第三油量平稳点P2,否则,找出车辆关闭状态下的最后一条油量数据记录,根据车辆关闭状态下的最后一条及紧接向前预设条油量数据记录中的剩余油量值计算第四油量平稳点P2′,对所述P2′进行补偿,补偿后记为P2″;
计算耗油量差值,所述耗油量差值为P1与P2的差值,或者为P1与P2″的差值,或者为P1″与P2的差值,或者为P1″与P2″的差值;
计算车辆当日的加油量与所述耗油量差值之和,将其作为所述车辆的当日耗油量。
其中,当车辆关闭状态下的第一条油量数据记录的时间晚于当日加油量的时间时,将所述当日加油量记为零;当车辆关闭状态下的最后一条油量数据记录的时间早于当日加油量的时间时,将所述当日加油量记为零。
所述方法还包括:
将当日第一条油量数据记录中的里程记为L1,将当日最后一条油量数据记录对应的里程记为L2,并计算L2与L1的差值,记为里程差值;
根据车辆当日耗油量和里程差值计算出车辆百公里油耗值。
进一步地,获取油量数据记录之后,还包括:
剔除剩余油量值为空的油量数据记录,或者剔除剩余油量值不稳定的油量数据记录。
进一步地,获取油量数据记录之后,还包括:
剔除剩余油量值为0的油量数据记录。
进一步地,剔除剩余油量值为0的油量数据记录具体包括:
如果多组剩余油量值为0的油量数据记录的时间间隔在预设范围时间内,则删掉预设时间内的所有油量数据记录。
进一步地,获取油量数据记录之后,还包括:
剔除油量数据小于第一指定值的油量数据,和油量数据大于第二指定值的油量数据。
其中,根据第一条及随后预设条油量数据记录中的剩余油量值计算第一油量平稳点P1具体为:
根据第一条及随后预设条油量数据记录中的剩余油量值,采用滑动平均滤波方法计算第一油量平稳点P1;
根据最后一条及向前预设条油量数据记录中的剩余油量值计算第三油量平稳点P2具体为:
根据最后一条及向前预设条油量数据记录中的剩余油量值,采用滑动平均滤波方法计算第三油量平稳点P2。
其中,采用滑动平均滤波方法计算第一油量平稳点P1,具体为:
设K1为第一油量平稳点P1对应的油量变化率,则n≥2;Pj为剩余油量值,i为当日车辆关闭状态下第一条油量数据的记录行数;当至少连续2个|K1|<1,停止计算,则P1为计算时滑动窗口包括的剩余油量值的均值;
采用滑动平均滤波方法计算第三油量平稳点P2,具体为:
设K2为第三油量平稳点P2对应的油量变化率,则n≥2;Pj为剩余油量值,i为当日车辆关闭状态下最后一条油量数据的记录行数;当计算出至少连续2个|K2|<1,停止计算,则P2为计算K2时滑动窗口包括过的剩余油量值的均值。
其中,根据车辆关闭状态下的第一条及紧接的随后预设条油量数据记录中的剩余油量值计算第二油量平稳点P1′,然后对所述P1′进行补偿,补偿后记为P1″,具体为:
设P1′的修正系数为f1,f1=(L1′-L1)*百公里油耗预设值/100,则P1″=P1′+f1;其中L1′为计算第二油量平稳点P1′时的每一个剩余油量值所对应的里程值的均值,L1为当日第一条油量数据记录对应的里程数;
根据车辆关闭状态下的最后一条及紧接向前预设条油量数据记录中的剩余油量值计算第四油量平稳点P2′,对所述P2′进行补偿,补偿后记为P2″,具体为:
设P2′的修正系数为f2,f1=(L2-L2′)*百公里油耗预设值/100,则P2″=P2′-f2,其中,L2′为计算第四油量平稳点P2′时的每一个剩余油量值所对应的里程值的均值,L2为当日最后一条油量数据记录对应的里程数。
本发明实施例提供的车辆耗油量测量方法测量效率高,大大节省了时间与人力,而且具有很高的测量精度;本发明实施例的测量周期为天,极大了实现了耗油量的精确测量,有效帮助使用者实时掌握耗油情况,对油耗进行管理,以降低油耗,节约成本。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参见图1,本发明实施例提供了一种车辆耗油量测量方法,该方法包括:
步骤1:获取油量数据记录,并将获取的油量数据记录按时间排序;
步骤2:判断当日第一条油量数据记录是否为车辆关闭状态下获取的,如果是,执行步骤3,否则,执行步骤4;
步骤3:根据第一条及紧接的随后预设条油量数据记录中的剩余油量值计算第一油量平稳点P1;
步骤4:从当日第一条油量数据记录往下找,找出车辆关闭状态下的第一条油量数据记录,根据车辆关闭状态下的第一条及紧接的随后预设条油量数据记录中的剩余油量值计算第二油量平稳点P1′,然后对该第二油量平稳点P1′进行修正,修正后记为P1″;
步骤5:判断当日最后一条油量数据记录是否为车辆关闭时获取的,如果是,执行步骤6,否则,执行步骤7;
步骤6:根据最后一条及紧接的向前预设条油量数据记录中的剩余油量值计算第三油量平稳点P2;
步骤7:从最后一条油量数据记录往上找,找出车辆关闭状态下的最后一条油量数据记录,根据车辆关闭状态下的最后一条及紧接的向前预设条油量数据记录中的剩余油量值计算第四油量平稳点P2′,然后对该第四油量平稳点P2′进行修正,修正后记为P2″;
如果当日第一条和最后一条油量数据记录是在车辆处于关闭状态下获取的,则对计算出的第一油量平稳点P1和第三油量平稳点P2不需要进行里程补偿,但如果当日第一条或者最后一条油量数据记录是在车辆处于启动状态下获取的,而这时候计算出的第二油量平稳点P1′和第四油量平稳点P2′是在车辆关闭状态下计算出来的,因此在这种情况下需要对第二油量平稳点P1′和第四油量平稳点P2′进行里程补偿。
步骤8:计算耗油量差值,耗油量差值为P1与P2的差值,或者为P1与P2″的差值,或者为P1″与P2的差值,或者为P1″与P2″的差值;
步骤9:计算车辆当日的加油量与上述耗油量差值之和,将其作为车辆的当日耗油量。
需要说明的是,本发明实施例中对步骤2与步骤5的执行顺序没有限制,可以先执行步骤2,也可以先执行步骤5,也可以同时执行步骤2和步骤5。
需要说明的是,为了保证计算精度,当车辆关闭状态下的第一条油量数据记录的时间晚于当日加油量的时间时,将当日加油量记为零,因为当车辆关闭状态下的第一条油量数据记录的时间晚于当日加油量的时间时,该加油量可能是前一天的加油量,因此需要将计算时的当日加油量设为零;同理,当车辆关闭状态下的最后一条油量数据记录的时间早于当日加油量的时间时,将当日加油量记为零,因为当车辆关闭状态下的最后一条油量数据记录的时间早于当日加油量的时间时,该加油量是在车辆使用完毕后才加的,因此需要将计算时的当日加油量设为零。
进一步地,该方法还包括:
将当日第一条油量数据记录中的里程记为L1,将当日最后一条油量数据记录对应的里程记为L2,并计算L2与L1的差值,记为里程差值;
根据车辆当日耗油量和里程差值计算出车辆百公里油耗值。
进一步地,在获取油量数据后,由于系统传输或者网络影响,使得一些油量数据没有传输到数据库中,出现了油量为空的数据,因此为了节省计算时间,可以将这些油量为空的数据删除,即在获取油量数据记录之后,本发明还包括:剔除剩余油量值为空的油量数据记录。
进一步地,获取油量数据记录之后,该方法还包括:剔除剩余油量值不稳定的油量数据记录。具体地,可以剔除车辆启动之后和停止之前的预设条油量数据记录。因为车辆的启动和停止会造成电压对油量数据的干扰,而导致油量数据产生波动,这样会对后续的计算产生影响,因此本发明实施例将这些不稳定的油量数据对应的油量数据记录剔除,以保证计算结果的精度,具体删除条数可以根据需要来设定。
进一步地,在获取油量数据记录之后,还包括:剔除剩余油量值为零的油量数据记录。
具体地,对于单独存在的剩余油量值零点数据,直接删掉;对于连续存在的一段油量零点,先用滑动平均滤波算法找到油量零点的起止点,然后把之间的油量零点数据删掉。
实际应用中,也会存在多组剩余油量值为零的油量数据记录,每组之间又会夹杂着正常数据,这种情况下,如果每组剩余油量值为零的油量数据记录的时间间隔不超过30min,则把这30min内的正常油量数据记录和油量零点数据记录一并删掉,即该方法还包括:如果多组剩余油量值为零的油量数据记录的时间间隔在预设范围时间内,则删掉预设时间内的所有油量数据记录。
一般在油量检测过程中,获取的油量数据的两端值可能不够稳定,这些不稳定的两端值也就是所说的异常点,因此为了保证计算精度,可以将这些异常点去掉。即在获取油量数据记录之后,该方法还包括剔除油量数据小于第一指定值的油量数据,和油量数据大于第二指定值的油量数据。其中,第一指定值和第二指定值可以根据需要剔除的油量数据个数来确定,本发明实施例对此不作限制。
其中,根据第一条及紧接的随后预设条油量数据记录中的剩余油量值计算第一油量平稳点P1具体为:
根据第一条及随后预设条油量数据记录中的剩余油量值,采用滑动平均滤波方法计算第一油量平稳点P1,即采用滑动平均滤波算法找出包含第一条油量数据记录的滑动窗口对应的油量平稳点P1,具体地,设K1为第一油量平稳点P1对应的油量变化率,则油量变化率
n≥2,Pj为剩余油量值,i为当日第一条车辆处于关闭状态下的油量数据的记录行数,Pj中j的取值范围为i到i+n,Pj中j的取值范围为i到i+n+1;若n=2则滑动窗口包括四行数据,即i至i+3;若n=3则滑动窗口包括五行数据,以此类推。滑动窗口的大小具体可以根据需要来设定,本实施例对此不作限制。滑动窗口每滑动一次,得到一个K1;当至少连续2个|K1|<1,停止计算,此时则P1为计算K1时滑动窗口包括的剩余油量值的均值。本发明实施例中以n=2为例进行说明,即滑动窗口包括四行数据,如果连续滑动两次,即滑动窗口总共包括了五行油量数据记录,计算出的K1<1,则P1就是该五行油量数据记录中剩余油量值的均值。
需要说明的是,本发明实施例中,计算第二油量平稳点P1′的过程与计算第一油量平稳点P1的过程相同,本发明在此不再赘述。
根据最后一条及紧接的向前预设条油量数据记录中的剩余油量值计算第三油量平稳点P2,具体为:
根据最后一条及向前预设条油量数据记录中的剩余油量值,采用滑动平均滤波方法计算第三油量平稳点P2,即采用滑动平均滤波方法找出包含最后一条油量数据记录的滑动窗口对应的油量平稳点P2,具体地,设K2为第三油量平稳点P2对应的油量变化率,则
n≥2;Pj为剩余油量值,i为当日最后一条车辆处于关闭状态下的油量数据的记录行数,Pj中j的取值范围为i-n-1到i-1,Pj中j的取值范围为i-n到i;当计算出至少连续2个|K2|<1,停止计算,则P2为计算K2时滑动窗口包括过的剩余油量值的均值。
需要说明的是,本发明实施例中,计算第四油量平稳点P2′的过程与计算第三油量平稳点P2的过程相同,本发明在此不再赘述。如前所述,如果当日第一条油量数据记录是在车辆处于启动状态下获取的,则需要车辆关闭状态下的第一条及紧接的随后预设条油量数据记录中的剩余油量值计算第二油量平稳点P1′,然后对所述P1′进行补偿,补偿后记为P1″,具体为:
设第二油量平稳点P1′的修正系数为f1,f1=(L1′-L1)*百公里油耗预设值/100,则P1″=P1′+f1;其中L1′为计算第二油量平稳点P1′时的每一个剩余油量值所对应的里程值的均值,L1为当日第一条油量数据记录对应的里程数;
同理,车辆关闭状态下的最后一条及紧接向前预设条油量数据记录中的剩余油量值计算第四油量平稳点P2′,对所述P2′进行补偿,补偿后记为P2″,具体为:
设第四油量平稳点P2′的修正系数为f2,f1=(L2-L2′)*百公里油耗预设值/100,则P2″=P2′-f2,其中,L2′为计算第四油量平稳点P2′时的每一个剩余油量值所对应的里程值的均值,L2为当日最后一条油量数据记录对应的里程数。
下面采用具体实例说明,图2至图4为获取的车牌号为京AB4387的油量数据记录:
从图2中可以看到,2013年9月6日第一条的油量数据记录序号为9468,其ACC为1,表示该条油量数据记录获取时车辆处于启动状态,因此从该序号为9468的油量数据记录往下找,找出ACC为0的第一条油量数据记录,ACC为0,表示该条油量数据记录获取时车辆处于关闭状态;从图3中可以看到2013年9月6日的ACC为0的第一条油量数据记录的序号为9475,然后根据序号为9475的油量数据记录和紧接的随后四条油量数据记录计算第二油量平稳点P1′,K1为第二油量平稳点P1′对应的油量变化率,n=2即滑动窗口包括四行数据,第一次计算K1,滑动窗口包括序号为9475、9476、9477和9485的油量数据记录,此时计算出的K1为0.485732;滑动后,即滑动窗口包括9476、9477、9485和9486的油量数据记录,计算出第二个K1为0,由于连续两个K1均小于1,停止计算。P1′为计算K1时滑动窗口包括的油量数据记录中剩余油量值的均值,即P1′为序号为9475、9476、9477、9485和9486的油量数据记录中剩余油量值的均值,计算出P1′为109.58;
设第二油量平稳点P1′的修正系数为f1,f1=(L1′-L1)*百公里油耗预设值/100,其中L1′为计算第二油量平稳点P1′时的每一个剩余油量值所对应的里程值的均值,即L1′为序号为9475、9476、9477、9485和9486的油量数据记录中里程值的均值,计算出L1′为320.48,本实施例中百公里油耗预设值设为18,则f1=(320.48-318.8)*18/100=0.3024(L),则P1″=P1′+f1=109.58+0.3024=109.88(L),L1为当日第一条油量数据记录对应的里程数;
从图4中可以看出2013年9月6日最后一条油量数据记录的序号为10955,其ACC为0,表示车辆处于关闭状态,因此根据最后一条及紧接的向前4条油量数据记录中的剩余油量值计算第三油量平稳点P2,K2为第三油量平稳点P2对应的油量变化率,n=2即滑动窗口包括四行数据,第一次计算K2,滑动窗口包括序号为10955、10954、10953和10952的油量数据记录,此时计算出的K2为0.029709;滑动后,即滑动窗口包括10954、10953、10952和10951的油量数据记录,计算出第二个K2为0.0297,由于连续两个连续两个K2均小于1,则停止计算,P2为计算K2时滑动窗口包括过的剩余油量值的均值,即P2为序号为10955、10954、10953、10952和10951的油量数据记录中剩余油量值的均值,计算出P2为112.24(L)。
P1″与P2的差值即为109.88-112.24=-2.36(L)。由于设备本身的局限性,油耗差值为负值是可能的,当出现负值时可视油耗差值为0,同时如果当日没有加油,则当日的油耗即为0。
本发明实施例提供的车辆耗油量测量方法测量效率高,大大节省了时间与人力,而且具有很高的测量精度;本发明实施例的测量周期为天,极大了实现了耗油量的精确测量,有效帮助使用者实时掌握耗油情况,对油耗进行管理,以降低油耗,节约成本。
发明实施例可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,例如,计算机的硬盘、缓存或光盘中。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。