**1. Introduction**

Induction machines play a crucial role in modern industry, ranging from simple applications such as driving fans or pumps to more precise usages such as conveyor belts or plastic injection molding [1]. Conventional induction machine control methods such as Field-Oriented Control (FOC) [2] and Direct Torque Control (DTC) [3] can suffer from sensitivity to parameter and torque changes [4], or torque and flux pulsations and control problems at low speeds [5]. For high-performance drives, which require a fast dynamic response and disturbance rejection, these shortcomings must be improved, or new methods must be investigated. One direction of research is incorporating fuzzy logic into conventional control structures to improve the dynamics.

Research in [6] shows an increasing trend of computational intelligence implementation in control applications. An overview of the recent literature proves the research interest in fuzzy logic in drive systems. The authors of [7] investigate the implementation of FLC with a reduced computation burden. In [8], the authors incorporate FLC into a classic DTC structure to improve the torque ripple of the high-performance drive. The authors of [9] investigate FLC for low-speed induction machine operation. In [10], the authors investigate the computation burden of FLC depending on the size of the fuzzy rules table. In [11,12], type 2 FLC is investigated to improve the DTC structure on five- and three-level inverters. In [13,14], the authors use FLC to improve the classic DTC in an induction machine drive with a two-level converter and dual-stator machine drive, respectively. The authors of [15] improve the FOC structure for an induction machine by developing a fuzzy speed controller with an algorithm for automatic gain output adjustment. Tir et al. use fuzzy logic to improve the FOC structure for a single system in [16] and a multi-machine drive system in [17]. Bessaad et al. use a fuzzy system in [18] for developing a correction regulator in a multi-machine system with a single inverter supply. The authors of [19] develop a custom search algorithm for induction machine fuzzy-PI controller tuning. To improve efficiency, the authors of [20,21] use fuzzy logic for the online search of the minimum power

**Citation:** Varga, T.; Benši´c, T.; Barukˇci´c, M.; Jerkovi´c Štil, V. Optimization of Fuzzy Controller for Predictive Current Control of Induction Machine. *Electronics* **2022**, *11*, 1553. https://doi.org/10.3390/ electronics11101553

Academic Editor: Bor-Ren Lin

Received: 21 April 2022 Accepted: 10 May 2022 Published: 12 May 2022

**Publisher's Note:** MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

**Copyright:** © 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https:// creativecommons.org/licenses/by/ 4.0/).

losses of an induction machine drive and self-excited induction generator, respectively. In [22], the authors use fuzzy logic to develop an expert system for induction machine fault diagnosis. The authors of [23] use FLC to calculate a suitable voltage vector for a five-phase induction machine to reduce torque ripple. The authors of [24] use fuzzy logic as a decision mechanism for weighing factor selection in predictive torque control. In [25], the authors incorporate two FLCs as inputs to a feedback linearization algorithm to improve drive dynamics. Saghafinia et al. use FLC in [26] as a speed controller in a sliding mode control structure. In [27], the author presents a fuzzy-PI controller utilized for minimizing energy consumption while maximizing the performance of an induction machine drive. In [28], Youb et al. develop a fuzzy-PI controller for a dual-star induction machine with online adaptation of proportional and integral gains.

There are a number of research papers showing the usage of fuzzy systems in parameter estimation. The authors of [29] use fuzzy logic concepts for estimation purposes by building an observer using the Takagi–Sugeno model of an induction machine. Jabbour et al. use fuzzy logic in [30] for online parameter estimation. In [31], the authors utilize a type 1 and type 2 fuzzy controller for a model reference adaptive system and compare the results. The authors of [32] build a Luenberger observer using a fuzzy logic system that outputs state variable estimates. In an older paper [33], the authors optimize a fuzzy system for the purpose of estimating the rotor time constant. In [34], Shukla et al. use fuzzy logic for the model reference speed adaptation of an induction machine that is controlled via DTC.

Fuzzy logic is also used in power and frequency control, as can be seen in papers such as [35], where the authors use fuzzy logic to tune the proportional, integral, and derivative gains of a doubly fed induction generator (*DFIG*) PID controller. In [36], the authors also use fuzzy concepts to improve the DTC of a DFIG, while in [37], FLC is used for active power control. In [38], Dewangan et al. replace a classic PI controller with FLC to improve the performance of a wind-driven self-excited induction generator during fault and variable wind speed conditions. The authors of [39] develop FLC for a six-phase induction generator that shows superiority over the classic controller in fault conditions.

In this paper, the authors present an optimization procedure for the fuzzy speed controller that enhances the speed tracking and torque response of the induction machine, which is controlled using the PCC algorithm. In recent years, a few papers have dealt with this problem in the induction machine drive field. In [40], George et al. use an optimization procedure to optimize the speed control of an electric vehicle. Similarly, the authors of [41] use an optimization approach to optimize frequency control in multi-area interconnected power systems. Both papers offer several criteria for objective function value calculation. In [37], the authors use the integral time squared error to calculate the objective function value for the particle swarm optimization algorithm, which is used to optimize DFIG power control. The authors of [42] optimize FLC for an induction machine and use the mean average error as a criterion to optimize seven membership functions for inputs and output while using the Mamdani-type defuzzification process. In this paper, the authors use five membership functions for inputs, and a Takagi–Sugenotype defuzzification process. Several criteria for objective function value calculation are investigated and results show improvements upon the classic speed controller. The paper is organized as follows: In Section 2, the dynamic model of the induction machine is presented and a control overview is given. In Section 3, the fuzzy logic speed controller that is being optimized in this paper is presented and each part of the controller is described. The problem statement and optimization procedure (optimizer, controller parameters, and the choice of objective function) are presented in Section 4. In Section 5, results for different optimization approaches are displayed and discussed. Control system performance is shown in Section 6, while the comparison with several model predictive methods is carried out in Section 7. In Section 8, the authors discuss caveats and future research possibilities.

#### **2. Induction Machine Model and Control Overview**

The dynamic model of the induction machine is written in the stationary *αβ*-reference frame and it is shown by Equations (1)–(4), where *J* is the inertia constant of the machine, *ωr* is the rotor shaft speed, *p* is the number of pole pairs, *Te* is electromechanical torque, and *Tl* is load torque.

$$
\sigma\_{sa\beta} = \mathcal{R}\_s i\_{sa\beta} + \frac{\text{d}}{\text{d}t} \psi\_{sa\beta} \tag{1}
$$

$$0 = \mathcal{R}\_r i\_{ra\beta} - J\_r p \omega\_r \Psi\_{ra\beta} + \frac{\text{d}}{\text{d}t} \Psi\_{ra\beta} \tag{2}$$

$$J\frac{d}{dt}\omega\_r = T\_\varepsilon - T\_l \tag{3}$$

$$T\_c = \frac{3}{2} p \left( \psi\_{s\alpha} i\_{s\beta} - \psi\_{s\beta} i\_{s\alpha} \right) \tag{4}$$

Equation (5) displays electrical quantities, where *<sup>v</sup>sαβ* represents the stator voltage vector, *<sup>i</sup>sαβ* and *<sup>i</sup>rαβ* represent the stator and rotor current vector, while *ψsαβ* and *ψrαβ* describe stator and rotor flux linkages.

$$\begin{aligned} \boldsymbol{\upsilon}\_{\mathsf{sa}\boldsymbol{\beta}} &= \begin{bmatrix} \upsilon\_{\mathsf{sa}} \\ \upsilon\_{\mathsf{s}\boldsymbol{\beta}} \end{bmatrix} & \dot{\mathbf{t}}\_{\mathsf{sa}\boldsymbol{\beta}} &= \begin{bmatrix} \dot{\imath}\_{\mathsf{sa}} \\ \dot{\imath}\_{\mathsf{s}\boldsymbol{\beta}} \end{bmatrix} & \dot{\imath}\_{\mathsf{ra}\boldsymbol{\beta}} &= \begin{bmatrix} \dot{\imath}\_{\mathsf{ra}} \\ \dot{\imath}\_{\mathsf{r}\boldsymbol{\beta}} \end{bmatrix} & \boldsymbol{\Psi}\_{\mathsf{sa}\boldsymbol{\beta}} &= \begin{bmatrix} \boldsymbol{\psi}\_{\mathsf{sa}} \\ \boldsymbol{\psi}\_{\mathsf{s}\boldsymbol{\beta}} \end{bmatrix} & \boldsymbol{\Psi}\_{\mathsf{ra}\boldsymbol{\beta}} &= \begin{bmatrix} \boldsymbol{\psi}\_{\mathsf{ra}} \\ \boldsymbol{\psi}\_{\mathsf{r}\boldsymbol{\beta}} \end{bmatrix} \end{aligned} \tag{5}$$

Electrical parameters are described by Equation (6), where *Rs* and *Rr* are the stator and rotor resistance matrices, while *Jr* represents the rotation matrix.

$$\mathbf{R}\_{\mathbb{S}} = \begin{bmatrix} \mathbf{R}\_{\mathbb{S}} & \mathbf{0} \\ \mathbf{0} & \mathbf{R}\_{\mathbb{S}} \end{bmatrix} \quad \mathbf{R}\_{\mathbb{T}} = \begin{bmatrix} \mathbf{R}\_{\mathbb{T}} & \mathbf{0} \\ \mathbf{0} & \mathbf{R}\_{\mathbb{T}} \end{bmatrix} \quad \mathbf{J}\_{\mathbb{T}} = \begin{bmatrix} \mathbf{0} & -\mathbf{1} \\ \mathbf{1} & \mathbf{0} \end{bmatrix} \tag{6}$$

Additionally, the relationship between fluxes and currents is described by Equations (7) and (8), but for a deeper understanding of the induction machine model, the reader is referred to [43].

$$
\mathfrak{w}\_{sa\beta} = L\_{\mathfrak{s}} \mathfrak{i}\_{sa\beta} + L\_{m} \mathfrak{i}\_{ra\beta} \tag{7}
$$

$$
\psi\_{ra\beta} = L\_{\tau} \mathbf{i}\_{ra\beta} + L\_{m} \mathbf{i}\_{sa\beta} \tag{8}
$$

Model predictive control has attracted research interest in recent years, as seen in papers such as [44–46]. This being the case, the control method that is being modified in this paper is PCC for an induction machine, which falls into the family of model predictive control structures. In the following text, it is explained how it works.

Firstly, a discrete state space model for computing the current prediction *isαβ*[*<sup>k</sup>* + 1] is formed by selecting stator currents *isαβ*[*k*] and rotor fluxes *ψrαβ*[*k*] as state variables. Equation (9) represents the final expression to calculate the current predictions, where *σ*= 1 − *L*2*m LsLr* represents the leakage inductance factor, *τr* = *Lr Rr* represents the rotor time constant, and *Ts* represents the discretization sampling time.

$$
\begin{split}
\begin{bmatrix}
\dot{i}\_{sa}[k+1] \\
\dot{i}\_{s\notin}[k+1]
\end{bmatrix} &= \begin{bmatrix}
1 - \frac{(R\_{o} + \frac{l\_{m}^{2}}{L\tau\_{s}\tau\_{r}})T\_{s}}{\sigma L\_{s}} & 0 & \frac{L\_{m}T\_{s}}{\sigma L\_{s}L\_{r}\tau\_{r}} & \frac{L\_{m}p\omega\_{r}T\_{s}}{\sigma L\_{s}L\_{r}} \\
0 & 1 - \frac{(R\_{s} + \frac{l\_{m}^{2}}{L\tau\_{s}\tau\_{r}})T\_{s}}{\sigma L\_{s}} & -\frac{L\_{m}p\omega\_{r}T\_{s}}{\sigma L\_{s}L\_{r}} & \frac{L\_{m}T\_{s}}{\sigma L\_{s}L\_{r}\tau\_{r}} \\
\end{bmatrix} \begin{bmatrix}
\dot{i}\_{sa}[k] \\
\dot{i}\_{s\notin}[k] \\
\dot{\psi}\_{ra}[k]
\end{bmatrix} \\
\end{split}
$$

$$
\begin{bmatrix}
\frac{T\_{s}}{\sigma L\_{s}} & 0 \\
0 & \frac{T\_{s}}{\sigma L\_{s}}
\end{bmatrix} \begin{bmatrix}
v\_{sa}[k] \\
v\_{s\notin}[k]
\end{bmatrix}
$$

Equation (10) represents the cost function that is used to derive the control law by minimizing the squared error between reference currents *<sup>i</sup>*<sup>∗</sup>*α*[*k*], *<sup>i</sup>*<sup>∗</sup>*β*[*k*] and current predictions.

By inserting (9) into (10) and solving (11), the optimal voltage vector *<sup>v</sup>*<sup>∗</sup>*αβ* can be obtained to minimize the cost function and drive the machine in the desired state.

$$\mathbf{G} = \begin{bmatrix} \mathbb{g}\_a \\ \mathbb{g}\_{\beta} \end{bmatrix} = \begin{bmatrix} (i\_a^\*[k] - i\_a[k+1])^2 \\ (i\_\beta^\*[k] - i\_\beta[k+1])^2 \end{bmatrix} \tag{10}$$

$$\frac{\partial \mathcal{G}}{\partial \mathbf{v}\_{a\beta}} = 0\tag{11}$$

Equation (12) represents the solution of (11), which is used as a control law.

$$\begin{aligned} \; \left. \sigma\_{\alpha\beta}^{\*} [k+1] \right] &= \begin{bmatrix} R\_s + \frac{L\_m^2}{L\_r \tau\_r} - \frac{\sigma L\_s}{T\_s} & 0 & -\frac{L\_m}{L\_r \tau\_r} & -\frac{L\_m p \omega\_r}{L\_r} \\ 0 & R\_s + \frac{L\_m^2}{L\_r \tau\_r} - \frac{\sigma L\_s}{T\_s} & \frac{L\_m p \omega\_r}{L\_r} & -\frac{L\_m}{L\_r \tau\_r} \end{bmatrix} \begin{bmatrix} i\_{s\alpha}[k] \\ i\_{s\beta}[k] \\ \psi\_{n\gamma}[k] \end{bmatrix} \\ &+ \begin{bmatrix} \frac{\sigma L\_s}{T\_s} & 0 \\ 0 & \frac{\sigma L\_s}{T\_s} \end{bmatrix} \begin{bmatrix} i\_{s\alpha}^\*[k] \\ i\_{s\beta}^\*[k] \end{bmatrix} \end{aligned} \tag{12}$$

Reference current value *<sup>i</sup>*<sup>∗</sup>*α*[*k*] is calculated from the desired rotor flux of the machine, while reference current *<sup>i</sup>*<sup>∗</sup>*β*[*k*] is generated by the FLC acting as a speed controller. Figure 1 represents the final topology of the control structure, and more details about the PCC structure can be found in [47].

**Figure 1.** Simulated control method.

#### **3. Fuzzy Logic Controller**

The fuzzy inference system block diagram is shown in Figure 2. It represents the computation steps used to transfer inputs to the fuzzy system into control outputs used for generating reference values for induction machine predictive current control. First, input values are turned into fuzzy values by the process of fuzzification. These fuzzy values are calculated using predefined membership functions. The following text explains the selection of input and output variables and membership functions that are to be optimized for induction machine speed control.

**Figure 2.** Fuzzy logic controller structure.

#### *3.1. Input and Output of Fuzzy Controller*

Input variables to the fuzzy controller are chosen to be the speed tracking error *ωerr* and its derivative *ω*˙ *err*, while the output is defined as fuzzy error *ferr*. All relevant vectors and sets that will be used are: real valued input vector *o*, input linguistic variable vector *o*¯, and input linguistic value sets *O* ¯ *i*, where *i* represents the input ordinal number. Regarding the output, *z* represents the real valued output vector, *z*¯ represents the output linguistic variable vector, and *Z* ¯ represents the output linguistic value set. Established vectors and sets are defined as follows:


### *3.2. Input Membership Functions*

Membership functions are structured for *i*th input linguistic variable *o*¯*i* and *k*th possible linguistic value *O*¯ *k*. Their structure depends on the observed linguistic variable and its linguistic value. Equations (13)–(15) represent the membership function definitions for all the possible combinations of index values *i* and superscript values *k*. It can be seen that they are unit piecewise linear and defined using only two parameters, *aik* and *bik*. Figure 3 gives a deeper insight into the membership functions and their parameters.

$$\mu\_{O\_i^k}(o\_i) = \max \left[ \left( 1 - \left| \frac{a\_{ik} - o\_i}{b\_{ik}} \right| \right), 0 \right], \quad i \in \{1, 2\}, \quad k \in \{2, 3, 4\} \tag{13}$$

$$\mu\_{O\_i^k}(o\_i) = \begin{cases} 1, & o\_i < a\_{ik} \\ 0, & o\_i > b\_{ik} \\ \frac{a\_{ik} - o\_i}{b\_{ik} - a\_{ik}} + 1, & a\_{ik} \le o\_i \le b\_{ik} \end{cases} \qquad i \in \{1, 2\}, \quad k = 1 \tag{14}$$

$$\mu\_{O\_i^k}(o\_i) = \begin{cases} 0, & o\_i < a\_{ik} \\ 1, & o\_i > b\_{ik} \\ \frac{o\_i - a\_{ik}}{b\_{ik} - a\_{ik}}, & a\_{ik} \le o\_i \le b\_{ik} \end{cases} \qquad i \in \{1, 2\}, \quad k = 5 \tag{15}$$

**Figure 3.** Topology of the fuzzy controller.

The fact that there are only two parameters required for membership function definition offers simplicity of implementation and can be exploited in the optimization procedure of the fuzzy speed controller, as is seen in the following sections. The next step is to obtain the controller output value through the process of fuzzy inference and defuzzification.
