Skip to main content

ML-powered QA Framework for Electric Vehicle & IoT Battery Testing

Project description

EV-QA-Framework

Python 3.10+ License: MIT Tests Coverage Version GitHub Release

EV Battery QA Framework — detect thermal runaway, validate BMS telemetry, comply with UN 38.3 / IEC 62660 / GB 38031, and ship with 948 passing tests and a Docker-ready pipeline.

22 modules. MIT licensed. Python 3.9+.


30-second value

git clone https://github.com/remontsuri/EV-QA-Framework.git
cd EV-QA-Framework
docker compose up -d
open http://localhost:8081

Done. You now have a running battery QA workstation:

  • telementry validation
  • ML anomaly detection
  • thermal runaway early warning
  • cell imbalance analysis
  • SOH prediction
  • compliance testing against 6 international standards
  • live dashboard with Prometheus metrics

No cloud account required. No external dependencies. Just a CSV and a terminal.


What you get

Input safety layer. Pydantic schemas for voltage, current, temperature, SOC, SOH. Bad VINs, out-of-range values, and malformed rows are rejected before they reach your models.

Anomaly detection. Isolation Forest on voltage/current/temperature streams. Configurable contamination, severity thresholds, estimator count.

Thermal runaway prediction. Rule-based heuristics (temperature, delta-temp, anomaly score, chemistry runaway point). CRITICAL trigger defaults at ≥85 °C, rapid-rise trigger at >10 °C/min. Catches overheating before cascade onset. Confidence score clamped to [0, 1].

SOH prediction. LSTM-based State of Health forecasting from historical telemetry. Transformer-based prediction via soh_transformer for longer sequences.

Cell imbalance analysis. Statistical analysis of cell group voltages with configurable thresholds, outlier detection, linear regression trend.

Battery scoring. Composite health score (0–100) with letter grades (A+ through F). Combines SOH, internal resistance, cell balance, and thermal history.

CAN bus & DBC. CAN 2.0B and J1939 simulation and reception. DBC parser supports Vector CANdb, SavvyCAN exports, Intel/Motorola byte order.

Fleet analytics. Aggregate analysis across vehicle fleets: degradation curves, anomaly distribution, SOH histograms.

Digital twin. Real-time battery simulation mirroring physical pack behavior. Charge/discharge what-if scenarios and aging projections.

V2G scenarios. Vehicle-to-Grid simulation: bidirectional energy flow, grid demand response, cycling impact on battery health, revenue estimation.

AutoML. Automated model selection and hyperparameter optimization for SOH prediction and anomaly detection.

HIL integration. Hardware-in-the-Loop interface for physical BMS hardware and test stands via TCP/Serial.

Compliance testing. UN 38.3, IEC 62660, SAE J2464, ISO 12405, GB/T 31484, GB/T 31486, GB 38031.

Observability. Prometheus /metrics endpoint, Grafana dashboard, HTML coverage reports, JUnit XML.


Quick start

# Python CLI (direct)
uv run pytest -v
uv run python run_factory_inspection.py

# Docker Compose (recommended for fresh environments)
docker compose up --build

One-liners

Analyze a CSV:

uv run python -m ev_qa_framework.cli analyze -i examples/tesla_model_s_defective.csv -o report.json

Emulate CAN traffic:

uv run python -m ev_qa_framework.cli emulate --dbc my_battery.dbc --duration 60

Train SOH model:

uv run python -m ev_qa_framework.cli train-soh -d examples/tesla_battery_qa_test.py

Project structure

ev_qa_framework/
  framework.py         # core QA engine
  models.py            # Pydantic models + telemetry validation
  config.py            # thresholds and ML config
  analysis.py          # Isolation Forest, EVBatteryAnalyzer
  soh_predictor.py     # LSTM for SOH (TensorFlow optional)
  soh_transformer.py   # Transformer SOH predictor
  can_bus.py           # CAN 2.0B + J1939 simulation
  dbc_parser.py        # .dbc file parser (Vector CANdb + SavvyCAN)
  cell_balance.py      # cell voltage imbalance analysis
  thermal_runaway.py   # thermal runaway prediction (rule + ML)
  battery_scoring.py   # composite battery health scoring
  physics_features.py  # electrochemical/thermal feature extraction
  fleet_analytics.py   # fleet-wide analytics and benchmarking
  digital_twin.py      # real-time battery digital twin
  v2g_scenarios.py     # Vehicle-to-Grid simulation
  automl.py            # automated model selection and HPO
  hil.py               # Hardware-in-the-Loop interface
  metrics.py           # Prometheus metrics
  cli.py               # CLI entry point
  chemistries.py       # battery chemistry definitions (LFP, NMC, NCA)
tests/                  # 948 tests
examples/               # sample telemetry and demos
run_factory_inspection.py  # end-to-end factory QA demo

Status

Artifact Value
Tests locally verified (run pytest -q)
Coverage configured in CI (target ~93%)
CI Lint + Test + Coverage
License MIT
Python 3.10+

Regression risk is tracked in tests/. Coverage artifacts (coverage/, junit.xml) are present in the release pipeline.


Roadmap

  • GitHub Actions CI badge + nightly coverage job
  • Grafana dashboard import JSON + provisioning
  • public PyPI release
  • real BMS telemetry adapters (Tesla, BYD, Nio)
  • V2S + charging-station scenarios
  • integration with Vector CANoe / CANalyzer

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

ev_qa_framework-2.1.3.tar.gz (152.8 kB view details)

Uploaded Source

Built Distribution

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

ev_qa_framework-2.1.3-py3-none-any.whl (90.0 kB view details)

Uploaded Python 3

File details

Details for the file ev_qa_framework-2.1.3.tar.gz.

File metadata

  • Download URL: ev_qa_framework-2.1.3.tar.gz
  • Upload date:
  • Size: 152.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for ev_qa_framework-2.1.3.tar.gz
Algorithm Hash digest
SHA256 1abfbd725d6c00492d73dd3e0c57c22d4692f5eda3d1909549526a25a3253f42
MD5 4e22c10053f3a321139abe61753be3ed
BLAKE2b-256 7b88deff2ecb6538ceb3cdebb717cdf2d2250cee9f6183921134a30cec0d64cb

See more details on using hashes here.

File details

Details for the file ev_qa_framework-2.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for ev_qa_framework-2.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ade925fdff3c66b42cfa14923cda065483fcd026121ec34228bb142980609a7f
MD5 7e980fbc8fd76c5f5940d57801e35e0a
BLAKE2b-256 d53e27fa1e418c42e49e4173644fa509c35b25fa3e301c28127845a6188c13b8

See more details on using hashes here.

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