一种电动汽车续航里程计算方法及装置
技术领域
本发明涉及电动汽车领域,特别是涉及一种电动汽车续航里程计算方法及装置。
背景技术
目前绝大部分电动汽车的驾驶员都通过蓄电池电量表估测车辆剩余电量,并根据各自的行车经验判断剩余电量的续航公里数。由于电动汽车续航能力有限,大部分的续航能力都远不及汽油车和柴油车,并且充电时间长,充电站少等因素,所以驾驶员会更加关注车辆的耗电经济性和车辆的耗电情况,但由于电动汽车电池的电量与电压呈非线性关系,所以很难直接从剩余电量计算出续航里程。
在现有技术中,主要是通过在电动车组合仪表显示续航里程信息,续航里程则是依据电池剩余电量和最近一段时间内的平均耗电量信息进行计算。首先是计算出最近一段时间内的每公里的平均耗电量,然后再将电池剩余电量除以平均耗电量,得到续航里程数。现有的续航里程计算方法在在以下不足:
1、由于平均耗电量的变化会对续航里程产生直接影响,通常计算中是采用了最近三十公里的平均耗电量,这样会在一些特定场景下出现平均耗电量变化幅度多大导致续航里程出现较大幅度的跳变,与实际续航里程偏差大,且不切实际(在现实时续航里程是逐公里递减的,不会发生跳变);
2、现有的剩余里程计算方法中进行了两次的除法计算(浮点型运算),其计算量很大,再现有的车内续航里程计算单元主要为8位或16位的单片机,其计算能力很有限,影响计算效率。
发明内容
为解决上述技术问题,本发明提供一种计算更简单且更准确的电动汽车续航里程计算方法。
本发明是这样实现的:
一种电动汽车续航里程计算方法,包括以下步骤:
步骤一、获取电动汽车的电池信息和车辆行驶信息;
步骤二、统计电动汽车每行驶一预设距离时电池的耗电量;
步骤三、对电动汽车当前每行驶所述预设距离的耗电量以及对应的行驶距离进行累加;
步骤四、判断累加得到的耗电量是否大于或等于电池当前的剩余电量,若否,则继续累加,若是,则停止累加,所累加的行驶距离即为电动汽车当前的续航里程数,并通过CAN总线传输给仪表进行显示。
进一步的,所述预设距离为一公里。
进一步的,在步骤一之前还包括初始化步骤,在初始化步骤中对预设的耗电量存储队列A[n]进行初始化,队列A[n]的元素个数为电池在满电状态时的最大续航里程数,队列A[n]中的元素初始化值为最大续航里程下的每公里耗电量;
在步骤二中,每得到一个所述耗电量时,将得到的耗电量插入队列A[n]的队尾,同时删除队列A[n]中队头的第一个元素;
在步骤三中,进行累加时由队列A[n]的队尾往队头方向,对A[n]中各元素值和元素个数进行累加。
进一步的,所述电动汽车的电池信息和车辆行驶信息是通过传输速率为500Kb/s的高速CAN总线获取到的。
为解决上述技术问题,本发明提供的另一技术方案为:
一种电动汽车续航里程计算装置,包括信息获取模块、统计模块、累加模块和判断模块;
所述信息获取模块用于获取电动汽车的电池信息和车辆行驶信息;
所述统计模块用于统计电动汽车每行驶一预设距离时电池的耗电量;
所述累加模块用于对电动汽车当前每行驶所述预设距离的耗电量以及对应的行驶距离进行累加;
所述判断模块用于判断累加得到的耗电量是否大于或等于电池当前的剩余电量,若否,则继续累加,若是,则停止累加,所累加的行驶距离即为电动汽车当前的续航里程数,并通过CAN总线传输给仪表进行显示。
进一步的,所述预设距离为一公里。
进一步的,还包括初始化模块,所述初始化模块用于对预设的耗电量存储队列A[n]进行初始化,队列A[n]的元素个数为电池在满电状态时的最大续航里程数,队列A[n]中的元素初始化值为最大续航里程下的每公里耗电量;
所述统计模块还用于在每得到一个所述耗电量时,将得到的耗电量插入队列A[n]的队尾,同时删除队列A[n]中队头的第一个元素;
所述累加模块在进行累加时由队列A[n]的队尾往队头方向,对A[n]中各元素值和元素个数进行累加。
进一步的,所述信息获取模块是通过传输速率为500Kb/s的高速CAN总线获取电动汽车的电池信息和车辆行驶信息的。
本发明的有益效果为:本发明续航里程计算方法即简单又准确,计算得到的续航里程是随着车子行驶逐一递减的,避免了现有平均法计算方法因一些计算偏差而导致续航里程波动的情况,提高了续航里程的计算准确度,同时,本发明在计算时通过统计每公里耗电量,并对公里数和耗电量进行累加的方式来计算续航里程,避免使用浮点运算,大大节省了MCU的运算时间,提高了计算精度。
附图说明
图1为电动汽车的模块框图;
图2为本发明实施方式电动汽车续航里程计算方法流程图;
图3为本发明实施方式详细执行流程图;
图4为本发明实施方式电动汽车续航里程计算装置的模块框图。
标号说明:
10-信息获取模块;20-统计模块;30-累加模块;40-判断模块。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
名词解释:
BMS:(BatteryManagerSystem)电池管理系统;
MCU:(MotorControlUnit)电机控制系统;
IPC:(InstrumentPanelCluster)组合仪表;
请参阅图1和图2,为本发明实施方式电动汽车续航里程计算方法的流程图,该续航里程计算方法包括:
步骤一、获取电动汽车的电池信息和车辆行驶信息;
步骤二、统计电动汽车每行驶一预设距离时电池的耗电量;
步骤三、对电动汽车当前每行驶所述预设距离的耗电量以及对应的行驶距离进行累加;
步骤四、判断累加得到的耗电量是否大于或等于电池当前的剩余电量,若否,则继续累加,若是,则停止累加,所累加的行驶距离即为电动汽车当前的续航里程数,并通过CAN总线传输给仪表进行显示。
其中,在步骤一中,所述电动汽车的电池信息和车辆行驶信息是由组合仪表MCU通过CAN总线分别连接电池管理系统(BMS)和电动机控制系统(MCU)获取到的。所述CAN总线为速率为500Kb/s的高速CAN总线。所述获取到的电池信息包括电池电压值(即剩余电量),所述车辆行驶信息包括车辆行驶里程数。
请参阅图3,在步骤二中,由组合仪表对每预设距离x的耗电量进行统计,优选的,所预设的距离x为1公里,统计采取如下方法:根据电池管理系统(以下简称BMS)在CAN总线上发送的Qn(当前电池剩余电量)结合MCU在CAN总线上发送的Sn(当前里程信息),计算出一公里内的耗电量ΔQn,ΔQn计算方法为,当Sn-Sn-1=1公里,计算得出ΔQn=Qn-Qn-1。
在步骤二中,在初始化时,组合仪表对预先设定好的耗电量存储队列A[n]进行初始化,队列A[n]的元素个数为电池在满电状态时的最大续航里程数,队列A[n]中的元素初始化值为最大续航里程下的每公里耗电量。队列A[n]是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。
在每得到一个所述耗电量时,将得到的耗电量插入队列A[n]的队尾,同时删除队列A[n]中队头的第一个元素。即每行驶一公里,对队列A[n]中元素从第一个开始逐个更新,更新方法为A[n]更新为A[n-1],以此类推,A[1]更新为A[0],最后A[0]更新为ΔQn。当ΔQn+1出现时,A[n]的更新方式采用上述方式进行,最终A[0]更新为ΔQn+1,这个过程采用的方式为先进先出的策略。采用队列A[n]对耗电量进行存储和更新,大大提高了计算的效率。
在步骤三中,由组合仪表进行累加计算,对电动汽车当前每行驶所述预设距离的耗电量以及对应的行驶距离进行累加。进行累加时由队列A[n]的队尾往队头方向,对A[n]中各元素值和元素个数进行累加。将A[n]中的元素从第一个开始逐个累加(A[1]+A[2]+A[3]+……A[m]),当累加值大于等于电池剩余电量时,m*预设距离x即为续航里程,当预设距离x为1时,所述续航进程即为m。
请参阅图4,本发明还提供了另一实施方式,一种电动汽车续航里程计算装置,包括信息获取模块10、统计模块20、累加模块30和判断模块40;
所述信息获取模块10用于获取电动汽车的电池信息和车辆行驶信息;
所述统计模块20用于统计电动汽车每行驶一预设距离时电池的耗电量;
所述累加模块30用于对电动汽车当前每行驶所述预设距离的耗电量以及对应的行驶距离进行累加;
所述判断模块40用于判断累加得到的耗电量是否大于或等于电池当前的剩余电量,若否,则继续累加,若是,则停止累加,所累加的行驶距离即为电动汽车当前的续航里程数,并通过CAN总线传输给仪表进行显示。
进一步的,所述预设距离为一公里。
进一步的,还包括初始化模块,所述初始化模块用于对预设的耗电量存储队列A[n]进行初始化,队列A[n]的元素个数为电池在满电状态时的最大续航里程数,队列A[n]中的元素初始化值为最大续航里程下的每公里耗电量;
所述统计模块还用于在每得到一个所述耗电量时,将得到的耗电量插入队列A[n]的队尾,同时删除队列A[n]中队头的第一个元素;
所述累加模块30在进行累加时由队列A[n]的队尾往队头方向,对A[n]中各元素值和元素个数进行累加。
进一步的,所述信息获取模块10是通过传输速率为500Kb/s的高速CAN总线获取电动汽车的电池信息和车辆行驶信息的。
本发明电动汽车续航里程计算方法的主要优点在于:它能更直观的和贴切的计算显示给驾乘人员一种续航里程逐一递减的过程,避免了在续航力计算中使用平均电耗的过程量带来的一些计算偏差而导致续航里程波动的情况。在通常计算平均电耗的时候,采用的方式一般是统计一段里程内的总电耗,这个过程中的除法运算会出现浮点运算,舍弃小数点后的数值会带来计算偏差,不舍弃小数点后的数值会给MCU带去高负荷。在此过程中设计方式一般会采用适当放大计算,折中最后的除式的结果。而后的计算仍然要使用除式,将剩余电量除以平均电耗,得出续航里程。这个计算中又出现除法运算,同样的问题出现,最后结果会让计算出现耗时且不准的情况。而本发明采用的算法只有求和运算,没有浮点运算,大大节省了MCU的运算时间,而且也不存在四舍五入的情况,让续航里程能以一个非常线性逐一减少的方式显示续航里程。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。