论文复现:锂电池充放电模型的 Matlab/Simulink 仿真实现
论文复现---实现锂电池充放电模型,matlab/simulink仿真。 锂电池充放电模型,实现双向的充放电功能,包含横流CC和恒压CV两种模式,变换器追踪电压电流效果良好。 参考论文为:充电机后级DC/DC变换器的充电控制方法与均流控制策略研究。
最近在研究锂电池充放电相关的课题,发现复现论文中的锂电池充放电模型是个挺有意思的事儿,今天就来跟大家分享一下我实现基于 Matlab/Simulink 的锂电池充放电模型的过程,这个模型具有双向充放电功能,还包含恒流(CC)和恒压(CV)两种模式,并且变换器追踪电压电流的效果良好。参考的论文是《充电机后级 DC/DC 变换器的充电控制方法与均流控制策略研究》。
整体思路
锂电池的充放电过程涉及到不同的阶段和控制模式。恒流充电阶段,电流保持恒定,电池电压逐渐上升;当电池电压达到设定值后,进入恒压充电阶段,电压保持不变,电流逐渐减小。放电过程则反之。我们要在 Matlab/Simulink 搭建这样一个能模拟真实充放电特性的模型。
Matlab/Simulink 模型搭建
1. 电源与负载模块
首先,我们需要设置电源和负载。在 Simulink 库中,可以找到直流电源(DC Source)模块作为充电电源,设置合适的电压值。对于负载,我们可以使用电阻(Resistor)模块来模拟实际负载,通过调整电阻值来改变负载大小。
2. 双向 DC/DC 变换器模块
双向 DC/DC 变换器是实现双向充放电功能的核心部分。在 Simulink 中,可以使用 Simscape Electrical 库中的相关模块搭建。这里简单给出一个搭建双向 Buck - Boost 变换器的代码示例(以 MATLAB 脚本形式呈现,用于创建简单的 Simulink 模块连接示意,非完整可运行代码):
% 创建一个新的 Simulink 模型 model_name = 'bidirectional_dcdc'; new_system(model_name); % 添加电源模块 power_source = add_block('simscape/Sources/DC Voltage Source', [model_name '/DC Source']); set_param(power_source, 'Voltage', '12'); % 设置电源电压为12V % 添加双向 Buck - Boost 变换器模块(假设使用自定义子系统封装实现) buck_boost = add_block('simulink/Power Systems Library/Buck - Boost Converter', [model_name '/Bidirectional Buck - Boost']); % 添加负载电阻模块 load_resistor = add_block('simscape/Electrical Elements/Resistor', [model_name '/Resistor']); set_param(load_resistor, 'Resistance', '10'); % 设置电阻为10欧姆 % 连接模块 add_line(model_name, 'DC Source+/Bidirectional Buck - Boost/In+'); add_line(model_name, 'DC Source-/Bidirectional Buck - Boost/In-'); add_line(model_name, 'Bidirectional Buck - Boost/Out+/Resistor/+/1'); add_line(model_name, 'Bidirectional Buck - Boost/Out-/Resistor/-/1');这段代码创建了一个简单的 Simulink 模型框架,包含电源、双向 Buck - Boost 变换器和负载电阻,并连接了它们。实际的双向 DC/DC 变换器需要更复杂的控制逻辑来实现双向充放电切换和不同模式的运行。
3. 控制逻辑模块
恒流(CC)控制
在恒流控制模式下,我们需要一个电流反馈回路。通过电流传感器采集电路中的电流,与设定的恒流值进行比较,将误差输入到一个 PI 控制器中。PI 控制器的输出用于调节双向 DC/DC 变换器的占空比,从而保持电流恒定。以下是简单的 PI 控制器代码(Matlab 函数形式):
function output = pi_controller(error, kp, ki, dt) persistent integral; if isempty(integral) integral = 0; end p_term = kp * error; integral = integral + error * dt; i_term = ki * integral; output = p_term + i_term; % 限制输出范围,防止饱和 output = max(min(output, 1), 0); end这里kp和ki分别是比例系数和积分系数,dt是采样时间间隔。error是设定电流与实际采集电流的差值。这个函数根据误差计算出控制器的输出,用于调整变换器占空比。
恒压(CV)控制
恒压控制与恒流控制类似,只不过反馈信号变为电压。采集电池两端的电压,与设定的恒压值比较,误差同样输入到 PI 控制器,输出调节变换器占空比。
4. 电池模型模块
在 Simulink 中,可以使用 Simscape Battery 库中的锂电池模型。这个模型可以较为准确地模拟锂电池的充放电特性,包括电池内阻、开路电压随 SOC(State of Charge,荷电状态)的变化等。我们通过连接双向 DC/DC 变换器的输出到电池模型的端口,实现电能的传输。
仿真与结果分析
搭建好模型后,设置合适的仿真参数,比如仿真时间、步长等,就可以进行仿真了。在仿真过程中,观察电池电压、电流以及变换器的占空比等参数的变化。
从仿真结果来看,在充电初期,恒流模式下电流能够稳定保持在设定值,随着电池电压上升,进入恒压模式后,电压稳定,电流逐渐减小,符合锂电池充电的特性。放电过程亦然,双向 DC/DC 变换器能够较好地追踪设定的电压和电流值,实现了预期的双向充放电功能。
论文复现---实现锂电池充放电模型,matlab/simulink仿真。 锂电池充放电模型,实现双向的充放电功能,包含横流CC和恒压CV两种模式,变换器追踪电压电流效果良好。 参考论文为:充电机后级DC/DC变换器的充电控制方法与均流控制策略研究。
总的来说,通过 Matlab/Simulink 成功复现了论文中的锂电池充放电模型,这对于研究锂电池的充放电特性以及相关变换器的控制策略有很大帮助,也希望这篇博文能给同样在研究相关内容的朋友们一些启发。
以上就是这次论文复现实现锂电池充放电模型的全过程啦,大家如果有问题或者更好的想法,欢迎在评论区交流。
