SOC是什么
SOC(State of Charge)即电池的电荷状态,通常用百分比表示。它表示电池目前已经存储了多少电量,是电池容量的一个比例。
例如,如果一个电池的额定容量为1000mAh,而目前已经存储了600mAh的电量,则该电池的SOC为60%。SOC是电池管理中非常重要的参数,它可以帮助确定电池的剩余容量和预测电池的寿命等。
电池SOC估算方法
电池状态估算方法主要包括以下几种:
-
基于物理模型的方法:这种方法通常基于电池的化学反应和物理原理,建立电池的数学模型,通过对电池内部化学反应过程、电化学过程和热力学过程的建模来估算电池的状态。这种方法通常需要较为精确的电池参数和较高的计算能力,但可以提供较为准确的电池状态估算结果。
-
基于统计学方法的方法:这种方法通过收集大量的电池运行数据,利用统计学方法来建立电池状态和电池参数之间的关系,从而实现电池状态的估算。这种方法的优点是不需要知道电池的内部参数和化学反应过程,但精度相对于基于物理模型的方法可能稍逊。
-
基于卡尔曼滤波的方法:这种方法基于卡尔曼滤波理论,将电池状态估算问题转化为状态量和测量量之间的卡尔曼滤波问题,通过对电池的充放电过程进行实时测量和处理,实现对电池状态的估算。这种方法通常精度较高,但需要较高的计算能力。
-
基于神经网络的方法:这种方法通过利用神经网络的强大非线性拟合能力,将电池的充放电过程作为输入,将电池状态作为输出,从而实现对电池状态的估算。这种方法需要较为丰富的数据量和较高的计算能力,但可以适用于复杂的电池系统。
卡尔曼滤波可以用在很多工程问题里,在电池状态估计这个问题上,我们实际上还是用了一个基于模型(ECM模型,而不是电化学模型)的估算方法,而不是基于数据的方法。
我在学习卡尔曼滤波方法估算电池soc时,因为基础较差,其实很多东西都忘差不多了,也遇到了或多或少的一些问题,也许有一些问题我至今也没有理解地很清楚,希望在我回顾这个方法时,我可以尽可能地讲得细一些,也许能帮助到同样刚开始接触这个算法的人。
模型
首先我们用到的模型,是一个一阶ecm模型,一阶 ECM(Equivalent Circuit Model)模型是一种电池建模方法,用于描述电池的动态行为。它将电池抽象为一个带有内阻的电压源,并利用一个一阶线性微分方程描述其行为。
有的文章里用二阶,其实二阶和一阶的公式基本一样,就是多了一个RC电路(RC并联),两个模型的主要区别在于它们所描述的电化学过程的复杂度不同。一阶 ECM 模型假设电池的极化响应是一阶动态系统,而二阶 ECM 模型则假设它是二阶动态系统,因此更能准确地描述电池的行为。
一阶ECM模型
其中,Voc表示电池的开路电压,也就是在不产生电流的情况下,电池的电压值。一阶 ECM 模型中的 Voc 通常被建模为与 SOC 有关的函数。Rs 是电池内阻,Rt 和 Ct 组成了一个 RC 电路,用来描述电池的电荷和放电行为。ib是输入信号。
状态方程
Uc部分
电池的输出电压vb可以用下式表示:
由基尔霍夫定律,可以得出:
整理可得:
其中,ib是我们的输入,这就是我们通常看到的状态方程中,Uc的状态方程没离散化前的样子。对状态方程进行离散化,参考离散化的公式:
原状态方程: ,其中,u为输入,x为状态,x_hat表预测,ABC是三个系数矩阵。
离散化后:,
其中,,
Uc状态方程离散化后可得:
这里ib应该是ib(k),懒得改了。这一步就是按公式来就可以推出来了。
SOC部分
电池的状态可以通过电荷量来表示,而电荷量与电池的容量之比即为电池的SOC(State of Charge),SOC的取值范围一般为0-1,可以使用下面的公式计算:
其中,q(t)为电池当前存储的电荷量,单位为Ah(安时),Q为电池容量,单位也为Ah。
这是最基础的SOC公式,由这个公式,可以得出:
其中SOC(0) 一般而言都是1(初始条件为新电池的情况下),Qb为电池容量,为充电/放电效率。需要注意的是,此处在模型中,ib和单位时间的单位与电池容量单位(安时)需要进行一次换算。
离散化SOC:
采样间隔也应该是k,没有减一,懒得改了,通常就取1了。
状态方程
设, 这里角标的意思其实和hat一样,也就是角标(k+1),是预测的意思,很多文章习惯用这个符号。综上,得出状态方程:
其中,状态转移矩阵 ,输入矩阵 。
输出方程
状态空间方程得:
其中,输出矩阵 , 直流增益矩阵。
ecm模型的状态空间方程及其离散化的过程就是这样了,有什么问题欢迎大家帮我指正,下一篇内容更新EKF算法。