**4. Dual Estimation of VFFRLS Battery Model Parameters and MIUKF Battery SOC**

*4.1. Union of Basic Equations*

It can be obtained from Equations (2) and (14) that

$$
\theta\_k \Phi\_{k+1}^{\theta} + \mathfrak{e}\_{p,k+1} = h(\mathfrak{x}\_{k+1}^{(-)}, k+1) + \mathfrak{v}\_{k+1} \tag{39}
$$

Then, it can be obtained from Equation (13) that

$$h\theta\_k \Phi\_{k+1}^{\theta} + \varepsilon\_{p,k+1} = h(f(\mathbf{x}\_k^{(+)}, \boldsymbol{\mu}\_k, \boldsymbol{\omega}\_k, \boldsymbol{k})) + \upsilon\_{k+1} \tag{40}$$

Finding partial derivatives on both sides of the equation,

$$
\Phi\_{k+1}^{\theta} + \frac{\partial}{\partial \theta\_k} \boldsymbol{\varepsilon}\_{p,k+1} = \frac{\partial}{\partial \theta\_k} \left( h(f(\mathbf{x}\_k^{(+)}, \boldsymbol{u}\_k, \boldsymbol{\omega}\_k, \boldsymbol{k})) + \frac{\partial}{\partial \theta\_k} \boldsymbol{\upsilon}\_{k+1} \right) \tag{41}
$$

where *ep*,*k*,*ωk*−1, and *υ<sup>k</sup>* are defined as being independent of *θk*. Equation (42) can be simplified to

$$\Phi\_{k+1}^{\theta} = \frac{\partial}{\partial \theta\_k} \left( h(f(\mathbf{x}\_k^{(+)}, \mathbf{u}\_{k'}k)) \right) \tag{42}$$

Thus, the basic equations of VFFRLS battery model parameter estimation and MIUKF SOC estimation are combined.

#### *4.2. Setting of Estimation Period*

Compared with the time-varying characteristics of SOC, the time-varying characteristics of battery parameters are relatively flat, and the time interval for updating the estimation can be relatively long. In the dual estimation, the SOC estimation is carried out for each sampling period while the estimation of battery parameters adopts multiple sampling intervals as *Tθ*, which is taken as 60 in this paper.

#### *4.3. Battery Parameters Transmission*

Every time the battery parameters are updated, the VFFRLS part of the algorithm passes the current battery parameters to the SOC estimation and starts the timer. Before reaching the sampling interval set by the timer, the battery parameters remain unchanged that is, if the update time parameter is *θk*, the subsequent parameters *θk*+1, *θk*+<sup>2</sup> ... *θk*+*Tθ*−<sup>1</sup> are equal to *θk*.

#### *4.4. Forgetting factor Transmission*

The timer starts after the battery parameter is updated. When the sampling interval set by the timer is reached, the battery parameter will be updated again. At this time, the SOC estimation part of the algorithm transmits the error in the previous M sampling cycle time window to the VFFRLS part of the algorithm to calculate the forgetting factor *λ*, which can then be substituted into the parameter in the equation.

#### *4.5. Algorithm Flow*

The algorithm flow is shown in Figures 2–4.

**Figure 2.** Overall block diagram of algorithm.

**Figure 3.** The algorithm flow of VFFRLS part.

**Figure 4.** The algorithm flow of MIUKF part.

#### **5. Analysis of Experiment Results**

#### *5.1. Data Sources and Tools*

The battery used in this paper is a 32 Ah/3.7 V square ternary material lithium power battery produced by Ningde Times. The test platform consists of a battery cell, a power battery test system and a high- and low-temperature damp heat alternating test chamber. In this paper, the effectiveness of the algorithm is verified by using the Urban Dynamometer Driving Schedule (UDDS) [21] cycle test data. The test conditions are set to 25 ◦C. After the battery is fully charged and left to stand for half an hour, it is discharged for 13 UDDS cycle cycles, the SOC is reduced from 100% to 1.2%, the voltage is reduced from 4.18 V to 3.21 V, the experimental data acquisition interval is set as 1 s, and a total of 20,000 data samples are collected. The algorithm is simulated by MATLAB R2019b based on the collected data.

#### *5.2. Model Substitution*

Let *Uk* <sup>1</sup>, *<sup>U</sup><sup>k</sup>* <sup>2</sup>, *SOC<sup>k</sup>* !*T* be the basic form of the state vector *xk* and the observation vector *yk* at time *k*, and the battery parameter matrix *θ<sup>k</sup>* = [*R<sup>k</sup>* <sup>0</sup>, *<sup>R</sup><sup>k</sup>* <sup>1</sup>, *<sup>C</sup><sup>k</sup>* <sup>1</sup>, *<sup>R</sup><sup>k</sup>* <sup>2</sup>, *<sup>C</sup><sup>k</sup>* 2] *<sup>T</sup>* is embedded into the state equation as an intermediate variable through the functional relationship with *U<sup>k</sup>* <sup>1</sup>, *<sup>U</sup><sup>k</sup>* <sup>2</sup>, *SOC<sup>k</sup>* and *Ik*. The initial setting value of *xk* = *Uk* <sup>1</sup>, *<sup>U</sup><sup>k</sup>* <sup>2</sup>, *SOC<sup>k</sup>* !*T* is [0, 0, 0.8] *<sup>T</sup>*, and the initial value of *<sup>θ</sup><sup>k</sup>* is obtained from offline identified parameters, that is [0.002, 0.0012, 7.23*e* + 04, 0.0011, 4.49*e* + 04] *<sup>T</sup>*, while the initial variance of *<sup>θ</sup><sup>k</sup>* is set as *P*<sup>0</sup> = [0.0001, 0.0001, 10000, 0.0001, 10000] *T*.

The measured data are a matrix composed of vectors *k*, *Ik*, *U<sup>k</sup> <sup>t</sup>* , *Soc<sup>k</sup> r* !*T* . *Ik* is substituted into the measurement equation as the input vector at time *k*. *U<sup>k</sup>* <sup>t</sup> is substituted into the measurement equation through the functional relationship with *U<sup>k</sup>* <sup>1</sup>, *<sup>U</sup><sup>k</sup>* <sup>2</sup> and *<sup>U</sup><sup>k</sup> ocv*, and the functional relationship between *U<sup>k</sup> ocv* and *Sock*. The data provided by the original factory for fitting the functional relationship between SOC and OCV are shown in Table 1.

**Table 1.** Relationship data between SOC and OCV.


Under the experimental condition, one discharge cycle is tested, so there are no longterm cumulative error problems. Then, *Soc<sup>k</sup> <sup>r</sup>*, which is obtained from the ampere hour integral method, has high accuracy and can be used as the benchmark for the comparison of the algorithm results.

The data are then substituted into the Kalman filter framework algorithm. The essence of the error is the difference between the a priori state terminal voltage determined by the battery resistance capacitance parameter and the measured terminal voltage, which is characterized by the difference between the a priori state value and the measured value. The task of this paper is to update the resistance capacitance parameters and Kalman filter parameters through the iterative process of the VFFRLS + MIUKF algorithm to minimize the terminal voltage error.
