Skip to content

Latest commit

 

History

History
49 lines (37 loc) · 1.96 KB

File metadata and controls

49 lines (37 loc) · 1.96 KB

Smartphone Battery Life Modeling (MCM-style) — Reproducible Codebase

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.

Quickstart

pip install -r requirements.txt
python run_demo.py

Repository Layout

battery-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

How to use your own data

See data/README.md for required columns and formats.

Citation

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.