XGBoost–random forest stacking with dual-state Kalman filtering for real-time battery SOC estimation
Why this work is in the frame
A frame that forgets how it found something cannot be audited. These are the routes that admitted this work.
Bibliographic record
Abstract
Accurate real-time state-of-charge estimation remains a bottleneck for e-bike battery management because firmware must deliver sub- updates while drawing less than . Classical observers drift under sensor bias, and purely data-driven models exceed the timing and memory ceilings of low-cost microcontrollers. This study therefore proposes the Hybrid Ensemble Dual-State Kalman Filter (HEAD-KF), which fuses Extreme Gradient Boosting and Random-Forest regressors through non-negative ridge stacking and smooths the fused output with a dual-state Kalman filter whose noise covariances are tuned online from residual statistics. The pipeline runs end-to-end on a Raspberry Pi 4 and is validated on a 20S Samsung INR18650-25R pack that uses NCA chemistry and is cycled between and . HEAD-KF yields a global mean-absolute error of SOC, keeps dynamic-discharge error to , and updates in while consuming per prediction. Covariance-perturbation and sensor-noise injections hold the estimator inside the ISO-12405 band, and ablation tests show that removing either the ensemble fusion or the adaptive Kalman loop doubles the error. These results indicate that HEAD-KF satisfies the accuracy, timing, and energy constraints of embedded battery-management systems on commodity hardware, and they motivate future work on cross-chemistry retraining, aggressive model compression for sub- targets, and on-device drift detection to preserve accuracy as packs age. • Real-time SOC estimate completes in ≤6 ms on Raspberry Pi 4 edge hardware. • XGBoost + Random Forest ensemble cuts SOC error by 47%. • Dual-state Kalman filter self-tunes noise for robust real-world accuracy. • HEAD-KF caps worst-case discharge error at 0.28% and global MAE 0.0004%. • Each inference uses only 60 μJ, staying well below the 100 mW budget.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
Full frame distilled prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. Learned from the 10,348 direct Codex labels and 10,348 direct Gemma labels. Candidate is the union of thresholded teacher heads; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels or direct frontier model labels.
Codex and Gemma teacher scores by category
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.000 | 0.000 |
| Meta-epidemiology (narrow) | 0.000 | 0.000 |
| Meta-epidemiology (broad) | 0.000 | 0.000 |
| Bibliometrics | 0.001 | 0.001 |
| Science and technology studies | 0.000 | 0.000 |
| Scholarly communication | 0.000 | 0.000 |
| Open science | 0.000 | 0.000 |
| Research integrity | 0.000 | 0.000 |
| Insufficient payload (model declined to judge) | 0.000 | 0.000 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from it