Keywords

1 Introduction

The brushless DC motors are becoming more popular due to their high efficiency, their high torque-weight ratio, noiseless operation and low maintenance cost. The BLDC motor has a permanent magnet rotor and the stator windings are wounded in different ways with one or multiple phases. The very common BLDC motor used is the three phases BLDC motor with a trapezoidal back-EMF or a sinusoidal back-EMF [1].

In order to make motion control more reliable, more efficient and less noisy, the recent trend has been to use brushless DC motors, they are also lighter compared to brushed motors with the same rated power, the brushes in conventional DC motors wear out over time and may cause sparking, that’s why we use the BLDC motor in operations that demand long life and reliability, The BLDC motor is used in enormous applications that demand very high speed with low torque such the hard drivers or with big torque with high dynamic speed range such electrical cars.

In the industry the conventional PI controller still widely used due to his simple control structure, however, there are other more complex control strategies like Neural Network Control or the Fuzzy Logic Control [4] which need continuous learning, optimization and adjustment. In other hand, there are less complex control strategies like the Sliding Mode control [7, 8, 10]. Usually, on those control strategies, a dual loop of the speed and current is used [5, 6, 9]. In order to simplify the complexity of the control algorithms we use two control loops; the inner loop controls the voltage of the buck converter and the outer loop controls the speed of the motor.

The organization of this paper is as follows. It initially begins by the description of the studied system structure, then the adopted control strategy for the speed control, and finally discuss and analysis the simulated results (Table 1).

Table 1. List of symbols and abbreviations.

2 System Modeling and Description

The studied system shown in Fig. 1 is based on a three phases trapezoidal back-EMF BLDC motor equipped with Hall, armature current and speed sensors, a three phases power inverter, a DC/DC buck converter and a torque source for load variation.

Fig. 1.
figure 1

System model under Matlab/Simulink software

The armature winding of the BLDC motor can be expressed as follows [2, 3]:

$$ \begin{array}{*{20}l} {v_{a} = R_{a} i_{a} + L_{a} \frac{{di_{a} }}{dt} + L_{ab} \frac{{di_{b} }}{dt} + L_{ca} \frac{{di_{c} }}{dt} + e_{a} } \hfill \\ {v_{b} = R_{b} i_{b} + L_{b} \frac{{di_{b} }}{dt} + L_{ba} \frac{{di_{a} }}{dt} + L_{bc} \frac{{di_{c} }}{dt} + e_{b} } \hfill \\ {v_{c} = R_{a} i_{c} + L_{a} \frac{{di_{a} }}{dt} + L_{ab} \frac{{di_{b} }}{dt} + L_{ca} \frac{{di_{c} }}{dt} + e_{a} } \hfill \\ \end{array} $$
(1)

Which can be written in the matrix form as:

$$ \left[ {\begin{array}{*{20}c} {v_{a} } \\ {v_{b} } \\ {v_{c} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}l} {R_{a} } \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & {R_{b} } \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & {R_{c} } \hfill \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {i_{a} } \\ {i_{b} } \\ {i_{c} } \\ \end{array} } \right] + \frac{d}{dt}\left[ {\begin{array}{*{20}l} {L_{a} } \hfill & {L_{ab } } \hfill & {L_{ca} } \hfill \\ {L_{ba} } \hfill & {L_{b } } \hfill & {L_{bc} } \hfill \\ {L_{ca} } \hfill & {L_{cb } } \hfill & {L_{c} } \hfill \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {i_{a} } \\ {i_{b} } \\ {i_{c} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {e_{a} } \\ {e_{b} } \\ {e_{a} } \\ \end{array} } \right] $$
(2)

Assuming that the windings are symmetric and the system is balanced, we have:

$$ i_{a} + i_{b} + i_{c} = 0 $$
(3)
$$ L_{a} = L_{b} = L_{c} = L_{s} $$
(4)
$$ R_{a} = R_{b} = R_{c} = R $$
(5)
$$ L_{ab} = L_{ac} = L_{bc} = L_{ba} = L_{ca} = L_{ab} = M $$
(6)

So, the matrix become:

$$ \left[ {\begin{array}{*{20}c} {v_{a} } \\ {v_{b} } \\ {v_{c} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}l} R \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & R \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & R \hfill \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {i_{a} } \\ {i_{b} } \\ {i_{c} } \\ \end{array} } \right] + \frac{d}{dt}\left[ {\begin{array}{*{20}l} {L_{s} } \hfill & M \hfill & M \hfill \\ M \hfill & {L_{s} } \hfill & M \hfill \\ M \hfill & M \hfill & {L_{s} } \hfill \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {i_{a} } \\ {i_{b} } \\ {i_{c} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {e_{a} } \\ {e_{b} } \\ {e_{c} } \\ \end{array} } \right] $$
(7)

We put: \( L = L_{s} - M \), then we have:

$$ \left[ {\begin{array}{*{20}c} {v_{a} } \\ {v_{b} } \\ {v_{c} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}l} R \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & R \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & R \hfill \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {i_{a} } \\ {i_{b} } \\ {i_{c} } \\ \end{array} } \right] + \frac{d}{dt}\left[ {\begin{array}{*{20}l} L \hfill & 0 \hfill & 0 \hfill \\ 0 \hfill & L \hfill & 0 \hfill \\ 0 \hfill & 0 \hfill & L \hfill \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {i_{a} } \\ {i_{b} } \\ {i_{c} } \\ \end{array} } \right] + \left[ {\begin{array}{*{20}c} {e_{a} } \\ {e_{b} } \\ {e_{c} } \\ \end{array} } \right] $$
(8)
$$ {\text{The}}\,{\text{trapezoidal}}\,{\text{back - EMF}}\,{\text{is}}\,{\text{given}}\,{\text{by}}:\left\{ {\begin{array}{*{20}l} {e_{a} = K_{e} .\omega_{r} .F\left( {\theta_{e} } \right)} \hfill \\ {e_{b} = K_{e} .\omega_{r} .F\left( {\theta_{e} - \frac{2\pi }{3}} \right)} \hfill \\ {e_{c} = K_{e} .\omega_{r} .F\left( {\theta_{e} + \frac{2\pi }{3}} \right)} \hfill \\ \end{array} } \right. $$
(9)

The torque equations can be deduced as:

$$ T_{e} = K_{\omega } .\omega_{r} .F\left( {\theta_{e} } \right).i_{a} + K_{\omega } .\omega_{r} .F\left( {\theta_{e} - \frac{2\pi }{3}} \right).i_{b} + K_{\omega } .\omega_{r} .F\left( {\theta_{e} + \frac{2\pi }{3}} \right).i_{c} $$
(10)
$$ T_{e} = J\frac{{d\omega_{r} }}{dt} + \beta \omega_{r} + T_{l} $$
(11)

Where the function F is defined as below:

$$ F\left( {\theta_{e} } \right) = \left\{ {\begin{array}{*{20}l} { = 1 if 0 \le \theta_{e} < \frac{2\pi }{3}} \hfill \\ { = 1 - \frac{6}{\pi }\left( {\theta_{e} - \frac{2\pi }{3}} \right)if \frac{2\pi }{3} \le \theta_{e} < \pi } \hfill \\ { = - 1 if \pi \le \theta_{e} < \frac{5\pi }{3}} \hfill \\ { = - 1 + \frac{6}{\pi }\left( {\theta_{e} - \frac{5\pi }{3}} \right) if \frac{5\pi }{3} \le \theta_{e} < 2\pi } \hfill \\ \end{array} } \right. $$
(12)

In the other hand, the DC/DC buck converter can be modeled using the following equation:

$$ V_{dc} = \alpha V_{source} $$
(13)

With \( \alpha \) is the duty cycle to be controlled.

3 Control Strategy

Our study will be focused on the dynamic of BLDC speed according to the load variation. As shown in Fig. 2, two control loops are used, the inner loop controls the voltage of the buck converter and the outer loop controls the speed of the motor.

Fig. 2.
figure 2

Control strategy block diagram.

The BLDC motor parameters tested in simulation are defined in the following Table 2:

Table 2. The parameters of the BLDC motor

3.1 PI Controller

The speed regulation is based on controlling the output voltage of the DC/DC buck converter using a PI controller. The proportional coefficient Kpw and the integral coefficient Kiw have been calculated using Tune function in Matlab and chosen value are respectively 0.1 and 15.

The results of the PI controller in Fig. 3 show the overshoots of the speed when the speed reference changes, also we notice that the speed drops significantly when we add a load of 5 N.m at T = 1 s.

Fig. 3.
figure 3

The speed variation using a PI control

The PI controller track the speed reference but the response of the BLDC motor isn’t as fast as desired.

3.2 Sliding Mode Control

In order to improve the speed response of the BLDC motor we propose a sliding mode control, which will be replacing the PI controller of the outer loop.

The sliding surface can be defined as:

$$ S_{\Omega } =\Omega _{mes} -\Omega _{req} $$
(14)

The sliding surface derivative is then given by:

$$ \frac{{dS_{\Omega } }}{dt} = \frac{{d\Omega _{mes} }}{dt} - \frac{{d\Omega _{req} }}{dt} = - {\text{K}}_{\Omega } .sign\left( {S_{\Omega } } \right) $$
(15)

From (8), (10), (11), (13) and (15), the referred \( V_{dc} \) voltage is given by:

$$ V_{dc\_req} = K_{1}\Omega _{mes} + K_{2} sign\left( {S_{\Omega } } \right) $$
(16)

With \( K_{1} \) and \( K_{2} \) constants to be chosen in order to insure system stability.

As shown in the Fig. 4, using SMC the speed reference tracking has been improved compared to the PI controller.

Fig. 4.
figure 4

BLDC speed response using Sliding Mode Controller

4 Comparative Analysis of Simulation Results

In this section, we compare the performance of the proposed SMC controller under the same conditions as the traditional PI controller. From Fig. 5 the response of the sliding mode control is much better than the PI control, and the drop of the speed when we add a load to the system is significant in the PI control and it’s negligible in the SMC.

Fig. 5.
figure 5

Comparison between the PI and the sliding mode control

Table 3 shows the performances of the SMC controller in comparison with the conventional PI controller.

Table 3. Comparison between the response of the PI and the sliding mode control to the variation of the speed and load.

In this study, the current is not controlled, there are two loops, the inner loop is dedicated to regulate the voltage and the outer loop is dedicated to regulate the speed, the current reach a maximum of 100 A in both controllers, and the average of the current is under 50 A, despite of the non-control of the current, the value of the current in the phases of the motor still tolerable (Fig. 6).

Fig. 6.
figure 6

The current in the three phases ia, ib and ic using SMC vs PI controller

In both cases, as can be seen from Fig. 7, the motor generates the same amount of torque, which makes the SMC controller a very good option to have a good result acting only on the buck converter.

Fig. 7.
figure 7

The torque variations when SMC controller vs the conventional PI

5 Conclusion

In this paper, a particular attention was paid to speed variations of a BLDC motor. A closed loop speed control is carried out using PI and sliding mode controllers. A model of the studied system has been also developed under MATLAB/SIMULINK environment and simulation results with comparative analysis have been presented.