Skip to main content

Battery Simulation Blocks for PathSim

Project description

PathSim-Batt Logo

Battery simulation blocks for PathSim

PyPI License

DocumentationPathSim HomepageGitHub


PathSim-Batt extends the PathSim simulation framework with battery cell blocks backed by PyBaMM. All blocks follow the standard PathSim interface and can be wired into any simulation diagram.

Install

pip install pathsim-batt

Quick start

import pybamm
from pathsim import Connection, Simulation
from pathsim.blocks import Constant
from pathsim.solvers import ESDIRK43
from pathsim_batt import CellElectrothermal

cell = CellElectrothermal(initial_soc=1.0)   # defaults: SPMe + Chen2020
I_src = Constant(5.0)                         # 5 A discharge
T_src = Constant(298.15)                      # 25 °C ambient

sim = Simulation(
    blocks=[I_src, T_src, cell],
    connections=[Connection(I_src, cell["I"]), Connection(T_src, cell["T_amb"])],
    dt=1.0,
    Solver=ESDIRK43,
)
sim.run(3600)
print(f"V = {cell.outputs[0]:.3f} V  T = {cell.outputs[1]:.1f} K  SOC = {cell.outputs[3]:.3f}")

Choosing a block

Two decisions determine the right block: thermal ownership and integration strategy.

Block Thermal Strategy Use when
CellElectrothermal PyBaMM (internal) Monolithic ODE Single cell, coupled electro-thermal, ODE model
CellElectrical + LumpedThermal PathSim (external) Monolithic ODE Pack-level, custom cooling, ODE model
CellCoSimElectrothermal PyBaMM (internal) Co-simulation DAE models (DFN, lead_acid.Full), mixed solvers
CellCoSimElectrical + LumpedThermal PathSim (external) Co-simulation DAE models with external thermal network

LumpedThermal is a single-node thermal block (mass, Cp, UA, T0) that receives Q_dot from a CellElectrical block and feeds back cell temperature.

PyBaMM model compatibility

Thermal sub-model and heat-source options are injected automatically — pass the bare model class with no options=.

PyBaMM model Default parameter set CellElectrical CellElectrothermal CellCoSimElectrical CellCoSimElectrothermal
lithium_ion.SPM Chen2020
lithium_ion.SPMe Chen2020
lithium_ion.DFN Chen2020 ❌ DAE ❌ DAE
lead_acid.LOQS Sulzer2019 ✅ ¹ ✅ ¹ ✅ ² ✅ ²
lead_acid.Full Sulzer2019 ❌ DAE ❌ DAE
equivalent_circuit.Thevenin ECM_Example ✅ ³ ✅ ³

¹ PyBaMM < 26.7 only — from 26.7 on LOQS is a DAE, use a CellCoSim* block instead.

² PyBaMM < 26.7 only — pass pybamm_solver=pybamm.CasadiSolver(mode="safe"); the default IDAKLUSolver errors on LOQS. Fixed in 26.7.

³ initial_soc=1.0 fails because PyBaMM requires event values to be strictly positive at t=0; the "Maximum SoC" event is zero exactly at full charge. Any value below 1.0 (e.g. initial_soc=0.99) works.

import pybamm
from pathsim_batt import CellElectrothermal, CellCoSimElectrical

# Custom chemistry / parameter set
cell = CellElectrothermal(
    model=pybamm.lithium_ion.SPMe(),
    parameter_values=pybamm.ParameterValues("Mohtat2020"),
)

# Lead-acid via co-simulation (DAE model)
cell = CellCoSimElectrical(
    model=pybamm.lead_acid.Full(),
    parameter_values=pybamm.ParameterValues("Sulzer2019"),
    dt=1.0,
)

# Equivalent circuit model
cell = CellElectrical(
    model=pybamm.equivalent_circuit.Thevenin(),
    parameter_values=pybamm.ParameterValues("ECM_Example"),
    initial_soc=0.9,
)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pathsim_batt-0.2.2.tar.gz (49.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pathsim_batt-0.2.2-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file pathsim_batt-0.2.2.tar.gz.

File metadata

  • Download URL: pathsim_batt-0.2.2.tar.gz
  • Upload date:
  • Size: 49.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pathsim_batt-0.2.2.tar.gz
Algorithm Hash digest
SHA256 8df9b8f91fca1f78cbfa79347d1454db670b3902e8d69b99e576d31af77a061c
MD5 bd6b52ca7407d9c170fb43a84f67b9d6
BLAKE2b-256 480d00b3b954fe1687d156996904533142827eb32a4b77caf8a9df9a58616a77

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathsim_batt-0.2.2.tar.gz:

Publisher: pypi_deployment.yml on pathsim/pathsim-batt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pathsim_batt-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pathsim_batt-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pathsim_batt-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 51929104bd02f9a8ad59df4952e4ead980af57d2ed0cfc468334ff82b8e7803c
MD5 95590ddf0a1f2adfe846b5b92d920e92
BLAKE2b-256 40b0104d12a1c9ff0da36ae1bc0c63f86fdd4261fa9c7b64b9cba6aae0022ce2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pathsim_batt-0.2.2-py3-none-any.whl:

Publisher: pypi_deployment.yml on pathsim/pathsim-batt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page