# Predictive Speed-Control Algorithm Based on a Novel Extended-State Observer for PMSM Drives
## 5 Simulation and Experimental Results
### Experimental Results  
The overall experiments are completed with the LINKS-RT rapid prototyping platform. The system used in this paper is a 130 MB150A non-salient pole PMSM and the parameters are shown in Table 1. The inverter switching is 10 KHz. Figure 5 shows the hardware and experimental configuration of the PMSM drive and control system. The platform of the experiment is given in Figure 6.  
Figure 4: Simulation curve of load disturbance tracking based on the ESO. Figure 5: The experimental configuration of the PMSM drive and control system. Figure 3: Simulation curves of speed response under the load disturbance. (**a**) \(n=200\) r/min; (**b**) \(n=600\) r/min. To verify the advantages of the proposed control algorithm, the GPC+ESO method are compared with PI method in speed response and anti-disturbance performance. In the experiment, the different reference speed values are given based on the same control parameters and the integral term is introduced to the controller to reject parameters disturbance. The load torque disturbance and parameter disturbance are added suddenly when the motor reaches steady state, and the load disturbance is removed after a period of time. The optimal PI control parameters are determined by the trial and error method and given as following. The parameters for the \(d-\)axis and \(q-\)axis current loop are the same \(kp=7\), \(ki=18\), sampling time \(T_{s}=0.0001\) s. The parameters for the speed loop are given as \(kp=0.02\), \(ki=0.25\). In GPC speed controller, the predictive horizon \(T_{r}=0.005\), and the parameters for the \(d-\)axis current loop are \(kp=7\), \(ki=18\). The parameters for the ESO are chosen as \(\rho=10\), \(\alpha_{1}=0.9\), \(k_{1}=k_{2}=1\), \(C=40\), and \(\delta=0.05\). The reference speed is chosen as \(n=200\) r/min, \(n=600\) r/min, \(n=800\) r/min and \(n=1000\) r/min, respectively. In the closed-loop speed regulation experiment of PMSM, the speed response curves at different given reference speed are shown in Figure 7. Figure 7a shows that under the speed command \(n=200\) r/min, the overshoot of the PI method is about \(12.5\%(25r)\), the settling time to the steady state is about \(1\)s. In the same condition, the speed response based on GPC+ESO method has no overshoot and the settling time taken to steady state is approximately \(0.5\) s. Figure 7b-d also show that compared with PI controller, the GPC+ESO method shows a smaller overshoot and shorter settling time. Figure 8 shows the experimental curves of \(u_{q}\) under GPC+ESO and PI method. The results reflect that GPC+ESO speed controller does not need higher voltage to achieve the reference speed. In addition, the voltage \(u_{q}\) has a smaller fluctuation in the GPC+ESO method. From above figures, it can be concluded that the GPC+ESO method can enhance the dynamic performance of the PMSM drive systems. Figure 6: Experimental platform. Figure 8: Experimental response curves of \(u_{q}\) under the GPC+ESO and PI method. (**a**) \(n=200\) r/min; (**b**) \(n=600\) r/min; (**c**) \(n=800\) r/min; and (**d**) \(n=1000\) r/min. Figure 7: Experimental speed curves under the GPC+ESO and PI method. (**a**) \(n=200\) r/min; (**b**) \(n=600\) r/min; (**c**) \(n=800\) r/min; and (**d**) \(n=1000\) r/min. Then, to verify the performance of the proposed controller under sudden load disturbance impact, experiments have also been completed in this part. The experimental results are shown in Figures 9-11. As can be seen from Figure 9, when the motor is running at a steady state of \(n=200\) r/min, a load disturbance \(\tau_{L}=2\) N\(\cdot\)m is added at \(t=10\) s and it is removed at \(t=15\) s. It can be observed that the proposed method has a better anti-disturbance performance than PI control, and when an abrupt load is added, the fluctuation of the GPC+ESO method is about \(24r\), \(20r\), and \(29r\), respectively at \(200\) r/min, \(600\) r/min and \(800\) r/min.