1. Introduction
Recently, permanent magnet synchronous motors (PMSMs) have been applied in industrial applications and electric vehicles because of their outstanding specifications such as high efficiency, high power density, and large torque-to-weight ratio. In these applications, the field-oriented control (FOC) algorithm is executed effectively, requiring precise rotor position and speed, which are usually measured by a mechanical position sensor installed on the motor’s shaft such as digital encoder, resolver, and Hall sensor. However, the position sensor installation increases the size and cost for the PMSM drive control system. In some cases, sensor failure makes the PMSM system unstable and reduces control reliability. To solve these shortcomings, sensorless control techniques have been studied. Since the back electromotive force (EMF) provides the information of rotor position and speed, back EMF-based estimators are widely proposed, such as the Luenberger observer [
1,
2], the extended Kalman filter (EKF) observer [
3,
4,
5], the model reference adaptive system (MRAS) observer [
6,
7], or the sliding mode observer (SMO) [
8,
9,
10,
11,
12,
13,
14,
15]. Among those observers, SMO is the most applicable because it has simple structure, robustness against disturbance, low sensitivity to parameter perturbations, and easy implementation.
Generally, the arctangent function is realized to get the rotor position information based on the estimated back EMF obtained by the SMO solution. However, the back EMF is impacted by the chattering problem and noise. To increase the estimator’s accuracy and robustness, several phase-locked loop (PLL) structures have been widely researched [
11,
12,
13,
15,
16,
17,
18]. The conventional PLL is suitable for one-direction rotation motor only when the parameters are already configured. The reason is that it is utilized with an estimation error, influenced by the sign of speed in the estimated back EMF, which makes a large error of 180° in rotor position estimation when the direction reversion transition happens. Thus, the conventional PLL is not applied in some applications, requiring reversible motor rotational direction operation. To overcome the disadvantage of the conventional PLL, the tangent function-based estimation error is introduced in [
16]. However, it is very sensitive to noise, and the obvious estimation error may be obtained when the back EMF crosses zero. Other research using the back EMF signal reconstruction-based estimation error is presented in [
12,
18]. Although two abovementioned solutions can solve the limitation of the conventional PLL, the position estimation error is not guaranteed to converge to zero because they have three stable points in the phase portrait. Additionally, the estimation error in three aforementioned structures of PLL is constructed from the estimated back EMF, which is too small at the standstill stage or the low-speed region and is affected by noise significantly. Furthermore, to ensure the estimator works precisely, the motor must be ramped up to the specific speed threshold, where the back EMF is large enough for estimation. Therefore, to overcome the startup and reversal problems, the combination of the
I-f control strategy and the SMO-PLL estimator is implemented in this paper, where the conventional PLL is modified by a position offset value.
The high-performance motor drive control system requires a good tracking response, robustness against disturbance, adaption to parameter variations, and a wide adjustable speed range. Therefore, many speed controllers, such as the RBFNN (radial basis function neural network)-based self-tuning PID (Proportional-Integral-Derivative) controller [
15], the sliding mode controller [
19], the fuzzy neural network controller [
20], and the adaptive fuzzy controller [
21] have been proposed to improve system performance. Among these algorithms, in this paper, the neural fuzzy controller (NFC) researched in [
22] with only the simulation results for the sensor-based PMSM drive control system is presented and realized in the real-time hardware platform. The main core of NFC is the fuzzy logic controller (FLC). FLC is one of the most effective approaches for controlling the nonlinear system, converting the linguistic control rules based on experts’ knowledge into an inference mechanism to regulate the control signals on the system appropriately. Although several successful industrial applications of FLC have been implemented, proper fuzzy membership functions and fuzzy rules designation without the online learning and adaptive adjustment algorithm are not easy to be executed. Thus, FLC has incorporated a neural network with an adaptive mechanism. This integrated controller inherits the merits of both the FLC and the neural network. It performs the identification and learning ability, the parameter adaptation, and uncertain information handling concurrently. In the structure of NFC, the system is firstly identified by an RBFNN which has a simple neural network structure with fast convergence property. Then, the parameters of FLC are tuned by an adjusting mechanism based on the real-time identified plant information (Jacobian transformation) and the gradient descent method to adapt to the dynamics system characteristics.
Accordingly, in our paper, an NFC-based speed controller is realized to enhance the performance of the sensorless PMSM drive control system, which is based on the combination of the SMO-PLL estimator and the I-f control strategy. The control algorithm was first evaluated in simulation and then deployed to a real-time platform, established on the DSP (Digital Signal Processor) F28379D (C2000™ LAUNCHXL, Texas Instruments, Inc., Dallas, TX, USA). The system performance is checked under the different experimental conditions with a dynamic load system. The analyzed results demonstrate that the system starts up with diverse external loads, operates in two directions, and switches the rotational direction stably. Comparing to the PI (Proportional-Integral) speed controller, the NFC-based speed controller presents a better tracking performance, faster response and robustness against disturbance. Additionally, the development time for DSP application is substantially shortened when the motor control algorithm is integrated into MATLAB Simulink (MATLAB 2017a, The Mathworks, Inc., Natick, MA, USA) based on the Embedded Coder Support Package utilities.
The remainder of this paper is arranged as follows.
Section 2 presents the sensorless PMSM drive control system, including the sliding mode observer, the PLL’s structures, and the
I-f control strategy. The structure of neural fuzzy controller is described in
Section 3, consisting of the FLC, the RBFNN, and the adjusting mechanism. In
Section 4, the effectiveness and the correctness of the control algorithm are evaluated by the simulation results. The proposed algorithm is confirmed on the real-time platform in
Section 5. Finally,
Section 6 gives the conclusion.
4. Simulation Results
To demonstrate the correctness of the proposed control algorithm for the PMSM drive system, the system performance was tested in both a simulation and real-time hardware within different experimental conditions. The first case is controlling the motor for two directions in the wide speed range to validate the tracking response and the estimator’s correction. The estimated values were compared to the actual values, which were measured by the digital incremental encoder. The second case is the direction reversion transition to make sure that the system can switch the direction stably. The third case is starting up the motor with the different initial external load and comparing the system performance between the proposed NFC-based speed controller and the PI speed controller. That confirms the executed ability of the I-f startup strategy and the system’s robustness against disturbance. All instances are inspected on the PMSM control system and dynamic load system, where the PMSM’s parameters are listed as rated power of 750 W, rated current of 4.24 A, rated speed of 2000 rpm, phase resistance of 1.326 Ω, phase inductance of 2.952 mH, back-EMF constant of 56.5 VL-L/krpm, torque constant of 0.86 Nm/A, inertia of 3.63 Kg·cm2, and pole pairs of 4.
Furthermore, the PI speed controller has fixed parameters and not flexible to the PMSM drive control system, which is a dynamic, multivariable, and nonlinear system. Especially, the PMSM drive control system is usually operated under various conditions or dynamics load. Therefore, the PI controller only works effectively at a specific operating condition, where the PI parameters are designed in correspondence to the system characteristics. For a fair comparison between the NFC-based speed controller and the PI speed controller, the system performances were analyzed with the same PI’s parameters. In the third experimental condition, the PI speed controller is firstly set for the case of an external load of 50 Ω, satisfying the performance criteria such as the transient response without the overshoot or undershoot, and with the short settling time and the zero steady-state error. Then, the operating condition is varied by applying two different external load values on the system to evaluate the system performance for both the PI and NFC-based speed controllers.
The NFC-based speed controller for the sensorless PMSM drive control system was completely designed in MATLAB Simulink, and the overall system is shown in
Figure 7. The sampling frequency for real-time platform modeling (block A) is 20 kHz. In the motor control algorithm (block B), the sampling frequency for speed loop control is 1 kHz, while the sampling frequency for the estimator and the current control loop is 20 kHz. The simulation data (block C) are acquired and monitored with the sampling frequency of 20 kHz. The PI controllers’ parameters are set in the current control loop as
KPq = 0.25,
KIq = 0.025,
KPd = 0.25,
KId = 0.025. The NFC-based speed controller is realized in the speed control loop. For the FLC, the membership function’s values are set as
E= [
e1 e2 e3 e4 e5 e6 e7] = [
−225 −150 −75 0 75 150 225] and
dE = [
de1 de2 de3 de4 de5 de6 de7] = [
−187.5 −125 −62.5 0 62.5 125 187.5]. The initial fuzzy rule table values are set as in
Table 1. These parameters are adjusted during the operating time with the adaptive rate of 0.25. For the neural network, the initial neuron parameters are set as follows: node centers
Cl = [−0.5 −0.25 0.0 0.25 0.5], node widths
b = [0.25 0.25 0.25 0.25 0.25], connective weights
w = [0.00625 0.00625 0.00625 0.00625 0.00625], momentum factor
= 0.95, and the learning rate
= 0.475. Moreover, the PI’s parameters of the PI and NFC-based speed controller are set as
Kpw = 1.725 and
Kiw = 0.030. Additionally, the dynamic load system is modeled by a generator and the electrical load. The electrical load is comprised of a rectifier, a capacitor of 470 μF, and the resistor load bank. In the first and second experimental conditions, the motor is operated with a total resistance load of 100 Ω.
Figure 8 presents the motor’s performance in the positive direction for the wide speed range, including: (1) the startup from the standstill; (2) stepping up to the rated speed; and (3) slowing down. The command speed is varied in a sequence of 0 → 200 → 500 → 1000 → 1500 → 2000 → 1600 → 1200 → 800 → 1000 rpm.
Figure 8a indicates that the estimated rotor speed overlaps the actual value and closely tracks the command speed properly.
Figure 8b implies that the current
iq is regulated proportionally to the command speed while the current
id almost is equal to zero.
Figure 8c–f illustrates the estimated position, actual position, and the estimation errors at the speeds of 500, 1000, 1500, and 2000 rpm in a period of 0.15 s. There are 5, 10, 15, and 20 position cycles, corresponding to the rotation frequencies of 33.33, 66.67, 100, and 133.33 Hz, respectively. These values are proper to the motor with four pole pairs. The actual and estimated positions come close to each other; thus, the estimation error is equal to zero.
The motor’s performance in the negative direction for the wide speed range is illustrated in
Figure 9. The waveform of the command speed is the same as in the positive direction, only the speed has the opposite value. Comparing to
Figure 8, the speed response, the current, and the rotor position in the negative direction are just the reverse of their value. In the positive direction, the rotor position is increased from 0° to 360° for one electrical cycle, while the rotor position is decreased from 360° to 0° in the negative direction. Therefore,
Figure 8 and
Figure 9 refer that the motor control system has worked for two directions with the same quality. In both rotational directions, the motor startups from the standstill stage with the initial reference current
of 0.63 A. The ratio for decreasing the reference current
is set up at the value of 0.42 A/s. The motor control algorithm is switched to the sensorless control mode at t = 1.788 s, where the reference current
is decreased to 0.1213 A.
The motor’s speed performance in the reversal operation is presented in
Figure 10. Firstly, the motor is started in the positive direction, and then accelerated and decelerated, following the sequence: 0 → 200 → 700 → 200 rpm. Secondly, the command speed is set up to reverse the rotational direction from 200 to −200 rpm at t = 4 s. The motor control algorithm is transferred to the
I-f control mode from the sensorless control mode. When the motor has already operated in the negative direction, the motor control algorithm is switched to the sensorless control mode again and the command speed is varied by the sequence: −200 → −700 → −200 rpm. Thirdly, a similar procedure is implemented when the command speed is changed to reverse the rotational direction from −200 to 200 rpm at t = 7 s. During the operation of the motor, the estimated rotor speed almost tracks the reference speed and approximates the actual rotor speed for both the sensorless control mode and the
I-f control mode. Moreover, the current response in
Figure 10b indicates that the reference current
is regulated differently for the sensorless control mode and the
I-f control mode in the rotational direction reversion. Therefore, the rising time and settling time are different in the speed transition between the rotational direction reversion and the varied speed in one direction. It takes a larger time to reverse the direction.
Figure 10c illustrates the rotor position when the motor changes its direction to the negative direction; there is a larger estimation error and the maximum value is −38.67° at t = 4.077 s. Additionally, the maximum rotor position estimation error is 45.25° at t = 7.078 s in the case of changing the direction from the negative value to the positive value in
Figure 10d. However, these estimation errors could be accepted because the direction reversion time only takes about 0.111 s. It is the period that the system is operated in the
I-f control mode. Therefore,
Figure 10 implies that the
I-f control mode makes the motor change the direction stably and the modified conventional PLL works effectively. The estimation error still equals to zero after changing the rotational direction.
The system performance for the PI speed controller and the NFC-based speed controller is presented in
Figure 11 when the motor startups with the initial resistance load of 100 Ω. The rotor speed follows the sequence of 0 → 200 → 500 → 1000 rpm until t = 4 s. Then, the command speed is regulated as a square wave with a period of 1 s and the speed variation from 1000 to 1500 rpm. At t = 5.5 s, more resistance load is added to the total value of 50 Ω. It implies that the larger external load is suddenly applied to the motor, resulting in a drop of rotor speed briefly because it takes some time to raise the energy supplied to the system. In the PI controller, the rotor speed decreases to the minimum of 950 rpm at t = 5.531 s and steadies at 1000 rpm again at t = 5.751 s. The recovery time is 0.220 s with a speed reduction of 50 rpm. In the NFC controller, the rotor speed decreases to the minimum of 964 rpm at t = 5.523 s and steadies at 1000 rpm again at t = 5.679 s. The recovery time is 0.156 s with a speed reduction of 36 rpm.
Figure 12 shows the system performance when the motor startups with the initial resistance load of 50 Ω. The speed command is also varied as the same as its waveform, as shown in
Figure 11. Because the larger external load is applied in the startup mode, before the earlier sensorless control mode switching at t = 1.702 s, the reference current
is reduced to the value of 0.1818 A (
Figure 12), which is higher than the case shown in
Figure 11. Those corresponding values in
Figure 11 are 1.778 s and 0.1213 A, respectively. At t = 5.5 s, the resistance load is varied to obtain the total value of 100 Ω. It implies that less external load is applied to the system. In the PI controller, the motor increases the speed until reaching the maximum speed of 1051 rpm, at t = 5.526 s, and then stabilizes at 1000 rpm again at t = 5.724 s. The recovery time is 0.198 s with the speed increment of 51 rpm. In the NFC controller, the rotor speed is increased to the maximum of 1025 rpm, at t = 5.519 s, and stabilizes at 1000 rpm again at t = 5.687 s. The recovery time is 0.168 s with the speed increment of 25 rpm.
The comparison of the different speed performances for the PI speed controller and the NFC-based speed controller is presented in
Figure 13 and
Figure 14. It is easy to see that the system has a better performance in the NFC-based speed controller. The motor speed tracks the command speed perfectly, without the overshoots or undershoots for two cases of external load. It also has a faster response, with the settling time of 0.149 s. However, there is a little difference in the speed performance for two cases of external load in the PI speed controller. In the case of R
L = 100 Ω, the system has an overshoot and an undershoot, at about +10 rpm, and the settling time of 0.267 s. The system has better performance, without overshoots or undershoots, and the settling time of 0.164 s in the case of R
L = 50 Ω, where the PI’s parameters are set appropriately.
Figure 13 and
Figure 14 demonstrate that the PI speed controller can only work properly at the defined condition (R
L = 50 Ω), while the proposed NFC-based speed controller works effectively for both cases to obtain a good performance because it has a mechanism to adjust its parameters, adapted to the dynamic system characteristic.
In summary, the motor control system’s performance is analyzed in
Figure 8,
Figure 9,
Figure 10,
Figure 11,
Figure 12,
Figure 13 and
Figure 14. Several command speed waveforms and the varied dynamic load conditions are applied. Those results imply that the estimator works successfully. The estimated values approach the actual values for both rotor speed and rotor position. The NFC-based speed controller improves the system performance effectively and presents the robustness against disturbance. The rotor speed almost tracks the command perfectly, with a zero steady-state error, without overshoot or undershoot, and having shorter settling time, in comparison to the PI speed controller. Additionally, the system switches the control mode smoothly and reverses the rotational direction stably when the
I-f control strategy is implemented. The simulation results have already confirmed that the proposed control algorithm for the sensorless PMSM drive control system is correct and effective.
5. Experimental Verification and Results
After evaluating the system performance by simulation, the motor control algorithm was compiled and deployed to the experimental PMSM drive control system, as presented in
Figure 15. Moreover, to analyze the system performance, the system data were transmitted to MATLAB Simulink by the SCI function, integrated into the DSP with the sampling frequency of 2 kHz. The experimental system involves a PMSM coupled to a generator, an inverter, a control circuit, and a DSP F28379D. The DSP F28379D is equipped with 200 MHz dual C28xCPUs and dual CLAs, 1 MB Flash, 16-bit/12-bit ADCs, comparators, 12-bit DACs, HRPWMs, eCAPs, eQEPs, CANs, etc. The isolation and protection functions are integrated into the control circuit, which helps lock the PWM control signal in the case of overcurrent problem. The electrical load is comprised of a rectifier, a capacitor of 470 μF and 450 V, and the resistor load bank.
The sampling frequencies of the speed control loop, the current control loop and the SMO-PLL estimator are 1, 20, and 20 kHz, respectively. The inverter’s switching frequency is set at 15 kHz. The PI controllers’ parameters are set as
KPq = 0.25,
KIq = 0.025,
KPd = 0.25,
KId = 0.025,
Kpw = 0.735, and
Kiw = 0.00918. The membership function’s values are set the same as the simulation configuration. The fuzzy rule table values are initialized with a ratio of 0.833 to the values in
Table 1 and adjusted with the adaptive rate of 0.25. The neural network’s parameters are set as follows: node centers
Cl = [−2.5 −1.25 0.0 1.25 2.5], node widths
b = [2.5 2.5 2.5 2.5 2.5], connective weights
w = [0.025 0.025 0.025 0.025 0.025], momentum factor
= 0.75, and learning rate
= 0.435. In the first and second experimental conditions, the motor is operated with the total resistance load of 100 Ω and 400 W.
Figure 16 presents the motor’s performance in the positive direction for the wide speed range. The motor startups from the standstill stage at t = 1.193 s and switches to the sensorless control mode at t = 9.213 s. The rotor speed is accelerated to the rated speed and then decelerated. The command speed is varied in a sequence of 0 → 300 → 500 → 1000 → 1500 → 2000 → 1600 → 1200 → 800 → 1000 rpm for each period of 5 s.
Figure 16a refers that the estimated rotor speed overlaps the actual rotor speed and closely tracks the command speed perfectly. In
Figure 16b, although the current
iq fluctuates around the reference current
, its average value is still regulated proportionally to the command speed while the current
id almost oscillates around the zero value.
Figure 8c–f illustrates the estimated position, actual position, and the estimation errors at the speeds of 500, 1000, 1500, and 2000 rpm in a period of 0.15 s. There are 5, 10, 15 and 20 position cycles corresponding to the rotation frequencies of 33.33, 66.67, 100, and 133.33 Hz, respectively. These values are proper to the motor with four pole pairs. The actual and estimated positions come close to each other; thus, the estimation error approximates zero.
Figure 17 illustrates the motor’s performance in the negative direction for the wide speed range. The waveform of the command speed is the same as in the positive direction, only the speed has the opposite value. The motor starts up at t = 1.035 s and switches to the sensorless control mode at t = 9.201 s. Comparing to
Figure 16, in the positive direction, the rotor position is increased from 0° to 360° for one electrical cycle and the estimation error is close to zero, while the rotor position is decreased from 360° to 0° in the negative direction and the estimation error is not completely equal to zero; the maximum error values can reach to 12°. Therefore, the reference current
is regulated with a little larger value, in comparison to the case of the positive direction. However, the rotor position still tracks the command speed very well. In both rotational directions, the motor starts up from the standstill stage with the initial reference current
of 0.635 A. The ratio for decreasing the reference current
is set up at the value of 0.085 A/s.
The motor’s speed performance in the reversal operation is presented in
Figure 18. Firstly, the motor rotates in the negative direction, and the rotor speed is varied in the sequence of −300 → −700 → −300 rpm. Secondly, the command speed is set up to reverse the rotational direction from −300 to +300 rpm at t = 11 s. The motor control algorithm is transferred to the
I-f control mode from the sensorless control mode. The motor is decelerated to zero and accelerated to the command speed, following a ramp function with a ratio of 266.67 rpm/s. The actual rotor speed reaches 300 rpm at t = 13.28 s. It takes about 2.28 s to reverse the rotational direction from the negative direction to the positive direction. When the motor has already operated in the positive direction, the motor control algorithm is switched to the sensorless control mode again at t = 14.79 s. The
I-f control mode is implemented in a period of 3.79 s in this direction reversion transition. Then, the command speed is varied by the sequence: 300 → 700 → 1200 → 300 rpm. Thirdly, a similar procedure is applied when the command speed is changed to reverse the rotational direction from +300 to −300 rpm at t = 36 s. The actual rotor speed reaches −300 rpm at t = 38.26 s. It takes about 2.26 s to reverse the rotational direction from the positive direction to the negative direction. The
I-f control mode is active in a period of 4.02 s. During the operation of the motor, the estimated rotor speed almost tracks the command speed and approximates the actual rotor speed for both the sensorless control mode and the
I-f control mode. Moreover, the current response in
Figure 18b indicates that the reference current
is regulated differently for the sensorless control mode and the
I-f control mode in the case of the rotational direction reversion. Therefore, the rising time and settling time are different in the speed transition between the rotational direction reversion and the uni-direction speed variation. It takes a larger time to reverse the rotational direction. In the first direction reversion transition, the current
is regulated from −0.3652 to 0.6226 A, and then reduced to 0.3362 A before switching to the sensorless control mode. In the second transition, those corresponded values are 0.3694, −0.6558, and −0.3237 A, respectively.
Figure 19a–c illustrates the rotor position when the motor changes the rotational direction to the positive direction. When the actual speed crosses the zero value, there is a large estimation error because the modified PLL changes the parameter
θoffset from 180° to 0°. However, this error is reduced significantly when the system is switched to the sensorless control mode. In
Figure 19e–f, a similar result is analyzed for rotor position in the case of changing the rotor speed from the positive value to negative value. The parameter
θoffset is transferred from 0° to 180°. Finally,
Figure 18 and
Figure 19 verify that the
I-f control mode makes the motor change the rotational direction stably and the modified conventional PLL is worked effectively, which is not affected by noise, inaccurate back-EMF estimation or large estimation error in the low-speed range. The estimated position still approaches the actual value after the direction reversion transition has occurred.
Figure 20 presents the system performance for the PI speed controller and the NFC-based speed control when the motor startups with the initial resistance load of 100 Ω and 400 W. The motor startups at t = 2.821 s and switches to the sensorless control mode at t = 10.915 s. The rotor speed follows the sequence of 0 → 300 → 500 → 1000 rpm. Then, the command speed is regulated as a square wave with a period of 5s and the speed variation from 1000 to 1500 rpm. In the PI controller, at t = 28.94 s, more power resistors are added to increase the external load, and the total resistance load transfers to the new value of 50 Ω and 800 W. At t = 29.06 s, the rotor speed reduces to the low peak, with the estimated value (blue line) of 878 rpm and the actual value (red line) of 867 rpm. The rotor speed steadies at 1000 rpm again at t = 29.84 s. The recovery time is 0.78 s with the actual speed reduction of 133 rpm. In the NFC controller, the external load is enhanced at t = 30.00 s. The rotor speed reduces to the low peak, with the estimated value of 930 rpm and the actual value of 914 rpm at t = 30.09 s. The rotor speed steadies at 1000 rpm again at t = 30.67 s. The recovery time is 0.58 s with the actual speed reduction of 86 rpm.
By the initial resistance load of 50 Ω and 800 W, the system performance for the PI speed controller and the NFC-based speed controller is shown in
Figure 21. The speed command is the same as its waveform presented in
Figure 20. Comparing to the results in
Figure 20, because a larger external load is applied in the startup mode, the reference current
is ramped down to 0.5063 A, and then the system switches to the sensorless control mode in a shorter time. It takes a period of 6.087 s (for NFC) in the
I-f control mode. The corresponding values in
Figure 20 are 0.3362 A and 8.094 s, respectively. In the PI controller, at t = 28.08 s, some power resistors are removed to reduce the external load, and the total resistance load varies to the new value of 100 Ω and 400 W. At t = 28.19 s, the rotor speed increases to the up peak, with the estimated value of 1132 rpm and the actual value of 1141 rpm. The rotor speed steadies at 1000 rpm again at t = 28.89 s. The recovery time is 0.70 s with the actual speed increment of 141 rpm. In the NFC controller, the external load is reduced at t = 28.92 s. The rotor speed goes to the up peak with the estimated value of 1072 rpm and the actual value of 1083 rpm at t = 29.00 s. The rotor speed stabilizes at 1000 rpm again at t = 29.50 s. The recovery time is 0.50 s with the actual speed increment of 83 rpm. Lastly,
Figure 20 and
Figure 21 indicate that the sensorless motor control algorithm still works stably and successfully, robust to the disturbance of the external load.
The comparison of the detailed speed performances for the PI speed controller and the NFC-based speed controller is presented in
Figure 22 and
Figure 23. This demonstrates that the NFC-based speed controller creates better performance. The motor speed tracks the command speed perfectly, without the overshoots or undershoots for two cases of external load and the settling time of 0.50 s. However, there is a little difference in the speed performance for the PI speed controller. In the case of R
L = 100 Ω and 400 W, the system has an overshoot and an undershoot, at about +17 rpm, and the settling time of 0.78 s. While the system has a good performance, without overshoots or undershoots, and the settling time of 0.53 s in the case of R
L = 50 Ω and 800 W.
Figure 22 and
Figure 23 prove again that the PI speed controller can only work properly at the specific condition (R
L = 50 Ω and 800 W), while the proposed NFC-based speed controller works effectively for both cases to obtain a good performance because it has a mechanism to adjust its parameters, adapting to the dynamic system characteristic.
In summary, the experimental results in
Figure 16,
Figure 17,
Figure 18,
Figure 19,
Figure 20,
Figure 21,
Figure 22 and
Figure 23 verify that the proposed control algorithm for the sensorless PMSM drive control system is realized effectively. The motor can startup with different initial external load and switch to the sensorless control mode smoothly. Furthermore, the motor operates in two rotational directions and the direction reversion transition is executed stably. It confirms that the estimator is implemented successfully in combination with the
I-f control strategy. The estimated values approach the actual value for both rotor speed and rotor position. Moreover, compared to the PI speed controller, the NFC-based speed controller improves the system performance excellently and presents robustness against disturbance. The rotor speed tracks the command properly, without the overshoot or undershoot. The steady-state error almost comes close to zero (within ±5 rpm in the tolerance). Additionally, the DSP application for the PMSM drive control system is properly designed in MATLAB Simulink, deployed to Code Composer Studio software (Version 8.0.0.00016, Texas Instruments, Inc., Dallas, TX, USA) and successfully realized in the real-time system. Therefore, the development time for DSP application is substantially shortened by this deployment method.