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 CI

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.0.tar.gz (152.9 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.0-py3-none-any.whl (90.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ev_qa_framework-2.1.0.tar.gz
  • Upload date:
  • Size: 152.9 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.0.tar.gz
Algorithm Hash digest
SHA256 a4cee9a7626e15620c9cd74c81d0ffb1905266ce18583d707f0b0f0ecbd50929
MD5 00ff006325754e5df1e0b86b6a439b34
BLAKE2b-256 1486ca80553e6b6f0568b98736e4dc8472baebcf36ba7cfcb7116909fcf73375

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ev_qa_framework-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c28a86edff0af32198493f6f53c83fe1a1ff8aa4619c3e83f32c991c80e0f1de
MD5 79748e021f73f2e1d2fc868c60ccbdcc
BLAKE2b-256 f29df4eb8e8ddc04d491a4b8b6c0306fa5af62a895719381fc3120f6b7129b2e

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