Lithium-ion Battery Realisation Algorithms (LiiBRA)
Create and Simulation Reduced Order Lithium-Ion Battery Models
LiBRA provides an open-source implementation of realisation algorithms commonly used for generating reduced-order state-space models. For more information on the current derived transfer functions used to represent the lithium-ion cell, please refer to 1, 2.
Install (Julia 1.6 and later)
(v1.6) pkg> add LiiBRA
(Type ]
to enter package mode.)
Example Usage
using LiiBRA, Plots
Setup:
Cell = Construct("LG M50")
SList = collect(0.8:-0.05:0.7)
SOC = 0.75
T = 298.15
Realisation:
A,B,C,D = Realise(Cell,SList,T)
HPPC Simulation:
Cell_V, Ce, jNeg, jPos, RtotNeg, RtotPos, η0, ηL, η_neg, η_pos, ϕ_ẽ1, ϕ_ẽ2, Uocp_Neg, Uocp_Pos, ϕ_e, Cse_Neg, Cse_Pos, Cell_SOC, tDra, j0, jL = HPPC(Cell,SList,SOC,4.0,-3.0,A,B,C,D)
Plot Results:
plotly()
display(plot(tDra[1:end-1],Cell_V[1:end-1], legend=:topright,color=:blue,bottom_margin=5Plots.mm, left_margin = 5Plots.mm, right_margin = 15Plots.mm, ylabel = "Terminal Voltage [V]", xlabel = "Time [s]"))
display(plot(tDra[1:end-1],Ce[1:end-1,:], legend=:topright,bottom_margin=5Plots.mm, left_margin = 5Plots.mm, right_margin = 15Plots.mm, ylabel = "Electrolyte Concen. [mol/m^3]", xlabel = "Time [s]"))
display(plot(tDra[1:end-1],Cse_Pos[1:end-1,:], legend=:topright,bottom_margin=5Plots.mm, left_margin = 5Plots.mm, right_margin = 15Plots.mm, ylabel = "Pos. Electrode Concen. [mol/m^3]", xlabel = "Time [s]"))
display(plot(tDra[1:end-1],Cse_Neg[1:end-1,:], legend=:topright,bottom_margin=5Plots.mm, left_margin = 5Plots.mm, right_margin = 15Plots.mm, ylabel = "Neg. Electrode Concen. [mol/m^3]", xlabel = "Time [s]"))
Bug Tracking
Please report any issues using the Github issue tracker. All feedback is welcome.