基于 Matlab/simulink的锂电池建模与仿真——复现论文《基于二阶EKF的锂离子电池SOC估计的建模与仿真》的仿真部分

锂电池建模详解:仿真复现关键细节
本文详细解析了如何使用Simulink实现论文中锂电池模型的建模仿真,涵盖模型分解、SOC-OCV LoopTable参数设置、RC参数计算的注意事项,并分享了电流生成器设置和仿真结果。特别强调了在复现过程中的细节调整,以帮助读者解决实际操作中的问题。


这篇“博客”讲的也是如何复现该论文的建模仿真部分,但是披露的细节比较少,这样导致复现出来的结果一直有偏差或者复现不出来,因此本文主要对在复现过程中的一些细节进行了再补充,希望对读者有帮助。

1. 模型分解

该模型整体由三部分构成——SOC计算模块、RC参数计算模块和电压计算模块,结构如图所示:模型整体架构

1.1 SOC计算模块

SOC计算模块

1.2 RC参数计算模块

RC电路参数计算模块

1.3 电压计算模块

电压计算模块

1.4 电流生成器——由Singal Builder模块生成

在这里插入图片描述
电流信号模块设定电流为 1.35A 的脉冲电流,通过放电10s,静置 40s 进行模型仿真验证。需要注意的细节就是:图中红色圆点可以通过shift+鼠标右键选中添加。

2. 建模细节详解

2.1 SOC-OCV :Loop Table参数设定


这是论文中给的关于SOC-OCV的计算公式,可知OCV=EMF+Vh。
在这里插入图片描述
这是论文中关于不同SOC时测得的等效电压OCV数值,只需要将EMF和Vh加起来就可以。因为SOC是电容量百分比,因此,在设定Lookup Table模块中SOC参数时,应该这样设定:[0 0.1 0.2 … 0.9 1 ]放在Breakpoints那一栏。具体如图所示。
在这里插入图片描述
注:在设定Lookup Table的Breakpoints数值参数时,一定要按照从小到大顺序放置,Table Data中的数值参数跟着这个顺序依次放置。

2.2 建立RC参数计算模块时的注意细节

在这个模块中,需要设定5个Lookup Table的参数。我们先看看论文中关于这个部分是如何讲解的。
在这里插入图片描述
1).这里是关于不同SOC点处等效阻抗参数辨识结果,其中R0=(Rd+Rc)/2;
(注释:这里欧姆电阻计算有问题,文中Rd指的是放电内阻,Rc指的是充电内阻,因此电池内阻和SOC拟合,这里应该是求两者的平均值。)
2).在Look Table的Breakpoints处放置的是SOC点:[0.1 0.2 … 0.8 0.9];
3).有电阻单位是毫欧姆,因此需要将单位进行换算到欧姆,可以加一个增益,增益参数设定为1/1000。

3.仿真结果

在这里插入图片描述
这是我复现的仿真结果。然后具体每个模块是怎么搭建的,大家可以根据论文中的相关公式自己一步一步推一遍。整体来说,只要电路模型建立出来以后,将每个部分单独抽取出来进行Simulink仿真建模难度不大,可能就是一些细节地方需要注意一点,比如单位换算和look up table的参数设定,R0和Rd、Rc之间的关系,以及OCV和EMF、Vh之间的关系。

### 基于 Matlab/Simulink锂电池等效电路建模方法 在锂电池仿真控制研究中,等效电路模型(ECM)是一种广泛应用的方法。该模型通过模拟电池内部的电化学特性,可以较为准确地预测电池的行为,特别是在估算电池状态(如SOC - State of Charge)时具有重要作用。 #### 1. 模型结构选择 常见的等效电路模型包括一阶RC模型和二阶RC模型。其中,二阶RC模型相较于一阶模型,能够更精确地描述电池的动态响应特性。模型主要包括以下几个部分: - 开路电压 $ U_{ocv} $:表示电池在无负载情况下的电压。 - 欧姆内阻 $ R_0 $:表示电池内部电阻对电流的阻碍作用。 - RC并联网络:用于模拟电池的极化效应,通常包含一个或两个RC并联模块,分别对应不同的时间常数[^1]。 #### 2. 参数获取查表法 为了建立准确的模型,需要获取电池的关键参数,包括 $ U_{ocv}(SOC) $、$ R_0(SOC) $、以及RC网络的时间常数 $ \tau(SOC) $。这些参数通常通过实验数据拟合得到,并以查找表的形式存储。Simulink中的 `1-D Lookup Table` 模块可用于实现根据SOC值快速查找对应的参数。 例如,假设已知某一SOC值下的开路电压为 $ U_{ocv} = f(SOC) $,则可以通过如下方式计算输出电压: $$ V_{out} = U_{ocv}(SOC) - I \cdot R_0(SOC) - V_{RC} $$ 其中,$ V_{RC} $ 是RC并联网络产生的电压降,其计算依赖于当前电流和RC网络的状态方程。 #### 3. Simulink 模型搭建步骤 以下是基于Matlab/Simulink构建锂电池等效电路模型的基本步骤: ##### (1)输入信号准备 使用 `Signal Builder` 或 `From Workspace` 模块导入实验电流数据作为模型的输入信号。例如,HPPC(Hybrid Pulse Power Characterization)测试电流曲线常用于验证模型准确性。 ##### (2)SOC估计模块 SOC是影响电池行为的核心变量,通常通过积分法或其他高级算法(如扩展卡尔曼滤波EKF)进行估计。初始SOC可设定为某个已知值,然后根据电流积分更新SOC: $$ SOC(t) = SOC(0) + \frac{1}{Q_{cap}} \int_0^t I(\tau) d\tau $$ 其中 $ Q_{cap} $ 是电池容量。 ##### (3)参数查找模块 利用 `1-D Lookup Table` 模块,将SOC作为输入,查找对应的 $ U_{ocv} $、$ R_0 $ 和RC网络参数。确保插值方法设置为线性插值,以保证结果平滑。 ##### (4)RC网络建模 RC并联网络可通过传递函数或状态空间方程实现。例如,对于一个RC并联环节,其电压响应可通过以下微分方程描述: $$ \frac{dV_{RC}}{dt} = \frac{1}{R C}(I - \frac{V_{RC}}{R}) $$ 在Simulink中,可以使用 `Integrator` 和 `Gain` 模块组合来实现该方程。 ##### (5)输出电压计算 最终输出电压由开路电压减去欧姆压降和RC网络电压组成: $$ V_{terminal} = U_{ocv}(SOC) - I \cdot R_0(SOC) - V_{RC}(t) $$ 该公式可在Simulink中通过加法器和乘法器模块实现。 #### 4. 模型验证 完成模型搭建后,应使用实验数据对模型进行验证。例如,将HPPC测试中的电流信号输入模型,比较仿真输出电压实际测量电压之间的误差。若误差较大,则需调整RC网络参数或优化SOC估计方法。 --- ### 示例代码片段(Simulink模块配置) 以下是一个简单的Simulink模块配置示例,用于实现上述模型中的关键部分: ```matlab % 定义SOC查找表 soc_values = [0:0.01:1]; % SOC从0到1,步长0.01 u_ocv_table = interp1(soc_data, u_ocv_data, soc_values); % 插值得到Uocv表 r0_table = interp1(soc_data, r0_data, soc_values); % 插值得到R0表 % 设置Lookup Table模块参数 set_param('BatteryModel/Lookup Uocv', 'TableData', num2str(u_ocv_table)); set_param('BatteryModel/Lookup R0', 'TableData', num2str(r0_table)); ``` --- ###
评论 51
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值