电池二阶等效电路模型
📅 2026/7/8 16:24:19
👁️ 阅读次数
📝 编程学习
电池二阶等效电路模型
以下代码是求 R0和R1、R2上电压的m脚本
function Vp = fcn(I, R0, R1, C1, R2, C2) persistent Vp1 Vp2 initFlag if isempty(initFlag) initFlag = 1; Vp1 = 0; Vp2 = 0; end dt = 1; tao1 = R1 * C1; tao2 = R2 * C2; Vp1 = Vp1 * exp(-dt / tao1) + I * R1 * (1 - exp(-dt / tao1)); Vp2 = Vp2 * exp(-dt / tao2) + I * R2 * (1 - exp(-dt / tao2)); Vp = Vp1 + Vp2 + I * R0; end
以下介绍上述代码中Vp1 Vp2的公式推导:
这个公式来源于对一个一阶RC并联电路的零状态响应和零输入响应的分析。
电路分析:对于图中R和C并联的电路,当有电流
I流入时,电容C两端的电压Vp会随时间变化。其动态行为可以用一个一阶微分方程来描述。微分方程求解:解这个微分方程,可以得到
Vp(t)随时间变化的解析解。对于任意初始时刻t0的状态Vp(t0),到下一个时刻t0 + Δt的状态Vp(t0 + Δt),其精确解为:Vp(t0 + Δt) = Vp(t0) * e^(-Δt/τ) + I * R * (1 - e^(-Δt/τ))
其中τ = R * C,是决定电压变化快慢的时间常数。离散化与编程:在计算机仿真中,我们无法处理连续时间,只能处理离散的采样点。假设采样间隔为
dt,并令t0为当前时刻k,t0 + Δt为下一时刻k+1,就得到了你代码中的递推公式:Vp(k+1) = Vp(k) * e^(-dt/τ) + I(k) * R * (1 - e^(-dt/τ))
这个公式可以理解为两部分的和:
第一项
Vp(k) * e^(-dt/τ)(零输入响应):这是上一时刻的残余电压在无外部电流(I=0)时,经过dt时间后的自然衰减。第二项
I(k) * R * (1 - e^(-dt/τ))(零状态响应):这是由当前时刻的恒定电流I(k)在dt时间内,从零开始为新电容充上的电压。
编程学习
技术分享
实战经验