## 4 Direct Predictive Torque Control Algorithm for SRM
### The DPTC Algorithm  
During commutation, the incoming phase is always expected to provide torque in place of the outgoing phase. Therefore, when the torque needs to be increased, the incoming  
Figure 4: Schematic diagram of the DPTC and PWM-DITC algorithms. phase torque should be increased first. When the torque needs to be reduced, the outgoing phase torque should be reduced preferentially. In the DPTC algorithm, the commutation operation is determined by predicting the torque that the present flux linkage value can generate in the next period. Specifically, assume that the flux linkage is constant in the present period \(k\), i.e., \(\phi_{p}(k+1)=\phi_{p}(k)\). Then, by combining the angle calculated in (8) and using LUT \(i_{p}(\psi_{p},\theta_{p})\) and LUT \(T_{p}(i_{p},\theta_{p})\), the phase torque \(T_{p}^{\prime}(k+1)\) of the next period can be estimated. Further, the total torque is obtained as \(T^{\prime}(K+1)=sum(T_{p}^{\prime}(k+1))\). To assist the commutation, a commutation factor \(\delta\) shown in (18) is defined, and the torque allocation scheme of the DPTC can be determined by judging the value of \(\delta\). \[\delta=T_{ref}-T^{\prime}(K+1) \tag{18}\]  
When \(\delta>0\), it indicates that the present flux linkage is insufficient to generate the reference torque. In this case, the flux linkage of the incoming phase should be increased appropriately to keep the total output torque constant. To ensure that the phase torque is reachable, the torque boundary of the incoming phase is rewritten as  
\[T_{in,\text{max}}=\left\{ \begin{array}{ll}T_{in,\text{max}}&T_{ref}-T_{in, \text{max}}\geq T_{ou,\text{min}}\\ T_{ref}-T_{ou,\text{min}}&T_{ref}-T_{in,\text{max}}<T_{ou,\text{min}}\end{array} \right. \tag{19}\]  
Thus, the maximum increment in torque of the incoming phase is calculated as  
\[\Delta T_{in,max}=T_{in,\text{max}}(k+1)-T_{in}^{\prime}(k+1) \tag{20}\]  
where the estimation method of the maximum/minimum torque is the same as (12) and (13). The torque allocation set for both consecutive phases can be given as  
\[\left\{ \begin{array}{ll}T_{in,ref,n}(k+1)=T_{in}^{\prime}(k+1)+\frac{u}{8} \Delta T_{in,\text{max}}\\ T_{ou,ref,n}(k+1)=T_{ref}-T_{in,ref,n}(k+1)\end{array} \right.n=1,2\cdots 8 \tag{21}\]  
where \(T_{in,ref,n}\) and \(T_{ou,ref,n}\) are the torque allocation set of the incoming phase and outgoing phase, respectively. Please note that the value of \(n\) is determined according to the computing power of the processor, and its minimum value of \(1\) guarantees the commutation operation. Similarly, when \(\delta<0\), the flux linkage of the outgoing phase should be reduced preferentially to keep the total output torque constant. At this point, the torque of the outgoing phase is reduced and its torque boundary can be defined as  
\[T_{ou,\text{min}}=\left\{ \begin{array}{ll}T_{ou,\text{min}}&T_{ref}-T_{ou, \text{min}}\leq T_{in,\text{max}}\\ T_{ref}-T_{in,\text{max}}&T_{ref}-T_{ou,\text{min}}>T_{in,\text{max}}\end{array} \right. \tag{22}\]  
The maximum decrease in torque of the outgoing phase is calculated as  
\[\Delta T_{ou,\text{max}}=T_{ou,\text{min}}(k+1)-T_{ou}^{\prime}(k+1) \tag{23}\]  
According to (23), \(\Delta T_{ou,\text{max}}\) should be a nonpositive number to ensure that the torque of the outgoing phase is not increased. However, when the outgoing phase cannot be demagnetized to zero at the stator-rotor alignment position, this may not be satisfied, and an undesired negative torque is generated. A solution to this situation is given in the next subsection. At this point, the set of torque allocations for the consecutive phases is defined as  
\[\left\{ \begin{array}{ll}T_{ou,ref,n}(k+1)=T_{ou}^{\prime}(k+1)+\frac{u}{8} \Delta T_{ou,max}\\ T_{in,ref,n}(k+1)=T_{ref}-T_{ou,ref,n}(k+1)\end{array} \right.n=1,2\cdots 8 \tag{24}\]  
From the above commutation principle, the torque ripple is suppressed under each scheme of the torque allocation set.