一种RC充放电回路下充放电特性曲线拟合算法的制作方法

文档序号:13734731阅读:555来源:国知局
一种RC充放电回路下充放电特性曲线拟合算法的制作方法

本发明涉及一种充放电回路研究,尤其涉及一种rc充放电回路下充放电特性曲线拟合算法。



背景技术:

解析rc充放电电路的根本就是找到其对应的物理特性,这其中最重要的一步就是找出其对应的充放电方程。通过曲线拟合,可以找到满足rc充、放电特性曲线对应的物理系数,从而帮助分析。现有充、放电特性曲线高效高速拟合技术是在pc端上实现的,特别是基于matlab的拟合技术,都是基于pc强悍的硬件处理能力。但是嵌入式平台硬件处理能力是没法达到那种高度的,这就决定了在嵌入式平台上需要依靠算法优化来达到高速高效的拟合效果。

其次,目前电动汽车采用预估算法求解绝缘电阻值时,由于rc电路存在,导致芯片采集ad样本失准。由于rc电路存在导致电路元器件两端电压失准,电压延迟稳定现象,因而其计算结果经常有误,而且造成极大的工作量。

因而,急需一种拟合算法可应用于嵌入式平台,同时还能解决rc电路存在时采用预估算法对绝缘电阻值的精确求解。



技术实现要素:

基于上述背景,本发明提供了一种rc充放电回路下充放电特性曲线拟合算法,其扩大了rc充放电回路曲线拟合技术的应用范围,同时达到高效充、放电特性曲线拟合速度和准确度。

为实现上述目的,本发明提供了一种rc充放电回路下充放电特性曲线拟合算法,包括:根据实际充电特性曲线1vt=v0+(vu1-v0)*[1-exp(-t*b1)]和实际放电特性曲线1vt=e1*exp(-t*b`1)+vc1,分别假定一条充电特性曲线2vt=v0+(vu2-v0)*[1-exp(-t*b2)]和一条放电特性曲线2vt=e2*exp(-t*b`2)+vc2,通过采集样本数据分别确定充电特性曲线系数vu2_a和放电特性曲线系数e2_a可能分布的取值范围,将各取值范围分别定义为假定取值区间,将各假定取值区间分成n(n取≥1的整数)个长度相同的小区间,在各假定取值小区间取中间值作为vu2_a和e2_a当前值,通过算法自动调整系数b2_a或b`2_a,得到与小区间数目相同的若干个sum值,然后将最小的sum值对应的小区间作为vu2_a或e2_a值所在的实际取值区间,在这个小区间分别对充电特性曲线系数vu2_a或放电特性曲线系数e2_a进行拟合,从而得到实际充电特性曲线特征值(vu2_b、b2_b)和实际放电特性曲线特征值(e2_b、b`2_b、vc2_b),从而确定实际充电特性曲线1和实际放电特性曲线1(v0为充电开始时监测对象电压值;vu1、vu2为充电完成监测对象终止电压值;vt为监测对象在任意时刻t电压值;b1、b2为rc充电特性系数;e1、e2为监测对象从开始放电到放电结束总的放电电压差值;b`1、b`2为rc放电特性系数;vc1、vc2为监测对象放电结束后本身存在的稳定电压值;exp()为指数函数)。

需要说明的是将各假定取值区间分成n(n取≥1的整数)个长度相同的小区间,在各假定取值小区间取中间值作为vu2_a和e2_a当前值,存在下述两种情形:若假定取值区间很小时,n取1,即仅存在一个长度相同的区间,此时针对这个取值范围取中间值即可;若假定取值区间需要再进一步细分,则n取≥2的整数,此时至少存在两个长度相同的小区间,针对至少2个小区间取中间值作为vu2_a和e2_a当前值。

进一步的,所述通过采集样本数据确定充电特性曲线系数vu2_a可能分布的取值范围,包括:假设实际充电特性曲线1vt=v0+(vu1-v0)*[1-exp(-t*b1)]有n个样本点c0~cn-1,在充电特性曲线2vt=v0+(vu2-v0)*[1-exp(-t*b2)]上选取n个与样本点c0~cn-1具有相同横坐标的点,通过后台运行采集样本点的数据确定充电特性曲线系数vu2_a可能分布的取值范围。

进一步的,所述通过采集样本数据确定放电特性曲线系数e2_a可能分布的取值范围,包括:假设实际放电特性曲线1vt=e1*exp(-t*b`1)+vc1有n个样本点c0~cn-1,在放电特性曲线2vt=e2*exp(-t*b`2)+vc2上选取n个与样本点c0~cn-1具有相同横坐标的点,通过后台运行采集样本点的数据确定放电特性曲线系数e2_a可能分布的取值范围。

进一步的,所述将取值范围定义为假定取值区间,将假定取值区间分成n(n为≥1的整数)个长度相同的小区间,在各假定取值小区间取中间值作为vu2_a当前值,通过算法自动调整系数b2_a,得到与小区间数目相同的若干个sum值,为通过最小二乘法,从而得到与区间数目相同的若干个sum值。

sum的计算方式为:

(i-表示第i个样本点,t[i]-表示实际充电特性曲线1第i个样本点的横坐标,buf[i]-表示第i个样本点在实际充电特性曲线1上的纵坐标)

进一步的,所述通过最小二乘法从而得到与区间数目相同的若干个sum值,包括:将实际充电特性曲线1的横坐标皆设定为间隔相同的时刻值t[i](i取0,1,2,...n-1),纵坐标为相应时刻采集出的vt值,将vu2_a的可能取值范围定义为假定取值区间[vu_cn-1,x*vu_cn-1](x取2,...n),vu_cn-1为实际充电特征曲线上点cn-1的vt值,将假定取值区间再分成n(n取≥1的整数)个长度相同的小区间,分别取各长度相同的小区间的中间值vum(m取1,2....n),通过最小二乘法的算法自动调整b2_a值计算不同组合(vum,b2_a)下的最小sum值,其中最小sum值对应的小区间就是实际充电特性曲线1的vu2_a的实际取值区间。

通过最小二乘法的算法自动调整b2值是指以最小二乘法求得的sum值为判断标准力求sum值最小,具体的指,当增大b2值时,sum变大,则减小b2,直到sum最小为止;当增大b2值时,sum变小,则继续增大b2,直到sum最小为止;同理,当减小b2值时,sum值也变大,则增大b2值,直到sum最小为止;当减小b2值时,sum值也变小,则继续减小b2值,直到sum最小为止。

进一步的,将取值范围定义为假定取值区间,将假定取值区间分成n(n取≥1的整数)个长度相同的小区间,在各假定取值小区间取中间值作为e2_a当前值,通过算法自动调整系数b`2_a,得到与小区间数目相同的若干个sum值,为通过最小二乘法,从而得到与区间数目相同的若干个sum值。

sum的计算方式为:

(i-表示第i个样本点,t[i]-表示实际放电特性曲线1第i个样本点的横坐标,buf[i]-表示实际放电特性曲线1第i个样本点的纵坐标)

进一步的,所述通过最小二乘法从而得到与区间数目相同的若干个sum值,包括:将实际放电特性曲线1的横坐标皆设定为间隔相同的时刻值t[i](i取0,1,2,...n-1),纵坐标为相应时刻采集出的vt值,刚开始放电时的vt为vf,因为e2_a=vf-vc2_a,将e2_a的可能取值范围定义为假定取值区间[0,vf],将假定取值区间再分成n(n取≥1的整数)个长度相同的区间,分别取各长度相同的区间的中间值em(m取1,2....n),通过最小二乘法的算法自动调整b`2_a值计算不同组合(em,b`2_a,vf-em)下的最小sum值,其中最小sum值对应的小区间就是实际放电特性曲线1的e2_a的实际取值区间。

通过最小二乘法的算法自动调整b`2_a值是指以最小二乘法求得的sum值为判断标准力求sum值最小,具体的指,当增大b`2_a值时,sum变大,则减小b`2_a,直到sum最小为止;当增大b`2_a值时,sum变小,则继续增大b`2_a,直到sum最小为止;同理,当减小b`2_a值时,sum值也变大,则增大b`2_a值,直到sum最小为止;当减小b`2_a值时,sum值也变小,则继续减小b`2_a值,直到sum最小为止。

进一步的所述将最小的sum值对应的小区间作为vu2_a所在的实际取值区间,在这个小区间对充电特性曲线系数vu2_a进行拟合,从而得到实际充电特性曲线特征值(vu2_b、b2_b)为通过最小二乘法,计算实际取值区间内不同组合下的(vu2_a、b2_a)值的sum值,找到sum值最小值,就是最终实际充电特性曲线特征值(vu2_b、b2_b)。

进一步的,所述将最小的sum值对应的小区间作为e2_a值所在的实际取值区间,在这个小区间对放电特性曲线系数e2_a进行拟合,从而得到实际放电特性曲线特征值(e2_b、b`2_b、vc2_b),为通过最小二乘法计算实际取值区间内不同组合下的(e2_a、b`2_a、vc2_a)值的sum值,找到sum值最小值,就是最终实际放电特性曲线特征值(e2_b、b`2_b、vc2_b)。

本发明就是通过将拟合结果分布的可能区间划分为若干小区间,确定实际vu或者e分布的小区间后再在这个小区间进行多次的拟合,求得最优解,精确确定最终拟合结果,其准确率高。这样rc充、放电特性曲线的快速拟合,就不再仅仅局限于pc端了,从而促进了rc曲线拟合技术在嵌入式平台上的运用,优化了嵌入式平台的数据处理方法,减小了数据处理量,让嵌入式平台拥有了对满足充放电特性数据的高速高效拟合能力。同样的,本发明新拟合算法充分考虑到由于rc电路存在造成的电路元器件两端电压失准问题采用预估思想,通过分析已有样本点,预估出最终rc电路稳定后电路中元器件两端的准确电压,对具有rc电路特性的现象的绝缘电阻值的预估算法精确求解对分析提供了一种新的方法。

附图说明

图1为充电特性曲线拟合图。

图2为充电特性曲线系数特征值拟合过程图。

图3为放电特性曲线拟合图。

图4为放电特性曲线系数特征值拟合过程图。

具体实施方式

下面通过具体实施方式来进一步说明本发明的技术方案,但不构成对本发明的任何限制。

首先说明充电特性曲线。

对于充电特性曲线方程,我们需要拟合的有两个系数,即充电结束后终止电压vu和充电物理特性系数b。具体拟合方法如下(如图1所示):假设n个样本点c0~cn-1所在的曲线vt=v0+(vu1-v0)*[1-exp(-t*b1)]为实际充电特性曲线1,即我们需要求解的充电方程系数代表的充电特性曲线。为了求解实际充电曲线系数,我们先给定一条充电特性曲线vt=v0+(vu2-v0)*[1-exp(-t*b2)],即假设充电特性曲线2,在假设充电特性曲线2上选取n个与样本点c0~cn-1具有相同横坐标的点d0~dn-1。首先通过采集样本数据确定充电特性参数vu2_a可能分布的取值范围,将该范围定义为假定取值区间[vu_cn-1,x*vu_cn-1](x为正整数2,3,4,5....,依实际情况而定),将该假定取值区间均分成若干段长度相同的小区间,在该假定取值小区间取中间值作为vu2_a当前值,然后通过最小二乘法,通过算法自动调整系数b2_a,得到与小区间数相同的若干个sum值,然后将最小的sum值对应的小区间[vu_cx,vu_cy](注:[vu_cx,vu_cy]属于[vu_cn-1,x*vu_cn-1]的一部分。)作为vu2_a值所在的实际区间。

找到了充电曲线特征值vu2_a所在的实际区间[vu_cx,vu_cy]后,利用最小二乘法,求解不同组合下(vu2_a、b2_a)(其中b2_a根据算法自动求解)下所有最小sum值组,最后选择出组中最小sum对应的(vu2_a、b2_a),即最终充电特性曲线参数(vu2_b、b2_b)。vu2_a拟合如下:

很明显,cn-1点处于充电完成或者未完成阶段,如图1所示,对应的vt值肯定小于或等于充电结束的vu值。已知cn-1点对应的vt值,假设为vu_cn-1,这个vt明显小于或等于最终曲线充电完成后的vt值,即最终的vu值。那么首先给定一个vu的搜索区间[vu_cn-1,x*vu_cn-1](x为正整数2,3,4,5....,依实际情况而定),将这个区间分成若干相等长度区间,如将[10,20]分成5个长度相等的小区间[10,12)、[12,14)、[14,16)、[16,18)、[18,20]。然后取这若干个小区间的中间值,如[10,20]的5个区间的11、13、15、17、19,让充电曲线vt=v0+(vu2-v0)*[1-exp(-t*b2)]中vu2分别取各个区间的中间值,通过算法自动调整b2值,每个vu2值和最终的b2值,都对应一种充电曲线的情况,通过不断改变每种充电曲线2的系数b2,使得当前vu2、b2对应的曲线2与曲线1最接近,同时得到了最小二乘法下的一个最小sum值。有多少个长度相同的区间就有多少个最终的sum值,取出这几个中最小的sum值和对应的vu2和b2值,就可以得到实际充电特性曲线特征值vu所在的区间[vu_cx,vu_cy](很明显,[vu_cx,vu_cy]属于[vu_cn-1,x*vu_cn-1]的一部分)。

sum的计算方式为:

(i-表示第i个样本点,t[i]-表示实际充电特性曲线1第i个样本点的横坐标,buf[i]-表示第i个样本点在实际充电特性曲线1上的纵坐标)

然后直接在上面确定的vu所属区间[vu_cx,vu_cy]中,利用最小二乘法,通过不同组合(vu2、b2)下的sum值,找到sum值最小时的(vu2、b2)值,就是最终充电特性曲线系数(vu2_b、b2_b)值。

这个过程中样本点横坐标设定为间隔相同的时刻值t[i](i取0,1,2,...n-1),比如10、30、50、70...,纵坐标为相应时刻采集出的vt值。规定将横坐标相同的两个样本点纵坐标差值的平方和sum为拟合判断标准,很明显,当sum值小于一定值时候,说明假设充电特性曲线2和实际充电特性曲线1重合或者很接近,此时的(vu2、b2)就是实际充电曲线系数(vu2_b、b2_b)。

我们采用如下方法,实现以最快最高效的方式找到实际充电曲线系数。很明显,充电结束后,t[n-1]时刻采集到的vt值,最接近充电结束后vu值,而实际vu值肯定大于或等于这个vt值,那么我们就可以在大于这个vt值的一定范围内搜索实际的充电结束后的vu值。假设充电结束后vu取值范围为(vu0,vu5),可以取vu0等于t[n-1]时刻采集到的vt值,vu5可以取为t[n-1]时刻采集到的vt值的整数倍。将这个连续区间均分为n段,这里为了叙述方便,均分为5段,即[vu0,vu1)、[vu1,vu2)、[vu2,vu3)、[vu3,vu4)、[vu4,vu5),规定所有涉及到sum的值为了区分都以sumn(n取0,1,2,...)表示依次存储进缓冲数组c[n]中。首先通过在上面5段区间中分别取区间的中间值作为vu2_a,然后结合最小二乘法的思路,通过相应算法自动调整b2_a,分别得到5个vu2_a对应的最小sum值,然后将5个sum值中最小sum值对应的[vux,vux+1)(x取值整数0...4)作为实际充电特性参数vu所在的区间。最后在vu2_a以前面确定的[vux,vux+1)(x取值整数0...4)范围内,通过不同组合(vu2_a、b2_a)下计算而得到sum值小于一定值时,此时的vu2_a、b2_a就是最终的充电特性曲线特征值(vu2_b、b2_b),充电特性拟合思路如图2所示。

其次,以放电特性曲线为例说明。

对于放电特性曲线方程,需要注意的是多一个拟合参数vc(vc为监测对象放电结束后本身存在的稳定电压值),但是vc与放电电压变化量e之间存在一定的关系,所以从某种程度上讲,还是只有两个拟合系数b`和e。同样假设n个样本点c0~cn-1所在的曲线vt=e1*exp(-t*b`1)+vc1为实际放电特性曲线1,如图3,即我们需要求解的放电方程系数代表的放电特性曲线。为了求解实际放电特性曲线系数,我们先给定一条放电特性曲线vt=e2*exp(-t*b`2)+vc2,即假设放电特性曲线2,在假设放电特性曲线2上选取n个与样本点c0~cn-1具有相同横坐标的点d0~dn-1,首先通过采集样本数据确定放电特性参数e2_a可能分布的取值范围,将该范围定义为假定取值区间[0,vf],将假定取值区间均分成若干段长度相同的小区间,在假定取值小区间取中间值作为e2_a当前值,然后通过最小二乘法,通过算法自动调整系数b`2_a,得到与区间数相同的若干个sum值,然后将最小的sum值对应的小区间[e_fx,e_fy](很明显,[e_fx,e_fy]属于[0,vf]的一部分)作为e2_a值所在的实际区间。

找到了放电曲线特征值e2_a所在的实际区间[e_cx,e_cy]后,利用最小二乘法,求解不同组合下(e2_a、b`2_a、vf-e2_a)(其中b`2_a根据算法自动求解)下所有最小sum值组,最后选择出组中最小sum对应的(e2_a、b`2_a、vf-e2_a),即最终充电特性曲线参数(e2_b、b`2_b、vc2_b)。e2_a拟合如下:

在假设放电曲线2上选取n个与样本点c0~cn-1具有相同横坐标的点d0~dn-1。首先假设刚开始放电0时刻时vt值为vf。很明显,cn-1点处于放电完成或者未完成阶段,如图1所示,对应的vf-vt值肯定小于或等于放电结束时e的值。放电分区间拟合算法主要是对e的取值范围进行界定。那么首先给定一个e的搜索区间[0,vf],将这个区间分成若干相等长度区间,如将[0,20]分成5个长度相等的连续空间[0,4)、[4,8)、[8,12)、[12,16)、[16,20]。然后取这若干个区间的中间值,如[0,20]的5个区间的2、6、10、14、18,让放电曲线vt=e2*exp(-t*b2)+vc2中e2分别取各个区间的中间值,则vc2取值为18、14、10、6、2,通过算法自动调整b`2值,每个e2值和最终的b`2值,都对应一种放电曲线的情况,通过不断改变每种放电曲线2的系数b`2,使得当前e2、b`2对应的曲线2与实际曲线1最接近,同时得到了最小二乘法下的一个最小sum值。有多少个长度相同的区间就有多少个最终的sum值,取出这几个中最小的sum值和对应的e2和b`2值,就可以得到实际放电特性曲线特征值e所在的区间[e_fx,e_fy](很明显,[e_fx,e_fy]属于[0,vf]的一部分)。

sum的计算方式为:

(i-表示第i个样本点,t[i]-表示实际放电曲线1第i个样本点的横坐标,buf[i]-表示实际放电曲线1第i个样本点的纵坐标)

然后直接在上面确定的区间[e_fx,e_fy]中,利用最小二乘法,通过不同组合下的(e2、b`2,vc2)值的sum值,找到sum值最小时的(e2、b`2、vc2)值,就是最终充电特性曲线系数(e2_b、b`2_b、vc2_b)值。

这个过程中样本点横坐标设定为间隔相同的时刻值t[i](i取0,1,2,...n-1),比如10、30、50、70...,纵坐标为相应时刻采集出的vt值。我们规定将横坐标相同的两个样本点纵坐标差值的平方和sum为拟合判断标准,计算不同组合(e,b`,vc)下的sum值,很明显,当sum值小于一定值时候,说明假设放电曲线和实际放电曲线重合,此时的(e,b`,vc)就是实际放电曲线系数。

我们采用如下方法,实现以最快最高效的方式找到实际放电曲线系数。假设刚开始放电时刻的vt值为vf5,那么最终放电结束后e值一定处于[0,vf5]之间,我们可以取t[0]时刻的vt值为vf5。将这个连续区间均分为n段,这里为了叙述方便,均分为5段,即[0,vf1)、[vf1,vf2)、[vf2,vf3)、[vf3,vf4)、[vf4,vf5)。很明显,放电完全结束后e+vc=vf5;假设放电结束后vt值处于[0,vf1)区间内,那么此时e值范围[vf5-vf1,vf5],此时vc值范围为[0,vf1];当vt值处于[vf1,vf2)区间内,那么此时e值范围[vf5-vf2,vf5-vf1],此时vc值范围为[vf1,vf2],以此类推。规定所有涉及到sum的值为了区分都以sumn(n取0,1,2,...)表示;实际放电曲线上样本点纵坐标依次存储进缓冲数组f[n](n为样本点个数)中。首先通过在上面5段区间中分别取区间的中间值作为e2_a,然后结合最小二乘法的思路,通过相应算法自动调整b`2_a,分别得到5个e2_a对应的最小sum值然后将5个sum值中最小sum值对应的[vfx,vfx+1)(x取值整数0...4,vf0=0)作为实际放电特性参数e所在的区间。最后在e2_a以前面确定的[vfx,vfx+1)(x取值整数0,...4,vf0=0)范围内,通过不同组合(e2_a、b`2_a、vc2_a)下计算而得到sum值小于一定值时,e2_、b`2、vc2就是最终放电特性曲线特征值(e2_b、b`2_b、vc2_b)。放电特性拟合思路如图4所示。

上面以将样本区间分成5段来说明如何对满足rc充、放电特性曲线进行快速拟合的算法思路,以相同的思路,可以将样本区间分得更细,这样使拟合过程变得更加的高效。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1