*3.1.1 Chen and Mora's model*

The Chen and Mora (CM) circuit model is a comprehensive representation that captures the dynamic attributes of the battery's terminal voltage, and variations in battery parameters concerning SOC, and has undergone extensive experimentation over the last decade [13]. **Figure 3** depicts the CM equivalent circuit battery model

**Figure 3.** *CM lithium-ion equivalent battery circuit model.*

utilized in this study. The left section of the circuit represents the variation in battery SOC due to the fluctuations in battery current. On the other hand, the variations in battery terminal voltage in response to the battery current are shown on the right. In this model, the state variable *x*<sup>1</sup> represents the battery's SOC, while *x*<sup>2</sup> corresponds to the voltage across *Rts*k*Cts*, and *x*<sup>3</sup> corresponds to voltage across *Rtl*k*Ctl*. The parallel combination *Rts*k*Cts* characterizes the short-term terminal voltage dynamics in response to fluctuations in discharge current, while the parallel combination *Rtl*k*Ctl* characterizes the long-term terminal voltage dynamics in response to variations in discharge current [13]. Eqs. (1)–(4) describe the CM equivalent circuit model [13].

$$\dot{x}\_1(t) = -\frac{1}{C\_C} \dot{i}(t), \quad C\_C = \text{3600} \text{Qf}\_1 f\_2 f\_3 \tag{1}$$

$$\dot{\varkappa}\_2(t) = -\frac{\varkappa\_2(t)}{R\_{tt}(\varkappa\_1)\mathcal{C}\_{tt}(\varkappa\_1)} + \frac{i(t)}{\mathcal{C}\_{tt}(\varkappa\_1)}\tag{2}$$

$$\dot{\boldsymbol{x}}\_{3}(t) = -\frac{\boldsymbol{\varkappa}\_{3}(t)}{R\_{l}(\boldsymbol{\varkappa}\_{1})\mathbf{C}\_{ll}(\boldsymbol{\varkappa}\_{1})} + \frac{\dot{\boldsymbol{t}}(t)}{\mathbf{C}\_{ll}(\boldsymbol{\varkappa}\_{1})} \tag{3}$$

$$\mathbf{y} = E\_o(\mathbf{x}\_1) - \mathbf{x}\_2(t) - \mathbf{x}\_3(t) - i(t)\mathbf{R}\_\mathbf{r}(\mathbf{x}\_1) \tag{4}$$

In this model, the SOC, denoted as *x*1, varies within the range of 0, 1 ½ �. The states *x*<sup>2</sup> and *x*<sup>3</sup> are positive while the battery is discharging, and their sign depends on whether the battery is charging or discharging. Eq. (1) contains the parameter *C* which represents the capacity in ampere-hours (A.h). Furthermore, the impact of temperature on battery performance, the number of charging and discharging cycles, and the effect of self-discharging are taken into account through the factors *f* <sup>1</sup>, *f* <sup>2</sup>, and *f* <sup>3</sup>. They are set to 1 in this work. Eq. (4) depicts the states *x*<sup>2</sup> and *x*<sup>3</sup> and their impact on the terminal voltage *y*. In addition, the impact of the battery's series resistance is taken care of by multiplying *i t*ð Þ and *Rs* then subtracting the product from the open-circuit voltage *Eo*. Eqs. (5)–(10) define the variables *Rs*, *Ctl*, *Rtl*, *Cts*, *Rts*, and *Eo* [13].

$$E\_o(\varkappa\_1) = -a\_1 e^{-a\_3 \varkappa\_1} + a\_3 + a\_4 \varkappa\_1 - a\_5 \varkappa\_1^2 + a\_6 \varkappa\_1^3 \tag{5}$$

$$R\_{ts}(\varkappa\_1) = \mathcal{a}\_7 e^{-\imath \varrho \varkappa\_1} + \mathcal{a}\_9 \tag{6}$$

$$R\_{ll}(\mathbf{x}\_1) = a\_{10}e^{-a\_{11}\mathbf{x}\_1} + a\_{12} \tag{7}$$

$$\mathcal{C}\_{\mathfrak{U}}(\mathbf{x}\_1) = -\mathfrak{a}\_{13}e^{-\mathfrak{a}\_{14}\mathbf{x}\_1} + \mathfrak{a}\_{15} \tag{8}$$

$$\mathcal{C}\_{tl}(\mathbf{x}\_1) = -a\_{16}e^{-a\_{17}\mathbf{x}\_1} + a\_{18} \tag{9}$$

$$R\_s(\varkappa\_1) = a\_{19}e^{-a\_{20}\varkappa\_1} + a\_{21} \tag{10}$$

The lithium battery's *Eo* curve was recorded through the technique described in Ref. [13]. Furthermore, MATLAB was employed to determine the variables *a*<sup>1</sup> through *a*<sup>6</sup> in Eq. (5). The remaining parameters of the lithium-ion battery model, as specified in Eqs. (6)–(9), are acquired using the APE technique [13]. The *Rs* constants *a*<sup>19</sup> through *a*<sup>21</sup> can be obtained by fitting Eq. (10) with curve *Rs*ð Þ *x*1ð Þ*t* versus *x*1ð Þ*t* [13]. The values for parameter *a*<sup>1</sup> through *a*<sup>21</sup> are provided in Table 4 in Ref. [7].

### *3.1.2 SOC estimation by coulomb counting*

The SOC illustrates the available capacity as a percentage of the rated capacity [13]. The mathematical formulation for the Coulomb counting (CC) method is shown in Eq. (11).

*Battery State of Charge Management for an Electric Vehicle Traction System DOI: http://dx.doi.org/10.5772/intechopen.113221*

$$\text{SOC}(t) = \text{SOC}(t\_\vartheta) - \frac{1}{C\_c} \int\_0^t i(t)dt \tag{11}$$

The starting SOC is denoted by *SOC t*ð Þ*<sup>o</sup>* , while the parameter *Cc* stands for the capacity of the battery, calculated according to Eq. (1). The variable *i t*ð Þ signifies the discharge current, with positive values indicating discharging and negative values signifying charging.

### **3.2 Description of the controllers**

### *3.2.1 Model predictive controller*

The model predictive control (MPC) technique utilizes the system's model to calculate the desired control signal required which will lead the system toward the required value. Before formulating the equations for the MPC, we need to select the prediction horizon, denoted as *Np*, which signifies how many samples into the future the controller can forecast. The second variable is the control horizon, represented as *Nc*. It indicates the number of control variables that can be manipulated, with the condition that *Np* must be greater than or equal to *Nc*.

Consider a system in which the output at a particular sampling instant, denoted as *k*, is not directly influenced by the control signal. This system can be described using the discrete-time state-space model as shown in Eqs. (12) and (13).

$$
\varkappa\_m(k+1) = A\_m \varkappa\_m(k) + B\_m u(k) \tag{12}
$$

$$\mathbf{y}(k) = \mathbf{C}\_{m}\mathbf{x}\_{m}(k) \tag{13}$$

Eqs. (14) and (15) define the difference between the current and previous values of the control signal, denoted as Δ*u*, and the state variable Δ*xm*.

$$
\Delta u(k) = u(k) - u(k-1) \tag{14}
$$

$$
\Delta \mathfrak{x}\_m(k) = \mathfrak{x}\_m(k) - \mathfrak{x}\_m(k-1) \tag{15}
$$

We can formulate Eqs. (16) and (17) by merging Eqs. (12)–(15)

$$
\Delta \mathfrak{x}\_m(k+1) = A\_m \Delta \mathfrak{x}\_m(k) + B\_m \Delta u(k) \tag{16}
$$

$$\begin{split} \boldsymbol{\chi}(k+1) &= \boldsymbol{\chi}(k) + \mathbf{C}\_{m} \Delta \mathbf{x}\_{m}(k+1) \\ &= \boldsymbol{\chi}(k) + \mathbf{C}\_{m} \mathbf{A}\_{m} \Delta \mathbf{x}\_{m}(k) + \mathbf{C}\_{m} \mathbf{B}\_{m} \Delta \boldsymbol{u}(k) \end{split} \tag{17}$$

Eqs. (16) and (17) can be employed to construct the augmented state-space model of the system as depicted in Eqs. (18) and (19).

$$\mathbf{x}(k+1) = A\mathbf{x}(k) + B\Delta\mathbf{u}(k)\tag{18}$$

$$\mathbf{y}(k) = \mathbf{C}\mathbf{x}(k)\tag{19}$$

where *x k*ð Þ¼ Δ*xm*ð Þ*k y k*ð Þ � �, *<sup>A</sup>* <sup>¼</sup> *Am* <sup>0</sup>*<sup>T</sup> m CmAm* 1 " #, *<sup>B</sup>* <sup>¼</sup> *Bm CmBm* � �, *<sup>C</sup>* <sup>¼</sup> ½ � <sup>0</sup>*<sup>m</sup>* <sup>1</sup> *:*

and the empty spaces in the matrix are filled by the zero matrix 0*<sup>m</sup>* ¼ ½ � 0, 0, ⋯0 .

At instant *k*, Eq. (20) describes the system states for future samples. This is obtained by expanding *x k*ð Þ þ 1 in Eq. (18).

$$\begin{array}{ll} \varkappa(k+1|k) &= A\varkappa(k) + B\Delta\iota(k) \\ &\vdots \\ \varkappa(k+N\_p|k) &= A^{N\_p}\varkappa(k) + A^{N\_p-1}B\Delta\iota(k) + \cdots + \\ &A^{N\_p-N\_c}B\Delta\iota(k+N\_c-1) \end{array} \tag{20}$$

Likewise, Eq. (21) can be derived by expanding *y k*ð Þ þ 1 in Eq. (19).

$$\begin{array}{ll} \mathcal{Y}(k+1|k) &= \text{CAx}(k) + \text{CB\Delta}u(k) \\ &\vdots \\ \mathcal{Y}(k+N\_p|k) &= \text{CA}^{N\_p}\mathbf{x}(k) + \text{CA}^{N\_p-1}\mathbf{B}\Delta u(k) + \cdots + \\ & \mathbf{CA}^{N\_p-N\_c}\mathbf{B}\Delta u(k+N\_c-1) \end{array} \tag{21}$$

Eqs. (22) and (23) describe the matrix Δ*U*, with length *Nc*, containing the changes in the control signal starting with instant *k*. Meanwhile, the matrix *Y*, with length *Np*, describes the predicted output for the system.

$$
\Delta U = \begin{bmatrix} \Delta u(k) \ \Delta u(k+1) \ \cdots \Delta u(k+N\_c-1) \end{bmatrix}^T \tag{22}
$$

$$Y = \begin{bmatrix} \boldsymbol{y}(\boldsymbol{k} + \mathbf{1}|\boldsymbol{k}) \ \boldsymbol{y}(\boldsymbol{k} + \mathbf{2}|\boldsymbol{k}) & \dots \ \boldsymbol{y}(\boldsymbol{k} + \mathbf{N}\_p|\boldsymbol{k}) \end{bmatrix}^T \tag{23}$$

Merging Eqs. (20)–(23) yields Eq. (24).

$$Y = F\mathfrak{x}(k) + \Phi\Delta U(k)\tag{24}$$

$$\text{where } \boldsymbol{F} = \begin{bmatrix} \mathbf{CA} \\ \mathbf{CA}^2 \\ \vdots \\ \mathbf{CA}^{N\_p} \end{bmatrix} \text{ and } \boldsymbol{\Phi} = \begin{bmatrix} \mathbf{CB} & \mathbf{0} & \cdots & \mathbf{0} \\ \mathbf{CA} & \mathbf{CB} & \cdots & \mathbf{0} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{CA}^{N\_p-1} \mathbf{B} & \mathbf{CA}^{N\_p-2} \mathbf{B} & \cdots & \mathbf{CA}^{N\_p-N\_c} \mathbf{B} \end{bmatrix}.$$

The vector containing the reference signal of the system has a length of *Np* and is defined by Eq. (25).

$$R\_\sharp^T = [\mathbf{1} \ \mathbf{1} \cdots \mathbf{1} \ \mathbf{1}] r(k) \tag{25}$$

Eq. (26) contains the cost function *J*.

$$J = (R\_\natural - Y)^T \overline{Q} (R\_\natural - Y) + \Delta U^T \overline{R} \Delta U \tag{26}$$

where *R* is an *Nc* � *Nc* input weight matrix, and *Q* is an *Nc* � *Nc* output weight matrix. The specific values of these weight matrices can be adjusted depending on the system's operational requirements. The ratio of the input weight *R* to the output weight *Q* serves to penalize variations in the control signal during the system's

operation. In this work, *Q* was kept at 1, while the modification was performed on *R* while the system was running. Eq. (27) can be obtained by expanding Eq. (26).

$$J = \left(R\_s - F\mathbf{x}(k)\right)^T \left(R\_s - F\mathbf{x}(k)\right) \tag{27}$$

The partial derivative with respect to Δ*U* is taken and equated to zero yielding Eqs. (28) and (29).

$$\frac{\partial f}{\partial \Delta U} = -2\Phi^T (R\_\varepsilon - F\mathfrak{x}(k)) + 2\left(\Phi^T \Phi + \overline{R}\right) \Delta U \tag{28}$$

$$\frac{\partial f}{\partial \Delta U} = 0 \rightarrow \Delta U = \left(\Phi^T \Phi + \overline{R}\right)^{-1} \Phi^T (R\_\sharp - F \mathbf{x}(k)) \tag{29}$$

The element Δ*u k*ð Þ is obtained from matrix Δ*U* and is used to update *u k*ð Þ � 1 . This results in the updated control signal *u k*ð Þ.

### *3.2.2 Fuzzy logic controller*

The architecture of the fuzzy logic controller (FLC) is illustrated in **Figure 4**. This FLC generates the change in the input weight at time instant *k*, denoted by Δ*R k*ð Þ. It monitors the error *e k*ð Þ and changes in error Δ*e k*ð Þ of the battery SOC, denoted by *SOCbattery*ð Þ*k* , and the SOC reference, denoted by *SOCreference*ð Þ*k* . Furthermore, **Figure 4** depicts the three stages that the signal passes through before the controller issues a command. The fuzzifier generates linguistic variables from the given signal. Next, the inference mechanism correlates the linguistic variables with the rule base and then produces a linguistic output. Finally, the defuzzifier creates the control signal from the linguistic outputs. The change in the weight Δ*R k*ð Þ is produced by the FLC and is added to the current value *R k*ð Þ � 1 to form *R k*ð Þ.

The surface representing the fuzzy inference system is depicted in **Figure 5**. When the values of *e k*ð Þ and Δ*e k*ð Þ lie within [0.5, 1], the resultant Δ*R k*ð Þ is positive, indicating a large increase in the input weight. Conversely, when *e k*ð Þ and Δ*e k*ð Þ are between [�1, �0.5], there is a significant drop in Δ*R k*ð Þ. When *e k*ð Þ and Δ*e k*ð Þ fall between [�0.5, 0.5], the magnitude Δ*R k*ð Þ depends on their point of intersection with the surface. A minor increase or decrease in Δ*R k*ð Þ is applied until *e k*ð Þ and Δ*e k*ð Þ approach zero.

### **3.3 Induction motor drive**

Eqs. (30)–(35) describe the induction motor (IM) model in the synchronously rotating *dq*-coordinate system [7].

**Figure 4.** *Fuzzy logic controller block diagram.*

**Figure 5.** *Fuzzy logic controller surface.*

$$\mathbf{V}\_{sd} = R\_s \mathbf{i}\_{sd} + \frac{d\lambda\_{sd}}{dt} - a\_\epsilon \lambda\_{sq} \tag{30}$$

$$\mathbf{V}\_{sq} = R\_s \mathbf{i}\_{sq} + \frac{d\lambda\_{sq}}{dt} - \alpha\_e \lambda\_{sd} \tag{31}$$

$$dV\_{rd} = R\_r i\_{rd} + \frac{d\lambda\_{rd}}{dt} - \alpha\_{sl}\lambda\_{rq} \tag{32}$$

$$V\_{rq} = R\_r i\_{rq} + \frac{d\lambda\_{rq}}{dt} - o\_{sl}\lambda\_{rd} \tag{33}$$

$$T\_{em} = \frac{3p}{2} \frac{L\_m}{L\_r} \left(\lambda\_{rq} i\_{rd} - \lambda\_{rd} i\_{rq}\right) \tag{34}$$

$$\frac{d o o\_m}{dt} = \frac{1}{J} (T\_{em} - T\_L - Bo\_m) \tag{35}$$

The variables *V*, *i*, and *λ* correspond to the voltages, currents, and fluxes, where the *dq* coordinate system components for the rotor are denoted by subscript *r*, and the stator is denoted by subscript *s*. The variables *TL*, *Tem*, *B*, and *J* are the load torque, motor torque, coefficient of friction, and motor inertia. While *Rs* is the the stator resistance and *Rr* is the rotor resistance. Additionally, *ωm*, *ωe*, and *ωsl* denote the rotor speed, the speed at which the *d*-axis is rotating, and the speed at which the rotor axis is rotating, respectively. Furthermore, *ω<sup>e</sup>* was intentionally set equated to *ωsync* ¼ 2*πf* which represents the synchronous speed.

The electrical coupling equations are represented by Eqs. (30)–(34), and Eq. (35) represents the mechanical coupling equation of the induction machine. Eq. (36) illustrates the relationship between the *dq*-fluxes and the *dq*-currents in matrix form.

$$
\begin{bmatrix}
\lambda\_{sd} \\
\lambda\_{sq} \\
\lambda\_{rd} \\
\lambda\_{rq}
\end{bmatrix} = \begin{bmatrix}
L\_s & \mathbf{O} & L\_m & \mathbf{O} \\
\mathbf{O} & L\_s & \mathbf{O} & L\_m \\
L\_m & \mathbf{O} & L\_r & \mathbf{O} \\
\mathbf{O} & L\_m & \mathbf{O} & L\_r
\end{bmatrix} \begin{bmatrix}
\dot{i}\_{sd} \\
\dot{i}\_{rq} \\
\dot{i}\_{rd} \\
\dot{i}\_{rq}
\end{bmatrix} \tag{36}
$$

*Battery State of Charge Management for an Electric Vehicle Traction System DOI: http://dx.doi.org/10.5772/intechopen.113221*

Eqs. (37) and (38) represent the conversion matrices used in the system. The variables are converted to the *dq* coordinate system components, manipulated, then transformed back to *abc* components.

$$
\begin{bmatrix} i\_{sd} \\ i\_{sq} \end{bmatrix} = \sqrt{\frac{2}{3}} \begin{bmatrix} \cos\left(\theta\_{\epsilon}\right) & \cos\left(\theta\_{\epsilon} - \frac{2\pi}{3}\right) & \cos\left(\theta\_{\epsilon} - \frac{4\pi}{3}\right) \\\\ -\sin\left(\theta\_{\epsilon}\right) & -\sin\left(\theta\_{\epsilon} - \frac{2\pi}{3}\right) & -\sin\left(\theta\_{\epsilon} - \frac{4\pi}{3}\right) \\\\ \begin{bmatrix} i\_{al} \\ i\_{b} \\ i\_{\epsilon} \end{bmatrix} = \sqrt{\frac{2}{3}} \begin{bmatrix} \cos\left(\theta\_{\epsilon}\right) & -\sin\left(\theta\_{\epsilon}\right) \\\\ \cos\left(\theta\_{\epsilon} + \frac{4\pi}{3}\right) & -\sin\left(\theta\_{\epsilon} + \frac{4\pi}{3}\right) \\\\ \cos\left(\theta\_{\epsilon} + \frac{2\pi}{3}\right) & -\sin\left(\theta\_{\epsilon} + \frac{2\pi}{3}\right) \end{bmatrix} \begin{bmatrix} i\_{sd} \\ i\_{sq} \end{bmatrix} \tag{38}
$$

where *θ<sup>e</sup>* represents the angle that the *d*-axis makes with the stationary axis [7].

### *3.3.1 Indirect field-oriented control (IFO)*

To perform indirect field-orientation (IFO) we fix *λrq* to zero. Therefore, we can obtain Eq. (39) by combining Eqs. (32) and (36). This rotor flux is calculated using Eq. (39). In addition, Eq. (33) merged with Eq. (36), will result in Eq. (40) [7]. Eq. (40) serves the purpose of calculating the rotor slip.

$$
\lambda\_{rd} = L\_m \dot{\imath}\_{sd} \tag{39}
$$

$$
\alpha\_{sl} = \frac{L\_m}{\tau\_r} \frac{i\_{\ast q}}{\lambda\_{rd}} \tag{40}
$$

where *τ<sup>r</sup>* is the rotor time constant.

The state-space representation of the IFO IM drive can be derived by combining Eqs. (34) and (36), resulting in

$$T\_{em} = \frac{3p}{2} \frac{L\_m}{L\_r} \left(\lambda\_{rd} i\_{sq}\right) \tag{41}$$

A relationship governing the speed *ω<sup>m</sup>* and the current *isq* can be obtained by combining Eqs. (35) and (41).

$$\frac{d\alpha\_m}{dt} = \frac{1}{J} \left( \frac{3p}{2} \frac{L\_m}{L\_r} \left( \lambda\_{rd} i\_{sq} \right) - T\_L - Bo\alpha\_m \right) \tag{42}$$

Under a specific load *TL*, differentiating Eq. (42) results in

$$\frac{d^2\alpha\_m}{dt^2} = -\frac{B}{J}\frac{d\alpha\_m}{dt} + \frac{3p}{2}\frac{L\_m}{L\_r}\frac{\lambda\_{rd}}{J}\frac{di\_{sq}}{dt} \tag{43}$$

The state-space representation of the IFO IM drive is provided in Eqs. (44) and (45) [7].

$$
\begin{bmatrix}
\ddot{o}\_m \\
\dot{o}\_m
\end{bmatrix} = \begin{bmatrix}
1 & 0
\end{bmatrix} \begin{bmatrix}
\dot{o}\_m \\
o\_m
\end{bmatrix} + \begin{bmatrix}
\frac{3p}{2}\frac{L\_m}{L\_r}\frac{\lambda\_{rd}}{J} \\
0
\end{bmatrix} \frac{d\dot{o}\_q}{dt} \tag{44}
$$

**Figure 6.** *IFO IM drive with SOC tracking.*

$$
\boldsymbol{o}\_{m} = \begin{bmatrix} \mathbf{0} & \mathbf{1} \end{bmatrix} \begin{bmatrix} \dot{\boldsymbol{o}}\_{m} \\ \boldsymbol{o}\_{m} \end{bmatrix} \tag{45}
$$

The comprehensive EV traction system, encompassing the IFO IM drive, the battery bank, and the SOC tracking scheme is illustrated in **Figure 6**. The battery bank current is used to estimate the battery SOC, and an FLC compares the battery bank SOC and reference SOC, then generates an input weight *R* for the MPC objective function. The outer controller loop comprising the input weight *R*, the MPC, and the motor speed *ω<sup>m</sup>* is responsible for generating the reference *i* <sup>∗</sup> *sq* current. The *d*-axis current *i* ∗ *sd* and *q*-axis current *i* <sup>∗</sup> *sq* are responsible for regulating the flux and torque of the induction motor, respectively. The "Slip Calc." block carries out rotor flux estimation using Eq. (39) and subsequently calculates the slip using Eq. (40). Moreover, PI controllers for the inner current loops ensure that the stator *q* and *d* component currents are tracking the reference *q* and *d* component currents, respectively. The *q* and *d* component voltages are generated from the inner PI controllers and converted to the reference *abc* component sinusoidal voltages used to produce the inverter gating signals.

### **4. Simulation results**

### **4.1 Testing methodology**

### *4.1.1 Drive cycle description*

A driving cycle consists of data points that represent the velocity of a real-life vehicle measured over time. The New European Drive Cycle (NEDC) consists of both

### *Battery State of Charge Management for an Electric Vehicle Traction System DOI: http://dx.doi.org/10.5772/intechopen.113221*

urban and extra-urban driving stages. It is a combination of straight acceleration and constant speed periods, and it is depicted in **Figure 7**. The urban driving cycle lasts for 800 seconds, starting at second 11 and ending at second 785. It consists of three constant speed peaks, and they are repeated four times as shown in the rectangle. The constant speed peaks are arranged in ascending order with the peaks occurring at 187, 400, 625, and 437 RPM, respectively. The extra-urban driving stage spans 370 seconds, beginning at second 800 and concluding at second 1170. The speed peaks occur at 625, 875, 1250, and 1500 RPM.

### *4.1.2 Simulink model description*

**Figure 8** shows the Simulink model for the EV traction system used in this work. A 580 *V* lithium-ion battery bank with a capacity of 4000 *mAh* provides the required voltage and power for the EV traction system. The inverter produces the required voltage and frequency to control the speed of the IM. Furthermore, the IM ratings were 0.5 kW, 415 V, and 50 Hz. The references in the system are the red block representing the reference motor *d*-axis current *i* <sup>∗</sup> *sd*, the drive cycle reference block, and the SOC reference block. The slip frequency estimation block estimates the rotor flux and slip using Eqs. (39) and (40), respectively. The battery bank SOC estimation is performed using Eq. (11), and the SOC is sent to the FLC. The FLC compares the

**Figure 7.** *NEDC drive cycle.*

**Figure 8.** *MATLAB/Simulink model for the EV traction system with SOC tracking.*

battery SOC with the reference SOC and generates the *R* for the MPC cost function. The MPC generates the speed-regulating signal *i* ∗ *sq* while giving consideration to the reference SOC. The motor *dq* currents are regulated by the inner PI controllers. While the *dq* voltages are converted to the reference *abc* sinusoidal voltages *V* <sup>∗</sup> *<sup>a</sup>* , *V* <sup>∗</sup> *<sup>b</sup>* , and *V* <sup>∗</sup> *c* that are used by the inverter to generate the required voltages for the motor. The simulation sampling time is 10 kHz.

### *4.1.3 State of charge reference*

The scope of this work focused on devising a technique to regulate the SOC of the EV traction system rather than producing an SOC reference signal. Therefore, the SOC reference signal used in this work is just a limitation to the maximum change in SOC. **Figure 9a** shows the SOC deterioration over the NEDC drive cycle. The rate of change of SOC, denoted by Δ*SOC*, is obtained by taking the difference between the current and previous sample for the SOC signal. **Figure 9b** illustrates the inverted version of the Δ*SOC* over-the-NEDC drive cycle, and is used as the primary evaluation metric for the SOC tracking technique. The inverted Δ*SOC* will be referred to as Δ*SOC* for simplicity.

The Δ*SOC* graph is divided into five regions as shown in **Figure 10**. The regions are classified as follows:


**Figure 9.** *Battery bank (a) SOC decay (b) inverted* Δ*SOC with the SOC tracking technique.*

*Battery State of Charge Management for an Electric Vehicle Traction System DOI: http://dx.doi.org/10.5772/intechopen.113221*

**Figure 10.** *Battery bank maximum permitted* Δ*SOC values on regions 2 through 5.*


## **4.2 Test results**

**Figure 11** overlaps the Δ*SOC* readings with the predefined maximum permitted values. Region 1 serves as an example of what the Δ*SOC* values in regions 2 through 4 would have been if the SOC tracking scheme had not enforced maximum permitted Δ*SOC* values. Regions 2 through 4 clearly demonstrate that the Δ*SOC* was constrained and prevented from exceeding the established maximum permitted value, confirming the effectiveness of the SOC tracking method. Additionally, in region 5, we observe that when the Δ*SOC* remained below the maximum permitted value, it was allowed to adapt freely. However, once the Δ*SOC* began to rise, beyond the 1000-second mark, it was capped at the maximum permitted value. Moreover, during these capping periods, the magnitude of the error Δ*SOC* was recorded and the average was obtained. **Figure 12** displays the average of the absolute value of the error during the capping periods. The absolute average error for the capping periods varies between ½ � 0*:*00052, 0*:*0013 and the average for the complete NEDC drive cycle is 0.00095. This result is comparable to the ECMS, A-ECMS, and Fuzzy A-ECMS techniques which yielded 0.0003, 0.0037, and 0.0019 deviations off the reference SOC while testing on the NEDC drive cycle.

**Figure 11.** *Battery bank* Δ*SOC and maximum permitted* Δ*SOC values with the SOC tracking technique.*

**Figure 13** illustrates the response of the motor's speed during the NEDC drive cycle. In region 1, it is evident that the unrestricted SOC tracker technique adeptly regulates the motor's speed. However, as we move into regions 2 through 4 (where the maximum permitted Δ*SOC* values range from 90 to 70%), we observe a noticeable decline in the motor's speed tracking performance. The more stringent the Δ*SOC* constraint, the larger the drop in the motor's speed-tracking performance. Consequently, in region 4, we witness a substantial deterioration in motor speed tracking performance compared to regions 2 and 3. Moving to region 5, we note that before the 1000-second mark, the Δ*SOC* remained below its maximum permitted value, allowing for effective regulation of the motor speed. Conversely, after the 1000 second mark, the Δ*SOC* reached its maximum permitted value and was held at that boundary, resulting in a decline in speed tracking performance.

**Figure 14** presents the fluctuation in the input weight parameter, denoted as *R* throughout the NEDC drive cycle. It is important to note that the input weight *R* plays a direct role in determining the generation of the motor speed-regulating current *i* <sup>∗</sup> *sq*, which was discussed in the previous section. Specifically, as the value of *R* increases, it imposes a more significant constraint on *i* <sup>∗</sup> *sq*. Since *i* ∗ *sq* directly influences the motor

*Battery State of Charge Management for an Electric Vehicle Traction System DOI: http://dx.doi.org/10.5772/intechopen.113221*

**Figure 13.** *Motor speed response with the SOC tracking technique.*

**Figure 14.** *Input weight R with the SOC tracking technique.*

current, a lower *i* <sup>∗</sup> *sq* results in drawing less current from the battery bank, eventually leading to a reduced Δ*SOC*.

From the previous statement, it is apparent that enforcing a stricter limit on Δ*SOC* necessitates a higher value for *R*. This becomes evident when comparing the values of *R* in regions 2 through 4, which have the same speed reference. As Δ*SOC* constraints become more stringent (from 90 to 70% maximum permitted Δ*SOC*), the value of *R* increases correspondingly.

Furthermore, an increase in the reference speed demands a higher value for *i* ∗ *sq*, consequently increasing the Δ*SOC* value. If there is a maximum permitted Δ*SOC* value, then the input weight *R* must rise in tandem with the increasing reference speed to restrict *i* ∗ *sq* further, and thereby maintain the Δ*SOC* at the maximum permitted value. This phenomenon is observable when examining region 5. Before the 1000 second mark, the Δ*SOC* value below the maximum permitted value, *R* remained at the minimum level. However, after the 1000-second mark, as the Δ*SOC* value reached

the maximum permitted value, the input weight *R* increased in line with the reference speed signal to uphold the Δ*SOC* at its maximum permitted value.
