TRACKSIM
TRACKSIM (TRaffic, vehicle, and battery pACK SIMulator) is an open source python library for generating near-life dynamic battery data. The goal of the project is to provide a tool for generating realistic synthetic battery data with a high amount of user-customizability at every simuation level. The three levels are:
- Traffic Level: A collection of vehicles are simulated in a defined traffic network using the simulation tool SUMO.
- Vehicle Level: The power demand of the battery pack is calculated based on the given speed profile of the vehicle.
- Battery Level: The current and voltage of the battery pack and every cell in the pack are calculated based on the power demand.
Installing TRACKSIM
TRACKSIM requires SUMO to be installed on the system in order to perform the traffic simulation. A gude for installing SUMO can be found here. The latest version of SUMO which TRACKSIM has been tested with is 1.22.0.
TRACKSIM is indexed in the Python Package Index (PyPI) under the package name pytracksim. To install the latest version of the package, we recommend using pip. The command for installing TRACKSIM is:
pip install pytracksim
Using TRACKSIM
There are multiple examples available in the repository to get you started using TRACKSIM. In the example below, we simulate a vehicle and battery pack given in [1] with the cells in the battery pack being modeled as in [2].
Setting up the battery pack and the vehicle can be done using two lines of code:
from tracksim.tracksim import Vehicle, Pack
from tracksim.vehicle_models import ChevyVoltTuned # Modified version of the model in [1]
from tracksim.pack_models import ChevyVoltPack # See [1]
from tracksim.cell_models import load_Zheng2024 # See [2]
from tracksim.temperature_models import Zheng2024Temp # See [2]
Zheng2024Cell = load_Zheng2024()
pack = Pack(ChevyVoltPack, Zheng2024Cell, Zheng2024Temp)
vehicle = Vehicle(ChevyVoltTuned, pack)
The vehicle and the battery pack can then be simulated using a given trip profile:
from tracksim.example_trips import load_udds
trip_data = load_udds()
time = trip_data['Time [s]']
sample_period = time[1] - time[0]
speed = trip_data['Speed [m/s]']
vehicle.simulate_vehicle(time, speed, sample_period)
vehicle.simulate_battery_pack()
Plotting the results can then be done using one line of code:
from tracksim.utils import plot_vehicle_and_battery_data
fig, ax = plot_vehicle_and_battery_data(vehicle)
Citing TRACKSIM
If you use TRACKSIM in you work, please cite the original paper:
N. A. Weinreich, X. Sui, R. Teodorescu, and K. G. Larsen, “TRACKSIM: A multi-level simulation framework for near-life battery data generation,” in 2025 26th European Conference on Power Electronics and Applications (EPE’25 ECCE Europe), Aalborg, Denmark, Apr. 2025.
You can also use the BibTex:
@inproceedings{weinreich_tracksim_2025,
address = {Aalborg, Denmark},
title = {{TRACKSIM}: A Multi-Level Simulation Framework for Near-Life Battery Data Generation},
language = {en},
booktitle = {2025 26th {European} {Conference} on {Power} {Electronics} and {Applications} ({EPE}'25 {ECCE} {Europe})},
author = {Weinreich, Nicolai Andre and Sui, Xin and Teodorescu, Remus and Larsen, Kim Guldstrand},
month = apr,
year = {2025}
}
Relevant Publications
[1] G. L. Plett, Battery Management Systems, Volume 2: Equivalent Circuit Methods. in Artech House Power engineering series. Boston: Artech house, 2016.
[2] Y. Zheng, Y. Che, X. Hu, X. Sui, and R. Teodorescu, “Online Sensorless Temperature Estimation of Lithium-Ion Batteries Through Electro-Thermal Coupling,” IEEE/ASME Trans. Mechatron., vol. 29, no. 6, pp. 4156–4167, Dec. 2024, doi: 10.1109/TMECH.2024.3367291.
Metadata
Release files for pytracksim 1.3.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pytracksim-1.3.8.tar.gz | 5.7 MB | With provenance | Details for pytracksim-1.3.8.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pytracksim-1.3.8-py3-none-any.whl | Python 3 | none | any | Details for pytracksim-1.3.8-py3-none-any.whl |
Total release size: 5.8 MB
Release files / pytracksim-1.3.8.tar.gz
| Download URL | pytracksim-1.3.8.tar.gz |
|---|---|
| Size | 5.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
230554d00491dac63f9a5b64d4eec2a4b8a001799630fc63d18e429b253574da
|
|
BLAKE2b-256 checksum How to use checksums |
affbb61dbde544a3b9ed34b711374f42af8351f4911c1dbb57e7f4a297df6d23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.
Transparency logRelease files / pytracksim-1.3.8-py3-none-any.whl
| Download URL | pytracksim-1.3.8-py3-none-any.whl |
|---|---|
| Size | 79.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d5999ffe34022b0a7dcb39b79ce4a80fab90e909964f8506187c350eac2f1faf
|
|
BLAKE2b-256 checksum How to use checksums |
2a23b43fe9c8c5c6bec4586cd9def8e77cabfeed3ed03a98b38204a0f34928f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.
Transparency logSecurity for pytracksim 1.3.8
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for pytracksim-1.3.8.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 18, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.