1 Introduction

In recent developments, permanent magnet synchronous motors (PMSM) have been extensively used in electric vehicle (EVs) applications. Compared to surface-mounted PMSM, interior PMSM performs better for high-speed drive applications. The two-level inverter-fed PMSM is a well-known system in drive applications. Still, according to recent research, the multilevel inverter-fed PMSM gives excellent performance with the increase in count of the voltage vectors (VVs) (Rodriguez et al., 2002). Using this type of multilevel inverter, the number of devices is increasing, which also increases the number of heat sinks and triggering circuits.

The open-end winding PMSM (OEW-PMSM) fed from both sides using a dual inverter can produce three- or four-level output voltage, reducing the component count. At present, as per the industry standards, there is a requirement for effective steady-state performance and high torque dynamics in the machine performance. Hence, the flux and torque of the machine must be controlled effectively. For this purpose, field-oriented control (FOC) of AC motors was introduced by Blaschke (1971). But the FOC method has rotor transformations and tuning of PI controllers, which makes the method complex. This complexity has been reduced by the invention of direct torque control (DTC), which uses hysteresis comparators and improves the torque response of the machine by selecting the best VV (Takahashi & Noguchi, 1989, 1986). The comparison between the two techniques in current and torque ripples is presented in Casadei and Tani (2002). In DTC, the inverter has variable switching frequency, distortions are observed during sector change, and the control requires a low sampling frequency (Zhong et al., 1999). Some of the limitations mentioned above are addressed in Swierczynski et al. (2002), Sun et al. (2004a), Sun et al. (2004b), Kumar et al. (2017) with the introduction of space vector modulation-based DTC (SVM-DTC), fuzzy logic-based DTC, and sensorless DTC of PMSM.

SVM is applied to DTC in order to preserve the switching frequency as unchanging factor and minimize the distortions produced on by sector changes (Swierczynski et al., 2002). The flux and torque errors are fuzzified into a number of fuzzy subsets in order to choose the best appropriate voltage vector, which lowers the ripples (Sun et al., 2004a). However, if fuzzy logic is used in conjunction with DTC, the speed or position sensor produces erroneous data. Using fuzzy logic, a sensor less DTC for PMSM is developed, providing more accurate results than a fuzzy logic-based DTC with an encoder (Sun et al., 2004b). Furthermore, to lessen the torque ripples in the machine, a slip angle control (Kumar et al., 2017)-based DTC is utilized which improves the response of the machine where required reference stator flux is compared with estimated stator flux to generate a reference voltage. A suitable space vector is chosen using SVM technique thereby reducing torque ripples.

Recently, model predictive control (MPC) has become a widespread technique in the control of motor drives. Although the major challenge in MPC is to obtain an accurate model, it is now easier to build complex models with the advancement of fast microprocessors (Rodriguez et al., 2013; Vazquez et al., 2014). MPC is also widely used in power converters as it is simple and flexible. The comparison of various PWM techniques applied to power converters and voltage source inverters with MPC is given in Kouro et al. (2009), Rodriguez et al. (2007). Generally, MPC involves three main steps: prediction, cost function (CF) evaluation, and solving the optimization problem, which is also applicable in motor drives effectively (Vazquez et al., 2017). The MPC techniques used in motor control are predictive torque control (PTC) where torque and flux are control variables and predictive current control (PCC) where stator currents are the control variables.

Quadrature axis stator current (\(i_\textrm{qs}\)) and direct axis stator current (\(i_\textrm{ds}\)) are the control variables in PCC, and they must be predicted for the next instant. Errors in the stator currents must be minimized by choosing the appropriate voltage vector (Cortes et al., 2012). In PTC, as the variables in cost function are torque and flux, it requires a weighting factor to choose the importance in torque and flux control, and the errors in torque and flux are to be minimized by selecting a suitable voltage vector (Siami et al., 2017). The tuning of weighting factor is a very troublesome process in the PTC technique. There are certain guidelines to be followed in selecting and tuning the weighting factor which are given in Cortes et al. (2009). The torque and flux ripples are lessened by eliminating flux weighting factor. Some of the weighting factor elimination techniques are given in Kodumur Meesala et al. (2019), Bharath Kumar and Praveen Kumar (2024). In PCC, the weighting factor tuning and estimation of torque and flux are not required, and hence, it is the simplest method that uses only stator currents in cost function (Moon et al., 2003). Many methods are available in the literature to minimize the ripple content in torque and flux, to decrease the common mode voltage (CMV), which may cause over-voltage stress in the winding insulation of the machine, and to minimize the computational load on the processor. However, the conventional PCC is very parameter sensitive. The parameter dependence problem is justified in Zhang et al. (2017) and Zhang et al. (2019). A deadbeat predictive current control is introduced in Zhang et al. (2017), where the model is tested with parameter sensitivity but it increases the computational load on the processor. The parameter sensitivity problem increases the error in current prediction and provides inaccurate delays. Hence, an incremental prediction model is used in Zhang et al. (2019) such that only inductance mismatch causes prediction error. However, the mismatch in the inductance value increases torque ripples in the machine.

The main problem in MPC-based PCC is that the method selects the active voltage vector (AVV) for the whole interval of control, which causes increased ripples in the machine and higher common mode voltage. The ripple content can be decreased by the inclusion of a null voltage vector along with AVV, and the timings of the AVV can be chosen to lessen the q-axis current ripples (Petkar et al., 2021). The two arbitrary VVs are selected in one control interval of the PCC scheme where the reference voltage is calculated by deadbeat control is proposed in Zhang et al. (2018). The steady-state performance is improved in Chen et al. (2020) by using a dual-vector-based duty technique, where the duty is calculated by mapping the current error onto the ideal voltage vector that minimizes the cost function. In addition, to greatly lessen the computational effort, redundant active voltage vectors are eliminated. However, the method is put into practice in the context of the rotor reference frame, which makes the control more complex. In Kumar and Kumar (2022), the AVV and null vector are selected in one control interval where the timing of AVV is selected by simple duty cycle calculation, and CF is improved to lessen the common mode voltage and computation burden. The PCC technique proposed in this article selects a null vector for the remainder period and only chooses the active voltage vector at a predetermined time interval that is determined by duty cycle. The proposed method lessens torque and flux ripples, which enhances steady-state response. The proposed method also improves dynamic performance of the machine with rapid speed changes. The comparison of proposed PCC is done with conventional PCC and PCC in Kumar and Kumar (2022), by tabulating the results which shows that proposed PCC has improved performance.

The organization of this article is as follows: In Sect. 2, the mathematical modeling of a permanent magnet synchronous motor (PMSM) is explained. The conventional PCC with Open-End Winding Interior PMSM (OEW-IPMSM) is implemented as described in Sect. 3, whereas the proposed PCC with OEW-IPMSM is implemented as described in Sect. 4. Results from simulation and experiment are presented in Sects. 5 and 6, respectively, and Sect. 7 presents conclusion.

2 Mathematical Modeling of IPMSM

The OEW-IPMSM which is fed from two three-phase inverters is shown in Fig. 1. Both ends of the dual inverter are connected to the two separate DC power sources. The three-level phase voltage can be obtained by keeping the two DC voltages identical in a ratio of 1:1. Conversely, the phase voltage with number of levels as four is obtained if the ratio is kept constant at 2:1. In this experiment, the ratio is kept at 1:1 in order to obtain the three-level output voltage. The voltage equations of machine after \(d{-}q\) transformation that are used in modeling of IPMSM are given by:

$$\begin{aligned}{} & {} V_\textrm{ds} = r_s i_\textrm{ds} + L_d (di_\textrm{ds}/dt) - i_\textrm{qs} L_q \omega _m \end{aligned}$$
(1)
$$\begin{aligned}{} & {} V_\textrm{qs} = r_s i_\textrm{qs} + L_q (di_\textrm{qs}/dt) + i_\textrm{ds} L_d \omega _m +\omega _m \lambda _r \end{aligned}$$
(2)

where \(i_\textrm{ds}\), \(i_\textrm{qs}\) are stator current components of d-axis and q-axis, respectively. The stator winding resistance is denoted by \(r_s\), \(L_d\) and \(L_q\) are the inductances referred to d and q-axis, respectively. \(\omega _m\) is the rotor speed, and \(\lambda _r\) is the rotor flux. From Fig. 1, the pole voltages of the dual inverter are \(V_{a1o}\),\(V_{b1o}\), \(V_{c1o}\), \(V_{a2o}\), \(V_{b2o}\), \(V_{c2o}\). The phase voltage of the dual inverter is given by:

$$\begin{aligned} \begin{bmatrix} V_{a1a2}\\ V_{b1b2}\\ V_{c1c2} \end{bmatrix} = \begin{bmatrix} 2/3 &{} -1/3 &{} -1/3\\ -1/3 &{} 2/3 &{} -1/3\\ -1/3 &{} -1/3 &{} 2/3 \end{bmatrix} * \begin{bmatrix} V_{a1o} - V_{a2o}\\ V_{b1o} - V_{b2o}\\ V_{c1o} - V_{c2o} \end{bmatrix} \end{aligned}$$
(3)
Fig. 1
figure 1

Schematic of OEW-IPMSM

The equivalent two- phase frame in \(\alpha \)- \(\beta \) plane is given by:

$$\begin{aligned} \begin{bmatrix} V_{\alpha _s}\\ V_{\beta _s} \end{bmatrix} = \begin{bmatrix} 1 &{} 0 &{} 0\\ 0 &{} 0.577 &{} -0.577 \end{bmatrix} * \begin{bmatrix} V_{a1a2}\\ V_{b1b2}\\ V_{c1c2} \end{bmatrix} \end{aligned}$$
(4)

After rotor transformations, the equivalent \(d{-}q\) frame is given by:

$$\begin{aligned} \begin{bmatrix} V_\textrm{ds}\\ V_\textrm{qs} \end{bmatrix}= \begin{bmatrix} \cos \theta _r &{} \sin \theta _r\\ -\sin \theta _r &{} \cos \theta _r \end{bmatrix} * \begin{bmatrix} V_{\alpha _s}\\ V_{\beta _s} \end{bmatrix} \end{aligned}$$
(5)

The pole voltages of the inverter will change from \(U_{DC}/2\) to zero based on the switching of the lower and upper switches of the leg, respectively.

Fig. 2
figure 2

Conventional PCC with OEW-IPMSM

The machine stator currents are predicted for the next instant using Euler’s estimation:

$$\begin{aligned} \textrm{d}z/\textrm{d}t = [z(k+1) - z(k)]/T_s \end{aligned}$$
(6)

Equations (1) and (2) are re-organized as:

$$\begin{aligned} \frac{\textrm{d}i_\textrm{ds}}{\textrm{d}t}= & {} \frac{V_\textrm{ds}}{L_d} - \frac{r_s i_\textrm{ds}}{L_d}+ \frac{i_\textrm{qs}L_q\omega _m}{L_d} \end{aligned}$$
(7)
$$\begin{aligned} \frac{\textrm{d}i_\textrm{qs}}{\textrm{d}t}= & {} \frac{V_\textrm{qs}}{L_q}-\frac{r_s i_\textrm{qs}}{L_q}- \frac{i_\textrm{ds}L_d\omega _m}{L_q} - \frac{\omega _m\lambda _r}{L_q} \end{aligned}$$
(8)

Equations (7) and (8) can be discretized using Euler’s first-order equation (6). Therefore, the current equations at instant ‘k’ of the stator are given by:

$$\begin{aligned} \begin{aligned} i_\textrm{ds}(k) = i_\textrm{ds}(k-1) + \left( \frac{T_s}{L_d}\right) (V_\textrm{ds}-r_si_\textrm{ds}(k-1)\\+i_\textrm{qs}(k-1)L_q \omega _m(k-1)) \end{aligned} \end{aligned}$$
(9)
$$\begin{aligned} \begin{aligned} i_\textrm{qs}(k) = i_\textrm{qs}(k-1) + (\frac{T_s}{L_q})(V_\textrm{qs}-r_si_\textrm{qs}(k-1)\i _\textrm{ds}(k-1)L_d \omega _m(k-1)-\omega _m(k-1)\lambda _r) \end{aligned} \end{aligned}$$
(10)

where \(T_s\) is the sampling period time in seconds, and k is considered as instant sample number. The torque equation of IPMSM is given by:

$$\begin{aligned} T_e = \left( \frac{3}{2} \right) \left( \frac{P}{2}\right) (\lambda _r i_\textrm{qs}(k)-(L_d - L_q)i_\textrm{qs}(k)i_\textrm{ds}(k)) \end{aligned}$$
(11)

where P is the pole number. The dynamics in the machine is represented by:

$$\begin{aligned} T_e - T_l = \left( \frac{J}{P/2}\right) \left( \frac{\textrm{d}\omega _m}{\textrm{d}t} \right) \end{aligned}$$
(12)

where J is the inertia, \(T_e\) is electromagnetic torque, and \(T_l\) is load torque.

3 Conventional PCC with OEW-IPMSM

The inputs for conventional PCC (C-PCC) are stator currents, rotor speed, rotor position and stator reference currents. In PCC, stator current component \(i_\textrm{qs}\) is proportional to the machine torque. Hence to reduce the ripples in torque, the current \(i_\textrm{qs}\) should be maintained constant. To maintain the stator current quadrature axis component constant \(i_\textrm{qs}\), the suitable voltage vector is to be chosen to minimize the variation between the current obtained after prediction and the machine actual measured current. Similarly, the stator current d-axis component \(i_\textrm{ds}\) is proportional to the flux of the machine, and hence, to maintain flux as constant, variation between the predicted value of \(i_\textrm{ds}\) and the measured value is minimized. The block diagram of C-PCC is shown in Fig. 2.

According to Fig. 2, the following main steps are implemented in conventional PCC

  1. 1.

    Prediction of q-axis and d-axis stator currents

  2. 2.

    Evaluation of cost function

  3. 3.

    Minimization of cost function

  4. 4.

    Dual inverter-fed OEW-IPMSM

Table 1 Voltage vectors

The actual stator currents of the machine (\(i_a\) and \(i_b\)) and rotor position are sensed at the instant ‘k’ for closed-loop operation. The two sensed currents are converted to \(\alpha \) - \(\beta \) reference frame using Clarke transformation and further converted to equivalent rotor reference frame currents (\(i_\textrm{ds}\) and \(i_\textrm{qs}\)). The sensed rotor electrical position is differentiated and given as speed reference which generates quadrature axis reference signal (\(i_\textrm{qs}^*\)) with speed PI controller. To maintain the flux constant and to avoid delays in the dynamics of the machine, the reference value of the direct axis stator current component (\(i_\textrm{ds}^*\)) is kept zero. The predicted values of stator currents of d-axis and q-axis at \((k+1)\)th instant being calculated using (6) are given by:

$$\begin{aligned} \begin{aligned} i_\textrm{ds}(k+1) = i_\textrm{ds}(k) + (\frac{T_s}{L_d})(V_\textrm{ds}-r_si_\textrm{ds}(k)\\+i_\textrm{qs}(k)L_q \omega _m(k)) \end{aligned} \end{aligned}$$
(13)
$$\begin{aligned} \begin{aligned} i_\textrm{qs}(k+1) = i_\textrm{qs}(k) + (\frac{T_s}{L_q})(V_\textrm{qs}-r_si_\textrm{qs}(k)\i _\textrm{ds}(k)L_d \omega _m(k)-\omega _m(k)\lambda _r) \end{aligned} \end{aligned}$$
(14)
Fig. 3
figure 3

Proposed PCC with OEW-IPMSM

The cost function ‘G’ has two control variables \(i_\textrm{qs}\) and \(i_\textrm{ds}\). The error difference between the reference and predicted values of the d-axis and q-axis stator currents forms the cost function. The reference current \(i_\textrm{qs}^*\) is generated from the speed PI controller, and \(i_\textrm{ds}^*\) is maintained at zero. The evaluation of cost function is given by:

$$\begin{aligned} G = |i_\textrm{qs}^* - i_\textrm{qs}(k+1)| + |i_\textrm{ds}^* - i_\textrm{ds}(k+1)| \end{aligned}$$
(15)

The value of ‘G’ is calculated for all 19 VVs given in Table 1. The cost function, which is calculated for all 19 VVs, is to be minimized such that the error between the currents is minimal. The VV corresponding to the minimal cost function value is selected, and the dual inverter will receive the corresponding gate pulses. Based on switching states by selecting the optimum VV, the dual inverter will receive corresponding gate pulses from the driver circuit. The output terminals of the dual inverter are connected to IPMSM terminals for three-level inversion.

4 Proposed PCC with OEW-IPMSM

The block diagram of proposed PCC (P-PCC) is shown in Fig. 3. The objectives of the proposed PCC are to reduce the q-axis current ripples (which reduce the torque ripples) and to reduce common mode voltage (CMV) and switching frequency. The C-PCC selects one active VV (AVV) from 19 VVs for the entire control interval, which is not necessarily required. Hence, the proposed PCC appoints two VVs, one AVV, and one null voltage vector (NVV) for one whole control interval. The AVV is chosen and implemented for a specific time interval called duty cycle. For the remaining time interval, a null vector is selected and implemented. The parameter duty cycle ‘d’ is evaluated based on the stator current waveform slopes when AVV and NVV are selected. This method involves the differential equations. The 19 VVs in \(\alpha \)-\(\beta \) space with CMV are given in Table 1. Here, the proposed PCC entails the following steps

  1. 1.

    Selection of Voltage vector group with reference to machine speed.

  2. 2.

    Stator currents prediction and one-step delay compensation.

  3. 3.

    Calculation of duty cycle d.

  4. 4.

    Calculation of flux weights \(\lambda _d\) and \(\lambda _q\).

  5. 5.

    Minimization of updated cost function \(G_{new}\).

4.1 Voltage Vector Group Selection

The conventional PCC predicts stator currents for all 19 VVs thereby imposes high computational burden on the processor. In proposed PCC, the 19 VVs are divided into groups and the respective VV group is selected based on the machine speed. The VVs in \(\alpha \)- \(\beta \) space are shown in Fig. 4. The VV group selection is explained in Table 2. The VVs presenting inner hexagon are selected for low speeds less than 150 rad/s, and VVs presenting the outer hexagon (with null vector) are selected for high speeds greater than 150 rad/s.

Fig. 4
figure 4

Voltage space vectors in \(\alpha \)-\(\beta \) plane

Therefore, the number of predictions of stator currents are reduced which reduces computational burden on the processor. Furthermore, due to very fewer switching transients (reduced VV strategy), and as the application of less voltage vectors in one sample period, the switching frequency of the inverter is reduced.

4.2 One-Step Delay Compensation

Sensing and transforming the analog signal into a digital format, along with the processing time of the control algorithm, introduces a certain time delay in real-time implementation. To compensate for the control performance during the digital implementation, one-step delay compensation is considered. The stator currents at \((k+2)^{nd}\) instant are given by:

$$\begin{aligned} \begin{aligned} i_\textrm{ds}(k+2) = i_\textrm{ds}(k+1) + (\frac{T_s}{L_d})(V_\textrm{ds}-r_si_\textrm{ds}(k+1)+\\i_\textrm{qs}(k+1)L_q \omega _m(k+1)) \end{aligned} \end{aligned}$$
(16)
$$\begin{aligned} \begin{aligned} i_\textrm{qs}(k+2) = i_\textrm{qs}(k+1) + (\frac{T_s}{L_q})(V_\textrm{qs}-r_si_\textrm{qs}(k+1)\i _\textrm{ds}(k+1)L_d \omega _m(k+1)-\omega _m(k+1)\lambda _r) \end{aligned} \end{aligned}$$
(17)

where \(i_\textrm{ds}(k+1)\) and \(i_\textrm{qs}(k+1)\) are the predicted stator currents from (13) and (14). The speed \(\omega _m\)(k+1) is the angular speed at the previous instant measured by the incremental encoder. The error in stator currents is reduced with one-step delay compensation thereby torque and flux ripples are reduced.

4.3 Duty Cycle Calculation

The active voltage vector (AVV) will be chosen for the full control interval by the conventional PCC method, increasing torque ripples. Additionally, the common mode voltage (CMV) at the inverter terminals is high due to the prolonged use of the AVV. The NV and AVV are chosen in one control interval in the proposed PCC. To lessen torque ripples and CMV, the AVV is only picked for a certain period of time known as the duty cycle, and the null vector is selected for the remaining time in one control interval. The slope of stator current (derivative of stator current with respect to time) is calculated by adding (1) and (2) vectorially. The slope of stator current with null voltage vector selection is calculated by equating the voltages to zero that is given by:

$$\begin{aligned} S_0 = \frac{-r_s i_s -j(L_d-L_q)\omega _m i_s-j(\omega _m\lambda _r)}{abs(L_d,L_q)} \end{aligned}$$
(18)

The slope of stator current with active voltage vector selection is the sum of slope of current with null voltage vector and the ratio of \(U_{opt}\) and \(abs(L_d,L_q)\) given by:

$$\begin{aligned} S_1 = S_0 + \frac{U_{opt}}{abs(L_d,L_q)} \end{aligned}$$
(19)

The error between measured and reference currents is calculated by:

$$\begin{aligned} e = ((i_\textrm{ds}^* + ji_\textrm{qs}^*) -{i_s}) \end{aligned}$$
(20)

where \(i_s\) is the spatial vector of stator current. The duty cycle ‘d’ for which the AVV is to be operated is calculated by:

$$\begin{aligned} d = \frac{abs(e+c)}{abs(S_1 T_s +c)} \end{aligned}$$
(21)

where ‘c’ is a constant given by:

$$\begin{aligned} c = U_{opt}\frac{T_s}{abs(L_d,L_q)} \end{aligned}$$
(22)
Table 2 Voltage vector group selection
Fig. 5
figure 5

Speed signal with torque and flux ripples of the machine at speed of 150 rad/s under zero load a C-PCC b P-PCC

Table 3 Torque ripple (Nm), flux ripple (mWb) and average switching frequency (kHz) comparison for C-PCC, PCC (Kumar & Kumar, 2022) and P-PCC under zero load condition
Table 4 Torque ripple (Nm), flux ripple (mWb) and %THD for C-PCC, PCC (Kumar & Kumar, 2022) and P-PCC at 10 Nm load
Fig. 6
figure 6

Speed signal with torque and flux ripples of the machine at load change of 10 Nm at speed of 150 rad/s a C-PCC b P-PCC

Fig. 7
figure 7

Speed signal with torque and flux ripples of the machine with speed variations in forward mode a C-PCC b P-PCC

Fig. 8
figure 8

Speed signal with torque and flux ripples of the machine with speed variations in reverse mode a C-PCC b P-PCC

4.4 Calculation of Flux Weights

Flux weights of q and d-axis are given by:

$$\begin{aligned} \lambda _q= & {} |(L_d - L_q)i_\textrm{qs}(k+2)| \end{aligned}$$
(23)
$$\begin{aligned} \lambda _d= & {} |\lambda _r+(L_d - L_q)i_\textrm{ds}(k+2)| \end{aligned}$$
(24)

4.5 Minimization of Updated Cost Function

The updated cost function \((G_{new})\) which consists of flux weights to reduce the flux ripples is given by:

$$\begin{aligned} G_{new} = \sqrt{g_1[(|i_\textrm{qs}^* - i_\textrm{qs}(k+2)|)^2 + (|i_\textrm{ds}^* - i_\textrm{ds}(k+2)|)^2]} \nonumber \\ \end{aligned}$$
(25)

where \(g_1\) is given by:

$$\begin{aligned} g_1 = d^2 (1- \frac{\lambda _d^2}{\lambda _q^2}) \end{aligned}$$
(26)

The suitable voltage vector which provides least value for the cost function (CF) (25) is selected as the optimal voltage vector which is activated for only certain interval of time called duty cycle. For example, at high-speed operation, if the voltage vector \(V_8\) yields least value of CF, then the switches \(S_{a1}^+\), \(S_{b1}^+\), \(S_{c1}^-\) of VSI-1 and \(S_{a2}^-\), \(S_{b2}^+\), \(S_{c2}^+\) of VSI-2 are turned ON for specific time called duty cycle. For the remaining time in a control interval, the VV \(V_0\) is activated thereby turning ON the switches \(S_{a1}^-\), \(S_{b1}^-\), \(S_{c1}^-\), \(S_{a2}^-\), \(S_{b2}^-\), \(S_{c2}^-\) which reduces torque ripples and common mode voltage.

5 Simulation Results

C-PCC is compared with P-PCC with results obtained from MATLAB/SIMULINK environment. In this comparison, the parameters like sampling time and PI gains are kept constant throughout the experiment. The machine performance is tested at steady state conditions and dynamic conditions using C-PCC and P-PCC at high, medium, and low speeds. The machine torque, machine speed, stator flux of the machine, and machine stator current are observed and recorded at different operating conditions for C-PCC and P-PCC. The simulation and machine parameters are shown in Appendix. Firstly, the IPMSM machine is tested under steady state conditions. Figure 5a, b shows the steady-state response of C-PCC and P-PCC at the machine speed 150 rad/s. As the proposed PCC is including two voltage vectors (one active voltage vector and one null vector) in one control cycle, the torque and flux ripples are reduced. From Fig. 5a, b, it is clearly shown that the torque and flux ripples are reduced in P-PCC. The torque and flux ripples are calculated with formula for standard deviation, and the values are tabulated in Tables 3 and 4. Then, the machine is tested under sudden load change dynamic conditions at 150 rad/s speed. The speed waveform with torque and stator flux of the machine is shown in Fig. 6a, b with sudden load variation of 10 Nm at 0.5 s. From Fig. 6a, b, it is clearly shown that the response of the machine is improved with P-PCC technique with less torque and flux ripples.

The machine is also tested under dynamic speed conditions with sudden speed variations under forward and reverse motoring. The speed, torque and stator flux of the machine under dynamic speed conditions in forward motoring mode with C-PCC and P-PCC are shown in Fig. 7a, b. The speed input of the machine is changed from 100 to 200 rad/s at 0.5 s, and the machine reached the speed of 200 rad/s at 0.503 s with C-PCC, whereas with P-PCC, the machine speed reached 200 rad/s at 0.501 s. Similarly, the speed input of the machine is changed from 200 to 250 rad/s at 1 s and the machine reached the speed of 250 rad/s at 1.002 s with C-PCC, whereas with P-PCC the machine speed reached to 250 rad/s at 1.0005 s. Therefore, the dynamic performance of the machine is improved using P-PCC as the implementation time of active voltage vector is reduced. From Fig. 7a, b, it is clearly observed that the torque and flux ripples are reduced in P-PCC technique.

Furthermore, the machine is operated under dynamic speed changes in reverse motoring mode. The speed signal with torque and stator flux ripples of the machine under dynamic speed conditions in reverse mode with C-PCC and P-PCC are shown in Fig. 8a, b. The speed input of the machine is changed from \(-100\) to \(-200\) rad/s at 0.5 s, and the machine reached the speed of \(-200\) rad/s at 0.503 s with C-PCC, whereas with P-PCC, the machine speed reached \(-200\) rad/s at 0.501 s. Similarly, the speed input of the machine is changed from \(-200\) to \(-250\) rad/s at 1 sec and the machine reached the speed of \(-250\) rad/s at 1.002 s with C-PCC, whereas with P-PCC the machine speed reached to \(-250\) rad/s at 1.0005 s. Hence, the dynamic performance of the machine is improved. Therefore, from the MATLAB/simulation results presented in Figs. 5, 6, 7 and 8 it is concluded that P-PCC has best performance when compared to C-PCC in all conditions.

Fig. 9
figure 9

Experimental setup

6 Experimental Results

A 3.7 KW, 1500 RPM, 415V, 4-pole IPMSM is used for the experimentation. The IPMSM is operated with dual inverter in Open-End winding configuration by generating three- level phase voltage. A d-SPACE RTI 1104 controller with a conventional PCC and a proposed PCC is used to test and validate the machine’s performance. The sampling time and PI gains are kept constant throughout the experiment for effective comparison. Figure 9 displays the experimental setup. For measuring the DC voltages and currents of the dual inverter, the LEM voltage sensors (LV-25) and current sensors (LA-25) are appropriately scaled. The predictive controller’s input is the sensor outputs coupled to the ADC channels in d-SPACE. The 1024 incremental encoder is used to sense the rotor position and is fed back as the speed input. The IPMSM motor shaft is coupled to the DC generator and a resistive load is used for load change testing. Machine parameters are defined in Appendix.

The machine performance is tested in a steady-state scenario with the speed at 150 rad/s as shown in Fig. 10. The speed signal with torque and flux ripples of the machine under no load at steady-state condition with speed of 150 rad/s using C-PCC and P-PCC is depicted in Fig. 10a, b. At steady-state operation of the machine with the speed of 150 rad/s, the common mode voltage at the inverter terminals is recorded with implementation of C-PCC and P-PCC as depicted in Fig. 11a, b, respectively. The experimental results shown in Fig. 11a, b prove that the CMV is reduced using the proposed PCC.

The resistive load connected to the DC machine coupled to IPMSM is turned ON, and the quick response is obtained using C-PCC and P-PCC, and the response is depicted in Fig. 12. The speed, torque and stator flux of the machine with load changes with C-PCC and P-PCC are depicted in Fig. 12a, b, respectively. The variation of stator current \((I_a)\) with load changes is depicted in Fig. 13a, b. The dynamic performance of the machine is verified with three stage step changes from 100 to 200 and finally to 250 rad/s as shown in Fig. 14a, b. The C-PCC takes 0.002 sec for the speed change from 100 to 200 rad/s, whereas P-PCC takes only 0.001 sec. Similarly, the dynamic performance of the machine in verified in reverse motoring operation with three step speed changes from -100 to -200 to -250 rad/s as shown in Fig. 15a, b.

The experimental results from Figs. 10 and 11 prove that the steady-state performance of the machine with proposed PCC is better when compared to conventional PCC. The control algorithm reacts rapidly whenever a step change in speed is performed to adapt the speed to the necessary reference value. The experimental results from Figs. 12 and 13 prove that the proposed PCC has better performance in the rapid load changes on the machine. The dynamic performance of the machine is also improved by using proposed PCC which is depicted in Figs. 14 and 15.

Fig. 10
figure 10

Experimental speed signal with torque and flux ripples at speed of 150 rad/s under zero load a C-PCC b P-PCC

Fig. 11
figure 11

Common mode voltage at the inverter terminals at the machine speed of 150 rad/s a C-PCC b P-PCC

Fig. 12
figure 12

Dynamic load changes: experimental speed signal with torque and flux ripples a C-PCC b P-PCC

Fig. 13
figure 13

Dynamic load changes: experimental speed signal with torque and current response a C-PCC b P-PCC

Fig. 14
figure 14

Dynamic speed changes: experimental speed signal with torque and flux ripples with speed changes in forward mode

Fig. 15
figure 15

Dynamic speed changes: experimental speed signal with torque and flux ripples with speed changes in reverse mode

Fig. 16
figure 16

Three-level phase voltage at the inverter terminals at 200 rad/s machine speed a C-PCC b P-PCC

Fig. 17
figure 17

Frequency spectrum of stator currents a C-PCC b P-PCC

Fig. 18
figure 18

Bar chart: comparison of torque and flux ripples for a C-PCC b PCC (Kumar & Kumar, 2022) c P-PCC

Fig. 19
figure 19

Bar chart: comparison of %THD and average switching frequency for a C-PCC b PCC (Kumar & Kumar, 2022) c P-PCC

Fig. 20
figure 20

VVs selection a Conventional PCC, b proposed PCC

The conventional PCC method uses a single voltage vector for the entire sampling interval which yields in over-regulation and produces more torque and flux ripples. In the proposed PCC, two voltage vectors are used in one control interval and the duty cycle is calculated to operate active voltage vector. Based on the error in the direct axis current \(i_\textrm{ds}\), and quadrature axis current \(i_\textrm{qs}\), the duty cycle is determined. Any variation in flux and torque will be reflected in the error in currents, and the duty will be changed at the same time to reduce these errors. Based on the results of the experiments, the proposed method offers higher performance under both load and no-load scenarios. The common mode voltage (CMV) at the terminals of the dual inverter employing C-PCC is one-sixth of the sum of both inverter DC voltages. When the AVV is selected for the entire control period in C-PCC, at least one upper IGBT switch is turned on continuously for one control interval. As a result, CMV is greater in C-PCC. In the proposed PCC, the AVV is only used for a short period, and the null voltage vector is used for the rest of the time. Hence, CMV is reduced as Null vector will not turn ON any upper IGBT switch. The phase voltage at the inverter terminals for C-PCC and P-PCC at the machine speed of 200 rad/s is shown in Fig. 16a, b. The stator current of the machine under 5 Nm load at 1000 RPM is sensed using the LEM current sensor LA-25, and % total harmonic distortion (THD) is computed as shown in Fig. 17a, b which shows that %THD in stator current is lessened with implementation of P-PCC. The experimental results obtained are interpreted as a bar chart as shown in Fig. 18 for comparison of torque and flux ripples and Fig. 19 for comparison of THD and average switching frequency that displays that P-PCC gives better performance when compared to C-PCC and PCC (Kumar & Kumar, 2022). Furthermore, Table 3 shows the comparison of C-PCC, PCC (Kumar & Kumar, 2022) and proposed PCC with torque ripples, flux ripples and switching frequency at low, medium and high speeds. It is observed that the proposed PCC reduced 48 to 54% of the torque ripples from the conventional PCC under no-load condition. The proposed PCC reduced 21 to 27% of torque ripples present in PCC (Kumar & Kumar, 2022). The voltage vector selection in C-PCC and P-PCC is presented in Fig. 20, which shows that the P-PCC method has less switching transients than in C-PCC which reduces switching frequency. The flux ripples of 1 to 3% are reduced in proposed PCC. The switching frequency of the dual inverter is also reduced almost of 16% with the implementation of duty cycle. The %THD in stator current with C-PCC at low speed conditions (60 rad/s) is high, i.e., 8.87%, and the P-PCC reduced the %THD in stator current to 4.47%.

7 Conclusion

The novel duty-modulated predictive current control (PCC) with a reduced voltage vector strategy of OEW-IPMSM is presented in this paper, which selects the active voltage vector (AVV) for just a specific amount of time known as the duty cycle, and a null vector is selected for the remaining time period. The AVV is selected for the entire control interval in conventional PCC, which turns on at least one of the upper IGBT switches for the entire time period. In contrast to conventional PCC, the proposed PCC method chooses an AVV and a null vector for one control interval to increase machine performance under steady-state conditions. In the proposed PCC, the reduced voltage vector (VV) strategy is accomplished by separating the 19 VVs into two VV groups based on operating speed of the machine. The proposed PCC also employs an updated cost function that utilizes flux weights to reduce flux ripples, improving machine performance in steady-state situations. As the proposed PCC employs the AVV for a particular period of time and a null vector for the rest of the time, the common mode voltage (CMV) at the inverter terminals is minimized. The effectiveness of the P-PCC method is studied using MATLAB/SIMULINK and validated by an experiment using a 3.7 kW, 415 V, 4-pole IPMSM machine controlled by a d-SPACE RTI1104 controller.