Keywords

1 Introduction

BLDC motor has been used extensively in industrial automation, aerospace, instrumentation and automotive industry since 1970’s. BLDC motor has the following advantages over brushed DC motors and induction motor such as high torque to inertia ratio, high efficiency, better speed versus torque characteristics, compact size, less maintenance [1]. However, the disadvantages of the BLDC motor have high cost and the necessity of a more complex controller because of its nonlinear characteristics [2].

For controlling the speed of BLDC motor, several controllers are used. The most widely used controller of them is a conventional PI controller because it is facile and easy to understand [3]. The PI controller is simple to realize but difficult for applying to obtain sufficiently high performance in the tracking application. It is, however, well known that the tracking controller problem can be simply solved by using state variable feedback with the extension of the state variables using the output error [4]. For the unknown and inaccessible inputs, the observer technique was studied by [5]. To solve robust servomechanism problem for SISO system, Kim et al. [6] introduced a servo control method with disturbance rejection and reference signal tracking by adopting the internal model principle and bilinear transformation method. In [6], there was not show for the explicit condition and its proof for the controller existence to achieve the robust control objectives. Kim [7] proposed a new concept of MIMO servo design method by extending the results of [6] and introducing a polynomial differential operator.

In this paper, a robust servo controller proposed by [7] is applied for speed control of BLDC motors. To do this task, the followings are done. Firstly, modeling for a BLDC motor is introduced and an extended system incorporating the internal model principle to construct the servo system is shown using polynomial differential operator in case that the types of reference inputs are differential polynomials. Secondly, a state feedback control law for the extended system to track the given reference input is designed by a well known regulator design method. The implementations of the proposed servo controller for a BLDC motor are completely carried out using a dSPACE DS1104 DSP. The simulation and experimental results are shown to verify the effectiveness and the applicability of the proposed controller compared to the conventional PI controller for speed control of the BLDC motor with a step type of disturbance and 3 types of the references such as step, ramp and parabola.

2 Modeling of BLDC Motors

Figure 1 shows the circuit diagram of a BLDC motor. Assuming that the stator resistances \( R_{s} \) of all of the windings stators, self inductances \( L_{s} \) and mutual inductances \( M \) are equal and constant, \( L = L_{s} - M \), the voltage equation of the BLDC motor with three phases can be expressed as

$$ {\mathbf{v}} = {\mathbf{L}}\frac{d}{dt}{\mathbf{i}} + {\mathbf{Ri}} + {\mathbf{e}} $$
(1)

where \( {\mathbf{v}} = \left[ {\begin{array}{*{20}c} {v_{a} } & {v_{b} } & {v_{c} } \\ \end{array} } \right]^{T} ,\,\,{\mathbf{i}} = \left[ {\begin{array}{*{20}c} {i_{a} } & {i_{b} } & {i_{c} } \\ \end{array} } \right]^{T} ,\,\,{\mathbf{e}} = \left[ {\begin{array}{*{20}c} {e_{a} } & {e_{b} } & {e_{c} } \\ \end{array} } \right]^{T} , \)

$$ {\mathbf{L}} = \left[ {\begin{array}{*{20}c} L & 0 & 0 \\ 0 & L & 0 \\ 0 & 0 & L \\ \end{array} } \right],\,\,{\mathbf{R}} = \left[ {\begin{array}{*{20}c} {R_{s} } & 0 & 0 \\ 0 & {R_{s} } & 0 \\ 0 & 0 & {R_{s} } \\ \end{array} } \right] $$

\( {\mathbf{v}},\,\,{\mathbf{i}},\,\,{\mathbf{e}},\,\,{\mathbf{L}},\,\,{\mathbf{R}} \) are the stator phase voltage matrix, the stator phase current matrix, the stator phase back-electromagnetic forces (back-emfs) matrix, the phase stator inductance matrix and stator phase resistance matrix, respectively.

Fig. 1
figure 1

Circuit diagram of a BLDC motor drive

The electromagnetic torque is given by

$$ T_{e} = \frac{1}{{\omega_{m} }}{\mathbf{e}}^{T} {\mathbf{i}} $$
(2)

where \( \omega_{m} \) is the mechanical angular velocity of the rotor.

The equation of motion for the rotor of BLDC motor is

$$ J\frac{{d\omega_{m} }}{dt} = T_{e} - T_{L} - \beta \omega_{m} $$
(3)

where \( J,\,\,T_{L} \) and \( \beta \) are the moment of inertia, load torque and the viscous damping coefficient of the rotor, respectively.

For the estimation of the rotor position, the motor is equipped with three hall sensors \( H_{1} ,\,\,H_{2} ,\,\,H_{3} \). With these sensors, 6 different commutations are possible. Figure 2 shows the waveforms of back-emfs, phase currents and electromagnetic torque of BLDC depending on hall sensor values. With right synchronized commutations, the torque remains nearly constant.

Fig. 2
figure 2

Waveforms of a back-emfs, a phase current and a torque of BLDC

The trapezoidal back-emfs vector is modeled as a function of rotor position as

$$ {\mathbf{e}} = E\left[ {\begin{array}{*{20}c} {F\left( {\theta_{e} } \right)} & {F\left( {\theta_{e} - \frac{2\pi }{3}} \right)} & {F\left( {\theta_{e} - \frac{4\pi }{3}} \right)} \\ \end{array} } \right]^{T} $$
(4)
$$ E = K_{e} \omega_{m} $$
(5)

where

\( E \) :

is the amplitude of the phase back-emfs and proportional to the rotor speed

\( K_{e} \) :

is back-emfs constant

\( \theta_{e} \) :

is the electrical rotational angle related to the rotor rotational angle \( \theta_{m} \) and the number of pole pairs \( p \) by \( \theta_{e} = \frac{p}{2}\theta_{m} \).

The function \( F\left( \cdot \right) \) gives the trapezoidal waveform of the back-emfs as shown in Fig. 2.

The function for one period \( F\left( \cdot \right) \) can be written as

$$ F\left( {\theta_{e} } \right) = \left\{ {\begin{array}{*{20}c} {1\,} & {\left( {0 < \theta_{e} \le \frac{2\pi }{3}} \right)} \\ {1 - \frac{6}{\pi }\left( {\theta_{e} - \frac{2\pi }{3}} \right)} & {\left( {\frac{2\pi }{3} < \theta_{e} \le \pi } \right)} \\ { - 1} & {\left( {\pi < \theta_{e} \le \frac{5\pi }{3}} \right)} \\ { - 1 + \frac{6}{\pi }\left( {\theta_{e} - \frac{5\pi }{3}} \right)} & {\left( {\frac{5\pi }{3} < \theta \le 2\pi } \right)} \\ \end{array} } \right. $$
(6)

The electromagnetic torque can be expressed from Eqs. (2) and (4)–(6) as:

$$ T_{e} = K_{T} \left\{ {F\left( {\theta_{e} } \right)i_{a} + F\left( {\theta_{e} - \frac{2\pi }{3}} \right)i_{b} + F\left( {\theta_{e} - \frac{4\pi }{3}} \right)i_{c} } \right\} $$
(7)

where \( K_{T} \) is torque constant and it is assumed that \( K_{T} = K_{e} = K \) for this paper.

The rotor rotational angle is obtained by integrating the mechanical angular velocity of the rotor:

$$ \theta_{m} = \int {\omega_{m} dt} + \theta (0) $$
(8)

where \( \theta (0) \) is the initial angle of rotor.

There are six commutation steps for one complete cycle. To simplify the problem, one of the six steps will be modeled. The remaining steps are considered to be similar. The voltage relation in each step following line-to-line equation in Figs. 1 and 2 and Eqs. (4) and (5) gives

$$ 2L\frac{di}{dt} = uV_{dc} - 2K\omega_{m} - 2R_{s} i $$
(9)

where \( V_{dc} \) is a DC bus voltage, \( u \) is a duty cycle value and \( i = i_{a} = - \,i_{b} \).

During each interval of \( \pi /3 \) in Fig. 2, the electromagnetic torque can be expressed from Eqs. (6) and (7) and \( i_{a} ,\,i_{b} ,\,i_{c} \) in Fig. 2 as:

$$ T_{e} = 2Ki $$
(10)

By substituting current obtained from Eqs. (9) and (10) in Eq. (3), a second order differential equation is derived with \( \omega_{m} \) as state variable

$$ \mathop {\omega_{m} }\limits^{..} + a_{1} \dot{\omega }_{m} + a_{2} \omega_{m} = b_{1} u + b_{2} T_{L} $$
(11)

where constants \( a_{1} ,\,\,a_{2} ,\,\,b_{1} \) and \( b_{2} \) are defined as

$$ a_{1} = \left( {\frac{{\beta L + JR_{s} }}{JL}} \right),\,\,a_{2} = \left( {\frac{{2K^{2} + \beta R_{s} }}{JL}} \right),\,\,b_{1} = \frac{{KV_{dc} }}{JL},\,\,b_{2} = \frac{{R_{s} }}{JL} $$

An inaccessible \( T_{L} \) can be considered as disturbance term to be unknown and assumed to be a constant.

The state dynamic equation of a given system Eq. (11) with disturbance \( \varepsilon \) can be expressed as follows:

$$ \dot{x} = Ax + Bu + \varepsilon $$
(12)
$$ y = \omega_{m} = Cx $$
(13)

where

$$ A = \left[ {\begin{array}{*{20}c} 0 & 1 \\ { - a_{2} } & { - a_{1} } \\ \end{array} } \right],\,\,B = \left[ {\begin{array}{*{20}c} 0 \\ {b_{1} } \\ \end{array} } \right],\,\,C = \left[ {\begin{array}{*{20}c} 1 & 0 \\ \end{array} } \right],\,\,\varepsilon = \left[ {\begin{array}{*{20}c} 0 \\ {b_{2} T_{L} } \\ \end{array} } \right],\,\,x = \left[ {\begin{array}{*{20}c} {x_{1} } \\ {x_{2} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {\omega_{m} } \\ {\dot{\omega }_{m} } \\ \end{array} } \right] $$

\( {\mathbf{x}} \in R{}^{n} \) is the state vector (n = 2), \( y \in R^{p} \) is the output vector (\( p \)  = 1), \( u \in R^{m} \) is the input vector (m = 1), \( {\varvec{\upvarepsilon}} \in R^{n} \) is an un-measurable disturbance vector, \( A \in R^{n \times n} \) is the system matrix,\( B \in R^{n \times m} \) is the input matrix, \( C \in R^{p \times n} \) is the output matrix. It is assumed that \( (A,B) \) is controllable and \( (A,C) \) is observable.

3 Servo Controller Design Using Polynomial Differential Operator

The output error for a SISO system (\( m = 1,p = 1 \)) is defined by

$$ e = y - y_{r} $$
(14)

where \( y_{r} \) is the reference output and \( e \) is the output error.

It is assumed that the following homogeneous differential equation forms for reference and disturbance using linear polynomial differential operators of \( L_{r} (D) \) and \( L_{\varepsilon } (D) \) are satisfied, respectively:

$$ L_{r} (D)y_{r} = 0\,\, {\text{and}}\,\,L_{\varepsilon } (D){\varvec{\upvarepsilon}} = 0 $$
(15)
$$ L_{r} \left( D \right) = D^{\sigma } + \rho_{\sigma - 1} D^{\sigma - 1} + \cdots + \rho_{0} \\,\,{\text{and}}\,\,L_{\varepsilon } \left( D \right) = D^{l} + \mu_{l - 1} D^{l - 1} + \cdots + \mu_{0} $$
(16)

where \( D = d/dt \) is the differential operator, \( \rho_{i} ,\mu_{i} \) are constant coefficients and \( \sigma ,l \) are orders of differential polynomials.

\( R\left( D \right) \) is defined as the greatest common divisor of \( L_{r} \left( D \right) \) and \( L_{\varepsilon } \left( D \right) \) as follows:

$$ L_{r} \left( D \right) = R(D)U(D)\,\,{\text{and}}\,\,L_{\varepsilon } \left( D \right) = R(D)V(D) $$
(17)

where \( U(D),V(D) \) are factors of \( L_{r} \left( D \right) \) and \( L_{\varepsilon } \left( D \right) \), respectively.

\( L\left( D \right) \) is defined as the least common multiple of \( L_{r} \left( D \right) \) and \( L_{\varepsilon } \left( D \right) \) and can be obtained from (17) as the following polynomial differential operator:

$$ L\left( D \right) = \frac{{L_{\varepsilon } \left( D \right)L_{r} \left( D \right)}}{R\left( D \right)} = U\left( D \right)R\left( D \right)V\left( D \right)\, = D^{q} - \alpha_{q - 1} D^{q - 1} + \cdots + \alpha_{0} $$
(18)

where \( \dim \{ V(D)\} = q - \sigma \) and \( \dim \{ U(D)\} = q - l,\,\,\dim \{ R(D)\} = l + \sigma - q \) and \( \dim \{ L(D)\} = q \ge \dim \left\{ {L_{r} \left( D \right)} \right\}\,\,{\text{or}}\dim \left\{ {L_{\varepsilon } \left( D \right)} \right\} \).

By operating \( L\left( D \right) \) of Eq. (18) for \( \varepsilon_{i} \) and \( y_{r} \), the following are obtained:

$$ \left\{ \begin{aligned} L(D)y_{r} = U(D)R(D)V(D)y_{r} = V(D)L_{r} (D)y_{r} = 0 \hfill \\ L(D)\varepsilon_{i} = U(D)R(D)V(D)\varepsilon_{i} = U(D)L_{\varepsilon } (D)\varepsilon_{i} = 0 \hfill \\ \end{aligned} \right. $$
(19)

where the dimension of \( q \) holds \( q \ge l\;or\;q \ge \sigma \).

The adaptation of the internal model principle (IMP) to the servo control system design is attempted by 3 steps [7]:

  • [Step 1] by operating the polynomial differential operator to the given system of Eq. (12) and also the output error of Eq. (14).

  • [Step 2] an extended system is obtained by using the operated system and output errors obtained through the step 1

  • [Step 3] for the extended system, a regulator problem is solved based on the well known design method such as pole assignment or optimal control.

Firstly, to eliminate the effect of disturbance in Eq. (12), by operating the polynomial differential operator of \( L(D) \) to both sides of Eq. (12) using Eq. (19) as follows:

$$ \frac{d}{dt}\{ L(D)x\} = AL(D)x + BL(D)u $$
(20)

Secondly, by operating \( L(D) \) to Eq. (14) and using the property of Eq. (18), the followings can be obtained.

$$ L(D)e(t) = D^{q} e + \alpha_{q - 1} D^{q - 1} e + \cdots + \alpha_{1} De + \alpha_{0} e\, = L(D)y = CL(D)x $$
(21)
$$ D^{q} e = - \alpha_{q - 1} D^{q - 1} e \cdots - \alpha_{1} De - \alpha_{0} e + CL(D)x\quad $$
(22)

Equation (22) can be described into the matrix form as follows:

$$ \dot{z} = ML(D)x + Nz $$
(23)

where

$$ N = \left[ {\begin{array}{*{20}c} 0 & 1 & 0 & \cdots & 0 \\ 0 & 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & 1 \\ { - \alpha_{0} } & { - \alpha_{1} } & { - \alpha_{2} } & \cdots & { - \alpha_{q - 1} } \\ \end{array} } \right] \in R^{q \times q} ,\,\,M = \left[ {\begin{array}{*{20}c} {\mathbf{0}} \\ {\mathbf{0}} \\ \vdots \\ {{\mathbf{c}}_{1}^{T} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} 0 \\ 0 \\ \vdots \\ 1 \\ \end{array} } \right]{\mathbf{c}}_{1}^{T} = \left[ {\begin{array}{*{20}c} {\mathbf{0}} \\ {{\mathbf{c}}_{{\mathbf{1}}}^{T} } \\ \end{array} } \right] \in R^{q \times n} $$
$$ C^{T} = {\mathbf{c}}_{1} \in R^{n \times 1} ,\,\,{\text{ and}}\,\,z = \left[ {\begin{array}{*{20}c} e & {e_{{}}^{(1)} } & \cdots & {e_{{}}^{(q - 1)} } \\ \end{array} } \right]^{T} \in R^{q} $$

By combining Eqs. (20) and (23), an extended system can be obtained as follows:

$$ \dot{x}_{e} = A_{e} x_{e} + B_{e} \nu $$
(24)

where

$$ A_{e} = \left[ {\begin{array}{*{20}c} A & {\mathbf{0}} \\ M & N \\ \end{array} } \right] \in R^{(n + q) \times (n + q)} ,\,\,B_{e} = \left[ {\begin{array}{*{20}c} B \\ {\mathbf{0}} \\ \end{array} } \right] \in R^{(n + q) \times 1} ,\,\,x_{e} = \left[ {\begin{array}{*{20}c} {L(D)x} \\ z \\ \end{array} } \right] \in R^{n + q} $$

\( x_{e} \) is an extended system state variable vector, \( v = L(D)u \in R^{1} \) is a new control law for the extended system and \( z \) is an error variable vector for the extended system.

A new control law for the extended system is defined by the following form:

$$ v = L(D)u = - Fx_{e} \in R^{1} $$
(25)

where \( F = \left[ {\begin{array}{*{20}c} {F_{x} } & {F_{z} } \\ \end{array} } \right] \in R^{1 \times (n + q)} \) is a feedback control gain matrix, and \( F_{x} \in R^{1 \times n} \) and \( F_{z} \in R^{1 \times q} \) are feedback control gain matrices for \( L(D)x \) and \( z \), respectively.

A new error variable vector for the extended system can be defined as

$$ \zeta = L^{ - 1} (D)z $$
(26)

where \( \zeta = \left[ {\begin{array}{*{20}c} {\zeta_{1} } & {\zeta_{2} } & \cdots & {\zeta_{q} } \\ \end{array} } \right]^{T} \in R^{q} \), and \( \zeta_{i} \in R^{q} \;{\text{for}}\;i = 1, \ldots ,q. \)

Using Eqs. (25) and (26), the control law of Eq. (12) can be obtained as follows:

$$ u = - Fx_{\zeta } = - \left[ {\begin{array}{*{20}c} {F_{x} } & {F_{z} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} x \\ \zeta \\ \end{array} } \right] $$
(27)

where \( x_{\zeta } \in R^{n + q} \) is a new extended system variable vector.

Controllability of the extended system Eq. (24) can be easily checked [7].

The closed loop system of the extended system Eqs. (24) using (25) is obtained as

$$ \dot{x}_{e} = (A_{e} - B_{e} F)x_{e} $$
(28)

The closed loop system of Eq. (28) is asymptotically stabilized by designing the feedback control law of Eq. (27) with a feedback control matrix \( F \) so as to be \( \text{Re} \left\{ {\lambda_{i} (A_{e} - B_{e} F} \right\} < 0 \).

There exists a gain matrix \( F = \left[ {\begin{array}{*{20}c} {F_{x} } & {F_{z} } \\ \end{array} } \right] \) so that the following matrix is asymptotically stable [8, 9].

$$ A_{F} = A_{e} - B_{e} F = A_{e} - B_{e} \left[ {\begin{array}{*{20}c} {F_{x} } & {F_{z} } \\ \end{array} } \right] $$
(29)

When the feedback control law of the extended system of Eq. (24) is designed based on the above regulator design problem [4, 6], the output error of (14) becomes \( e(t) \to 0 \) as \( t \to \infty . \)

Since \( x_{e} \to 0 \) by regulator design result, that is \( x_{e} \to 0 \) means \( \left[ {\begin{array}{*{20}c} {Lx^{T} } & {z^{T} } \\ \end{array} } \right]^{T} \to 0 \) as follows:

$$ x_{e} = \left[ {\begin{array}{*{20}c} {L\left( D \right)x^{T} } & {z^{T} } \\ \end{array} } \right]^{T} \, = \left[ {\begin{array}{*{20}c} {L(D)x^{T} } & {\begin{array}{*{20}c} e & {e_{{}}^{(1)} } & \cdots & {e_{{}}^{(q - 1)} } \\ \end{array} } \\ \end{array} } \right]^{T} $$
(30)

As the result, the error \( e(t) \to 0\;as\;t \to \infty . \)

Using the new control input \( v \), the extended system of Eq. (24) can be written by

$$ \left\{ \begin{gathered} \frac{d}{dt}\left\{ {L(D)x} \right\} = \left[ {A - BF_{x} } \right]L(D)x - BF_{z} z + L(D)\varepsilon \hfill \\ \frac{d}{dt}z = Nz + I_{\zeta } L(D)e \hfill \\ \end{gathered} \right. $$
(31)

where \( L(D)\varepsilon = 0 \) from Eq. (19) and \( I_{\xi } = \left[ {\begin{array}{*{20}c} 0 & 0 & \cdots & 1 \\ \end{array} } \right]^{T} \in R^{q} \).

By operating the inverse polynomial differential operator \( L^{ - 1} (D) \) for Eq. (31), the following equations can be obtained due to \( L^{ - 1} (D)\left( {L(D)\varepsilon } \right) = \varepsilon \) by \( L(D)\varepsilon = 0 \):

$$ \left\{ \begin{gathered} \frac{d}{dt}x = \left[ {A - BF_{x} } \right]x - BF_{z} \zeta + \varepsilon = Ax + Bu + \varepsilon \hfill \\ \frac{d}{dt}\zeta = N\zeta + I_{\zeta } e \hfill \\ \end{gathered} \right.$$
(32)

The servo compensator \( \dot{\zeta } = \frac{d}{dt}\zeta \) of Eq. (32) includes the model of reference and disturbance signals since the matrix \( N \) is composed of the least common multiple model of two signals. It proposes the internal model principle based on the polynomial differential operator.

The configuration of the proposed servo control system can be described as shown in Fig. 3.

Fig. 3
figure 3

Configuration of the proposed servo control system

4 Simulation and Experimental Results

In this section, and implementation for a BLDC motor are completely carried out using a dSPACE DS1104 digital DSP and MATLAB/Simulink environment to verify the effectiveness and applicability of the proposed servo system and controller as show in Fig. 4. Table 1 shows the parameters values of BLDC motor for this paper.

Fig. 4
figure 4

Experimental apparatus. a Power driver. b Controller board. c Software

Table 1 Parameter values of BLDC motor

Three reference inputs are chosen: reference of step type \( y_{r} = 1000\,{\text{rpm}} \), reference of ramp type \( y_{r} (t) = 200t \), and reference of parabola type \( y_{r} (t) = 10t^{2} \). It is assumed that the disturbance is given as step type model of the following:

$$ \dot{\varepsilon } \equiv \frac{d\varepsilon }{dt} = 0 $$
(33)

Using the parameter values from Table 1 to the BLDC motor mathematical model of Eqs. (12) and (13), the following can be obtained:

$$ A = \left[ {\begin{array}{*{20}c} 0 & 1 \\ { - 1720.4} & { - 359.6337} \\ \end{array} } \right],\,\,B = \left[ {\begin{array}{*{20}c} 0 \\ {8.2102.10^{4} } \\ \end{array} } \right],\,\,C = \left[ {\begin{array}{*{20}c} 1 & 0 \\ \end{array} } \right] $$

Table 2 shows the initial state variable values of BLDC motor for this paper

Table 2 Initial state values of BLDC motor

Typical PI tuning method is used by Ziegler-Nicholas tuning method.

The parameters, controller gains and servo compensators for 3 types of reference signals are obtained by using the proposed servo controller design method as shown in Table 3.

Table 3 Parameters, controller gains and servo compensators for the proposed method

4.1 Step Input

Figure 5 shows simulation and experimental results for the reference step input of \( y_{r} (t) = 1000\,{\text{rpm}} \) using both the proposed control method and the conventional PI control method.

Fig. 5
figure 5

Control law \( u \), output \( y \) and output error for reference step input

Figure 5a shows the control laws of both control methods. It shows that both control laws converge to 0.816 after about 1.5 s. Figure 5b shows the outputs for both control methods. It shows that both outputs of motor speed converge to the reference step input of 1000 rpm. The outputs for PI converges to the reference step input after about 1.5 s, while the outputs for the proposed method converges to the reference step input smoothly after about 0.7 s. Figure 5c shows the output errors for both methods. The output error for PI converges to zero after about 1.5 s, while the output error for the proposed method converges to zero smoothly after about 0.7 s.

4.2 Ramp Input

Simulation and experimental results using reference ramp input for the proposed method and the PI controller are shown in Fig. 6. Figure 6a shows the control laws using both methods. Figure 6b shows that only the outputs of the controller using the proposed method can track the reference ramp signals and stabilize the plant after finite time. The outputs of the controller using the PI controller cannot track the reference ramp signal. Furthermore, Fig. 6c shows that the output errors of the controller using the proposed method converge to zero and stabilize the plant after finite time. On the other hand, in the controller using the PI, the steady state errors of 65.78 rpm exists.

Fig. 6
figure 6

Control law \( u \), output \( y \) and output error for reference ramp input

4.3 Parabolic Input

Simulation and experimental results using reference parabolic input for the proposed method and the PI controller are shown in Fig. 7. Figure 7a shows the control inputs using both methods. Figure 7b, c shows the same results as shown in the case of ramp for the parabolic type of reference signal, that is, PI controller has steady error for the given parabolic signals is increasing

Fig. 7
figure 7

Control law \( u \), output \( y \) and output error for reference parabolic input

5 Conclusion

This paper proposed a servo controller design for speed control of BLDC motors using polynomial differential operator method. Firstly, modeling for an BLDC motor was introduced and extended system incorporating the internal model principle to construct the servo system was shown using polynomial differential operator in case that the types of reference inputs were polynomials. Secondly, a state feedback control law for the servo system to track the given reference input was designed. The implementations of the proposed controller were completely carried out using a dSPACE DS1104 DSP. The simulation and experimental results were shown to verify the effectiveness and the applicability of the proposed controller compared to conventional PI controller. It showed that the proposed method could overcome the problem for more high order types of reference signals under disturbance.