This repository provides a method-level reproducible implementation of a four-part modeling workflow commonly used in MCM/ICM battery-life problems:
- Model 1: Power decomposition + Weighted Least Squares (WLS) parameter estimation + SOC ODE + RK4 solver + TTE (time-to-exhaustion)
- Model 2: Multi-scenario Monte Carlo TTE prediction (uncertainty & CI)
- Model 3: Local + global sensitivity (Sobol indices via Saltelli sampling)
- Model 4: Sensitivity-guided multi-objective power-saving optimization (global search)
⚠️ Data note (self-collected, not public): Raw usage traces used during the original work were collected in-house and are not publicly available. This repo focuses on reproducing the modeling pipeline. You can run the full workflow with the included synthetic demo trajectory generator, or substitute your own data using the documented schema.
pip install -r requirements.txt
python run_demo.pybattery-life-mcm/
├─ run_demo.py
├─ requirements.txt
├─ data/
│ └─ README.md # data schema for using your own traces
└─ battery/
├─ __init__.py
├─ types.py # dataclasses
├─ utils.py # WLS + RK4 utilities
├─ data_sim.py # demo trajectory + demo power observations
├─ model1.py # WLS + SOC + RK4 + TTE
├─ model2.py # Monte Carlo TTE
├─ model3.py # Sobol sensitivity
├─ model4.py # multi-objective optimization
└─ plots.py # plotting helpers
See data/README.md for required columns and formats.
If you use this repository in a report, cite it as a code appendix and describe that the workflow is reproduced at the methodological level.