*3.1. Classical FS-MPC*

The classical three-level FS-MPC uses only 19 voltage vectors as shown in Figure 2, defined by switching states, for prediction, and uses three stages: (1) estimation, (2) prediction, and (3) cost function optimization. An optimal control action is selected by minimizing a predefined cost function. All of the controlled objectives are included in the cost function in terms of errors; the errors are calculated by their respective references. The performance and the required computational burden of the model have been analyzed for the 3L T-type VSI.

To predict the future behavior of the inverter, the continuous-time model of Equation (1) should be approximated by a discrete-time model, using the normal forward Euler approximation with the sampling period *Ts*, as:

$$dy/dt = \left(y(k+1) - y(k)\right)/T\_s.\tag{4}$$

Thus, the discretized models of current are given as:

$$i\_{dq}(k+1) = i\_{dq}(k) + (T\_s/L) \Big(\mu\_{dq}(k) - R \cdot i\_{dq}(k) - \varepsilon\_{dq}(k)\Big).\tag{5}$$

To predict *i*(*k* + 1) in Equation (5), *i*(*k*), *e*(*k*), and *v*(*k*) are required. The current *i*(*k*) is measured using the hardware sensors on the stationary *d–q* axis. Assuming that *e*(*k*) does not change much during *Ts*, *e*(*k*) can be estimated by shifting Equation (5) one step backward, as

$$
\varepsilon\_{dq}(k) \approx \varepsilon\_{dq}(k-1) \tag{6}
$$

$$
\omega\_{dq}(k) = \mathfrak{u}\_{dq}(k-1) - \left(\mathrm{L}/T\_s\right) \Big| \left(\mathbf{1} - \left(\mathbf{R} \cdot \mathbf{T}\_s/\mathrm{L}\right)\right) \cdot \dot{\mathfrak{u}}\_{dq}(k) - \mathrm{i}\_{dq}(k-1)\Big|.\tag{7}
$$

**Figure 2.** Space vector diagram of conventional finite-set model predictive control (FS-MPC).

As it is evident that there is a one-step delay in the digital control system, the voltage vector at time *k* will not be applied until time *k* + 1. Therefore, to obtain the optimal voltage vector among the 19 voltage vectors, the cost function (*CF*) used to measure the errors between the references and the predictions in the stationary *d–q* frame was defined, as in Equation (8). To remove the delay, the voltage vector at time *k* + 2 should be used in the cost function of Equation (8), instead of *k* + 1:

$$\text{CF} = \left| i\_d^\*(k+2) - i\_d(k+2) \right| + \left| i\_q^\*(k+2) - i\_q(k+2) \right|. \tag{8}$$

The voltage vector, which yields the minimal *CF*, will be selected as the optimal vector *uop<sup>t</sup>* and will be applied to the grid terminal by the inverter during the next sampling time.
