## 2 DPCC with Delay Compensation  
### The Principles of One-Step Delay Compensation DPCC  
The voltage mathematical model [18] for a PMSM in a \(dq\)-axis rotating coordinate system can be written as follows:  
\[\left\{ \begin{array}{c}u_{d}=R_{s}i_{d}+L_{d}\frac{d{i_{d}}}{dt}-\omega_{e}L_{q }i_{q}\\ u_{q}=R_{s}i_{d}+L_{q}\frac{d{i_{q}}}{dt}+\omega_{e}L_{d}i_{d}+\psi_{f}\omega_{ e}\end{array} \right. \tag{1}\]  
where \(u_{d}\) and \(u_{q}\) represent the \(dq\)-axis voltages; \(L_{d}\) and \(L_{q}\) represent the \(dq\)-axis inductances; and \(\psi_{f}\), \(R_{s}\), and \(\omega_{e}\) represent the permanent-magnet flux linkage, the stator resistance of the PMSM, and the electrical angular velocity, respectively. The \(d\)-axis and \(q\)-axis inductances are equal in the surface-mounted permanent-magnet synchronous motor (SPMSM) used in this article, and this is written as \(L_{d}=L_{q}=L_{s}\). Let us rewrite Equation (1) as a state equation, taking the voltage and current as the state variables in the \(dq\)-axis [19]:  
\[ \begin{array}{c}\begin{bmatrix}\frac{d{i_{d}}}{dt}\\ \frac{d{i_{dq}}}{dt}\end{bmatrix}=\begin{bmatrix}-\frac{R_{s}}{L_{s}}&\omega_{ e}\\ -\omega_{e}&-\frac{R_{s}}{L_{s}}\end{bmatrix}\begin{bmatrix}\begin{array}{c}i_{ d}\\ i_{q}\end{array}\end{bmatrix}+\begin{bmatrix}\frac{1}{L_{s}}&0\\ 0&\frac{1}{L_{s}}\end{bmatrix}\begin{bmatrix}\begin{array}{c}u_{d}\\ u_{q}\end{array}\end{bmatrix}+\begin{bmatrix}0\\ -\frac{\psi_{f}\omega_{e}}{L_{s}}\end{bmatrix}\end{array} \end{array} \tag{2}\]  
In practice, if the current loop control period is quite short, Equation (2) can be discretized to obtain a current prediction model:  
\[ \begin{array}{c}\begin{bmatrix}i_{d}(k+1)\\ i_{q}(k+1)\end{bmatrix}=F(k)\begin{bmatrix}\begin{array}{c}i_{d}(k)\\ i_{q}(k)\end{array}\end{bmatrix}+G\begin{bmatrix}\begin{array}{c}u_{d}(k)\\ u_{q}(k)\end{array}\end{bmatrix}+H(k)\end{array}  \tag{3}\]  
where \(F(k)= \begin{bmatrix}1-\frac{T_{s}R_{s}}{L_{s}}&T_{s}\omega_{e}(k)\\ -T_{s}\omega_{e}(k)&1-\frac{T_{s}R_{s}}{L_{s}}\end{bmatrix} \), \(G= \begin{bmatrix}\frac{T_{s}}{L_{s}}&0\\ 0&\frac{T_{s}}{L_{s}}\end{bmatrix} \), and \(H(k)= \begin{bmatrix}0\\ -\frac{T_{s}\psi_{f}\omega_{e}(k)}{L_{s}}\end{bmatrix} \). \(T_{s}\) denotes the sampling time of the control system; \(i_{d}(k+1)\) and \(i_{q}(k+1)\) denote the \(dq\)-axis predictive currents at the \((k+1)\)th moment; \(i_{d}(k)\) and \(i_{q}(k)\) denote the \(dq\)-axis feedback currents at the \(k\)th moment; \(u_{d}(k)\) and \(u_{q}(k)\) denote the \(dq\)-axis predictive voltages at the \(k\)th moment; and \(\omega_{e}(k)\) denotes the electrical angular velocity at the \(k\)th moment. In an ideal case, the voltage generated by predictive control can make the practical feedback current follow the reference value at the next moment, namely \(i_{dq}(k+1)=i_{dq}^{*}(k+1)\), where \(i_{dq}^{*}(k+1)\) denotes the \(dq\)-axis reference current at the \((k+1)\)th moment. From (3), the predictive voltage of the DPCC output at the \(k\)th moment is as follows:  
\[\left[ \begin{array}{c}u_{d}(k)\\ u_{q}(k)\end{array} \right]=G^{-1}\Bigg{\{} \begin{bmatrix}i_{d}^{*}(k+1)\\ i_{q}^{*}(k+1)\end{bmatrix} -F(k) \begin{bmatrix}\begin{array}{c}i_{d}(k)\\ i_{q}(k)\end{array}\end{bmatrix} -H(k)\Bigg{\}} \tag{4}\]  
However, in practical digital systems, current sampling, program calculation, etc., will cause a time delay [8], such that the practical feedback current cannot follow the reference value at the next moment. Therefore, in this article, DPCC with delay compensation is used to obtain the predictive voltage at the \((k+1)\)th moment. \[\left[ \begin{array}{c}u_{d}(k+1)\\ u_{q}(k+1)\end{array} \right]=G^{-1}\Bigg{\{} \begin{bmatrix}i_{d}^{*}(k+2)\\ i_{q}^{*}(k+2)\end{bmatrix} -F(k+1)\Bigg{[} \begin{array}{c}i_{d}(k+1)\\ i_{q}(k+1)\end{array}