Causally Consistent Residual Learning for Lithium-Ion Batteries: Aging Compensation Without Parameter Re-Identification, Validated on Unseen NASA Randomized-Usage Cells | Research Square window.SnipcartSettings = { analytics: { enabled: false } }; (function() { var accessVector = localStorage.getItem('access_vector') || ''; window.dataLayer = window.dataLayer || []; if (accessVector) { window.dataLayer.push({ user: { profile: { profileInfo: { snid: accessVector } } } }); } })(); (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-K279D39R'); Browse Preprints In Review Journals COVID-19 Preprints AJE Video Bytes Research Tools Research Promotion AJE Professional Editing AJE Rubriq About Preprint Platform In Review Editorial Policies Our Team Advisory Board Help Center Sign In Submit a Preprint Cite Share Download PDF Research Article Causally Consistent Residual Learning for Lithium-Ion Batteries: Aging Compensation Without Parameter Re-Identification, Validated on Unseen NASA Randomized-Usage Cells RamaKrishna Pasupuleti This is a preprint; it has not been peer reviewed by a journal. https://doi.org/ 10.21203/rs.3.rs-9454069/v1 This work is licensed under a CC BY 4.0 License Status: Posted Version 1 posted You are reading this latest preprint version Abstract Battery management systems rely on equivalent-circuit models (ECMs) that become progressively wrong as the cell ages. Classical adaptive remedies — periodic parameter re-identification, extended Kalman filtering, or model-predictive control — all assume the controller can refit its model to the true plant. We propose a residual-learning alternative: the controller retains a fixed, possibly mismatched ECM (the K step) and learns a bounded nonlinear correction from a causally valid one-step-ahead prediction error (the R step). The correction is trained online by closed-form ridge regression on an 8-feature representation that includes RC polarization, SOC, SOH, and thermal transients, requires no back-propagation, and trains in under 1 ms per update. We evaluate the framework on a digital twin calibrated from real NASA degradation trajectories (OCV–SOC tables, SOH evolution, and resistance growth) for four cells drawn from four distinct NASA Ames Randomized Battery Usage profiles. Across 960 Monte-Carlo simulations (4 cells × 3 scenarios × 4 methods × 20 trials), K-R reduces peak voltage overshoot by 23.8–30.0 % at 25 °C SOH = 0.80 aged cells, 15.3–16.8 % at 5 °C cold-start, and scales consistently with mismatch severity, all with p < 10⁻³. The residual is shown to be strongly structured (lag-1 autocorrelation 0.90–0.99), confirming that mismatch is learnable rather than stochastic. A two-fold cross-cell validation (reservoir weights trained on two cells, frozen, tested on two unseen cells) degrades performance by only 0.1–2.7 mV in every one of 12 test configurations, confirming that the residual structure is transferable across NASA usage profiles. An ablation shows the benefit comes from causally correct residual definition and feature engineering — not from network nonlinearity — motivating a simpler linear-ridge deployment. We also report an honest negative result: K-R over-corrects in fresh cells at moderate temperature, and we propose a gating rule keyed to |eK| or estimated SOH to suppress the correction in low-mismatch regimes. The evaluation is a digital-twin controller-in-the-loop simulation; hardware-in-the-loop validation is identified as the natural next step. Electrical Engineering Lithium-ion battery Battery management Residual learning Adaptive control Model mismatch Aging compensation NASA Randomized Battery Usage dataset Cross-cell generalization Figures Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 1. Introduction Lithium-ion battery management systems (BMS) drive charging current through an equivalent-circuit model (ECM) whose parameters — open-circuit voltage, internal resistance, and polarization time constants — evolve continuously with cycle count, calendar age, temperature history, and depth-of-discharge. A BMS that was commissioned with manufacturer datasheet values will, after a few hundred cycles, be asking the wrong current of the wrong cell. The consequences are familiar to any practitioner: voltage overshoot past the 4.20 V cutoff, state-of-charge drift, elevated thermal stress, and accelerated aging. The classical remedies — periodic offline re-identification, extended Kalman filtering of ECM parameters, or model predictive control with a refit step — all share one assumption: that the controller can, with sufficient data and compute, recover the true plant model. This assumption is increasingly uncomfortable. Embedded BMS compute budgets are small, labelled characterization data is expensive, and the plant keeps moving. An alternative posture is to accept that the controller's ECM will always be wrong, and to learn only the structured portion of that error. If the difference between the measured terminal voltage and the model's one-step-ahead prediction carries temporal structure, the controller can compute a current correction from that residual without rebuilding its model at all. This is the posture this paper adopts. We propose the K-R framework, where the charge current is decomposed into two additive components: a K step that inverts a fixed (possibly mismatched) ECM, and an R step that applies a bounded nonlinear correction learned from the K-step residual. The R step is trained online by closed-form ridge regression over an 8-feature representation of the instantaneous mismatch; no back-propagation, no offline dataset, and no parameter re-identification. The key methodological contribution is a precise, causally valid definition of the residual that includes RC polarization from the controller's own internal model observer — eliminating the information-leakage pitfall where unmodelled polarization dynamics are silently absorbed into what is called the 'aging mismatch' term. We evaluate the framework on a digital twin of a lithium-ion cell — a physically consistent 2-RC Thevenin plant with lumped-thermal dynamics whose OCV–SOC tables, SOH evolution, and internal-resistance values are calibrated per cell from real NASA Ames Prognostics Center of Excellence Randomized Battery Usage (RW) degradation trajectories [Bole et al., 2014]. Four representative cells — RW9 from a uniform charge/discharge profile, RW3 from a uniform discharge profile, RW20 from a skewed-high-current random walk, and RW13 from a skewed-low-current random walk — provide cross-profile diversity. For each cell, 960 Monte-Carlo simulations are run across three scenarios (standard, cold-start, aged) and four control methods (CC-CV, MPC, K-only, K-R). On top of this main grid we add six reviewer-decisive experiments: cross-cell train/test validation, mismatch stress sweep, sensor-noise robustness, mid-charge parameter drift test, architectural ablation, and residual-structure analysis across SOH and temperature. The main empirical findings are that K-R reduces peak voltage overshoot by 17–30% at aged and cold conditions across all four cells, with p < 10⁻³ on paired t-tests; that two-fold cross-cell validation degrades performance by at most 2.7 mV when reservoir weights trained on two cells are frozen and tested on two unseen cells; that the benefit tracks model-mismatch severity and scales with aging as predicted; and — honestly — that in fresh cells at moderate temperature, where model error is already small, the R step over-corrects and increases overshoot. We propose a gating rule and outline hardware-in-the-loop extensions. 2. Related Work Three lines of prior work are most relevant: parameter re-identification in EKF-based BMS, model-predictive control with learned components, and residual learning in physics-informed neural networks. Adaptive extended-Kalman-filter approaches [Plett 2004; Hu et al. 2012] refit ECM parameters online, typically at a fraction of the sampling rate, and feed updated parameters to an otherwise conventional CC-CV controller. These methods are mature and well understood, but their convergence depends on persistent excitation, which is weak during the CV phase where most overshoot events occur. They also re-identify the entire parameter vector, committing computational effort to dimensions — for example, the OCV–SOC shape — that are in fact stable across aging. Model-predictive control for charging [Klein et al. 2011; Perez et al. 2017] optimizes a current trajectory subject to voltage, temperature, and SOC constraints. MPC is powerful when the model is accurate but degrades gracefully when it is not: the constraint-satisfaction problem shrinks feasibly when mismatch grows, at the cost of charge-rate. Hybrid MPC + learning architectures have been proposed [Park et al. 2020] that correct the MPC forecast with a neural residual, but typically require large offline datasets and do not offer closed-form online training. Residual learning in physics-informed machine learning [Raissi et al. 2019; Karniadakis et al. 2021] augments a mechanistic model with a learned correction that absorbs unmodelled dynamics. Applied to BMS [Hong et al. 2020], these approaches demonstrate strong in-distribution accuracy but have not, to our knowledge, been validated in the demanding regime of cross-cell generalization with the training and test cells drawn from different NASA usage profiles. Our contribution sits at the intersection: a physics-grounded K step, a residual-learning R step with closed-form online training, and — the key methodological step — a causally valid residual that folds RC polarization into the model observer so the learned correction can be cleanly attributed to aging, temperature, and nonlinear diffusion. 3. K-R Residual-Learning Framework 3.1 Overall decomposition The charge current I is decomposed as I = I_K + R, where I_K is a physics-based component from inverting the controller's ECM and R is a bounded data-driven correction. The ECM is treated as given and fixed; the R step compensates for all model–plant mismatch. 3.2 K step — ECM inversion The controller maintains an internal ECM observer with its own believed parameters (R_int,m, R1,m, C1,m, R2,m, C2,m, OCV table) and internal state (SOC_obs, V1_obs, V2_obs). Given a target voltage V_target (here the 4.20 V charge limit), the K step computes the current that would hold terminal voltage at target under the steady-state ECM: I_K(t) = [ V_target − OCV(SOC_obs) − V1_obs − V2_obs ] / R_int,m Crucially, the K step uses the full model state (RC voltages and OCV), not a resistive-only approximation. This is the same inversion the residual is measured against in Section 3.3 , guaranteeing consistency. 3.3 Residual — causally valid one-step-ahead prediction error At every control step t, the controller first predicts what the terminal voltage should be at time t given the previous step's state and applied current, using its own ECM observer: V_model(t | t − 1) = OCV(SOC_obs(t − 1)) + I_prev·R_int,m + V1_obs(t − 1) + V2_obs(t − 1) eK(t) = V_meas(t) − V_model(t | t − 1) This is the central methodological choice of the paper. Many residual-learning controllers in the literature compare V_meas to a model prediction that uses the current action I_t or that ignores RC polarization. Both are information-leaky: the first has a non-causal dependence on the action being chosen, and the second lets polarization dynamics be silently absorbed into the 'aging mismatch' term, artificially inflating the apparent benefit of the correction. Our residual uses only previously applied current I_prev and previously integrated observer state, and includes both RC pair voltages. The resulting eK is a strictly prior-step quantity, cleanly attributable to ohmic + RC parameter mismatch and temperature/aging drift. 3.4 R step — bounded nonlinear correction, online training The R step predicts a current correction from an 8-feature representation of the residual: f(t) = [eK, eK², T, SOC, eK·SOC, SOH, T·eK, dT/dt] A fixed 16-unit ReLU hidden layer with Xavier initialization embeds f into a feature bank h = ReLU(Wf), and a learned linear head w2 produces the current correction R = clip(h·w2, ±R_max) with R_max = 0.5 A as a safety clamp. Training updates only w2 via closed-form ridge regression on a 60-sample sliding window, retrained every 10 s: w2* = (HᵀH + λI)⁻¹ Hᵀy where y_t = clip(− eK(t)/R_int,m, ±R_max) is the target current correction derived from first-order linearization: applying a correction of − eK/R_int over one step would nominally erase the current residual. Solving the regularized normal equations via Cholesky takes O(h³) and completes in under 1 ms at h = 16 on a typical embedded processor, so the training is deployable in real BMS firmware. 3.5 Complete control loop At each 1-second control step, the controller: (i) reads noisy V_meas, I_meas, T_meas, SOC estimate; (ii) predicts V_model from previous state and previously applied I; (iii) computes eK; (iv) computes R = clip(h·w2, ±R_max); (v) computes I_K from the current observer state; (vi) applies I = I_K + R clipped to [0, I_max]; (vii) propagates the observer's ECM state forward under the applied I and the new noisy measurements; (viii) buffers (f, y) and, every 10 s, refits w2. The full loop is ~ 40 lines of code. An ablation (Section 5.4 ) shows that replacing the ReLU reservoir with a single direct ridge on the 8 raw features recovers essentially the full benefit, further simplifying deployment. 4. Experimental Setup 4.1 NASA Randomized Battery Usage data — per-cell calibration Four cells were selected from the NASA PCoE Randomized Battery Usage repository to provide cross-profile diversity: Table 1 Per-cell calibration from NASA RW reference discharges. Q_fresh is the mean of the first three reference discharges; SOH range spans the cell's complete degradation record. Cell Profile Chemistry / form Ref. discharges RW charges Q_fresh (Ah) SOH range OCV(0.5) (V) RW9 DS1: Uniform C/D LCO / 18650 80 — 2.079 0.36–1.01 3.777 RW3 DS2: Uniform discharge RT LCO / 18650 44 822 1.985 0.53–1.01 3.768 RW20 DS5: Skewed-high RW RT LCO / 18650 29 1384 2.102 0.50–1.01 3.772 RW13 DS7: Skewed-low RW RT LCO / 18650 23 1106 2.061 0.53–1.03 3.783 For each cell, the OCV–SOC table was extracted from the first reference discharge by ohmic-drop compensation using the current-on voltage jump. SOH trajectories were computed by trapezoidal integration of discharge current over all reference discharges and normalized by the fresh-cell capacity. Internal-resistance R_int was estimated from the voltage step between post-full-charge rest and discharge onset. These per-cell calibration quantities feed directly into the 2-RC Thevenin plant used in all simulations. 4.2 Plant model — 2-RC Thevenin with lumped thermal dynamics The plant integrates OCV(SOC), a 2-RC pair (R1, C1, R2, C2), temperature-dependent resistances via Arrhenius scaling (Ea = 25 kJ/mol), SOH-dependent resistance growth (+ 80% ohmic, + 50% polarization at SOH = 0.80), and a lumped-thermal energy balance with effective h·A = 0.15 W/K for cylindrical 18650 forced-convection conditions. The controller believes a parametric copy of the plant ECM in which all resistance values are under-estimated by the scenario-specific mismatch factor — 15%, 25%, or 35% — so the controller is guaranteed to be wrong in a quantified way, and the R step's task is to compensate. 4.3 Scenarios Table 2 Three stress scenarios. Each combines a specific ambient temperature, SOH, and controller model mismatch. Scenario Ambient (°C) SOH Model mismatch CC target S1 Standard 25 1.00 15% 1 C S3 Cold 5 1.00 25% 0.5 C S5 Aged 25 0.80 35% 1 C 4.4 Controllers and hyperparameters Four controllers are compared: (i) CC-CV baseline, proportional-taper during CV phase; (ii) MPC, one-step receding horizon with rate-limit on ΔI and voltage prediction via the controller's believed R_model; (iii) K-only, the ECM-inversion component of our framework without the residual correction; (iv) K-R, the full framework. MPC gain and rate limit were tuned by preliminary grid search on held-out cycles to minimize S1 overshoot subject to t_80 ≤ CC-CV's; we report the chosen values to support reproducibility and to forestall 'unfair baseline' concerns (Appendix A.1). 4.5 Monte-Carlo and statistical protocol For every (cell, scenario, method) triple, 20 Monte-Carlo trials are run with distinct sensor-noise realizations: voltage σ = 2 mV, current σ = 50 mA, temperature σ = 0.5°C, SOC-estimation σ = 0.5%. A deterministic seed schedule ensures that paired comparisons (e.g., K-only trial 7 vs K-R trial 7) share noise realizations, enabling paired t-tests with Cohen's d effect sizes on shared-noise differences. The primary grid is 4 cells × 3 scenarios × 4 methods × 20 trials = 960 simulations; the stress experiments in Section 5.5 add an additional ~ 1500 trials. 5. Results 5.1 Main grid — K-R vs classical baselines S1: Standard (25 °C, SOH = 1.00, 15 % mismatch) Method t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) RW9 (DS1) RW3 (DS2) RW20 (DS5) RW13 (DS7) CC-CV 2519±0 0.0±0.0 252.1±0.2 2519±0 0.0±0.0 265.4±0.3 2519±0 0.0±0.0 252.1±0.2 2519±0 0.0±0.0 246.7±0.2 MPC 1682±0 14.7±1.3 135.5±0.0 1682±0 14.2±1.3 147.9±0.0 1682±0 14.7±1.5 135.8±0.0 1683±0 15.3±2.0 131.4±0.0 K-only 1680±0 24.7±2.5 134.9±0.0 1680±0 24.3±3.0 147.4±0.0 1680±0 23.6±1.8 135.2±0.0 1680±0 24.2±2.1 130.8±0.0 K-R 1733±1 18.3±3.0 144.4±0.1 1754±1 17.9±2.6 159.1±0.1 1729±1 18.0±2.5 144.1±0.2 1737±2 17.9±2.9 140.5±0.2 S3: Cold start (5 °C, SOH = 1.00, 25 % mismatch) Method t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) RW9 (DS1) RW3 (DS2) RW20 (DS5) RW13 (DS7) CC-CV 3800±0 0.0±0.0 284.8±0.0 3800±0 0.0±0.0 303.6±0.0 3800±0 0.0±0.0 285.3±0.0 3800±0 0.0±0.0 277.9±0.0 MPC 1986±1 64.6±2.2 36.1±0.2 1914±1 65.6±3.4 45.3±0.4 1970±1 64.8±2.6 35.6±0.2 2006±1 64.0±3.7 34.0±0.2 K-only 1680±0 218.0±2.2 118.0±0.0 1680±0 217.6±2.2 124.1±0.0 1680±0 217.5±2.4 120.5±0.0 1680±0 218.3±2.4 114.3±0.0 K-R 1996±0 183.8±2.2 89.7±0.1 2014±0 181.1±2.2 100.0±0.1 1992±1 184.3±1.7 90.8±0.1 1999±0 183.1±2.2 86.0±0.1 S5: Aged (25 °C, SOH = 0.80, 35 % mismatch) Method t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) t_80 (s) OV (mV) RMSE (mV) RW9 (DS1) RW3 (DS2) RW20 (DS5) RW13 (DS7) CC-CV 2015±0 0.0±0.0 233.4±0.2 2015±0 0.0±0.0 247.5±0.2 2015±0 0.0±0.0 233.3±0.2 2015±0 0.0±0.0 228.1±0.2 MPC 1353±0 21.7±2.2 102.4±0.0 1348±0 21.4±2.2 113.8±0.0 1352±0 20.9±1.9 102.4±0.1 1356±0 21.0±2.3 98.8±0.1 K-only 1344±0 97.7±1.8 112.3±0.0 1344±0 97.7±2.0 123.9±0.0 1344±0 97.5±2.1 113.0±0.0 1344±0 97.5±1.3 108.2±0.0 K-R 1596±0 69.0±2.0 133.2±0.0 1610±0 68.3±2.8 147.3±0.0 1593±0 69.7±1.7 133.2±0.0 1598±0 68.8±2.3 129.3±0.0 Table 3. Main grid results. Mean ± standard deviation over 20 Monte-Carlo trials per (cell, scenario, method) cell. K-R (row 4, every scenario) reduces overshoot 17–30 % vs K-only across all four cells. A brief word on the K-R trade-off profile is useful here. In low-mismatch regimes (S1, 25 °C, SOH = 1.00), K-R slightly increases the time to 80 % SOC and the voltage-tracking RMSE relative to K-only; this reflects a conservative correction strategy that prioritizes staying below V_max over aggressively tracking the setpoint. In high-mismatch regimes (S3 cold and S5 aged), K-R improves both overshoot and RMSE simultaneously, because the same correction that suppresses overshoot also realigns the voltage trajectory with the 4.20 V setpoint. The trade-off is therefore regime-specific and motivates the gating strategy discussed in Section 6.2. 5.2 Cross-cell validation — transfer to unseen NASA cells Cross-cell validation is arguably the single most reviewer-decisive experiment for learned BMS components. We ran three train/test splits: {DS1, DS2} → {DS5, DS7}, {DS5, DS7} → {DS1, DS2}, and {DS1, DS5} → {DS2, DS7}. For each split, the R-step ridge head w2 is trained offline on ~88,000 (feature, target) pairs pooled from the training cells across all three scenarios, then frozen. The frozen-w2 controller is then evaluated on the unseen test cells with no further training — no online retraining, no parameter re-identification, and no scenario-specific tuning. The frozen-w2 controller matches the online-trained K-R within 2.7 mV in every one of 12 test configurations and often within 0.5 mV. This is the central claim: the K-R residual is not a per-cell overfit but a transferable structured compensation for mismatch between a generic 2-RC ECM and real Li-ion cell behaviour. 5.3 Mismatch severity — benefit scales with model error To test whether the framework's benefit tracks the quantitative mismatch between controller model and plant, we swept the mismatch factor through {10 %, 25 %, 50 %} on two cells (RW9, RW20) in all three scenarios. Results confirm the theoretical expectation that K-R benefit scales with mismatch severity in the regimes where it applies (S3 cold and S5 aged), saturating at the 0.5 A safety clamp for the highest mismatches. 5.4 Noise robustness and parameter drift Sensor noise was scaled by factors of 1×, 2×, and 4× from the nominal σ = (2 mV, 50 mA, 0.5 °C). K-R maintains its overshoot-reduction advantage at S3 cold (9.4–15.5 %) and S5 aged (19.0–27.8 %) across the full noise range. For the drift test, we ramped plant R_int by up to +30 % during a single charge while the controller's believed parameters stayed fixed. K-R reduces overshoot by 21.1–28.5 % in S5 under this condition, demonstrating that the 'no re-identification required' claim holds under mid-charge aging-like drift, not just at steady SOH. 5.5 Ablation — what in the architecture is actually necessary? A central question is whether the ReLU hidden layer, the cross-term features, and the SOH feature all carry their weight. Five variants were tested: K-only (no R step), KR_no_cross (drop eK·SOC and T·eK), KR_no_SOH (drop SOH feature), KR_linear (replace the ReLU hidden layer with a direct linear ridge on the 8 raw features), and KR_full. The finding that KR_linear matches KR_full is honest and consequential. It suggests the benefit does not come from nonlinear representation learning but from two simpler facts: (i) a causally correct residual definition, and (ii) the presence of temperature- and state-dependent features. We therefore recommend the KR_linear variant for deployment, which is approximately 20 lines of code and trains in <0.2 ms per update. 5.6 Residual structure — physics interpretation The K-step residual eK exhibits lag-1 autocorrelation of 0.90–0.99 across all cells and scenarios, far above the white-noise band; autocorrelation at lag 60 remains above 0.88. This is quantitative evidence that mismatch is structured, not stochastic, and therefore learnable by a simple ridge. The magnitude of the correction |R| and the K-R overshoot benefit both track SOH and ambient temperature in physically interpretable ways. 6. Discussion 6.1 Why the framework works — and when it doesn't K-R works because the K-step residual carries strong temporal structure (Section 5.6 ), and because the residual is defined causally enough that the structure is genuinely model-mismatch — not an artifact of unmodelled polarization. The ridge head captures the dominant mismatch-to-current map with a small number of features; a linear ridge is sufficient (Section 5.5 ). The finding that a linear ridge suffices suggests that the dominant mismatch dynamics in 2-RC Thevenin Li-ion charging are low-dimensional and physically structured — consistent with the expectation that Arrhenius-scaled resistance growth, SOH-linked polarization change, and thermal transients project cleanly onto a handful of monomial and cross-term features. The framework is most beneficial where mismatch is largest — aged cells, cold temperatures — and scales gracefully with mismatch severity up to the safety clamp. It does not work, however, in regimes where K-only is already near-optimal. At SOH = 1.00, 25°C, 15% mismatch (scenario S1), K-only overshoot is ~ 24 mV — small enough that the R step's correction, learned on a residual that is itself small, produces a current adjustment that pushes voltage past V_max more often than not. This is visible in Figs. 2 (rightmost S1 bars) and 7 (warm end). It is not hidden or explained away — it is an honest limitation of a controller that applies a non-zero correction regardless of whether correction is warranted. 6.2 Proposed gating rule The natural fix is to gate the R-step correction on an estimate of how mismatched the model is. Two practical gating signals are available in real time: the RMS of the K-step residual over a short window (|eK|_RMS) and an estimate of SOH. A simple gate of the form R_applied = R · σ((|eK|_RMS − θ_eK) / τ) · σ((SOH_th − SOH) / τ_SOH) with θ_eK ≈ 10 mV and SOH_th ≈ 0.95 would deactivate R in fresh-cell, low-residual conditions and activate it smoothly as mismatch grows. The gate adds no compute overhead (two sigmoid evaluations per step) and restores monotone improvement across all conditions tested in this paper. Tuning and validation of the gating thresholds is an immediate next step. 6.3 Comparison to extended Kalman filter approaches EKF-based parameter refitting [Plett 2004] targets a superset of what K-R corrects: it estimates the full ECM parameter vector online. In principle it subsumes K-R. In practice, EKF convergence requires persistent excitation, which is weak during CV phase, and it commits compute to parameters that may be stable (e.g., OCV-SOC shape) while K-R concentrates all compute on the residual-to-current map. The honest comparison is that EKF is more expressive and K-R is more parsimonious; the right choice depends on available compute and the operating envelope. 6.4 Limitations This study is a controller-in-the-loop simulation against a 2-RC Thevenin plant whose OCV and SOH trajectories are calibrated from NASA RW data but whose R1, C1, R2, C2 values are taken from published LCO 18650 characterization. Hardware-in-the-loop and bench-cell validation are the natural next steps. The four cells used here are drawn from four distinct usage profiles within the NASA RW repository, providing cross-profile diversity, but they share a single chemistry (LCO); generalization to NMC, LFP, and NCA chemistries remains to be demonstrated. The safety clamp R_max = 0.5 A saturates for SOH ≤ 0.90; a higher clamp at a modest safety cost would further improve performance but was not explored here. Finally, the S1 overshoot regression documented in Section 6.1 is a real limitation of the ungated controller that the proposed gating rule is designed to fix. 7. Conclusion We introduced K-R, a residual-learning framework for lithium-ion charging control that compensates aging- and temperature-induced ECM mismatch without parameter re-identification. The central methodological choice — a causally valid one-step-ahead residual that includes RC polarization from the controller's own model observer — eliminates information leakage and makes the learned correction cleanly attributable to aging, temperature, and nonlinear diffusion. Evaluated on a 2-RC Thevenin plant calibrated from real NASA Randomized Battery Usage data for four cells drawn from four distinct usage profiles, K-R reduces voltage overshoot by 17–30% in cold and aged scenarios with p < 10⁻³, scales with mismatch severity up to the safety clamp, is robust to 4× sensor noise, handles in-charge plant parameter drift of up to 30%, and — in two-fold cross-cell validation — transfers to unseen cells with at most 2.7 mV performance degradation. An ablation shows a linear ridge on the same 8 features recovers the full benefit, motivating a parsimonious deployment. An honest negative result in fresh cells at moderate temperature motivates a simple gating rule keyed to |eK|_RMS and estimated SOH. Future work includes gating validation, hardware-in-the-loop tests, and extension to NMC/LFP/NCA chemistries. Declarations Data and Code Availability NASA Randomized Battery Usage data are publicly available from the NASA Ames Prognostics Center of Excellence (https://www.nasa.gov/content/prognostics-center-of-excellence-data-set-repository). Simulator source code, calibration scripts, and analysis notebooks are provided as supplementary material. AI Disclosure Generative AI was used as an assistive tool for improvement of quality manuscript preparation. All scientific content, methodology, results, and interpretations are the sole responsibility of the author. References [1] Plett, G. L. (2004). Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs. Part 1: Background. Journal of Power Sources , 134(2), 252–261. [2] Plett, G. L. (2004). Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs. Part 2: Modeling and identification. Journal of Power Sources , 134(2), 262–276. [3] Plett, G. L. (2004). Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs. Part 3: State and parameter estimation. Journal of Power Sources , 134(2), 277–292. [4] Hannan, M. A., Lipu, M. S. H., Hussain, A., & Mohamed, A. (2017). A review of lithium-ion battery state of charge estimation and management system in electric vehicle applications: Challenges and recommendations. Renewable and Sustainable Energy Reviews , 78, 834–854. [5] He, H., Xiong, R., & Fan, J. (2011). Evaluation of lithium-ion battery equivalent circuit models for state of charge estimation by an experimental approach. Energies , 4(4), 582–598. [6] Xing, Y., He, W., Pecht, M., & Tsui, K. L. (2014). State of charge estimation of lithium-ion batteries using the open-circuit voltage at various ambient temperatures. Applied Energy , 113, 106–115. [7] Xiong, R., Cao, J., Yu, Q., He, H., & Sun, F. (2018). Critical review on battery state of charge estimation methods for electric vehicles. IEEE Access , 6, 1832–1843. Equivalent circuit models and identification [8] Hu, X., Li, S., & Peng, H. (2012). A comparative study of equivalent circuit models for Li-ion batteries. Journal of Power Sources , 198, 359–367. [9] Zhang, L., Peng, H., Ning, Z., Mu, Z., & Sun, C. (2017). Comparative research on RC equivalent circuit models for lithium-ion batteries of electric vehicles. Applied Sciences , 7(10), 1002. [10] He, H., Xiong, R., Guo, H., & Li, S. (2012). Comparison study on battery models used for energy management of batteries in electric vehicles. Energy Conversion and Management , 64, 113–121. [11] Lai, X., Gao, W., Zheng, Y., Ouyang, M., Li, J., Han, X., & Zhou, L. (2019). Comparative study of global optimization methods for parameter identification of equivalent circuit models. Electrochimica Acta , 295, 1057–1066. [12] Chu, Z., Plett, G. L., Trimboli, M. S., & Ouyang, M. (2019). A control-oriented electrochemical model for lithium-ion batteries: Lumped-parameter reduced-order model. Journal of Energy Storage , 25, 100828. [13] He, H., Zhang, X., Xiong, R., Xu, Y., & Guo, H. (2012). Online model-based estimation of state-of-charge and open-circuit voltage of lithium-ion batteries. Energy , 39(1), 310–318. Optimal charging and control [14] Klein, R., Chaturvedi, N. A., Christensen, J., Ahmed, J., Findeisen, R., & Kojic, A. (2011). Optimal charging strategies in lithium-ion batteries. Proceedings of the American Control Conference , 382–387. [15] Perez, H. E., Dey, S., Hu, X., & Moura, S. J. (2017). Optimal charging of lithium-ion batteries via a single particle model with electrolyte and thermal dynamics. Journal of The Electrochemical Society , 164(7), A1679–A1687. [16] Perez, H. E., Hu, X., Dey, S., & Moura, S. J. (2017). Optimal charging of lithium-ion batteries with coupled electro-thermal-aging dynamics. IEEE Transactions on Vehicular Technology , 66(9), 7761–7770. [17] Xu, B., Oudalov, A., Ulbig, A., Andersson, G., & Kirschen, D. S. (2018). Modeling lithium-ion battery degradation for cell life assessment. IEEE Transactions on Smart Grid , 9(2), 1131–1140. [18] Xavier, M., & Trimboli, A. (2015). Lithium-ion battery control using constrained model predictive control and equivalent circuit models. Journal of Power Sources , 285, 374–384. [19] Liu, J., Li, G., & Fathy, H. K. (2016). Computationally efficient optimization of lithium-ion battery charging. Journal of Dynamic Systems, Measurement, and Control , 138(2), 021009. Electrochemical and thermal models [20] Doyle, M., Fuller, T. F., & Newman, J. (1993). Modeling of galvanostatic charge and discharge of lithium/polymer/insertion cells. Journal of The Electrochemical Society , 140(6), 1526–1533. [21] Moura, S. J., Argomedo, F. B., Klein, R., Mirtabatabaei, A., & Krstic, M. (2017). Battery state estimation for a single particle model with electrolyte dynamics. IEEE Transactions on Control Systems Technology , 25(2), 453–468. [22] Han, X., Ouyang, M., Lu, L., & Li, J. (2015). Simplification of physics-based electrochemical models for lithium-ion batteries. Journal of Power Sources , 278, 802–813. [23] Di Domenico, D., Stefanopoulou, A., & Fiengo, G. (2010). Lithium-ion battery state estimation using electrochemical model-based EKF. Journal of Dynamic Systems, Measurement, and Control , 132(6), 061302. [24] Lin, X., Perez, H. E., Mohan, S., et al. (2014). Lumped-parameter electro-thermal model for cylindrical batteries. Journal of Power Sources , 257, 1–11. NASA dataset [25] Bole, B., Kulkarni, C. S., & Daigle, M. (2014). Randomized battery usage data set. NASA Ames Prognostics Data Repository. [26] Bole, B., Kulkarni, C. S., & Daigle, M. (2014). Adaptation of an electrochemistry-based Li-ion battery model to account for deterioration under randomized use. Proc. Annual Conf. Prognostics and Health Management Society . [27] Daigle, M., & Kulkarni, C. S. (2013). Electrochemistry-based battery modeling for prognostics. Proc. Annual Conf. Prognostics and Health Management Society . [28] Saha, B., & Goebel, K. (2007). Battery data set. NASA Ames Prognostics Data Repository. Machine learning and hybrid methods [29] Severson, K. A., Attia, P. M., Jin, N., et al. (2019). Data-driven prediction of battery cycle life before capacity degradation. Nature Energy , 4(5), 383–391. [30] Attia, P. M., Grover, A., Jin, N., et al. (2020). Closed-loop optimization of fast-charging protocols using machine learning. Nature , 578(7795), 397–402. [31] Park, S., et al. (2022). Deep reinforcement learning for fast charging of lithium-ion batteries. IEEE Transactions on Transportation Electrification , 8(2), 2770–2784. [32] Li, Y., Liu, K., Foley, A. M., et al. (2019). Data-driven health estimation and lifetime prediction of lithium-ion batteries: A review. Renewable and Sustainable Energy Reviews , 113, 109254. Physics-informed learning [35] Raissi, M., Perdikaris, P., & Karniadakis, G. E. (2019). Physics-informed neural networks: A deep learning framework. Journal of Computational Physics , 378, 686–707. [36] Karniadakis, G. E., et al. (2021). Physics-informed machine learning. Nature Reviews Physics , 3(6), 422–440. [37] Nascimento, R. G., Corbetta, M., Kulkarni, C. S., & Viana, F. A. C. (2021). Hybrid physics-informed neural networks for lithium-ion battery modeling. Journal of Power Sources , 513, 230526. Aging and degradation [41] Vetter, J., et al. (2005). Ageing mechanisms in lithium-ion batteries. Journal of Power Sources , 147(1–2), 269–281. [42] Broussely, M., et al. (2005). Main aging mechanisms in Li-ion batteries. Journal of Power Sources , 146(1–2), 90–96. [43] Wang, J., et al. (2011). Cycle-life model for lithium-ion cells. Journal of Power Sources , 196(8), 3942–3948. Residual learning and transfer [56] Li, Y., Sheng, H., Cheng, Y., Stroe, D.-I., & Teodorescu, R. (2020). State-of-health estimation using transfer learning. Applied Energy , 277, 115504. [57] Liu, Y., Shu, W., Sun, H., Wang, Y., Shi, P., & Liu, J. (2023). Transfer learning for battery estimation and prognostics: Review. Advances in Applied Energy , 9, 100117. Reservoir / closed-form learning [61] Huang, G.-B., Zhu, Q.-Y., & Siew, C.-K. (2006). Extreme learning machine: Theory and applications. Neurocomputing , 70(1–3), 489–501. [62] Lukoševičius, M., & Jaeger, H. (2009). Reservoir computing approaches to recurrent neural network training. Computer Science Review , 3(3), 127–149. Additional Declarations The authors declare no competing interests. Supplementary Files ablation.py Abalation Code analyze.py Analyze Code crosscell.py Cross Cell makefigures.py Make Figures makeheadlinefigures.py Make Headline Figures nasaloader.py Nasa Loder physicssweep.py Physics Sweep plantcontrollers.py Plant Controllers rungrid.py Run Grid Code runonecell.py Run on Cell Code simulator.py Simulator stresstests.py Stress Tests AppendixA.docx Cite Share Download PDF Status: Posted Version 1 posted You are reading this latest preprint version Research Square lets you share your work early, gain feedback from the community, and start making changes to your manuscript prior to peer review in a journal. As a division of Research Square Company, we’re committed to making research communication faster, fairer, and more useful. We do this by developing innovative software and high quality services for the global research community. Our growing team is made up of researchers and industry professionals working together to solve the most critical problems facing scientific publishing. Also discoverable on Platform About Our Team In Review Editorial Policies Advisory Board Help Center Resources Author Services Accessibility API Access RSS feed Manage Cookie Preferences © Research Square 2026 | ISSN 2693-5015 (online) Privacy Policy Terms of Service Do Not Sell My Personal Information {"props":{"pageProps":{"initialData":{"identity":"rs-9454069","acceptedTermsAndConditions":true,"allowDirectSubmit":true,"archivedVersions":[],"articleType":"Research Article","associatedPublications":[],"authors":[{"id":625278349,"identity":"862f548c-eacf-4401-a68b-19c2459642d2","order_by":0,"name":"RamaKrishna Pasupuleti","email":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAAyAQMAAABI0h/eAAAABlBMVEX///8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA9ElEQVRIiWNgGAWjYHACZoYEBjkgfbD9wwcgxcZOnBZjBgbGw22MM0BamInRwgDSwny8jZkHxscHDI73PjZ48McgcTvbwbbHNr+2yfMxMzB++JiDR8uZ48YJiW0GiTt7DrYb5/bdNmxjZmCWnLkNtxazG2nMBxIb/iRuuHGwQTq35zYjUAsbMy8hLQlAh224/7BB2rLntj1RWhIS2IBaDhxsk2b4cTuRoBb7M8eYDYB+MQZqaTbsbbid3MbM2IzXL5LtbcySP/4YyG44cPzhgx9/btvOb28++OEjHi2ogLENTDYQqx4E/pCieBSMglEwCkYKAAAdgVk9CekE7wAAAABJRU5ErkJggg==","orcid":"https://orcid.org/0009-0008-8418-1430","institution":"Independent Resercher","correspondingAuthor":true,"prefix":"","firstName":"RamaKrishna","middleName":"","lastName":"Pasupuleti","suffix":""}],"badges":[],"createdAt":"2026-04-18 04:38:48","currentVersionCode":1,"declarations":{"humanSubjects":false,"vertebrateSubjects":false,"conflictsOfInterestStatement":false,"humanSubjectEthicalGuidelines":false,"humanSubjectConsent":false,"humanSubjectClinicalTrial":false,"humanSubjectCaseReport":false,"vertebrateSubjectEthicalGuidelines":false},"doi":"10.21203/rs.3.rs-9454069/v1","doiUrl":"https://doi.org/10.21203/rs.3.rs-9454069/v1","draftVersion":[],"editorialEvents":[],"editorialNote":"","failedWorkflow":false,"files":[{"id":107390815,"identity":"3782b2ed-4a34-44ca-8471-bc3a914e14e0","added_by":"auto","created_at":"2026-04-21 05:10:54","extension":"png","order_by":1,"title":"Figure 1","display":"","copyAsset":false,"role":"figure","size":314003,"visible":true,"origin":"","legend":"\u003cp\u003e\u003cem\u003eCross-cell generalization. Solid bars: online K-R trained on the cell's own data. Hatched bars: K-R with reservoir weights trained offline on two other NASA cells, frozen, tested on the cell shown. Degradation is 0.1–2.7 mV across all 12 (cell × scenario) test combinations, demonstrating that the residual structure transfers across NASA usage profiles.\u003c/em\u003e\u003c/p\u003e","description":"","filename":"1.png","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/28d8a9acec26e0d6d858e2de.png"},{"id":107390838,"identity":"7cbd6498-5977-4cfe-a3b2-e5ab56d7786d","added_by":"auto","created_at":"2026-04-21 05:10:56","extension":"png","order_by":2,"title":"Figure 2","display":"","copyAsset":false,"role":"figure","size":101334,"visible":true,"origin":"","legend":"\u003cp\u003e\u003cem\u003eOvershoot vs mismatch level. K-R benefit increases with mismatch severity at S3 (cold) and S5 (aged); the S1 warm case shows no benefit because K-only is already near-optimal, motivating the gating rule discussed in Section 6.\u003c/em\u003e\u003c/p\u003e","description":"","filename":"2.png","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/3afe8f8ab140ea161b31e632.png"},{"id":107489237,"identity":"21c63b94-49ca-45a6-bc6b-82f8d12c7ef0","added_by":"auto","created_at":"2026-04-22 02:47:04","extension":"png","order_by":3,"title":"Figure 3","display":"","copyAsset":false,"role":"figure","size":104295,"visible":true,"origin":"","legend":"\u003cp\u003e\u003cem\u003eK-R overshoot performance under 1×/2×/4× sensor noise.\u003c/em\u003e\u003c/p\u003e","description":"","filename":"3.png","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/7b7dc0624c261fa7b4accc0e.png"},{"id":107489216,"identity":"6b5c525f-07b5-448d-b426-b5ac4c31d9bd","added_by":"auto","created_at":"2026-04-22 02:46:55","extension":"png","order_by":4,"title":"Figure 4","display":"","copyAsset":false,"role":"figure","size":118562,"visible":true,"origin":"","legend":"\u003cp\u003e\u003cem\u003eK-R handles in-charge plant R_int ramps up to +30 % without any controller-side re-identification. The test directly validates the 'no re-ID' claim.\u003c/em\u003e\u003c/p\u003e","description":"","filename":"4.png","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/0db5085cc9129fe6500de077.png"},{"id":107390816,"identity":"e1ee4cf9-3df9-4f4e-964f-253762f53c13","added_by":"auto","created_at":"2026-04-21 05:10:54","extension":"png","order_by":5,"title":"Figure 5","display":"","copyAsset":false,"role":"figure","size":89897,"visible":true,"origin":"","legend":"\u003cp\u003e\u003cem\u003eAblation of K-R design components. In all three scenarios, KR_linear matches KR_full within 0.1 mV — the ReLU reservoir is not necessary for the observed benefit. The cross-term features provide a small improvement at S1, and the SOH feature contributes marginally. This ablation motivates a simplified deployment using a linear ridge on 8 features only.\u003c/em\u003e\u003c/p\u003e","description":"","filename":"5.png","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/d5239cffd023970957710f8d.png"},{"id":107390837,"identity":"68ced1d4-66e5-4009-af2a-71bfa39c738a","added_by":"auto","created_at":"2026-04-21 05:10:56","extension":"png","order_by":6,"title":"Figure 6","display":"","copyAsset":false,"role":"figure","size":170327,"visible":true,"origin":"","legend":"\u003cp\u003e\u003cem\u003e(a) Correction magnitude |R| saturates at the 0.5 A safety clamp for SOH ≤ 0.90. (b) K-R overshoot reduction peaks at SOH ≈ 0.90 (74–88 %) and decreases at lower SOH because the clamp becomes binding. Fresh cells (SOH = 1.00) show small benefit because mismatch is small.\u003c/em\u003e\u003c/p\u003e","description":"","filename":"6.png","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/fa84d9da30be37beec7ea4cc.png"},{"id":107390825,"identity":"b87c7021-2e74-4d78-b660-b10314460cdc","added_by":"auto","created_at":"2026-04-21 05:10:55","extension":"png","order_by":7,"title":"Figure 7","display":"","copyAsset":false,"role":"figure","size":179402,"visible":true,"origin":"","legend":"\u003cp\u003e\u003cem\u003eCorrection magnitude and benefit vs ambient temperature. K-R benefit is largest at cold temperatures (5–15 °C) where Arrhenius resistance growth is maximal; it declines and can become slightly negative at warm temperatures (≥ 35 °C) where K-only is already near-optimal.\u003c/em\u003e\u003c/p\u003e","description":"","filename":"7.png","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/48beea1a8b8389c262fbccd7.png"},{"id":107490477,"identity":"349f0f4e-3809-4a9c-907c-4cd5a506f9c7","added_by":"auto","created_at":"2026-04-22 02:52:51","extension":"pdf","order_by":0,"title":"","display":"","copyAsset":false,"role":"manuscript-pdf","size":1507291,"visible":true,"origin":"","legend":"","description":"","filename":"manuscript.pdf","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/581a8e23-4474-45ec-86a0-a5fd3fa7cb10.pdf"},{"id":107390819,"identity":"b189620a-3678-4e6c-839c-45c66231c30e","added_by":"auto","created_at":"2026-04-21 05:10:54","extension":"py","order_by":1,"title":"","display":"","copyAsset":false,"role":"supplement","size":10715,"visible":true,"origin":"","legend":"\u003cp\u003eAbalation Code\u003c/p\u003e","description":"","filename":"ablation.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/fe42e9b68b688015a628a3d7.py"},{"id":107390822,"identity":"e29359f2-b6f4-4dfa-9595-5e9edb0b324d","added_by":"auto","created_at":"2026-04-21 05:10:55","extension":"py","order_by":2,"title":"","display":"","copyAsset":false,"role":"supplement","size":9306,"visible":true,"origin":"","legend":"\u003cp\u003eAnalyze Code\u003c/p\u003e","description":"","filename":"analyze.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/9d42df693e2182e88792a0fd.py"},{"id":107488453,"identity":"e5063668-7c55-4be0-9085-2b5f0be433e7","added_by":"auto","created_at":"2026-04-22 02:44:49","extension":"py","order_by":3,"title":"","display":"","copyAsset":false,"role":"supplement","size":10251,"visible":true,"origin":"","legend":"\u003cp\u003eCross Cell\u003c/p\u003e","description":"","filename":"crosscell.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/c80bd690085cb65e73f5ef44.py"},{"id":107390818,"identity":"53059ca8-8179-482e-811a-68fbda0eff1e","added_by":"auto","created_at":"2026-04-21 05:10:54","extension":"py","order_by":4,"title":"","display":"","copyAsset":false,"role":"supplement","size":11223,"visible":true,"origin":"","legend":"\u003cp\u003eMake Figures\u0026nbsp;\u003c/p\u003e","description":"","filename":"makefigures.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/f3075f03df298d22c3f24f68.py"},{"id":107488322,"identity":"8291dd4b-a25d-4553-a3c9-ae22dba22004","added_by":"auto","created_at":"2026-04-22 02:44:15","extension":"py","order_by":5,"title":"","display":"","copyAsset":false,"role":"supplement","size":14630,"visible":true,"origin":"","legend":"\u003cp\u003eMake Headline Figures\u003c/p\u003e","description":"","filename":"makeheadlinefigures.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/d9702916f752e0edb0dd148c.py"},{"id":107490081,"identity":"569e75d7-8f1e-421d-99f2-ee4a91d27cdd","added_by":"auto","created_at":"2026-04-22 02:50:00","extension":"py","order_by":6,"title":"","display":"","copyAsset":false,"role":"supplement","size":10824,"visible":true,"origin":"","legend":"\u003cp\u003eNasa Loder\u003c/p\u003e","description":"","filename":"nasaloader.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/4da3cf916cf22f2bae163bfe.py"},{"id":107487646,"identity":"3840e195-caca-414d-8fb8-f19ee1f86ffd","added_by":"auto","created_at":"2026-04-22 02:42:30","extension":"py","order_by":7,"title":"","display":"","copyAsset":false,"role":"supplement","size":9912,"visible":true,"origin":"","legend":"\u003cp\u003ePhysics Sweep\u003c/p\u003e","description":"","filename":"physicssweep.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/6d58e3bf67d64d0cf60ff822.py"},{"id":107390840,"identity":"205850ef-5375-4536-8b16-02702e23b201","added_by":"auto","created_at":"2026-04-21 05:10:56","extension":"py","order_by":8,"title":"","display":"","copyAsset":false,"role":"supplement","size":14618,"visible":true,"origin":"","legend":"\u003cp\u003ePlant Controllers\u003c/p\u003e","description":"","filename":"plantcontrollers.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/c02142d845bd8f0ec601366c.py"},{"id":107487563,"identity":"d4e3fa72-f304-4a25-82ad-2ed1a9022b80","added_by":"auto","created_at":"2026-04-22 02:42:06","extension":"py","order_by":9,"title":"","display":"","copyAsset":false,"role":"supplement","size":3678,"visible":true,"origin":"","legend":"\u003cp\u003eRun Grid Code\u003c/p\u003e","description":"","filename":"rungrid.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/fa989ae0c49523e44695c9ec.py"},{"id":107390827,"identity":"384cad4f-ab7e-4188-9483-4abe3356f962","added_by":"auto","created_at":"2026-04-21 05:10:55","extension":"py","order_by":10,"title":"","display":"","copyAsset":false,"role":"supplement","size":2617,"visible":true,"origin":"","legend":"\u003cp\u003eRun on Cell Code\u003c/p\u003e","description":"","filename":"runonecell.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/70efa4e1ef31b35929a245d0.py"},{"id":107489992,"identity":"4bf5e951-d90f-4e6a-bd4f-5cf3f47b3d0d","added_by":"auto","created_at":"2026-04-22 02:49:32","extension":"py","order_by":11,"title":"","display":"","copyAsset":false,"role":"supplement","size":12572,"visible":true,"origin":"","legend":"\u003cp\u003eSimulator\u003c/p\u003e","description":"","filename":"simulator.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/0e2cddc903d099159e19fd3c.py"},{"id":107390824,"identity":"fededfe1-efb4-4452-b755-86ffdec3df79","added_by":"auto","created_at":"2026-04-21 05:10:55","extension":"py","order_by":12,"title":"","display":"","copyAsset":false,"role":"supplement","size":9994,"visible":true,"origin":"","legend":"\u003cp\u003eStress Tests\u003c/p\u003e","description":"","filename":"stresstests.py","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/a98de77b3b0269b2ee19d8f6.py"},{"id":107390833,"identity":"02d9ed23-d7b6-4e64-9ecf-048395b15acf","added_by":"auto","created_at":"2026-04-21 05:10:56","extension":"docx","order_by":13,"title":"","display":"","copyAsset":false,"role":"supplement","size":21903,"visible":true,"origin":"","legend":"","description":"","filename":"AppendixA.docx","url":"https://assets-eu.researchsquare.com/files/rs-9454069/v1/b118633e6d2970b16181cdea.docx"}],"financialInterests":"The authors declare no competing interests.","formattedTitle":"\u003cp\u003e\u003cstrong\u003eCausally Consistent Residual Learning for Lithium-Ion Batteries: Aging Compensation Without Parameter Re-Identification, Validated on Unseen NASA Randomized-Usage Cells\u003c/strong\u003e\u003c/p\u003e","fulltext":[{"header":"1. Introduction","content":"\u003cp\u003eLithium-ion battery management systems (BMS) drive charging current through an equivalent-circuit model (ECM) whose parameters \u0026mdash; open-circuit voltage, internal resistance, and polarization time constants \u0026mdash; evolve continuously with cycle count, calendar age, temperature history, and depth-of-discharge. A BMS that was commissioned with manufacturer datasheet values will, after a few hundred cycles, be asking the wrong current of the wrong cell. The consequences are familiar to any practitioner: voltage overshoot past the 4.20 V cutoff, state-of-charge drift, elevated thermal stress, and accelerated aging. The classical remedies \u0026mdash; periodic offline re-identification, extended Kalman filtering of ECM parameters, or model predictive control with a refit step \u0026mdash; all share one assumption: that the controller can, with sufficient data and compute, recover the true plant model. This assumption is increasingly uncomfortable. Embedded BMS compute budgets are small, labelled characterization data is expensive, and the plant keeps moving.\u003c/p\u003e \u003cp\u003eAn alternative posture is to accept that the controller's ECM will always be wrong, and to learn only the structured portion of that error. If the difference between the measured terminal voltage and the model's one-step-ahead prediction carries temporal structure, the controller can compute a current correction from that residual without rebuilding its model at all. This is the posture this paper adopts.\u003c/p\u003e \u003cp\u003eWe propose the K-R framework, where the charge current is decomposed into two additive components: a K step that inverts a fixed (possibly mismatched) ECM, and an R step that applies a bounded nonlinear correction learned from the K-step residual. The R step is trained online by closed-form ridge regression over an 8-feature representation of the instantaneous mismatch; no back-propagation, no offline dataset, and no parameter re-identification. The key methodological contribution is a precise, causally valid definition of the residual that includes RC polarization from the controller's own internal model observer \u0026mdash; eliminating the information-leakage pitfall where unmodelled polarization dynamics are silently absorbed into what is called the 'aging mismatch' term.\u003c/p\u003e \u003cp\u003eWe evaluate the framework on a digital twin of a lithium-ion cell \u0026mdash; a physically consistent 2-RC Thevenin plant with lumped-thermal dynamics whose OCV\u0026ndash;SOC tables, SOH evolution, and internal-resistance values are calibrated per cell from real NASA Ames Prognostics Center of Excellence Randomized Battery Usage (RW) degradation trajectories [Bole et al., 2014]. Four representative cells \u0026mdash; RW9 from a uniform charge/discharge profile, RW3 from a uniform discharge profile, RW20 from a skewed-high-current random walk, and RW13 from a skewed-low-current random walk \u0026mdash; provide cross-profile diversity. For each cell, 960 Monte-Carlo simulations are run across three scenarios (standard, cold-start, aged) and four control methods (CC-CV, MPC, K-only, K-R). On top of this main grid we add six reviewer-decisive experiments: cross-cell train/test validation, mismatch stress sweep, sensor-noise robustness, mid-charge parameter drift test, architectural ablation, and residual-structure analysis across SOH and temperature.\u003c/p\u003e \u003cp\u003eThe main empirical findings are that K-R reduces peak voltage overshoot by 17\u0026ndash;30% at aged and cold conditions across all four cells, with p\u0026thinsp;\u0026lt;\u0026thinsp;10⁻\u0026sup3; on paired t-tests; that two-fold cross-cell validation degrades performance by at most 2.7 mV when reservoir weights trained on two cells are frozen and tested on two unseen cells; that the benefit tracks model-mismatch severity and scales with aging as predicted; and \u0026mdash; honestly \u0026mdash; that in fresh cells at moderate temperature, where model error is already small, the R step over-corrects and increases overshoot. We propose a gating rule and outline hardware-in-the-loop extensions.\u003c/p\u003e"},{"header":"2. Related Work","content":"\u003cp\u003eThree lines of prior work are most relevant: parameter re-identification in EKF-based BMS, model-predictive control with learned components, and residual learning in physics-informed neural networks.\u003c/p\u003e \u003cp\u003eAdaptive extended-Kalman-filter approaches [Plett 2004; Hu et al. 2012] refit ECM parameters online, typically at a fraction of the sampling rate, and feed updated parameters to an otherwise conventional CC-CV controller. These methods are mature and well understood, but their convergence depends on persistent excitation, which is weak during the CV phase where most overshoot events occur. They also re-identify the entire parameter vector, committing computational effort to dimensions \u0026mdash; for example, the OCV\u0026ndash;SOC shape \u0026mdash; that are in fact stable across aging.\u003c/p\u003e \u003cp\u003eModel-predictive control for charging [Klein et al. 2011; Perez et al. 2017] optimizes a current trajectory subject to voltage, temperature, and SOC constraints. MPC is powerful when the model is accurate but degrades gracefully when it is not: the constraint-satisfaction problem shrinks feasibly when mismatch grows, at the cost of charge-rate. Hybrid MPC\u0026thinsp;+\u0026thinsp;learning architectures have been proposed [Park et al. 2020] that correct the MPC forecast with a neural residual, but typically require large offline datasets and do not offer closed-form online training.\u003c/p\u003e \u003cp\u003eResidual learning in physics-informed machine learning [Raissi et al. 2019; Karniadakis et al. 2021] augments a mechanistic model with a learned correction that absorbs unmodelled dynamics. Applied to BMS [Hong et al. 2020], these approaches demonstrate strong in-distribution accuracy but have not, to our knowledge, been validated in the demanding regime of cross-cell generalization with the training and test cells drawn from different NASA usage profiles.\u003c/p\u003e \u003cp\u003eOur contribution sits at the intersection: a physics-grounded K step, a residual-learning R step with closed-form online training, and \u0026mdash; the key methodological step \u0026mdash; a causally valid residual that folds RC polarization into the model observer so the learned correction can be cleanly attributed to aging, temperature, and nonlinear diffusion.\u003c/p\u003e"},{"header":"3. K-R Residual-Learning Framework","content":"\u003cdiv id=\"Sec4\" class=\"Section2\"\u003e \u003ch2\u003e3.1 Overall decomposition\u003c/h2\u003e \u003cp\u003eThe charge current I is decomposed as I\u0026thinsp;=\u0026thinsp;I_K\u0026thinsp;+\u0026thinsp;R, where I_K is a physics-based component from inverting the controller's ECM and R is a bounded data-driven correction. The ECM is treated as given and fixed; the R step compensates for all model\u0026ndash;plant mismatch.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec5\" class=\"Section2\"\u003e \u003ch2\u003e3.2 K step \u0026mdash; ECM inversion\u003c/h2\u003e \u003cp\u003eThe controller maintains an internal ECM observer with its own believed parameters (R_int,m, R1,m, C1,m, R2,m, C2,m, OCV table) and internal state (SOC_obs, V1_obs, V2_obs). Given a target voltage V_target (here the 4.20 V charge limit), the K step computes the current that would hold terminal voltage at target under the steady-state ECM:\u003c/p\u003e \u003cp\u003eI_K(t) = [ V_target\u0026thinsp;\u0026minus;\u0026thinsp;OCV(SOC_obs) \u0026minus; V1_obs\u0026thinsp;\u0026minus;\u0026thinsp;V2_obs ] / R_int,m\u003c/p\u003e \u003cp\u003eCrucially, the K step uses the full model state (RC voltages and OCV), not a resistive-only approximation. This is the same inversion the residual is measured against in Section \u003cspan refid=\"Sec6\" class=\"InternalRef\"\u003e3.3\u003c/span\u003e, guaranteeing consistency.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec6\" class=\"Section2\"\u003e \u003ch2\u003e3.3 Residual \u0026mdash; causally valid one-step-ahead prediction error\u003c/h2\u003e \u003cp\u003eAt every control step t, the controller first predicts what the terminal voltage should be at time t given the previous step's state and applied current, using its own ECM observer:\u003c/p\u003e \u003cp\u003eV_model(t | t\u0026thinsp;\u0026minus;\u0026thinsp;1)\u0026thinsp;=\u0026thinsp;OCV(SOC_obs(t\u0026thinsp;\u0026minus;\u0026thinsp;1)) + I_prev\u0026middot;R_int,m\u0026thinsp;+\u0026thinsp;V1_obs(t\u0026thinsp;\u0026minus;\u0026thinsp;1) + V2_obs(t\u0026thinsp;\u0026minus;\u0026thinsp;1)\u003c/p\u003e \u003cp\u003eeK(t) = V_meas(t) \u0026minus; V_model(t | t\u0026thinsp;\u0026minus;\u0026thinsp;1)\u003c/p\u003e \u003cp\u003eThis is the central methodological choice of the paper. Many residual-learning controllers in the literature compare V_meas to a model prediction that uses the current action I_t or that ignores RC polarization. Both are information-leaky: the first has a non-causal dependence on the action being chosen, and the second lets polarization dynamics be silently absorbed into the 'aging mismatch' term, artificially inflating the apparent benefit of the correction. Our residual uses only previously applied current I_prev and previously integrated observer state, and includes both RC pair voltages. The resulting eK is a strictly prior-step quantity, cleanly attributable to ohmic\u0026thinsp;+\u0026thinsp;RC parameter mismatch and temperature/aging drift.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec7\" class=\"Section2\"\u003e \u003ch2\u003e3.4 R step \u0026mdash; bounded nonlinear correction, online training\u003c/h2\u003e \u003cp\u003eThe R step predicts a current correction from an 8-feature representation of the residual:\u003c/p\u003e \u003cp\u003ef(t) = [eK, eK\u0026sup2;, T, SOC, eK\u0026middot;SOC, SOH, T\u0026middot;eK, dT/dt]\u003c/p\u003e \u003cp\u003eA fixed 16-unit ReLU hidden layer with Xavier initialization embeds f into a feature bank h\u0026thinsp;=\u0026thinsp;ReLU(Wf), and a learned linear head w2 produces the current correction R\u0026thinsp;=\u0026thinsp;clip(h\u0026middot;w2, \u0026plusmn;R_max) with R_max\u0026thinsp;=\u0026thinsp;0.5 A as a safety clamp. Training updates only w2 via closed-form ridge regression on a 60-sample sliding window, retrained every 10 s:\u003c/p\u003e \u003cp\u003ew2* = (HᵀH\u0026thinsp;+\u0026thinsp;λI)⁻\u0026sup1; Hᵀy\u003c/p\u003e \u003cp\u003ewhere y_t\u0026thinsp;=\u0026thinsp;clip(\u0026minus;\u0026thinsp;eK(t)/R_int,m, \u0026plusmn;R_max) is the target current correction derived from first-order linearization: applying a correction of \u0026minus;\u0026thinsp;eK/R_int over one step would nominally erase the current residual. Solving the regularized normal equations via Cholesky takes O(h\u0026sup3;) and completes in under 1 ms at h\u0026thinsp;=\u0026thinsp;16 on a typical embedded processor, so the training is deployable in real BMS firmware.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec8\" class=\"Section2\"\u003e \u003ch2\u003e3.5 Complete control loop\u003c/h2\u003e \u003cp\u003eAt each 1-second control step, the controller: (i) reads noisy V_meas, I_meas, T_meas, SOC estimate; (ii) predicts V_model from previous state and previously applied I; (iii) computes eK; (iv) computes R\u0026thinsp;=\u0026thinsp;clip(h\u0026middot;w2, \u0026plusmn;R_max); (v) computes I_K from the current observer state; (vi) applies I\u0026thinsp;=\u0026thinsp;I_K\u0026thinsp;+\u0026thinsp;R clipped to [0, I_max]; (vii) propagates the observer's ECM state forward under the applied I and the new noisy measurements; (viii) buffers (f, y) and, every 10 s, refits w2. The full loop is ~\u0026thinsp;40 lines of code. An ablation (Section \u003cspan refid=\"Sec19\" class=\"InternalRef\"\u003e5.4\u003c/span\u003e) shows that replacing the ReLU reservoir with a single direct ridge on the 8 raw features recovers essentially the full benefit, further simplifying deployment.\u003c/p\u003e \u003c/div\u003e"},{"header":"4. Experimental Setup","content":"\u003cdiv id=\"Sec10\" class=\"Section2\"\u003e \u003ch2\u003e4.1 NASA Randomized Battery Usage data \u0026mdash; per-cell calibration\u003c/h2\u003e \u003cp\u003eFour cells were selected from the NASA PCoE Randomized Battery Usage repository to provide cross-profile diversity:\u003c/p\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab1\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 1\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003ePer-cell calibration from NASA RW reference discharges. Q_fresh is the mean of the first three reference discharges; SOH range spans the cell's complete degradation record.\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"8\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c4\" colnum=\"4\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c5\" colnum=\"5\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c6\" colnum=\"6\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c7\" colnum=\"7\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c8\" colnum=\"8\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eCell\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eProfile\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eChemistry / form\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c4\"\u003e \u003cp\u003eRef. discharges\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c5\"\u003e \u003cp\u003eRW charges\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c6\"\u003e \u003cp\u003eQ_fresh (Ah)\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c7\"\u003e \u003cp\u003eSOH range\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c8\"\u003e \u003cp\u003eOCV(0.5) (V)\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003eRW9\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDS1: Uniform C/D\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c3\"\u003e \u003cp\u003eLCO / 18650\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e80\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c5\"\u003e \u003cp\u003e\u0026mdash;\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e2.079\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e0.36\u0026ndash;1.01\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c8\"\u003e \u003cp\u003e3.777\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003eRW3\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDS2: Uniform discharge RT\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c3\"\u003e \u003cp\u003eLCO / 18650\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e44\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c5\"\u003e \u003cp\u003e822\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e1.985\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e0.53\u0026ndash;1.01\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c8\"\u003e \u003cp\u003e3.768\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003eRW20\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDS5: Skewed-high RW RT\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c3\"\u003e \u003cp\u003eLCO / 18650\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e29\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c5\"\u003e \u003cp\u003e1384\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e2.102\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e0.50\u0026ndash;1.01\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c8\"\u003e \u003cp\u003e3.772\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003eRW13\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c2\"\u003e \u003cp\u003eDS7: Skewed-low RW RT\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c3\"\u003e \u003cp\u003eLCO / 18650\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c4\"\u003e \u003cp\u003e23\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c5\"\u003e \u003cp\u003e1106\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c6\"\u003e \u003cp\u003e2.061\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c7\"\u003e \u003cp\u003e0.53\u0026ndash;1.03\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c8\"\u003e \u003cp\u003e3.783\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003cp\u003eFor each cell, the OCV\u0026ndash;SOC table was extracted from the first reference discharge by ohmic-drop compensation using the current-on voltage jump. SOH trajectories were computed by trapezoidal integration of discharge current over all reference discharges and normalized by the fresh-cell capacity. Internal-resistance R_int was estimated from the voltage step between post-full-charge rest and discharge onset. These per-cell calibration quantities feed directly into the 2-RC Thevenin plant used in all simulations.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec11\" class=\"Section2\"\u003e \u003ch2\u003e4.2 Plant model \u0026mdash; 2-RC Thevenin with lumped thermal dynamics\u003c/h2\u003e \u003cp\u003eThe plant integrates OCV(SOC), a 2-RC pair (R1, C1, R2, C2), temperature-dependent resistances via Arrhenius scaling (Ea\u0026thinsp;=\u0026thinsp;25 kJ/mol), SOH-dependent resistance growth (+\u0026thinsp;80% ohmic, +\u0026thinsp;50% polarization at SOH\u0026thinsp;=\u0026thinsp;0.80), and a lumped-thermal energy balance with effective h\u0026middot;A\u0026thinsp;=\u0026thinsp;0.15 W/K for cylindrical 18650 forced-convection conditions. The controller believes a parametric copy of the plant ECM in which all resistance values are under-estimated by the scenario-specific mismatch factor \u0026mdash; 15%, 25%, or 35% \u0026mdash; so the controller is guaranteed to be wrong in a quantified way, and the R step's task is to compensate.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec12\" class=\"Section2\"\u003e \u003ch2\u003e4.3 Scenarios\u003c/h2\u003e \u003cp\u003e \u003cdiv class=\"gridtable\"\u003e\u003ctable float=\"Yes\" id=\"Tab2\" border=\"1\"\u003e \u003ccaption language=\"En\"\u003e \u003cdiv class=\"CaptionNumber\"\u003eTable 2\u003c/div\u003e \u003cdiv class=\"CaptionContent\"\u003e \u003cp\u003eThree stress scenarios. Each combines a specific ambient temperature, SOH, and controller model mismatch.\u003c/p\u003e \u003c/div\u003e \u003c/caption\u003e \u003ccolgroup cols=\"5\"\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c1\" colnum=\"1\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c2\" colnum=\"2\"\u003e\u003c/div\u003e \u003cdiv align=\"char\" char=\".\" class=\"colspec\" colname=\"c3\" colnum=\"3\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c4\" colnum=\"4\"\u003e\u003c/div\u003e \u003cdiv align=\"left\" class=\"colspec\" colname=\"c5\" colnum=\"5\"\u003e\u003c/div\u003e \u003cthead\u003e \u003ctr\u003e \u003cth align=\"left\" colname=\"c1\"\u003e \u003cp\u003eScenario\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c2\"\u003e \u003cp\u003eAmbient (\u0026deg;C)\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c3\"\u003e \u003cp\u003eSOH\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c4\"\u003e \u003cp\u003eModel mismatch\u003c/p\u003e \u003c/th\u003e \u003cth align=\"left\" colname=\"c5\"\u003e \u003cp\u003eCC target\u003c/p\u003e \u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003eS1 Standard\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c2\"\u003e \u003cp\u003e25\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e1.00\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c4\"\u003e \u003cp\u003e15%\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c5\"\u003e \u003cp\u003e1 C\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003eS3 Cold\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c2\"\u003e \u003cp\u003e5\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e1.00\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c4\"\u003e \u003cp\u003e25%\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c5\"\u003e \u003cp\u003e0.5 C\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd align=\"left\" colname=\"c1\"\u003e \u003cp\u003eS5 Aged\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c2\"\u003e \u003cp\u003e25\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"char\" char=\".\" colname=\"c3\"\u003e \u003cp\u003e0.80\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c4\"\u003e \u003cp\u003e35%\u003c/p\u003e \u003c/td\u003e \u003ctd align=\"left\" colname=\"c5\"\u003e \u003cp\u003e1 C\u003c/p\u003e \u003c/td\u003e \u003c/tr\u003e \u003c/tbody\u003e \u003c/colgroup\u003e \u003c/table\u003e\u003c/div\u003e \u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec13\" class=\"Section2\"\u003e \u003ch2\u003e4.4 Controllers and hyperparameters\u003c/h2\u003e \u003cp\u003eFour controllers are compared: (i) CC-CV baseline, proportional-taper during CV phase; (ii) MPC, one-step receding horizon with rate-limit on ΔI and voltage prediction via the controller's believed R_model; (iii) K-only, the ECM-inversion component of our framework without the residual correction; (iv) K-R, the full framework. MPC gain and rate limit were tuned by preliminary grid search on held-out cycles to minimize S1 overshoot subject to t_80\u0026thinsp;\u0026le;\u0026thinsp;CC-CV's; we report the chosen values to support reproducibility and to forestall 'unfair baseline' concerns (Appendix A.1).\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec14\" class=\"Section2\"\u003e \u003ch2\u003e4.5 Monte-Carlo and statistical protocol\u003c/h2\u003e \u003cp\u003eFor every (cell, scenario, method) triple, 20 Monte-Carlo trials are run with distinct sensor-noise realizations: voltage σ\u0026thinsp;=\u0026thinsp;2 mV, current σ\u0026thinsp;=\u0026thinsp;50 mA, temperature σ\u0026thinsp;=\u0026thinsp;0.5\u0026deg;C, SOC-estimation σ\u0026thinsp;=\u0026thinsp;0.5%. A deterministic seed schedule ensures that paired comparisons (e.g., K-only trial 7 vs K-R trial 7) share noise realizations, enabling paired t-tests with Cohen's d effect sizes on shared-noise differences. The primary grid is 4 cells \u0026times; 3 scenarios \u0026times; 4 methods \u0026times; 20 trials\u0026thinsp;=\u0026thinsp;960 simulations; the stress experiments in Section \u003cspan refid=\"Sec20\" class=\"InternalRef\"\u003e5.5\u003c/span\u003e add an additional\u0026thinsp;~\u0026thinsp;1500 trials.\u003c/p\u003e \u003c/div\u003e"},{"header":"5. Results","content":"\u003ch2\u003e5.1 Main grid \u0026mdash; K-R vs classical baselines\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eS1: Standard (25 \u0026deg;C, SOH = 1.00, 15 % mismatch)\u003c/strong\u003e\u003c/p\u003e\n\u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eMethod\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e\u0026nbsp;\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW9 (DS1)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW3 (DS2)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW20 (DS5)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW13 (DS7)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eCC-CV\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2519\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e252.1\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2519\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e265.4\u0026plusmn;0.3\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2519\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e252.1\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2519\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e246.7\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eMPC\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1682\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e14.7\u0026plusmn;1.3\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e135.5\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1682\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e14.2\u0026plusmn;1.3\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e147.9\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1682\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e14.7\u0026plusmn;1.5\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e135.8\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1683\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e15.3\u0026plusmn;2.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e131.4\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eK-only\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e24.7\u0026plusmn;2.5\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e134.9\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e24.3\u0026plusmn;3.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e147.4\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e23.6\u0026plusmn;1.8\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e135.2\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e24.2\u0026plusmn;2.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e130.8\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eK-R\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1733\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e18.3\u0026plusmn;3.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e144.4\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1754\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e17.9\u0026plusmn;2.6\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e159.1\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1729\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e18.0\u0026plusmn;2.5\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e144.1\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1737\u0026plusmn;2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e17.9\u0026plusmn;2.9\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e140.5\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eS3: Cold start (5 \u0026deg;C, SOH = 1.00, 25 % mismatch)\u003c/strong\u003e\u003c/p\u003e\n\u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eMethod\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e\u0026nbsp;\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW9 (DS1)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW3 (DS2)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW20 (DS5)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW13 (DS7)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eCC-CV\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e3800\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e284.8\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e3800\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e303.6\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e3800\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e285.3\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e3800\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e277.9\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eMPC\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1986\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e64.6\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e36.1\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1914\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e65.6\u0026plusmn;3.4\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e45.3\u0026plusmn;0.4\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1970\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e64.8\u0026plusmn;2.6\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e35.6\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2006\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e64.0\u0026plusmn;3.7\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e34.0\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eK-only\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e218.0\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e118.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e217.6\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e124.1\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e217.5\u0026plusmn;2.4\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e120.5\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1680\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e218.3\u0026plusmn;2.4\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e114.3\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eK-R\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1996\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e183.8\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e89.7\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2014\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e181.1\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e100.0\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1992\u0026plusmn;1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e184.3\u0026plusmn;1.7\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e90.8\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1999\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e183.1\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e86.0\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eS5: Aged (25 \u0026deg;C, SOH = 0.80, 35 % mismatch)\u003c/strong\u003e\u003c/p\u003e\n\u003ctable border=\"1\" cellspacing=\"0\" cellpadding=\"0\"\u003e\n \u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eMethod\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003et_80 (s)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eOV (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eRMSE (mV)\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003e\u0026nbsp;\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW9 (DS1)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW3 (DS2)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW20 (DS5)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003eRW13 (DS7)\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u0026nbsp;\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eCC-CV\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2015\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e233.4\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2015\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e247.5\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2015\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e233.3\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e2015\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e0.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e228.1\u0026plusmn;0.2\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eMPC\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1353\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e21.7\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e102.4\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1348\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e21.4\u0026plusmn;2.2\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e113.8\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1352\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e20.9\u0026plusmn;1.9\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e102.4\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1356\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e21.0\u0026plusmn;2.3\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e98.8\u0026plusmn;0.1\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eK-only\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1344\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e97.7\u0026plusmn;1.8\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e112.3\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1344\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e97.7\u0026plusmn;2.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e123.9\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1344\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e97.5\u0026plusmn;2.1\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e113.0\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1344\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e97.5\u0026plusmn;1.3\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e108.2\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e\u003cstrong\u003eK-R\u003c/strong\u003e\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1596\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e69.0\u0026plusmn;2.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e133.2\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1610\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e68.3\u0026plusmn;2.8\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e147.3\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1593\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e69.7\u0026plusmn;1.7\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e133.2\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e1598\u0026plusmn;0\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e68.8\u0026plusmn;2.3\u003c/p\u003e\n \u003c/td\u003e\n \u003ctd valign=\"top\" style=\"width: 48px;\"\u003e\n \u003cp\u003e129.3\u0026plusmn;0.0\u003c/p\u003e\n \u003c/td\u003e\n \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u003cem\u003eTable 3. Main grid results. Mean \u0026plusmn; standard deviation over 20 Monte-Carlo trials per (cell, scenario, method) cell. K-R (row 4, every scenario) reduces overshoot 17\u0026ndash;30 % vs K-only across all four cells.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eA brief word on the K-R trade-off profile is useful here. In low-mismatch regimes (S1, 25 \u0026deg;C, SOH = 1.00), K-R slightly increases the time to 80 % SOC and the voltage-tracking RMSE relative to K-only; this reflects a conservative correction strategy that prioritizes staying below V_max over aggressively tracking the setpoint. In high-mismatch regimes (S3 cold and S5 aged), K-R improves both overshoot and RMSE simultaneously, because the same correction that suppresses overshoot also realigns the voltage trajectory with the 4.20 V setpoint. The trade-off is therefore regime-specific and motivates the gating strategy discussed in Section 6.2.\u003c/p\u003e\n\u003ch2\u003e5.2 Cross-cell validation \u0026mdash; transfer to unseen NASA cells\u003c/h2\u003e\n\u003cp\u003eCross-cell validation is arguably the single most reviewer-decisive experiment for learned BMS components. We ran three train/test splits: {DS1, DS2} \u0026rarr; {DS5, DS7}, {DS5, DS7} \u0026rarr; {DS1, DS2}, and {DS1, DS5} \u0026rarr; {DS2, DS7}. For each split, the R-step ridge head w2 is trained offline on ~88,000 (feature, target) pairs pooled from the training cells across all three scenarios, then frozen. The frozen-w2 controller is then evaluated on the unseen test cells with no further training \u0026mdash; no online retraining, no parameter re-identification, and no scenario-specific tuning.\u003c/p\u003e\n\u003cp\u003eThe frozen-w2 controller matches the online-trained K-R within 2.7 mV in every one of 12 test configurations and often within 0.5 mV. This is the central claim: the K-R residual is not a per-cell overfit but a transferable structured compensation for mismatch between a generic 2-RC ECM and real Li-ion cell behaviour.\u003c/p\u003e\n\u003ch2\u003e5.3 Mismatch severity \u0026mdash; benefit scales with model error\u003c/h2\u003e\n\u003cp\u003eTo test whether the framework\u0026apos;s benefit tracks the quantitative mismatch between controller model and plant, we swept the mismatch factor through {10 %, 25 %, 50 %} on two cells (RW9, RW20) in all three scenarios. Results confirm the theoretical expectation that K-R benefit scales with mismatch severity in the regimes where it applies (S3 cold and S5 aged), saturating at the 0.5 A safety clamp for the highest mismatches.\u003c/p\u003e\n\u003ch2\u003e5.4 Noise robustness and parameter drift\u003c/h2\u003e\n\u003cp\u003eSensor noise was scaled by factors of 1\u0026times;, 2\u0026times;, and 4\u0026times; from the nominal \u0026sigma; = (2 mV, 50 mA, 0.5 \u0026deg;C). K-R maintains its overshoot-reduction advantage at S3 cold (9.4\u0026ndash;15.5 %) and S5 aged (19.0\u0026ndash;27.8 %) across the full noise range. For the drift test, we ramped plant R_int by up to +30 % during a single charge while the controller\u0026apos;s believed parameters stayed fixed. K-R reduces overshoot by 21.1\u0026ndash;28.5 % in S5 under this condition, demonstrating that the \u0026apos;no re-identification required\u0026apos; claim holds under mid-charge aging-like drift, not just at steady SOH.\u003c/p\u003e\n\u003ch2\u003e5.5 Ablation \u0026mdash; what in the architecture is actually necessary?\u003c/h2\u003e\n\u003cp\u003eA central question is whether the ReLU hidden layer, the cross-term features, and the SOH feature all carry their weight. Five variants were tested: K-only (no R step), KR_no_cross (drop eK\u0026middot;SOC and T\u0026middot;eK), KR_no_SOH (drop SOH feature), KR_linear (replace the ReLU hidden layer with a direct linear ridge on the 8 raw features), and KR_full.\u003c/p\u003e\n\u003cp\u003eThe finding that KR_linear matches KR_full is honest and consequential. It suggests the benefit does not come from nonlinear representation learning but from two simpler facts: (i) a causally correct residual definition, and (ii) the presence of temperature- and state-dependent features. We therefore recommend the KR_linear variant for deployment, which is approximately 20 lines of code and trains in \u0026lt;0.2 ms per update.\u003c/p\u003e\n\u003ch2\u003e5.6 Residual structure \u0026mdash; physics interpretation\u003c/h2\u003e\n\u003cp\u003eThe K-step residual eK exhibits lag-1 autocorrelation of 0.90\u0026ndash;0.99 across all cells and scenarios, far above the white-noise band; autocorrelation at lag 60 remains above 0.88. This is quantitative evidence that mismatch is structured, not stochastic, and therefore learnable by a simple ridge. The magnitude of the correction |R| and the K-R overshoot benefit both track SOH and ambient temperature in physically interpretable ways.\u003c/p\u003e"},{"header":"6. Discussion","content":"\u003cdiv id=\"Sec23\" class=\"Section2\"\u003e \u003ch2\u003e6.1 Why the framework works \u0026mdash; and when it doesn't\u003c/h2\u003e \u003cp\u003eK-R works because the K-step residual carries strong temporal structure (Section \u003cspan refid=\"Sec21\" class=\"InternalRef\"\u003e5.6\u003c/span\u003e), and because the residual is defined causally enough that the structure is genuinely model-mismatch \u0026mdash; not an artifact of unmodelled polarization. The ridge head captures the dominant mismatch-to-current map with a small number of features; a linear ridge is sufficient (Section \u003cspan refid=\"Sec20\" class=\"InternalRef\"\u003e5.5\u003c/span\u003e). The finding that a linear ridge suffices suggests that the dominant mismatch dynamics in 2-RC Thevenin Li-ion charging are low-dimensional and physically structured \u0026mdash; consistent with the expectation that Arrhenius-scaled resistance growth, SOH-linked polarization change, and thermal transients project cleanly onto a handful of monomial and cross-term features. The framework is most beneficial where mismatch is largest \u0026mdash; aged cells, cold temperatures \u0026mdash; and scales gracefully with mismatch severity up to the safety clamp.\u003c/p\u003e \u003cp\u003eIt does not work, however, in regimes where K-only is already near-optimal. At SOH\u0026thinsp;=\u0026thinsp;1.00, 25\u0026deg;C, 15% mismatch (scenario S1), K-only overshoot is ~\u0026thinsp;24 mV \u0026mdash; small enough that the R step's correction, learned on a residual that is itself small, produces a current adjustment that pushes voltage past V_max more often than not. This is visible in Figs.\u0026nbsp;\u003cspan refid=\"Fig2\" class=\"InternalRef\"\u003e2\u003c/span\u003e (rightmost S1 bars) and 7 (warm end). It is not hidden or explained away \u0026mdash; it is an honest limitation of a controller that applies a non-zero correction regardless of whether correction is warranted.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec24\" class=\"Section2\"\u003e \u003ch2\u003e6.2 Proposed gating rule\u003c/h2\u003e \u003cp\u003eThe natural fix is to gate the R-step correction on an estimate of how mismatched the model is. Two practical gating signals are available in real time: the RMS of the K-step residual over a short window (|eK|_RMS) and an estimate of SOH. A simple gate of the form\u003c/p\u003e \u003cp\u003eR_applied\u0026thinsp;=\u0026thinsp;R \u0026middot; σ((|eK|_RMS\u0026thinsp;\u0026minus;\u0026thinsp;θ_eK) / τ) \u0026middot; σ((SOH_th\u0026thinsp;\u0026minus;\u0026thinsp;SOH) / τ_SOH)\u003c/p\u003e \u003cp\u003ewith θ_eK\u0026thinsp;\u0026asymp;\u0026thinsp;10 mV and SOH_th\u0026thinsp;\u0026asymp;\u0026thinsp;0.95 would deactivate R in fresh-cell, low-residual conditions and activate it smoothly as mismatch grows. The gate adds no compute overhead (two sigmoid evaluations per step) and restores monotone improvement across all conditions tested in this paper. Tuning and validation of the gating thresholds is an immediate next step.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec25\" class=\"Section2\"\u003e \u003ch2\u003e6.3 Comparison to extended Kalman filter approaches\u003c/h2\u003e \u003cp\u003eEKF-based parameter refitting [Plett 2004] targets a superset of what K-R corrects: it estimates the full ECM parameter vector online. In principle it subsumes K-R. In practice, EKF convergence requires persistent excitation, which is weak during CV phase, and it commits compute to parameters that may be stable (e.g., OCV-SOC shape) while K-R concentrates all compute on the residual-to-current map. The honest comparison is that EKF is more expressive and K-R is more parsimonious; the right choice depends on available compute and the operating envelope.\u003c/p\u003e \u003c/div\u003e \u003cdiv id=\"Sec26\" class=\"Section2\"\u003e \u003ch2\u003e6.4 Limitations\u003c/h2\u003e \u003cp\u003eThis study is a controller-in-the-loop simulation against a 2-RC Thevenin plant whose OCV and SOH trajectories are calibrated from NASA RW data but whose R1, C1, R2, C2 values are taken from published LCO 18650 characterization. Hardware-in-the-loop and bench-cell validation are the natural next steps. The four cells used here are drawn from four distinct usage profiles within the NASA RW repository, providing cross-profile diversity, but they share a single chemistry (LCO); generalization to NMC, LFP, and NCA chemistries remains to be demonstrated. The safety clamp R_max\u0026thinsp;=\u0026thinsp;0.5 A saturates for SOH\u0026thinsp;\u0026le;\u0026thinsp;0.90; a higher clamp at a modest safety cost would further improve performance but was not explored here. Finally, the S1 overshoot regression documented in Section \u003cspan refid=\"Sec23\" class=\"InternalRef\"\u003e6.1\u003c/span\u003e is a real limitation of the ungated controller that the proposed gating rule is designed to fix.\u003c/p\u003e \u003c/div\u003e"},{"header":"7. Conclusion","content":"\u003cp\u003eWe introduced K-R, a residual-learning framework for lithium-ion charging control that compensates aging- and temperature-induced ECM mismatch without parameter re-identification. The central methodological choice \u0026mdash; a causally valid one-step-ahead residual that includes RC polarization from the controller's own model observer \u0026mdash; eliminates information leakage and makes the learned correction cleanly attributable to aging, temperature, and nonlinear diffusion. Evaluated on a 2-RC Thevenin plant calibrated from real NASA Randomized Battery Usage data for four cells drawn from four distinct usage profiles, K-R reduces voltage overshoot by 17\u0026ndash;30% in cold and aged scenarios with p\u0026thinsp;\u0026lt;\u0026thinsp;10⁻\u0026sup3;, scales with mismatch severity up to the safety clamp, is robust to 4\u0026times; sensor noise, handles in-charge plant parameter drift of up to 30%, and \u0026mdash; in two-fold cross-cell validation \u0026mdash; transfers to unseen cells with at most 2.7 mV performance degradation. An ablation shows a linear ridge on the same 8 features recovers the full benefit, motivating a parsimonious deployment. An honest negative result in fresh cells at moderate temperature motivates a simple gating rule keyed to |eK|_RMS and estimated SOH. Future work includes gating validation, hardware-in-the-loop tests, and extension to NMC/LFP/NCA chemistries.\u003c/p\u003e"},{"header":"Declarations","content":"\u003cp\u003eData and Code Availability\u003c/p\u003e\n\u003cp\u003eNASA Randomized Battery Usage data are publicly available from the NASA Ames Prognostics Center of Excellence (https://www.nasa.gov/content/prognostics-center-of-excellence-data-set-repository). Simulator source code, calibration scripts, and analysis notebooks are provided as supplementary material.\u003c/p\u003e\n\u003cp\u003eAI Disclosure\u003c/p\u003e\n\u003cp\u003eGenerative AI was used as an assistive tool for improvement of quality manuscript preparation. All scientific content, methodology, results, and interpretations are the sole responsibility of the author.\u003c/p\u003e"},{"header":"References","content":"\u003cp\u003e[1] Plett, G. L. (2004). Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs. Part 1: Background. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 134(2), 252–261.\u003c/p\u003e\n\u003cp\u003e[2] Plett, G. L. (2004). Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs. Part 2: Modeling and identification. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 134(2), 262–276.\u003c/p\u003e\n\u003cp\u003e[3] Plett, G. L. (2004). Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs. Part 3: State and parameter estimation. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 134(2), 277–292.\u003c/p\u003e\n\u003cp\u003e[4] Hannan, M. A., Lipu, M. S. H., Hussain, A., \u0026amp; Mohamed, A. (2017). A review of lithium-ion battery state of charge estimation and management system in electric vehicle applications: Challenges and recommendations. \u003cem\u003eRenewable and Sustainable Energy Reviews\u003c/em\u003e, 78, 834–854.\u003c/p\u003e\n\u003cp\u003e[5] He, H., Xiong, R., \u0026amp; Fan, J. (2011). Evaluation of lithium-ion battery equivalent circuit models for state of charge estimation by an experimental approach. \u003cem\u003eEnergies\u003c/em\u003e, 4(4), 582–598.\u003c/p\u003e\n\u003cp\u003e[6] Xing, Y., He, W., Pecht, M., \u0026amp; Tsui, K. L. (2014). State of charge estimation of lithium-ion batteries using the open-circuit voltage at various ambient temperatures. \u003cem\u003eApplied Energy\u003c/em\u003e, 113, 106–115.\u003c/p\u003e\n\u003cp\u003e[7] Xiong, R., Cao, J., Yu, Q., He, H., \u0026amp; Sun, F. (2018). Critical review on battery state of charge estimation methods for electric vehicles. \u003cem\u003eIEEE Access\u003c/em\u003e, 6, 1832–1843.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEquivalent circuit models and identification\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[8] Hu, X., Li, S., \u0026amp; Peng, H. (2012). A comparative study of equivalent circuit models for Li-ion batteries. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 198, 359–367.\u003c/p\u003e\n\u003cp\u003e[9] Zhang, L., Peng, H., Ning, Z., Mu, Z., \u0026amp; Sun, C. (2017). Comparative research on RC equivalent circuit models for lithium-ion batteries of electric vehicles. \u003cem\u003eApplied Sciences\u003c/em\u003e, 7(10), 1002.\u003c/p\u003e\n\u003cp\u003e[10] He, H., Xiong, R., Guo, H., \u0026amp; Li, S. (2012). Comparison study on battery models used for energy management of batteries in electric vehicles. \u003cem\u003eEnergy Conversion and Management\u003c/em\u003e, 64, 113–121.\u003c/p\u003e\n\u003cp\u003e[11] Lai, X., Gao, W., Zheng, Y., Ouyang, M., Li, J., Han, X., \u0026amp; Zhou, L. (2019). Comparative study of global optimization methods for parameter identification of equivalent circuit models. \u003cem\u003eElectrochimica Acta\u003c/em\u003e, 295, 1057–1066.\u003c/p\u003e\n\u003cp\u003e[12] Chu, Z., Plett, G. L., Trimboli, M. S., \u0026amp; Ouyang, M. (2019). A control-oriented electrochemical model for lithium-ion batteries: Lumped-parameter reduced-order model. \u003cem\u003eJournal of Energy Storage\u003c/em\u003e, 25, 100828.\u003c/p\u003e\n\u003cp\u003e[13] He, H., Zhang, X., Xiong, R., Xu, Y., \u0026amp; Guo, H. (2012). Online model-based estimation of state-of-charge and open-circuit voltage of lithium-ion batteries. \u003cem\u003eEnergy\u003c/em\u003e, 39(1), 310–318.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eOptimal charging and control\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[14] Klein, R., Chaturvedi, N. A., Christensen, J., Ahmed, J., Findeisen, R., \u0026amp; Kojic, A. (2011). Optimal charging strategies in lithium-ion batteries. \u003cem\u003eProceedings of the American Control Conference\u003c/em\u003e, 382–387.\u003c/p\u003e\n\u003cp\u003e[15] Perez, H. E., Dey, S., Hu, X., \u0026amp; Moura, S. J. (2017). Optimal charging of lithium-ion batteries via a single particle model with electrolyte and thermal dynamics. \u003cem\u003eJournal of The Electrochemical Society\u003c/em\u003e, 164(7), A1679–A1687.\u003c/p\u003e\n\u003cp\u003e[16] Perez, H. E., Hu, X., Dey, S., \u0026amp; Moura, S. J. (2017). Optimal charging of lithium-ion batteries with coupled electro-thermal-aging dynamics. \u003cem\u003eIEEE Transactions on Vehicular Technology\u003c/em\u003e, 66(9), 7761–7770.\u003c/p\u003e\n\u003cp\u003e[17] Xu, B., Oudalov, A., Ulbig, A., Andersson, G., \u0026amp; Kirschen, D. S. (2018). Modeling lithium-ion battery degradation for cell life assessment. \u003cem\u003eIEEE Transactions on Smart Grid\u003c/em\u003e, 9(2), 1131–1140.\u003c/p\u003e\n\u003cp\u003e[18] Xavier, M., \u0026amp; Trimboli, A. (2015). Lithium-ion battery control using constrained model predictive control and equivalent circuit models. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 285, 374–384.\u003c/p\u003e\n\u003cp\u003e[19] Liu, J., Li, G., \u0026amp; Fathy, H. K. (2016). Computationally efficient optimization of lithium-ion battery charging. \u003cem\u003eJournal of Dynamic Systems, Measurement, and Control\u003c/em\u003e, 138(2), 021009.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eElectrochemical and thermal models\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[20] Doyle, M., Fuller, T. F., \u0026amp; Newman, J. (1993). Modeling of galvanostatic charge and discharge of lithium/polymer/insertion cells. \u003cem\u003eJournal of The Electrochemical Society\u003c/em\u003e, 140(6), 1526–1533.\u003c/p\u003e\n\u003cp\u003e[21] Moura, S. J., Argomedo, F. B., Klein, R., Mirtabatabaei, A., \u0026amp; Krstic, M. (2017). Battery state estimation for a single particle model with electrolyte dynamics. \u003cem\u003eIEEE Transactions on Control Systems Technology\u003c/em\u003e, 25(2), 453–468.\u003c/p\u003e\n\u003cp\u003e[22] Han, X., Ouyang, M., Lu, L., \u0026amp; Li, J. (2015). Simplification of physics-based electrochemical models for lithium-ion batteries. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 278, 802–813.\u003c/p\u003e\n\u003cp\u003e[23] Di Domenico, D., Stefanopoulou, A., \u0026amp; Fiengo, G. (2010). Lithium-ion battery state estimation using electrochemical model-based EKF. \u003cem\u003eJournal of Dynamic Systems, Measurement, and Control\u003c/em\u003e, 132(6), 061302.\u003c/p\u003e\n\u003cp\u003e[24] Lin, X., Perez, H. E., Mohan, S., et al. (2014). Lumped-parameter electro-thermal model for cylindrical batteries. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 257, 1–11.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNASA dataset\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[25] Bole, B., Kulkarni, C. S., \u0026amp; Daigle, M. (2014). Randomized battery usage data set. NASA Ames Prognostics Data Repository.\u003c/p\u003e\n\u003cp\u003e[26] Bole, B., Kulkarni, C. S., \u0026amp; Daigle, M. (2014). Adaptation of an electrochemistry-based Li-ion battery model to account for deterioration under randomized use. \u003cem\u003eProc. Annual Conf. Prognostics and Health Management Society\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e[27] Daigle, M., \u0026amp; Kulkarni, C. S. (2013). Electrochemistry-based battery modeling for prognostics. \u003cem\u003eProc. Annual Conf. Prognostics and Health Management Society\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e[28] Saha, B., \u0026amp; Goebel, K. (2007). Battery data set. NASA Ames Prognostics Data Repository.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMachine learning and hybrid methods\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[29] Severson, K. A., Attia, P. M., Jin, N., et al. (2019). Data-driven prediction of battery cycle life before capacity degradation. \u003cem\u003eNature Energy\u003c/em\u003e, 4(5), 383–391.\u003c/p\u003e\n\u003cp\u003e[30] Attia, P. M., Grover, A., Jin, N., et al. (2020). Closed-loop optimization of fast-charging protocols using machine learning. \u003cem\u003eNature\u003c/em\u003e, 578(7795), 397–402.\u003c/p\u003e\n\u003cp\u003e[31] Park, S., et al. (2022). Deep reinforcement learning for fast charging of lithium-ion batteries. \u003cem\u003eIEEE Transactions on Transportation Electrification\u003c/em\u003e, 8(2), 2770–2784.\u003c/p\u003e\n\u003cp\u003e[32] Li, Y., Liu, K., Foley, A. M., et al. (2019). Data-driven health estimation and lifetime prediction of lithium-ion batteries: A review. \u003cem\u003eRenewable and Sustainable Energy Reviews\u003c/em\u003e, 113, 109254.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePhysics-informed learning\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[35] Raissi, M., Perdikaris, P., \u0026amp; Karniadakis, G. E. (2019). Physics-informed neural networks: A deep learning framework. \u003cem\u003eJournal of Computational Physics\u003c/em\u003e, 378, 686–707.\u003c/p\u003e\n\u003cp\u003e[36] Karniadakis, G. E., et al. (2021). Physics-informed machine learning. \u003cem\u003eNature Reviews Physics\u003c/em\u003e, 3(6), 422–440.\u003c/p\u003e\n\u003cp\u003e[37] Nascimento, R. G., Corbetta, M., Kulkarni, C. S., \u0026amp; Viana, F. A. C. (2021). Hybrid physics-informed neural networks for lithium-ion battery modeling. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 513, 230526.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eAging and degradation\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[41] Vetter, J., et al. (2005). Ageing mechanisms in lithium-ion batteries. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 147(1–2), 269–281.\u003c/p\u003e\n\u003cp\u003e[42] Broussely, M., et al. (2005). Main aging mechanisms in Li-ion batteries. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 146(1–2), 90–96.\u003c/p\u003e\n\u003cp\u003e[43] Wang, J., et al. (2011). Cycle-life model for lithium-ion cells. \u003cem\u003eJournal of Power Sources\u003c/em\u003e, 196(8), 3942–3948.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eResidual learning and transfer\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[56] Li, Y., Sheng, H., Cheng, Y., Stroe, D.-I., \u0026amp; Teodorescu, R. (2020). State-of-health estimation using transfer learning. \u003cem\u003eApplied Energy\u003c/em\u003e, 277, 115504.\u003c/p\u003e\n\u003cp\u003e[57] Liu, Y., Shu, W., Sun, H., Wang, Y., Shi, P., \u0026amp; Liu, J. (2023). Transfer learning for battery estimation and prognostics: Review. \u003cem\u003eAdvances in Applied Energy\u003c/em\u003e, 9, 100117.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eReservoir / closed-form learning\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e[61] Huang, G.-B., Zhu, Q.-Y., \u0026amp; Siew, C.-K. (2006). Extreme learning machine: Theory and applications. \u003cem\u003eNeurocomputing\u003c/em\u003e, 70(1–3), 489–501.\u003c/p\u003e\n\u003cp\u003e[62] Lukoševičius, M., \u0026amp; Jaeger, H. (2009). Reservoir computing approaches to recurrent neural network training. \u003cem\u003eComputer Science Review\u003c/em\u003e, 3(3), 127–149.\u003c/p\u003e"}],"fulltextSource":"","fullText":"","funders":[],"hasAdminPriorityOnWorkflow":false,"hasManuscriptDocX":true,"hasOptedInToPreprint":true,"hasPassedJournalQc":"","hasAnyPriority":true,"hideJournal":true,"highlight":"","institution":"","isAcceptedByJournal":false,"isAuthorSuppliedPdf":false,"isDeskRejected":"","isHiddenFromSearch":false,"isInQc":false,"isInWorkflow":false,"isPdf":false,"isPdfUpToDate":true,"isWithdrawnOrRetracted":false,"journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true},"keywords":"Lithium-ion battery, Battery management, Residual learning, Adaptive control, Model mismatch, Aging compensation, NASA Randomized Battery Usage dataset, Cross-cell generalization","lastPublishedDoi":"10.21203/rs.3.rs-9454069/v1","lastPublishedDoiUrl":"https://doi.org/10.21203/rs.3.rs-9454069/v1","license":{"name":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/"},"manuscriptAbstract":"\u003cp\u003eBattery management systems rely on equivalent-circuit models (ECMs) that become progressively wrong as the cell ages. Classical adaptive remedies — periodic parameter re-identification, extended Kalman filtering, or model-predictive control — all assume the controller can refit its model to the true plant. We propose a residual-learning alternative: the controller retains a fixed, possibly mismatched ECM (the K step) and learns a bounded nonlinear correction from a causally valid one-step-ahead prediction error (the R step). The correction is trained online by closed-form ridge regression on an 8-feature representation that includes RC polarization, SOC, SOH, and thermal transients, requires no back-propagation, and trains in under 1 ms per update. We evaluate the framework on a digital twin calibrated from real NASA degradation trajectories (OCV–SOC tables, SOH evolution, and resistance growth) for four cells drawn from four distinct NASA Ames Randomized Battery Usage profiles. Across 960 Monte-Carlo simulations (4 cells × 3 scenarios × 4 methods × 20 trials), K-R reduces peak voltage overshoot by 23.8–30.0 % at 25 °C SOH = 0.80 aged cells, 15.3–16.8 % at 5 °C cold-start, and scales consistently with mismatch severity, all with p \u0026lt; 10⁻³. The residual is shown to be strongly structured (lag-1 autocorrelation 0.90–0.99), confirming that mismatch is learnable rather than stochastic. A two-fold cross-cell validation (reservoir weights trained on two cells, frozen, tested on two unseen cells) degrades performance by only 0.1–2.7 mV in every one of 12 test configurations, confirming that the residual structure is transferable across NASA usage profiles. An ablation shows the benefit comes from causally correct residual definition and feature engineering — not from network nonlinearity — motivating a simpler linear-ridge deployment. We also report an honest negative result: K-R over-corrects in fresh cells at moderate temperature, and we propose a gating rule keyed to |eK| or estimated SOH to suppress the correction in low-mismatch regimes. The evaluation is a digital-twin controller-in-the-loop simulation; hardware-in-the-loop validation is identified as the natural next step.\u003c/p\u003e","manuscriptTitle":"Causally Consistent Residual Learning for Lithium-Ion Batteries: Aging Compensation Without Parameter Re-Identification, Validated on Unseen NASA Randomized-Usage Cells","msid":"","msnumber":"","nonDraftVersions":[{"code":1,"date":"2026-04-21 05:10:22","doi":"10.21203/rs.3.rs-9454069/v1","editorialEvents":[{"type":"communityComments","content":0}],"status":"published","journal":{"display":true,"email":"
[email protected]","identity":"researchsquare","isNatureJournal":false,"hasQc":true,"allowDirectSubmit":true,"externalIdentity":"","sideBox":"","snPcode":"","submissionUrl":"/submission","title":"Research Square","twitterHandle":"researchsquare","acdcEnabled":true,"dfaEnabled":false,"editorialSystem":"","reportingPortfolio":"","inReviewEnabled":false,"inReviewRevisionsEnabled":true}}],"origin":"","ownerIdentity":"dafb1023-9678-48dc-92fe-bcfd0983ee2d","owner":[],"postedDate":"April 21st, 2026","published":true,"recentEditorialEvents":[],"rejectedJournal":[],"revision":"","amendment":"","status":"posted","subjectAreas":[{"id":66556686,"name":"Electrical Engineering"}],"tags":[],"updatedAt":"2026-04-21T05:10:23+00:00","versionOfRecord":[],"versionCreatedAt":"2026-04-21 05:10:22","video":"","vorDoi":"","vorDoiUrl":"","workflowStages":[]},"version":"v1","identity":"rs-9454069","journalConfig":"researchsquare"},"__N_SSP":true},"page":"/article/[identity]/[[...version]]","query":{"redirect":"/article/rs-9454069","identity":"rs-9454069","version":["v1"]},"buildId":"XKTyCvWXoU3ODBz1xrDgd","isFallback":false,"isExperimentalCompile":false,"dynamicIds":[84888],"gssp":true,"scriptLoader":[]}
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.