I focus on two connected problems for an electric vehicle battery pack: how to estimate its state of health (SOH) accurately from cloud-platform field data, and how to use that health knowledge to reduce further aging through speed trajectory optimization. In my view, an electric vehicle battery pack is not a laboratory cell. It operates under variable temperature, driver behavior, charging habits, road grade, traffic, and regenerative braking. Therefore, I do not assume that a clean full charge or full discharge is available. Instead, I build a data-driven framework that uses real-world charging segments, computes a reliable capacity label, extracts health-related features, and maps those features to SOH with machine learning. After the electric vehicle battery pack health is known, I optimize the vehicle speed trajectory so that the same battery pack experiences less capacity fade during future driving. This article describes my complete methodology, the equations I use, the validation results, and the control strategy I develop.

My starting point is the observation that an electric vehicle battery pack ages because of complex internal changes, including solid electrolyte interphase growth, loss of active material, lithium inventory loss, and impedance rise. These changes reduce usable capacity and increase internal resistance. A direct measurement of capacity is difficult in a moving vehicle, and a cloud platform usually records only current, voltage, state of charge (SOC), temperature, mileage, and alarm flags. For this reason, I treat SOH estimation as a supervised learning problem in which the label is capacity and the inputs are features extracted from real charging events. I define SOH from the capacity perspective as follows:
$$SOH=\frac{Q_{label}}{Q_{norm}}$$
Here, \(Q_{label}\) is the estimated current capacity of the electric vehicle battery pack, and \(Q_{norm}\) is the rated capacity. I choose the capacity definition because it is more stable and more interpretable than an internal-resistance definition in field data. An internal-resistance definition can be highly sensitive to temperature, current rate, and sensor error, which are common in cloud records. Capacity, although still difficult to observe directly, can be inferred from charge events when current and SOC are reasonably consistent.
The cloud platform I use contains records from many vehicles and multiple vehicle models. Each row corresponds to a sampling instant. The sampling period in my dataset is ten seconds. The main fields include vehicle identifier, timestamp, vehicle status, charge status, run mode, speed, accumulated mileage, pack voltage, pack current, SOC, maximum cell voltage, minimum cell voltage, maximum temperature, minimum temperature, common alarm flag, and maximum alarm level. I summarize the most important fields in the following table.
| Field | Meaning | Typical format or range |
|---|---|---|
| Vehicle identifier | Separates different vehicles | String |
| Timestamp | Data acquisition time | Ten-digit string |
| Vehicle status | Started, off, or other | State code |
| Charge status | Stopped charging, driving charge, not charging, charge complete | State code |
| Speed | Vehicle speed | 0 to 220 km/h |
| Accumulated mileage | Total distance | 0 to 1,000,000 km |
| Pack voltage | Total voltage of electric vehicle battery pack | 0 to 1000 V |
| Pack current | Total current, positive for charge | -1000 to +1000 A |
| SOC | Remaining charge | 0 to 100% |
| Maximum cell voltage | Highest single-cell voltage | 0 to 15000 mV |
| Minimum cell voltage | Lowest single-cell voltage | 0 to 15000 mV |
| Maximum temperature | Highest battery temperature | -40 to 210 degrees C |
| Minimum temperature | Lowest battery temperature | -40 to 210 degrees C |
| Alarm flag | Fault and warning bitmap | Bit field |
Real cloud data are not clean. I repeatedly find missing values, out-of-range values, duplicate rows, communication errors, and abrupt SOC jumps. The first step in my method is therefore data cleaning. I fill missing values by interpolation when the gap is short and the surrounding trend is smooth. I delete rows when the value is physically impossible or when the gap is too long for reliable interpolation. I also remove duplicate records around state transitions, because a vehicle may report several identical rows when it starts, stops, or changes charge mode.
Alarm data also require attention. The common alarm flag encodes multiple warning bits. Some bits indicate high temperature, high voltage, low voltage, severe cell inconsistency, insulation fault, or SOC jump. I do not treat all alarms in the same way. For example, a low SOC alarm is normal during deep discharge and does not necessarily invalidate a charge segment. A cell inconsistency alarm, however, can strongly bias capacity computation, so I remove the affected data. High temperature and overvoltage alarms are checked against neighboring cycles. If the alarm is isolated, I may keep the segment after inspection. If the alarm persists, I discard it. The following table summarizes my alarm handling logic.
| Alarm type | My treatment |
|---|---|
| Temperature difference | Compare with nearby cycles and temperature trend |
| Battery high temperature | Inspect cycle; discard if too high |
| Pack overvoltage or undervoltage | Not used for hybrid vehicles in my study |
| Low SOC | Usually retained |
| Cell overvoltage or undervoltage | Inspect the cycle result |
| SOC high | Usually retained |
| SOC jump | Inspect the cycle result |
| Cell inconsistency | Remove data |
| Insulation | Keep until alarm condition clears |
| Other component alarms | Inspect related cycle or remove if persistent |
After cleaning, I divide the records into charge and discharge segments. I use vehicle status and charge status together. A stopped vehicle with charging status is treated as a charge segment. A started vehicle without charging is treated as a discharge segment. I also require the current sign to match the segment type. For charge segments, current must be positive. For discharge segments, current may be negative or positive during regenerative braking. I then check SOC continuity. If SOC jumps by more than a small threshold in a short time, I reject the segment. I also check mileage. If mileage changes during a supposed stopped charge, I reject the segment because the vehicle may have moved or the data may be mislabeled. This procedure is simple, but it is essential for a reliable electric vehicle battery pack analysis.
I compare charge and discharge behavior carefully. In my dataset, charge current is relatively stable. It often follows a multi-stage constant-current profile. Discharge current is much more variable because speed, road grade, traffic, and driver demand change continuously. Charge voltage rises smoothly with time, while discharge voltage fluctuates and sometimes rises because of regenerative braking. For these reasons, I use charge segments to compute capacity labels and extract features. Discharge data remain useful for understanding use patterns, but they are less reliable for direct capacity estimation. The electric vehicle battery pack sees both charge and discharge aging, yet the charge process provides a cleaner window for supervised learning.
I impose several conditions on charge segments before I compute a capacity label. First, I require a rest period before charging. After a sufficiently long rest, terminal voltage approaches open-circuit voltage, and the initial SOC reading is more trustworthy. Second, I require the starting SOC to be below a threshold so that the segment covers a broad SOC range. Third, I limit the total search time. If the vehicle does not reach the target SOC within that time, I discard the segment. Fourth, I limit the amount of discharge energy inside the charge window. Even during a charge event, the vehicle may consume auxiliary power or move briefly. Such discharge content introduces integration error. I summarize my constraints in the following table.
| Parameter | Condition | Reason |
|---|---|---|
| Rest time | Greater than a minimum rest time | Terminal voltage approaches open-circuit voltage |
| Starting SOC | Below a chosen threshold | Ensures enough SOC span |
| Search time | Less than a chosen window | Avoids cumulative time error |
| Discharge amount | Less than a fraction of rated capacity | Reduces integration error |
For the capacity label, I use the inverse ampere-hour integration formula. The standard ampere-hour relation is:
$$SOC_{end}=SOC_{start}+\frac{1}{Q_{max}}\int_{start}^{end}\eta I\,dt$$
Because I need capacity, I rearrange it as follows:
$$Q_{max}=\frac{\int_{start}^{end}\eta I\,dt}{SOC_{end}-SOC_{start}}$$
In cloud data, time is discrete. I therefore use a discrete form:
$$Q_{max}=\frac{\sum_{start}^{end}\eta I\Delta t}{SOC_{end}-SOC_{start}}=\frac{\sum_{start}^{end}\eta I\Delta t}{\Delta SOC}$$
I use \(\eta=1\) for charging and treat the sampling interval as constant. In this dataset, \(\Delta t\) is ten seconds. The current is assumed to be nearly constant within each interval. This assumption is acceptable for charge segments but weaker for discharge segments, which is another reason I prefer charge data. I restrict the SOC window to a practical range such as 30% to 90%, because most real charge events fall inside this range and because extreme SOC values can be biased by protection logic. The result is a capacity label for each accepted charge segment. I then convert capacity to SOH using the rated capacity.
Capacity labels from field data still contain outliers. A single bad current sensor reading, an SOC correction, or a temperature event can produce an impossible capacity. I therefore apply two outlier detection methods. The first is the local outlier factor (LOF) algorithm. LOF compares the local density of a point with the local densities of its neighbors. A point in a sparse region relative to its neighbors receives a high LOF score. I compute the k-distance, k-distance neighborhood, reachable distance, local reachable density, and local outlier factor as follows:
$$d_k(p)=d(p,o)$$
$$N_k(p)=\{d(p,o’)\le d_k(p)\}$$
$$reachd_k(p,o)=\max\{d_k(o),d(p,o)\}$$
$$lrd_k(p)=\frac{1}{\sum_{o\in N_k(p)}reachd_k(p,o)/|N_k(p)|}$$
$$LOF_k(p)=\frac{\sum_{o\in N_k(p)}lrd(o)/lrd(p)}{|N_k(p)|}$$
If the LOF value is close to one, the point has a density similar to its neighborhood. If it is much larger than one, the point is likely an outlier. I remove such points and the corresponding charge segments. I then apply a second filter based on the three-sigma rule. I compute the mean and standard deviation of the remaining capacity labels and reject points outside the interval from mean minus three standard deviations to mean plus three standard deviations. This step removes residual extreme values. I also assume that capacity changes slowly within one month. Therefore, I take the maximum valid capacity in each month as the monthly reference and use it to fill or correct other capacity labels in the same month. This assumption reduces the influence of temporary sensor bias and short-term temperature variation.
Once capacity labels are reliable, I extract features that can be observed from charge data. I study internal resistance, differential analysis, electrochemical impedance spectroscopy, and statistical charge features. Internal resistance is related to aging, but it is difficult to identify accurately from low-resolution cloud data. Differential voltage and incremental capacity curves are powerful in laboratory tests, but they require small current rates and high-resolution voltage measurements. In field data, charge current is often large, and voltage quantization is coarse. Electrochemical impedance spectroscopy is also powerful, but it requires dedicated excitation and long measurement times, which are not available in normal cloud records. Therefore, I focus on statistical features from charge segments.
The features I extract include average and standard deviation of current, pack voltage, SOC, maximum cell voltage, minimum cell voltage, maximum temperature, minimum temperature, cell voltage difference, and cell temperature difference. I also include accumulated mileage and calendar-related variables. These features describe the electric vehicle battery pack from several angles: electrical load, thermal state, cell consistency, and usage history. I summarize representative features in the following table.
| Feature | Description | Expected relation to SOH |
|---|---|---|
| Mileage average | Average accumulated distance in the segment | Higher mileage usually means lower SOH |
| Pack voltage average | Mean total voltage during charge | Changes with aging and SOC window |
| Current standard deviation | Variation of charge current | Reflects charge profile and thermal stress |
| Maximum cell voltage standard deviation | Variation of the highest cell voltage | Reflects cell inconsistency and aging |
| Temperature average | Mean battery temperature | Higher temperature accelerates aging |
| Temperature standard deviation | Thermal variation | Indicates thermal management performance |
| Cell voltage difference | Maximum minus minimum cell voltage | Increases with inconsistency and aging |
| Cell temperature difference | Maximum minus minimum temperature | Indicates thermal imbalance |
To make the feature window applicable to more vehicles and more charging habits, I analyze the relationship between maximum cell voltage and SOC. For nickel-cobalt-manganese or similar ternary lithium-ion batteries, I choose the feature extraction range where maximum cell voltage lies approximately between 3800 mV and 4000 mV. For lithium iron phosphate batteries, I choose the range where maximum cell voltage lies approximately between 3350 mV and 3500 mV. These ranges cover most observed charge behavior while avoiding extreme voltage plateaus or protection regions. This choice improves the generality of my method for an electric vehicle battery pack across different user behaviors.
I then quantify the relevance of each feature to SOH. I use Pearson correlation and grey relational analysis. Pearson correlation measures linear dependence:
$$r=\frac{\sum_{i=1}^{n}(X_i-\bar X)(Y_i-\bar Y)}{\sqrt{\sum_{i=1}^{n}(X_i-\bar X)^2}\sqrt{\sum_{i=1}^{n}(Y_i-\bar Y)^2}}$$
Grey relational analysis measures similarity between sequences and can capture nonlinear relationships. I first normalize each sequence, then compute the grey relational coefficient and the grey relational grade:
$$\zeta_i(k)=\frac{a+\rho b}{|Y_0(k)-Y_i(k)|+\rho b}$$
$$r_i=\frac{1}{m}\sum_{k=1}^{m}\zeta_i(k)$$
In my study, I keep features whose Pearson correlation with SOH exceeds a threshold or whose grey relational grade exceeds a threshold. I also remove redundant features when two features are highly correlated with each other. This step reduces overfitting and improves model interpretability. The feature selection procedure can be summarized as follows:
| Step | Operation |
|---|---|
| 1 | Retain features with high correlation to SOH |
| 2 | Build the candidate feature matrix |
| 3 | Compare each pair of features |
| 4 | Remove one feature from a highly correlated pair |
| 5 | Output the optimal feature set |
For one representative vehicle model, my final optimal feature set includes mileage average, pack voltage average, current standard deviation, and maximum cell voltage standard deviation. These features describe usage, electrical state, charge behavior, and cell consistency. They are all available from the cloud platform and do not require a special test. This is important because a practical SOH estimator for an electric vehicle battery pack must work with data that already exist in the cloud.
I build three machine learning models to map the optimal feature set to SOH: multiple linear regression (MLR), Gaussian process regression (GPR), and support vector regression (SVR). MLR assumes a linear relationship:
$$y=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_kx_k+\epsilon$$
I estimate the coefficients by least squares. MLR is simple, fast, and interpretable, but it may miss nonlinear aging behavior. GPR is a nonparametric Bayesian method. It models the function as a Gaussian process and provides both a mean prediction and an uncertainty estimate. A Gaussian process can be written as:
$$f(x)\sim GP(\mu(x),k(x,x’))$$
For noisy observations, I use:
$$y(x)=f(x)+\epsilon(x)$$
The predictive distribution for a new input is Gaussian, with mean and variance determined by the kernel function and the training data. GPR is flexible and robust when the training set is moderate in size. SVR finds a function that deviates from the target by no more than a margin and penalizes larger errors. Its primal problem is:
$$\min_{\omega,b,\xi_i,\xi_i^*}\frac{1}{2}\|\omega\|^2+C\sum_{i=1}^{m}(\xi_i+\xi_i^*)$$
Subject to:
$$f(x_i)-y_i\le \epsilon+\xi_i$$
$$y_i-f(x_i)\le \epsilon+\xi_i^*$$
$$\xi_i\ge 0,\quad \xi_i^*\ge 0$$
The final SVR prediction can be expressed with a kernel function:
$$f(x)=\sum_{i=1}^{m}(\alpha_i^*-\alpha_i)k(x_i,x)+b$$
I evaluate all models with four metrics: mean squared error, root mean squared error, mean absolute error, and mean absolute percentage error.
$$MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-y_i’)^2$$
$$RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-y_i’)^2}$$
$$MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-y_i’|$$
$$MAPE=\frac{1}{n}\sum_{i=1}^{n}\frac{|y_i-y_i’|}{|y_i|}$$
For the representative vehicle model, I split the data into training and prediction sets. The three models produce similar and accurate results. The GPR model gives an RMSE of about 2.92%, an MAE of about 1.87%, and a MAPE of about 2.08%. The SVR model improves slightly, with RMSE around 2.77%, MAE around 1.76%, and MAPE around 1.97%. The MLR model has the smallest MSE and MAE but a slightly larger MAPE. The following table summarizes these results.
| Model | MSE (%) | RMSE (%) | MAE (%) | MAPE (%) |
|---|---|---|---|---|
| GPR | 0.09 | 2.92 | 1.87 | 2.08 |
| SVR | 0.08 | 2.77 | 1.76 | 1.97 |
| MLR | 0.06 | 2.89 | 1.93 | 2.15 |
I also verify the method on four additional vehicle models. The evaluation metrics remain within a small range. For all five models, MSE is below 0.5%, RMSE is below 4.7%, MAPE is below 4.3%, and MAE is below 3.6%. The following table shows the range across the five vehicle models.
| Vehicle model | Best MSE (%) | Best RMSE (%) | Best MAPE (%) | Best MAE (%) |
|---|---|---|---|---|
| A | 0.06 | 2.77 | 1.97 | 1.76 |
| B | 0.089 | 4.05 | 3.89 | 3.34 |
| C | 0.162 | 2.02 | 1.61 | 1.52 |
| D | 0.042 | 4.06 | 3.56 | 2.98 |
| E | 0.076 | 4.48 | 3.93 | 3.29 |
These results convince me that the feature extraction and SOH estimation framework is practical for an electric vehicle battery pack in cloud-based health management. The models do not require laboratory cycling, full discharge, or electrochemical impedance equipment. They use charge records that already exist in the cloud, and they produce SOH estimates with errors that are small enough for maintenance planning and aging-aware control.
After estimating SOH, I turn to aging suppression. The key question is how to use the current health of an electric vehicle battery pack to reduce future capacity fade. I focus on speed trajectory optimization because vehicle speed determines motor torque, battery current, SOC variation, and therefore aging. I build a vehicle longitudinal dynamics model, a motor model, a battery equivalent circuit model, and a capacity fade model. I then formulate an optimization problem in which the objective is to minimize battery capacity loss over a prediction horizon. I solve the problem with sequential quadratic programming and implement it in a model predictive control framework.
The vehicle longitudinal dynamics are governed by aerodynamic drag, rolling resistance, grade resistance, and inertial force. I use the following relations:
$$F_{drag}=\frac{1}{2}A_fC_d\rho_a v^2$$
$$F_{roll}=C_rmg\cos\theta$$
$$F_{grade}=mg\sin\theta$$
$$T_{res}=T_{roll}+T_{grade}+T_{drag}$$
$$T_{whl}=T_{em}i_g+T_{brake}$$
$$\frac{dv}{dt}=\frac{T_{em}i_g+T_{brake}-T_{roll}-T_{grade}-T_{drag}}{mr}$$
Here, \(v\) is vehicle speed, \(m\) is vehicle mass, \(r\) is wheel radius, \(i_g\) is gear ratio, \(T_{em}\) is motor torque, and \(T_{brake}\) is friction braking torque. The motor can operate in driving mode or regenerative braking mode. Its power is calculated as:
$$P_{em}=\frac{\pi n_mT_{em}}{30\eta(n_m,T_{em})},\quad T_{em}>0$$
$$P_{em}=\frac{\pi n_mT_{em}\eta(n_m,T_{em})}{30},\quad T_{em}<0$$
The motor speed is related to vehicle speed by:
$$n_m=i_g\frac{30v}{\pi r}$$
For the electric vehicle battery pack, I use an equivalent circuit model with open-circuit voltage and internal resistance:
$$P_{em}=U_tI$$
$$U_t=U_{oc}-IR$$
$$I=\frac{U_{oc}-\sqrt{U_{oc}^2-4RP_{em}}}{2R}$$
The SOC dynamics are:
$$\frac{dz}{dt}=-\frac{I}{Q_{norm}}=-\frac{U_{oc}-\sqrt{U_{oc}^2-4RP_{em}}}{2RQ_{norm}}$$
For aging, I use an active material loss model. The capacity fade is related to temperature, current, and SOC. Under isothermal conditions, I write:
$$Q_{AM}=\phi(T)\int z|I|dt$$
$$\phi(T)=k_{AM}\exp\left(-\frac{E_{AM}}{RT}\right)$$
After discretization, the capacity loss in one interval is:
$$\Delta Q_{AM,i}=\phi(T)Q_{norm}|\Delta z_i|\frac{z_i+z_{i+1}}{2}$$
The total capacity loss over a horizon is:
$$Q_{AM}=\sum_{i=1}^{N}\Delta Q_{AM,i}=\frac{\phi(T)Q_{norm}}{2}\sum_{i=1}^{N}|\Delta z_i|(z_i+z_{i+1})$$
I define the state vector as:
$$x=[s,v,z]^T$$
The control vector is:
$$u=[T_{em},T_{brake}]^T$$
The state-space equation is:
$$\dot{x}(t)=
\begin{pmatrix}
\dot{s}(t)\\
\dot{v}(t)\\
\dot{z}(t)
\end{pmatrix}
=
\begin{pmatrix}
v(t)\\
\frac{T_{em}i_g+T_{brake}-T_{roll}-T_{grade}-T_{drag}}{mr}\\
-\frac{U_{oc}-\sqrt{U_{oc}^2-4RP_{em}}}{2RQ_{norm}}
\end{pmatrix}$$
I discretize the speed and SOC equations with the Euler method:
$$v_{i+1}=v_i+\Delta t\frac{T_{em,i}i_g+T_{brake,i}-T_{roll,i}-T_{grade,i}-T_{drag,i}}{mr}$$
$$z_{i+1}=z_i-\Delta t\frac{U_{oc}-\sqrt{U_{oc}^2-4RP_{em,i}}}{2RQ_{norm}}$$
The distance increment is:
$$\Delta s_i=\frac{1}{2}(v_{i+1}+v_i)\Delta t$$
My optimization objective is to minimize the total capacity fade over the prediction horizon:
$$\min J=\sum_{i=1}^{N}\Delta Q_{AM,i}=\frac{\phi(T)Q_{norm}}{2}\sum_{i=1}^{N}|\Delta z_i|(z_i+z_{i+1})$$
I enforce constraints on speed, acceleration, motor torque, friction braking torque, following distance, and SOC:
$$v_{min}\le v_i\le v_{max}$$
$$a_{min}\le a_i\le a_{max}$$
$$T_{em,min}\le T_{em,i}\le T_{em,max}$$
$$T_{brake,i}\le 0$$
$$d_{min}\le d_i\le d_{max}$$
$$0\le z_i\le 1$$
I solve this nonlinear optimization problem with sequential quadratic programming. At each iteration, SQP builds a quadratic approximation of the objective and linearizes the constraints. It then solves a quadratic programming subproblem to find a search direction. This method is efficient for the battery aging minimization problem because the objective is smooth and the constraints are differentiable. I embed the solver in a model predictive control loop. At each sampling instant, I predict the future behavior over a horizon, solve the optimization, apply the first control action, and repeat. This creates a closed-loop controller that can respond to traffic and road conditions while continuously reducing electric vehicle battery pack aging.
I test the strategy in two simulation scenarios. The first is a single vehicle without traffic. I compare the optimized speed trajectory with a constant-speed baseline. The vehicle travels for about one hundred seconds. The average speed is about fifteen meters per second. In the optimized case, the speed fluctuates around the average. Early in the trip, the vehicle may accelerate slightly, which increases energy use and aging for a short time. Over the full trip, however, the optimized trajectory reduces both energy consumption and capacity fade. The optimized strategy reduces energy consumption by about 9.70% and reduces battery capacity degradation by about 10.33% compared with the constant-speed baseline. The following table summarizes this comparison.
| Metric | Constant speed | Optimized speed | Improvement |
|---|---|---|---|
| Energy consumption | Baseline | Lower | About 9.70% reduction |
| Battery capacity fade | Baseline | Lower | About 10.33% reduction |
The second scenario includes traffic. I use a standard urban driving cycle as the lead vehicle speed and remove zero-speed sections so that the model remains within its valid range. The target vehicle follows the lead vehicle but optimizes its own speed to minimize battery aging while respecting a safe following distance. I test prediction horizons of 25, 30, 35, and 40 steps. The optimized speed is smoother than the lead vehicle speed. The target vehicle avoids unnecessary acceleration and deceleration, reduces regenerative braking events, and uses friction braking more often when deceleration is required. This behavior may waste some kinetic energy, but it reduces the number of charge events experienced by the electric vehicle battery pack. Because charge events contribute to capacity fade, this trade-off can extend battery life.
In the traffic scenario, the target vehicle reduces capacity fade substantially compared with the lead vehicle. With a horizon of 25 steps, capacity fade is reduced by about 20.78%, while energy consumption increases by about 20.48%. With a horizon of 30 steps, capacity fade is reduced by about 33.02%, while energy consumption increases by about 18.80%. Longer horizons reduce aging further, but the improvement becomes smaller, and computation time increases. The following table summarizes the trade-off between aging reduction, energy use, and computation time.
| Horizon N | Capacity fade reduction | Energy consumption increase | Computation time |
|---|---|---|---|
| 25 | 20.78% | 20.48% | 0.92 s |
| 30 | 33.02% | 18.80% | 0.95 s |
| 35 | 34.01% | 18.01% | 1.05 s |
| 40 | 34.12% | 17.88% | 1.36 s |
I also list the absolute capacity fade and energy consumption for the target vehicle under different horizons. As the horizon increases, capacity fade decreases and energy consumption increases slightly. The marginal benefit of increasing the horizon from 30 to 40 is small, while the computation time grows. For real-time control, a horizon of 30 steps provides a good balance. It reduces battery aging by more than thirty percent and still completes the optimization in less than one second on my simulation platform. This is important because an electric vehicle battery pack controller must operate online and respond to traffic changes.
| Horizon N | Capacity fade | Energy consumption |
|---|---|---|
| 25 | 2.8991e-5 | 1.1874e-2 |
| 30 | 2.4510e-5 | 1.1628e-2 |
| 35 | 2.4150e-5 | 1.1516e-2 |
| 40 | 2.4110e-5 | 1.1498e-2 |
I use a representative passenger electric vehicle for simulation. The parameters include vehicle mass, wheel radius, open-circuit voltage, rated capacity, maximum power, internal resistance, frontal area, drag coefficient, rolling resistance coefficient, and air density. The following table lists the values I use.
| Parameter | Meaning | Value |
|---|---|---|
| m | Vehicle mass | 1761 kg |
| r | Wheel radius | 0.334 m |
| Uoc | Open-circuit voltage | 400 V |
| Qnom | Rated capacity | 150 Ah |
| Pmax | Maximum power | 202 kW |
| R | Internal resistance | 0.0745 ohm |
| Af | Frontal area | 2 square meters |
| Cd | Drag coefficient | 0.3 |
| Cr | Rolling resistance coefficient | 0.01 |
| rho_a | Air density | 1.29 kg per cubic meter |
From the simulation results, I draw several conclusions. First, speed trajectory optimization can reduce the aging of an electric vehicle battery pack without changing the battery chemistry or adding hardware. Second, the optimal speed is not simply the slowest speed or the smoothest speed. It is a speed profile that manages current, SOC swing, and regenerative braking together. Third, there is a trade-off between energy consumption and battery life. In my traffic scenario, reducing aging slightly increases energy use. This trade-off must be considered by a real controller. Fourth, model predictive control with sequential quadratic programming can solve the problem in real time for a horizon of about thirty steps. This makes the approach suitable for cloud-assisted or vehicle-edge implementation.
My work therefore combines cloud-based SOH estimation and aging-aware speed control. The cloud platform provides historical data that I use to estimate the current health of the electric vehicle battery pack. The SOH estimate then informs the aging model and helps the controller decide how aggressively to reduce charge events and current stress. In practice, this can be implemented as a two-layer system. The cloud layer estimates SOH, updates the capacity fade parameters, and provides traffic and route information. The vehicle layer runs the model predictive controller, optimizes speed over a short horizon, and sends the first control action to the powertrain. This architecture respects the different time scales of battery aging and vehicle motion.
Several limitations remain. The capacity label from field data is not a direct measurement. I validate it by consistency, outlier rejection, and cross-vehicle testing, but I cannot compare it with a laboratory full-discharge capacity for every charge event. The discharge data are noisy and are not fully used in my SOH model. The battery aging model is simplified and assumes isothermal behavior over short horizons. Future work can integrate a more detailed thermal model and a physics-based aging model with the data-driven SOH estimator. Future work can also consider multi-objective optimization that simultaneously reduces energy consumption, battery aging, and travel time. Finally, I plan to test the method on more vehicle models and more diverse climates to further verify the generality of the cloud-based framework for an electric vehicle battery pack.
In summary, I have developed a cloud-platform method that estimates the SOH of an electric vehicle battery pack from real charging data and a model predictive control method that suppresses further aging by optimizing vehicle speed. The SOH method uses charge segment selection, ampere-hour inverse calculation, LOF and three-sigma outlier rejection, statistical feature extraction, Pearson and grey relational analysis, and machine learning regression. The aging suppression method uses vehicle longitudinal dynamics, motor efficiency, battery equivalent circuit behavior, active material loss, SQP, and MPC. The results show that the SOH estimators achieve low errors across multiple vehicle models and that the speed controller can reduce capacity fade by more than thirty percent in a traffic scenario while maintaining real-time computation. These findings support the use of cloud data and aging-aware control for safer, more reliable, and longer-lived electric vehicle battery packs.
