Open Access
This article is

- freely available
- re-usable

*Energies*
**2019**,
*12*(2),
203;
doi:10.3390/en12020203

Article

Commutation Error Compensation Strategy for Sensorless Brushless DC Motors

College of Automation, Harbin Engineering University, Harbin 150001, China

^{*}

Author to whom correspondence should be addressed.

Received: 27 November 2018 / Accepted: 4 January 2019 / Published: 9 January 2019

## Abstract

**:**

Sensorless brushless DC (BLDC) motor drive systems often suffer from inaccurate commutation signals, which result in current fluctuation and high conduction loss. To improve precision of commutation signals, this paper presents a novel commutation error compensation strategy for BLDC motors. First, the relationship between the line voltage difference integral in 60 electrical degree conduction interval and the commutation error is analyzed. Then, in terms of the relationship derived, a feedback compensation strategy based on the line voltage difference integral is proposed to regulate commutation signals by making three-phase back electromotive force (EMF) integral to zero, and the effect of the freewheeling process on the line voltage difference integral is considered. Moreover, an incremental PI controller is designed to achieve closed-loop compensation for the commutation error automatically. Finally, experiment results verify feasibility and effectiveness of the proposed strategy.

Keywords:

brushless DC (BLDC) motor; sensorless motor; commutation error compensation; free-wheeling period## 1. Introduction

Brushless DC (BLDC) motors are widely used in aerospace, electric vehicle, and household applications due to their inherent advantages, which include high-power density, high efficiency, and simple structure [1,2,3]. Position sensors, such as Hall-effect sensors, are often employed to acquire rotor position signals for proper commutation, however, misalignment in the mechanical installation of the sensors, extreme temperature conditions, or electromagnetic interference may induce errors in the rotor position information, which severely limit the application scope of BLDC motors [4]. To overcome these disadvantages, many sensorless BLDC motor techniques have been proposed in recent years. The zero-crossing points (ZCPs) of the back electromotive force (EMF) are easily detected and widely used in sensorless control. Among the various sensorless strategies currently available, these presented ZCP detection techniques show satisfactory results in specific application scopes; unfortunately, these strategies are still disturbed by various commutation errors [5,6,7]. The ZCPs of back-EMF are generally abstracted from the terminal voltage, but the terminal voltage is vulnerable to the high-frequency components due to the pulse-width modulation (PWM) switching. A low pass filter is usually applied to filter high-frequency switching noise of the terminal voltage, whereas the filters will introduce phase delay for ZCPs detection of back-EMF and the phase delay varies with the operating speed. The lag angle will increase as the motor speed rises. The distorted terminal voltage caused by the freewheeling process also will generate the commutation error. The disturbed terminal voltage may make position detection signal phase ahead, deviating from the ideal commutation instants. The inaccurate commutation signals will induce current pulsation and increase conduction loss.

In reference [8], a hysteresis comparator composed of discrete components is presented to compensate phase delay from the low-pass filter. In reference [9], the authors analyze the errors caused by signal extraction circuits and machine parameters in the sensorless control technique based on average line to line voltage. In reference [10], commutation errors due to the armature reaction and low-pass filters are analyzed, and an error compensation circuit is proposed to achieve proper commutation. In reference [11], the effects of the low-pass filter, noise, and nonideal properties of the estimated back-EMF on the commutation instants are considered. To adjust commutation instants for BLDC motors, a modified digital phase shifter is designed to implement compensation of commutation errors. In the research mentioned previously [8,9,10,11], some specific error factors are discussed and investigated, and the accuracy of the commutation signal is improved accordingly. To achieve more precise commutation signals of sensorless BLDC motors, the commutation error compensation strategies which consider more comprehensive error factors should be studied.

Many estimation and observer methods of commutation error compensation have been proposed to achieve high-precision commutation [12,13,14,15,16,17,18]. In reference [12], the torque constant is employed as the reference signal of the rotor position to obtain accurate commutation signals. In reference [13], the rotor position is acquired from the back-EMF difference, which is estimated from the disturbance observer structure. Discrete-time sliding mode observer [14] and iterative sliding mode observer [15] have been introduced to obtain precise commutation signals for sensorless permanent magnet synchronous motor control. Estimation strategies based on Kalman filters [16] and extended Kalman filters [17,18] have also been presented to estimate information of rotor position accurately. However, these algorithms are complicated and require a large amount of calculation.

Commutation error factors are reflected in the commutation signals, and thus voltages or currents under inaccurate commutation will contain the commutation error information. Many compensation strategies of commutation errors based on the phenomenon of voltages or currents produced under inaccurate commutation have been proposed. In reference [19], an intelligent self-tuning strategy is presented to finely adjust commutation instants, and regulation of the commutation instants is realized by minimizing the stator current. In reference [20], a self-compensation strategy of the commutation angle based on the DC-link current is proposed; in this technique, the commutation instants are corrected by regulating the estimated commutation time error to zero. However, this method is based on the linearized approximation between the DC-link current difference and commutation time error in low-inductance motors. In reference [21], commutation errors are compensated by keeping the freewheeling current of the unenergized phase symmetrical. However, when dealing with some PWM strategies featuring suppression of the freewheeling current [22], such as PWM_ON_PWM mode, the method is unsuitable. The research in [23] proposed a current index optimal approach to adjust commutation errors. However, the back-EMF is assumed to be a trapezoidal waveform with less than 120° flat-top width, which limits the applications of the proposed method. In reference [24], the symmetrical characteristics of the unenergized phase terminal voltage are presented to regulate commutation instants, but the effect of the freewheeling period is not considered.

This paper presents a novel compensation strategy for commutation errors of sensorless BLDC motors. In this paper, the relationship between the commutation error and the line voltage difference integral in 60 electrical degrees interval is analyzed, and a feedback compensation strategy based on the line voltage difference integral is presented to regulate commutation instants and the effect of the freewheeling period is considered. In addition, a PI controller is designed to achieve closed-loop compensation for commutation errors. The remainder of the paper is organized as follows. The proposed commutation error compensation strategy is proposed in Section 2. Section 3 provides experimental results to support the validity and effectiveness of the proposed method. The conclusions are presented in Section 4.

## 2. Proposed Commutation Error Compensation Strategy

This paper presents a commutation error compensation strategy based on the line voltage difference integral. In this section, the relationship between the line voltage difference integral and the commutation error is theoretically analyzed. Then, a feedback compensation strategy with the line voltage difference integral is presented. Finally, an incremental PI controller is designed to regulate the commutation error.

#### 2.1. Mathematical Model of BLDC Motor

The equivalent circuit of the BLDC motor drive system is shown in Figure 1. Assuming that the three-phase stator windings are symmetrical, the phase resistance and inductance are constant, and the armature reaction is negligible. Then, the voltage equations are described as
where ${u}_{\mathrm{a}}$, ${u}_{\mathrm{b}}$, and ${u}_{\mathrm{c}}$ are the three-phase voltages; ${i}_{\mathrm{a}}$, ${i}_{\mathrm{b}}$, and ${i}_{\mathrm{c}}$ are the three-phase currents; ${e}_{\mathrm{a}}$, ${e}_{\mathrm{b}}$, and ${e}_{\mathrm{c}}$ are the phase back-EMFs; $R$ is the stator resistance; $L$ is the phase inductance; and ${u}_{\mathrm{N}}$ is the neutral voltage.

$$\left[\begin{array}{l}{u}_{\mathrm{a}}\\ {u}_{\mathrm{b}}\\ {u}_{\mathrm{c}}\end{array}\right]=\left[\begin{array}{lll}R& 0& 0\\ 0& R& 0\\ 0& 0& R\end{array}\right]\left[\begin{array}{l}{i}_{\mathrm{a}}\\ {i}_{\mathrm{b}}\\ {i}_{\mathrm{c}}\end{array}\right]+\left[\begin{array}{lll}L& 0& 0\\ 0& L& 0\\ 0& 0& L\end{array}\right]\frac{d}{dt}\left[\begin{array}{l}{i}_{\mathrm{a}}\\ {i}_{\mathrm{b}}\\ {i}_{\mathrm{c}}\end{array}\right]+\left[\begin{array}{l}{e}_{\mathrm{a}}\\ {e}_{\mathrm{b}}\\ {e}_{\mathrm{c}}\end{array}\right]+\left[\begin{array}{l}{u}_{\mathrm{N}}\\ {u}_{\mathrm{N}}\\ {u}_{\mathrm{N}}\end{array}\right]$$

The line voltage equations are expressed as

$$\{\begin{array}{l}{u}_{\mathrm{ab}}={u}_{\mathrm{a}}-{u}_{\mathrm{b}}=R\left({i}_{\mathrm{a}}-{i}_{\mathrm{b}}\right)+L\frac{d\left({i}_{\mathrm{a}}-{i}_{\mathrm{b}}\right)}{dt}+{e}_{\mathrm{a}}-{e}_{\mathrm{b}}\\ {u}_{\mathrm{bc}}={u}_{\mathrm{b}}-{u}_{\mathrm{c}}=R\left({i}_{\mathrm{b}}-{i}_{\mathrm{c}}\right)+L\frac{d\left({i}_{\mathrm{b}}-{i}_{\mathrm{c}}\right)}{dt}+{e}_{\mathrm{b}}-{e}_{\mathrm{c}}\\ {u}_{\mathrm{ca}}={u}_{\mathrm{c}}-{u}_{\mathrm{a}}=R\left({i}_{\mathrm{c}}-{i}_{\mathrm{a}}\right)+L\frac{d\left({i}_{\mathrm{c}}-{i}_{\mathrm{a}}\right)}{dt}+{e}_{\mathrm{c}}-{e}_{\mathrm{a}}\end{array}$$

In general, the back-EMF of BLDC motors is between those of a trapezoidal wave and a sine wave since it contains many high-order harmonics. Hence, the back-EMF of the BLDC motor can be expressed as
where ${E}_{2n+1}$ is the back-EMF coefficient; (2n + 1) is the order of harmonics; $\theta $ is the rotor position; ${e}_{\mathrm{am}}$, ${e}_{\mathrm{bm}}$, and ${e}_{\mathrm{cm}}$ represent the mth harmonics of the three-phase back-EMF and the subscript m denotes harmonic order; ${e}_{3}$ and ${e}_{9}$ represent the third harmonics of the back-EMF.

$$\{\begin{array}{l}{e}_{\mathrm{a}}={\displaystyle {\sum}_{n=0}^{\infty}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\theta \right)={e}_{\mathrm{a}1}+{e}_{3}+{e}_{\mathrm{a}5}+{e}_{\mathrm{a}7}+{e}_{9}+\dots \\ {e}_{\mathrm{b}}={\displaystyle {\sum}_{n=0}^{\infty}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta -2\pi /3\right)\right)={e}_{\mathrm{b}1}+{e}_{3}+{e}_{\mathrm{b}5}+{e}_{\mathrm{b}7}+{e}_{9}+\dots \\ {e}_{\mathrm{c}}={\displaystyle {\sum}_{n=0}^{\infty}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta +2\pi /3\right)\right)={e}_{\mathrm{c}1}+{e}_{3}+{e}_{\mathrm{c}5}+{e}_{\mathrm{c}7}+{e}_{9}+\dots \end{array}$$

Figure 2 shows phase diagram between back-EMFs and phase current, where ${e}_{\mathrm{a}}$, ${e}_{\mathrm{b}}$, and ${e}_{\mathrm{c}}$ denote the back-EMFs, and ${i}_{\mathrm{a}}$, ${i}_{\mathrm{b}}$, and ${i}_{\mathrm{c}}$ denote phase current. $\alpha $ represents the commutation error, which is assumed $\alpha \in \left[-\pi /6,\pi /6\right]$. The sign of the commutation error $\alpha $ reflects the commutation information (i.e., delayed or advanced commutation). A negative commutation error $\alpha $ denotes advanced commutation, whereas a positive error represents a delayed one.

#### 2.2. Line Voltage Difference Integral without Consideration of Freewheeling Period

For a BLDC motor, there are six operation modes and every operation modes last 60 electrical degrees. In the 60 electrical degree conduction interval, two periods are included: the freewheeling period and the normal conduction period. In the freewheeling period ${t}_{\mathrm{fw}}$, the incoming phase current begins to rise, the un-commutated current remains conducting, and the outgoing phase current gradually decays due to the existence of phase inductance. When the outgoing phase current drops to zero, the freewheeling period is over and the motor starts operating in the normal conduction period.

Assume at some step that VT

_{1}and VT_{6}are conducting, while VT_{5}is floating. The line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ is expressed as
$${u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}=R({i}_{\mathrm{a}}+{i}_{\mathrm{b}}-2{i}_{\mathrm{c}})+Ld\left({i}_{\mathrm{a}}+{i}_{\mathrm{b}}-2{i}_{\mathrm{c}}\right)/dt+{e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}$$

Considering a BLDC motor with a negligible freewheeling period ${t}_{\mathrm{fw}}$, the current equation satisfies ${i}_{\mathrm{a}}=-{i}_{\mathrm{b}}$ and ${i}_{\mathrm{c}}=0$ during the entire 60-electrical degree period when $t\in \left[\pi /6,\pi /2\right]$, as shown in Figure 2. Substituting the current equation into (4), the line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ is simplified as

$${u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}={e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}$$

By integrating (5), the line voltage difference integral $d$ is achieved as follows:

$$d={\displaystyle {\int}_{{t}_{\pi /6}}^{{t}_{\pi /2}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)}dt={\displaystyle {\int}_{{t}_{\pi /6}}^{{t}_{\pi /2}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}dt$$

Figure 3 shows the three-phase back-EMF under accurate, delayed, and advanced commutation; the shadowed areas in each subfigure represent the integral of each back-EMF. As seen in Figure 3a, the integral of the back-EMFs ${e}_{\mathrm{a}}$ and ${e}_{\mathrm{b}}$ yields equal amplitudes but opposite signs, i.e., ${\int}_{{t}_{\pi /6}}^{{t}_{\pi /2}}{e}_{\mathrm{a}}}dt=-{\displaystyle {\int}_{{t}_{\pi /6}}^{{t}_{\pi /2}}{e}_{\mathrm{b}}}dt$; hence, the sum of the integrated back-EMFs ${e}_{\mathrm{a}}$ and ${e}_{\mathrm{b}}$ is zero in the interval. Similarly, the integral of the back-EMF ${e}_{\mathrm{c}}$ is zero, i.e., ${\int}_{{t}_{\pi /6}}^{{t}_{\pi /2}}{e}_{\mathrm{c}}}dt=0$, due to the AC symmetry of the back-EMF ${e}_{\mathrm{c}}$. From this analysis, (6) satisfies the condition

$$d={\displaystyle {\int}_{{t}_{\pi /6}}^{{t}_{\pi /2}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)}dt={\displaystyle {\int}_{{t}_{\pi /6}}^{{t}_{\pi /2}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}dt=0$$

The line voltage difference integral $d$ under accurate commutation yields a value of zero. When the commutation instants are delayed or advanced by $\alpha $, the conduction period of VT
where $\begin{array}{ll}{d}_{\mathrm{trp}}& ={\displaystyle {\int}_{\pi /6+\alpha}^{\pi /2+\alpha}[{\displaystyle {\sum}_{\begin{array}{l}n=1,\\ 4,7,\dots \end{array}}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\theta \right)}+{\displaystyle {\sum}_{\begin{array}{l}n=1,\\ 4,7,\dots \end{array}}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta -2\pi /3\right)\right)\\ & -2{\displaystyle {\sum}_{\begin{array}{l}n=1,\\ 4,7,\dots \end{array}}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta +2\pi /3\right)\right)]d\theta \end{array}$, $\begin{array}{ll}{d}_{\mathrm{oth}}& ={\displaystyle {\int}_{\pi /6+\alpha}^{\pi /2+\alpha}[{\displaystyle {\sum}_{\begin{array}{l}n=0,\\ 2,3,5,\dots \end{array}}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\theta \right)}+{\displaystyle {\sum}_{\begin{array}{l}n=0,\\ 2,3,5,\dots \end{array}}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta -2\pi /3\right)\right)\\ & -2{\displaystyle {\sum}_{\begin{array}{l}n=0,\\ 2,3,5,\dots \end{array}}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta +2\pi /3\right)\right)]d\theta \end{array}$.

_{1}and VT_{6}lasts for the interval $t\in \left[\alpha /6+\alpha ,\alpha /2+\alpha \right]$, and the line voltage difference integral $d$ is written as
$$d={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}={\displaystyle {\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta ={d}_{\mathrm{trp}}+{d}_{\mathrm{oth}}$$

Since the third harmonics of the three three-phase back-EMFs are equal, ${d}_{\mathrm{trp}}=0$. Then, (8) is simplified as

$$\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta ={d}_{\mathrm{oth$$

Solving and simplifying the definite integral gives

$$\begin{array}{ll}{\displaystyle {\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta =& 3{\displaystyle {\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left[{\displaystyle {\sum}_{\begin{array}{l}n=0,2,\\ 3,5,\dots \end{array}}{E}_{2n+1}\mathrm{sin}\left(\left(2n+1\right)\left(\theta -\pi /3\right)\right)}\right]}d\theta \\ & =-3{\displaystyle {\sum}_{\begin{array}{l}n=0,2,\\ 3,5,\dots \end{array}}\left({E}_{2n+1}/\left(2n+1\right)\right)\xb7\mathrm{cos}\left(\left(2n+1\right)\left(\alpha +\pi /6\right)\right)}\\ & \hspace{1em}+3{\displaystyle {\sum}_{\begin{array}{l}n=0,2,\\ 3,5,\dots \end{array}}\left({E}_{2n+1}/\left(2n+1\right)\right)\xb7\mathrm{cos}\left(\left(2n+1\right)\left(\alpha -\pi /6\right)\right)}\end{array}$$

As the back-EMF harmonic coefficients satisfy the condition ${E}_{1}/{E}_{7}\gg 1$, the high-order terms of the back-EMF in (10) are negligible, and (10) can be simplified as

$$\begin{array}{ll}{\displaystyle {\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta =& -3{E}_{1}\left[\mathrm{cos}\left(\alpha +\pi /6\right)-\mathrm{cos}\left(\alpha -\pi /6\right)\right]\\ & -\frac{3}{5}{E}_{5}\left[\mathrm{cos}\left(5\alpha +5\pi /6\right)-\mathrm{cos}\left(5\alpha -5\pi /6\right)\right]\end{array}$$

As seen in (11), the three-phase back-EMF integral ${\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta $ is a function of the commutation error $\alpha $. The relationship between the three-phase back-EMF integral and the commutation error $\alpha $ will be discussed in the following section.

Accurate commutation: when the commutation error $\alpha =0$, the motor works under accurate commutation, as shown in Figure 3a, and the back-EMF integral ${\int}_{\pi /6}^{\pi /2}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta =0$.

Advanced commutation: when the commutation error $\alpha \in \left[-\pi /6,0\right)$, the motor works under advanced commutation, as shown in Figure 3b, and the three-phase back-EMF integral ${\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta <0$.

Delayed commutation: when the commutation error $\alpha \in \left(0,\pi /6\right]$, the motor works under delayed commutation, as shown in Figure 3c, and the three-phase back-EMF integral ${\int}_{\pi /6+\alpha}^{\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta >0$.

Similarly, when VT

_{3}and VT_{4}are in conduction state, the phase current flows in opposite direction compared with the direction during the conduction period of VT_{1}and VT_{6.}The three-phase back-EMF integral ${\int}_{7\pi /6}^{3\pi /2}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta =0$ under accurate commutation, ${\int}_{7\pi /6+\alpha}^{3\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta <0$ under delayed commutation, and ${\int}_{7\pi /6+\alpha}^{3\pi /2+\alpha}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}d\theta >0$ under advanced commutation.From previous research on three-phase back-EMF integral and the line voltage difference integral expression in (7), when the freewheeling period ${t}_{\mathrm{fw}}$ is negligible, the line voltage difference integral $d$ is proportional to the commutation error $\alpha $ and can be used as an indicator of commutation errors.

The relationship between the conduction switch, the line voltage difference integral, and the commutation information is shown in Table 1; here, ${t}_{\mathrm{s}}$ and ${t}_{\mathrm{e}}$ are the lower and upper limits of integral, respectively.

When the motor is in no-load state, the effect of the freewheeling period ${t}_{\mathrm{fw}}$ is negligible. Figure 4 shows the diagram of the line voltage difference integral $d$ in the 60-electrical degree interval of A+B− and A−B+, where ${T}_{\mathrm{A}+\mathrm{B}-}$ and ${T}_{\mathrm{A}-\mathrm{B}+}$ represents the conduction period of phase A+B− and A−B+, respectively. The integral $d$ in the A+B− conduction interval is zero under accurate commutation (Figure 4a), negative under advanced commutation (Figure 4b), and positive under delayed commutation (Figure 4c). In the A−B+ conduction interval, the integral $d$ is opposite compared with that in the A+B− conduction interval. These results agree with the theoretical analysis.

#### 2.3. Line Voltage Difference Integral Considering Freewheeling Period

During the freewheeling period ${t}_{\mathrm{fw}}$, the line voltage difference is distorted by the DC-link voltage and clamped at the level of the DC-link voltage ${u}_{\mathrm{dc}}$. When line voltage difference integral is performed, the distorted line voltage difference in the interval ${t}_{\mathrm{fw}}$ is also integrated, which will cause the line voltage difference integral to deviate from the accurate line voltage difference integral. In this section, the line voltage difference integral of a BLDC motor considering the freewheeling period will be discussed.

Assume that the commutation error is $\alpha $ and the conduction interval of VT

_{1}and VT_{6}lasts for the period when $t\in \left[{t}_{\pi /6+\alpha},{t}_{\pi /2+\alpha}\right]$, as shown in Figure 2. In the conduction period, the line voltage difference integral ${d}^{\ast}$ can be expressed as
$${d}^{\ast}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}+{\displaystyle {\int}_{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}$$

Figure 5 shows the equivalent circuit when the commutation occurs from VT

_{5}to VT_{1.}In the commutation period ${t}_{\mathrm{fw}}$, VT_{5}is turned off, VT_{1}is turned on, and VT_{6}continues conducting. The three phase voltages are expressed as
$$\{\begin{array}{l}{u}_{\mathrm{a}}=R{i}_{\mathrm{a}}+L\frac{d{i}_{\mathrm{a}}}{dt}+{e}_{\mathrm{a}}+{u}_{\mathrm{N}}={u}_{\mathrm{dc}}\\ {u}_{\mathrm{b}}=R{i}_{\mathrm{b}}+L\frac{d{i}_{\mathrm{b}}}{dt}+{e}_{\mathrm{b}}+{u}_{\mathrm{N}}=0\\ {u}_{\mathrm{c}}=R{i}_{\mathrm{c}}+L\frac{d{i}_{\mathrm{c}}}{dt}+{e}_{\mathrm{c}}+{u}_{\mathrm{N}}=0\end{array}$$

The line voltage difference meets the condition ${u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}={u}_{\mathrm{dc}}$, and the line voltage difference integral during the freewheeling period ${t}_{\mathrm{fw}}$ is reformulated as

$${\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}{u}_{\mathrm{dc}}}dt$$

In (14), the line voltage difference $\left({u}_{\mathrm{ab}}-{u}_{\mathrm{bc}}\right)$ is equal to the DC-link voltage ${u}_{\mathrm{dc}}$ in the freewheeling period ${t}_{\mathrm{fw}}$; hence, the line voltage difference integral shows a trend of linear growth in the freewheeling period ${t}_{\mathrm{fw}}$.

Figure 6 shows the diagram of the line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ and its integral ${d}^{\ast}$ in the conduction period of phase A+B− and A−B+. The as seen in Figure 6, the line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ is equal to the DC-link voltage ${u}_{\mathrm{dc}}$ in the freewheeling period ${t}_{\mathrm{fw}}$ and the corresponding integral ${d}^{\ast}$ linearly increases in the interval. Compared with that in Figure 4, since the disturbed voltage difference is integrated in the freewheeling period ${t}_{\mathrm{fw}}$, the integral ${d}^{\ast}$ under different commutation produces an amplitude deviation. Especially under accurate commutation, for example, the integral ${d}^{\ast}$ deviates from zero, and becomes positive and negative in the conduction period of phase A+B− and A−B+, respectively.

The other voltage spikes in Figure 6 are analyzed as followed. When the commutation occurs, the outgoing phase current continues conducting through the anti-parallel diode, so the terminal voltage is clamped at the level of 0 V or ${u}_{\mathrm{dc}}$. When the motor commutates between different phases, the clamped voltage value of three-phase voltage changes, hence the line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ will also change accordingly. The cause of the voltage spikes is the same under delayed, advanced, and accurate commutation. To facilitate the analysis, the voltage spike under the accurate commutation is taken as an example.

(1) When commutation occurs from A+B− to A+C−, it meets ${u}_{\mathrm{a}}={u}_{\mathrm{dc}}$, ${u}_{\mathrm{b}}={u}_{\mathrm{dc}}$, and ${u}_{\mathrm{c}}=0$ in the freewheeling period ${t}_{\mathrm{fw}}$. Therefore, ${u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}=2{u}_{\mathrm{dc}}$, and it corresponds to the positive spike whose magnitude exceeds ${u}_{\mathrm{dc}}$.

(2) When commutation occurs from B+A− to C+A−, it meets ${u}_{\mathrm{a}}=0$, ${u}_{\mathrm{b}}=0$, and ${u}_{\mathrm{c}}={u}_{\mathrm{dc}}$ in the freewheeling period ${t}_{\mathrm{fw}}$. Therefore, ${u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}=-2{u}_{\mathrm{dc}}$, and it corresponds to the negative spike whose magnitude exceeds $-{u}_{\mathrm{dc}}$.

(3) When commutation occurs from A+C− to B+C−, it meets ${u}_{\mathrm{a}}=0$, ${u}_{\mathrm{b}}={u}_{\mathrm{dc}}$, and ${u}_{\mathrm{c}}=0$ in the freewheeling period ${t}_{\mathrm{fw}}$. Therefore, ${u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}={u}_{\mathrm{dc}}$, and it corresponds to the positive spike whose magnitude is equal to ${u}_{\mathrm{dc}}$.

(4) When commutation occurs from C+A− to C+B−, it meets ${u}_{\mathrm{a}}={u}_{\mathrm{dc}}$, ${u}_{\mathrm{b}}=0$, and ${u}_{\mathrm{c}}={u}_{\mathrm{dc}}$ in the freewheeling period ${t}_{\mathrm{fw}}$. Therefore, ${u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}=-{u}_{\mathrm{dc}}$, and it corresponds to the negative spike whose magnitude is equal to $-{u}_{\mathrm{dc}}$.

The voltage spikes of the line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ in 360-degree electrical angle are listed in Table 2.

In the normal conduction period, when $t\in \left[{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}},{t}_{\pi /2+\alpha}\right]$, the phase currents i

_{a}and i_{b}conduct, while the outgoing phase current ${i}_{\mathrm{c}}$ remains zero, i.e., ${i}_{\mathrm{a}}=-{i}_{\mathrm{b}}$ and ${i}_{\mathrm{c}}=0$. Substituting the current equation and (2) into the second item of (12), the line voltage difference integral ${\int}_{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt$ is rewritten as
$$\begin{array}{ll}{\displaystyle {\int}_{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}& ={\displaystyle {\int}_{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}^{{t}_{\pi /2+\alpha}}\left[R\left({i}_{\mathrm{a}}+{i}_{\mathrm{b}}-2{i}_{\mathrm{c}}\right)+Ld\left({i}_{\mathrm{a}}+{i}_{\mathrm{b}}-2{i}_{\mathrm{c}}\right)/dt+{e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right]dt}\\ & ={\displaystyle {\int}_{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}^{{t}_{\pi /2+\alpha}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)dt}\end{array}$$

By decomposing (15) into a combination of two items, it is reformulated as

$${\int}_{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}^{{t}_{\pi /2+\alpha}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)dt}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /2+\alpha}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)dt}-{\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)dt$$

Substituting (14) and (16) into (12), and (12) is rewritten as

$${d}^{\ast}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /2+\alpha}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)dt}+{\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{dc}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}+2{e}_{\mathrm{c}}\right)}dt$$

The phase current satisfies ${i}_{\mathrm{a}}+{i}_{\mathrm{b}}+{i}_{\mathrm{c}}=0$ in the freewheeling period ${t}_{\mathrm{fw}}$. Substituting the phase current relationship, (13) into the second item of (17), it is simplified as
where ${I}_{\mathrm{c}}$ is the final value of the outgoing phase current before commutation.

$$\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{dc}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}+2{e}_{\mathrm{c}}\right)}dt=-3{\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left[R{i}_{\mathrm{c}}+Ld{i}_{\mathrm{c}}/dt\right]}dt=-3R{\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}{i}_{\mathrm{c}}}dt+3L{I}_{\mathrm{c$$

During the commutation period ${t}_{\mathrm{fw}}$, the outgoing phase current drops from the final value ${I}_{\mathrm{c}}$ to zero, the integral item ${\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}{i}_{\mathrm{c}}}dt$ can be approximated by $-{I}_{\mathrm{c}}{t}_{\mathrm{fw}}/2$, and (18) is rewritten as

$$\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{dc}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}+2{e}_{\mathrm{c}}\right)}dt=3R{I}_{\mathrm{c}}{t}_{\mathrm{fw}}/2+3L{I}_{\mathrm{c$$

From (13), the phase current ${i}_{\mathrm{c}}$ in the freewheeling period ${t}_{\mathrm{fw}}$ is solved as
where $\beta =\frac{{u}_{\mathrm{dc}}+2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}}{3}$.

$${i}_{\mathrm{c}}\left(t\right)=\frac{-\left[\beta -\left(R{I}_{c}+\beta \right){e}^{-Rt/L}\right]}{R}$$

From (20), the freewheeling period ${t}_{\mathrm{fw}}$ for the outgoing phase current ${i}_{\mathrm{c}}$ dropping from final value ${I}_{\mathrm{c}}$ to zero is solved as

$${t}_{\mathrm{fw}}=-\frac{L}{R}\mathrm{ln}\frac{\beta}{\beta +R{I}_{\mathrm{c}}}$$

Substituting (21) into (19), and (19) is shown as

$${\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{dc}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}+2{e}_{\mathrm{c}}\right)}dt=3L{I}_{\mathrm{c}}\left(1-\sqrt{\mathrm{ln}\frac{\beta}{\beta +R{I}_{\mathrm{c}}}}\right)$$

In (22), ${\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{dc}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}+2{e}_{\mathrm{c}}\right)}dt$ is related to $\beta $. Next, the effect of $\beta $ will be discussed.

In the freewheeling period when $t\in \left[{t}_{\pi /6+\alpha},{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}\right]$, $\left(2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}\right)$ is expressed as

$$\begin{array}{ll}2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}=& 2{\displaystyle {\sum}_{n=0}^{\infty}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta +2\pi /3+\alpha \right)\right)\\ & -{\displaystyle {\sum}_{n=0}^{\infty}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\left(\theta -2\pi /3+\alpha \right)\right)-{\displaystyle {\sum}_{n=0}^{\infty}{E}_{2n+1}}\mathrm{sin}\left(\left(2n+1\right)\theta +\alpha \right)\end{array}$$

Considering ${E}_{1}\gg {E}_{7}$, the high-order terms of the back-EMF in (23) are negligible, and (23) can be simplified as

$$\begin{array}{ll}2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}& =2\left({e}_{\mathrm{c}1}+{e}_{3}+{e}_{\mathrm{c}5}\right)-\left({e}_{\mathrm{a}1}+{e}_{3}+{e}_{\mathrm{a}5}\right)-\left({e}_{\mathrm{b}1}+{e}_{3}+{e}_{\mathrm{b}5}\right)\\ & =2{e}_{\mathrm{c}1}+2{e}_{\mathrm{c}5}-{e}_{\mathrm{a}1}-{e}_{\mathrm{a}5}-{e}_{\mathrm{b}1}-{e}_{\mathrm{b}5}\\ & =2{E}_{1}\mathrm{sin}\left(5\pi /6+\alpha \right)+2{E}_{5}\mathrm{sin}\left(\pi /6+5\alpha \right)-{E}_{1}\mathrm{sin}\left(\pi /6+\alpha \right)\\ & \hspace{1em}-{E}_{5}\mathrm{sin}\left(5\pi /6+5\alpha \right)-{E}_{1}\mathrm{sin}\left(\alpha -\pi /2\right)-{E}_{5}\mathrm{sin}\left(5\alpha -\pi /2\right)\end{array}$$

By calculating the trigonometric functions, (24) is simplified as

$$2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}=\frac{3}{2}{E}_{1}\mathrm{cos}\alpha -\frac{3\sqrt{3}}{2}{E}_{1}\mathrm{sin}\alpha -\frac{3}{2}{E}_{5}\mathrm{cos}\left(5\alpha \right)-\frac{3\sqrt{3}}{2}{E}_{5}\mathrm{sin}\left(5\alpha \right)$$

Both sides of (25) are multiplied by $1/{E}_{5}$, and refined as

$$f\left(\alpha \right)=\frac{2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}}{{E}_{5}}=\frac{3}{2}\xb7\frac{{E}_{1}}{{E}_{5}}\xb7\mathrm{cos}\alpha -\frac{3\sqrt{3}}{2}\xb7\frac{{E}_{1}}{{E}_{5}}\xb7\mathrm{sin}\alpha -\frac{3}{2}\mathrm{cos}\left(5\alpha \right)-\frac{3\sqrt{3}}{2}\mathrm{sin}\left(5\alpha \right)$$

In general, the EMF harmonic coefficients of a BLDC motor with a trapezoidal back EMF [25] ${E}_{1}/{E}_{5}\in \left[5,125\right]$. The relationship between $f\left(\alpha \right)$, ${E}_{1}/{E}_{5}$, and the commutation error $\alpha $ during the freewheeling period ${t}_{\mathrm{fw}}$ can be obtained in (26). When ${E}_{5}>0$, ${E}_{1}/{E}_{5}\in \left[5,125\right]$, and the corresponding 3-D graph is shown in Figure 7a. It is observed that with respect to ${E}_{1}/{E}_{5}\in \left[5,125\right]$, $f\left(\alpha \right)$ is greater than zero when the commutation error $\alpha \in \left[-\pi /6,\pi /6\right]$, so $2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}=f\left(\alpha \right)\xb7{E}_{5}>0$. When ${E}_{5}<0$, ${E}_{1}/{E}_{5}\in \left[-125,-5\right]$, and the corresponding 3-D graph is shown in Figure 7b. $f\left(\alpha \right)$ is less than zero when the commutation error $\alpha \in \left[-\pi /6,\pi /6\right]$, and $2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}=f\left(\alpha \right)\xb7{E}_{5}>0$. Based on the relationship, it is derived that $\beta =\frac{{u}_{\mathrm{dc}}+2{e}_{\mathrm{c}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}}{3}>\frac{{u}_{\mathrm{dc}}}{3}$ and $\frac{R{I}_{\mathrm{c}}}{\beta}<\frac{3R{I}_{\mathrm{c}}}{{u}_{\mathrm{dc}}}$. Both sides of $\frac{3R{I}_{\mathrm{c}}}{{u}_{\mathrm{dc}}}$ are multiplied by ${I}_{\mathrm{c}}$, and the item $\frac{3R{I}_{\mathrm{c}}}{{u}_{\mathrm{dc}}}$ is represented as $\frac{3R{I}_{\mathrm{c}}^{2}}{{u}_{\mathrm{dc}}{I}_{\mathrm{c}}}=\frac{1.5{P}_{\mathrm{cu}}}{{P}_{\mathrm{in}}}$, where ${P}_{\mathrm{cu}}$ denotes copper loss and ${P}_{\mathrm{cu}}=2{I}_{\mathrm{c}}^{2}R$. ${P}_{\mathrm{in}}$ denotes the input power of the motor and ${P}_{\mathrm{in}}={u}_{\mathrm{dc}}{I}_{\mathrm{c}}$. In general, the copper loss ${P}_{\mathrm{cu}}$ is negligible, hence it satisfies $\frac{3R{I}_{\mathrm{c}}}{{u}_{\mathrm{dc}}}=\frac{3R{I}_{\mathrm{c}}^{2}}{{u}_{\mathrm{dc}}{I}_{\mathrm{c}}}=\frac{1.5{P}_{\mathrm{cu}}}{{P}_{\mathrm{in}}}\ll 1$, which implies $\mathrm{ln}\sqrt{\frac{\beta}{\beta +R{I}_{\mathrm{c}}}}=\mathrm{ln}\sqrt{\frac{1}{1+R{I}_{\mathrm{c}}/\beta}}\approx 0$ Therefore, (19) is simplified as

$$\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /6+\alpha}+{t}_{\mathrm{fw}}}\left({u}_{\mathrm{dc}}-{e}_{\mathrm{a}}-{e}_{\mathrm{b}}+2{e}_{\mathrm{c}}\right)}dt\approx 3L{I}_{\mathrm{c$$

Combining (27) and (17), the latter is reformulated as

$${d}^{\ast}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /2+\alpha}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)dt}={\displaystyle {\int}_{{t}_{\pi /6+\alpha}}^{{t}_{\pi /2+\alpha}}\left({e}_{\mathrm{a}}+{e}_{\mathrm{b}}-2{e}_{\mathrm{c}}\right)}dt+3L{I}_{\mathrm{c}}$$

According to the previous analysis, the general function of the line voltage difference integral ${d}^{\ast}$ is given as
where the subscripts x and y represent the active phase, and z represents the inactive phase. ${t}_{\mathrm{s}}$ and ${t}_{\mathrm{e}}$ are the lower and upper limits of integral, respectively.

$${d}^{\ast}={\displaystyle {\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{xz}}-{u}_{\mathrm{zy}}\right)}dt={\displaystyle {\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({e}_{\mathrm{x}}+{e}_{\mathrm{y}}-2{e}_{\mathrm{z}}\right)}dt+3L{I}_{\mathrm{z}}$$

#### 2.4. Commutation Error Compensation Strategy

In Section 2.2 and Section 2.3, the respective line voltage difference integrals $d$ and ${d}^{\ast}$ without and with consideration of the freewheeling period ${t}_{\mathrm{fw}}$ are discussed. Next, the commutation error compensation strategy is described based on the analysis of the line voltage difference integral.

From (29), the three-phase back-EMF integral is rewritten as

$$\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({e}_{\mathrm{x}}+{e}_{\mathrm{y}}-2{e}_{\mathrm{z}}\right)}dt={d}^{\ast}-3L{I}_{\mathrm{z$$

According to the research in Section 2.2, three-phase back-EMF integral can reflect commutation errors. In (30), three-phase back-EMF integral can be obtained from the combination of the integral ${d}^{\ast}$ and $-3L{I}_{\mathrm{z}}$ to determine commutation errors when the freewheeling period ${t}_{\mathrm{fw}}$ is considered.

In general, the commutation instants are obtained by delaying ZCPs by 30 electrical degrees in the sensorless technique and reactivating the motor windings according to the predefined commutation sequence. The predefined commutation sequences are shown in Table 3; here, ${\mathrm{H}}_{\mathrm{va}}$, ${\mathrm{H}}_{\mathrm{vb}}$, and ${\mathrm{H}}_{\mathrm{vc}}$ are virtual hall signals.

In Table 1, the sign of the three-phase back-EMF integral changes according to the direction of the phase current. The three-phase back-EMF integral ${d}_{\mathrm{c}}$ can be updated as
where $\rho $ denotes the rotation direction of the motor rotor. When $\rho =0$, the motor runs in the anti-clockwise rotation, and when $\rho =1$, the motor rotates in the opposite one. When the sensorless BLDC motor runs, the windings are excited in according with the predefined commutation sequence listed in Table 3, and the conduction switches are obtained. Then the line voltage difference integral ${d}^{\ast}$ is calculated with Table 1, and the outgoing phase current ${I}_{\mathrm{z}}$ before commutation is sampled. By using (30), the three-phase back-EMF integral ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({e}_{\mathrm{x}}+{e}_{\mathrm{y}}-2{e}_{\mathrm{z}}\right)}dt$ can be given. Considering the rotation direction $\rho $ of the motor rotor is known, the three-phase back-EMF integral ${d}_{\mathrm{c}}$ is converted to a positive value under delayed commutation and to a negative one under advanced commutation with (31), which also makes PI controller available.

$${d}_{\mathrm{c}}={\left(-1\right)}^{\left({\mathrm{H}}_{\mathrm{va}}{+\mathrm{H}}_{\mathrm{vb}}{+\mathrm{H}}_{\mathrm{vc}}+\rho \right)}\xb7{\displaystyle {\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({e}_{\mathrm{x}}+{e}_{\mathrm{y}}-2{e}_{\mathrm{z}}\right)}dt$$

Here, a PI regulator is also designed to compensate commutation errors, and the PI regulator is defined as
where three-phase back-EMF integral error $e\left(k\right)={d}_{\mathrm{ref}}-{d}_{\mathrm{c}}\left(k\right)$, and the reference value ${d}_{\mathrm{ref}}=0$. ${k}_{\mathrm{p}}$ is the proportional coefficient, and ${k}_{\mathrm{i}}$ is the integral coefficient. ${T}_{\mathrm{i}}$ is the integral period and ${T}_{\mathrm{i}}=0.0001\text{}\mathrm{s}$. $u\left(k\right)$ is the kth output value of the PI regulator, $u\left(k-1\right)$ is the $\left(k-1\right)$th output value of the PI regulator. Here, k represents the number of iterations.

$$u\left(k\right)={k}_{\mathrm{p}}\left(e\left(k\right)-e\left(k-1\right)\right)+{k}_{\mathrm{i}}{T}_{\mathrm{i}}e\left(k\right)+u\left(k-1\right)$$

For the sensorless BLDC motor based on ZCP detection of the back-EMF, the accurate commutation instants are obtained by 30 electrical degrees delayed shift of ZCPs. Therefore, after the commutation error is determined, the commutation shift is updated as
where $\theta \left(0\right)=\pi /6$.

$$\theta \left(k\right)=\theta \left(k-1\right)-u\left(k\right)$$

Figure 8 shows the block diagram of a sensorless BLDC motor drive system and the proposed commutation error compensation strategy is shown in the shadowed area. The system contains a speed-loop controller, a current-loop controller, and a commutation error compensation link. In the commutation error compensation link, when commutation signals are detected, the outgoing phase current final value ${I}_{\mathrm{z}}$ is sampled and the line voltage difference is integrated until the commutation occurs again. Then, the line voltage difference integral ${d}^{\ast}$ is recorded, and the three-phase back-EMF integral ${d}_{\mathrm{c}}$ is calculated from the sampled current value ${I}_{\mathrm{z}}$ and the line voltage difference integral ${d}^{\ast}$. The entire compensation process is then resumed. A flowchart of the proposed method is shown in Figure 9.

Figure 10 shows the back-EMF waveforms by the constant speed test of 1200 rpm.

## 3. Experiment Results

An experimental prototype is set up to verify the feasibility and effectiveness of the proposed strategy. The experimental platform, which consists of the control system and the experimental motor, is shown in Figure 11. The BLDC motor is connected to the generator by a flexible coupling, and its rated parameters are shown in Table 4. The core processor is DSP (TMS320F28335) with a 150 MHz clock frequency, and the three-phase inverter is IPM PM50RL1A060 (Mitsubishi). The line voltage and phase current are sampled by three voltage sensors (LV25-P) and three current sensors (LTS15-NP), respectively. To remove the effect of switching noise, a low-pass FIR filter with the Hamming window function was designed. The cutoff frequency and the order of the filter were selected as 3 kHz and 50, respectively. The filter provides 65 dB of signal attenuation at the switching frequency. Many experiments were conducted to obtain the proportional coefficient ${k}_{\mathrm{p}}$ and the integral coefficient ${k}_{\mathrm{i}}$ of the PI regulator. Based on the test results, the proportional coefficient and integral coefficient are designed as ${k}_{\mathrm{p}}=8.16$ and ${k}_{\mathrm{i}}=0.023$, respectively. The modulation method of the three-phase inverter is PWM-ON, and the switching frequency of three-phase inverter and the sampling frequency of the line voltage are 10 and 200 kHz, respectively. The experimental results were monitored and recorded by a digital oscilloscope DL750 (YOKOGAWA), and the line voltage difference integral was observed through a DAC.

Figure 12 shows the phase current ${i}_{\mathrm{c}}$ and the line voltage difference integral ${d}^{\ast}$ under advanced, delayed, and accurate commutation. In the experiment, the motor runs at a speed of 500 rpm, the load torque is 7.5 Nm, and the commutation instants are set to be advanced and delayed by 10°. The conduction periods of A+B− and A−B+ are taken as examples, and the outgoing phase current final value ${I}_{\mathrm{c}}$ before commutation and the line voltage difference integral ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{ca}}-{u}_{\mathrm{ab}}\right)}dt$ are marked in solid circles. In Figure 12a,b, there is an obvious current ripple in phase current ${i}_{\mathrm{c}}$ and the line voltage difference integral ${d}^{\ast}$ is different. Figure 12c shows that the current ripple is attenuated obviously and the integral ${d}^{\ast}$ also changes correspondingly when the commutation instants are accurate. In addition, as shown in the dashed circle, the line voltage difference integral ${d}^{\ast}$ takes on an approximately linear variation trend during the freewheeling period ${t}_{\mathrm{fw}}$.The experimental results are consistent with the theoretical analysis.

The performance of the proposed strategy is tested in the steady and transient states. In the steady-state experiment, the motor runs at a fixed speed and load. In the transient experiment, the motor works at varying speeds and a fixed load. Figure 13 shows the phase currents and integral ${d}^{\ast}$ before and after compensation under different test conditions. It is observed that the phase current ${i}_{\mathrm{c}}$ and the integral ${d}^{\ast}$ fluctuates obviously under delayed and advanced commutation, yet the current ripple is effectively reduced after the proposed compensation strategy is used, and the integral ${d}^{\ast}$ also changes correspondingly when the commutation instants are accurate. The experimental results show that the proposed strategy can accurately compensate commutation errors at different speeds and load torques.

Subsequently, the performance of the proposed strategy during the transient process is tested. In the experiment, the commutation instants are delayed by about 10°, and the motor is accelerated from 300 rpm to 1500 rpm at a load torque of 12 Nm. Figure 14 shows the phase current, the line voltage difference integral, and their enlarged vision with the proposed strategy. When the motor speed ramps up, the compensation strategy is initiated at the points S

_{1}and S_{2}, and the commutation error is almost removed at the points T_{1}and T_{2}, respectively. It is seen that, after the compensation strategy is activated, the current fluctuation is effectively reduced. Therefore, the proposed compensation strategy exhibits satisfactory dynamic performance during variable-speed operation.To test the convergence rate of the proposed strategy under the steady speed operation, the commutation error is set to about 10°, and the motor runs at a speed of 800 rpm and load torque of 12 Nm. Figure 15 shows the phase current, the line voltage difference integral ${d}^{\ast}$, and their enlarged vision with PI controller. It is found that, before the point of S

_{a}, the phase current ${i}_{\mathrm{c}}$ curls up and the integral ${d}^{\ast}$ is high, while the compensation strategy with PI controller is activated at the point S_{a}, the current ripple and the integral ${d}^{\ast}$ gradually decreases. After 1.05 s, the current fluctuation is effectively suppressed, and the commutation error is almost eliminated. In addition, the convergence rate of the proposed method is tested at different speeds, and the test results are shown in Table 5, and the results show the proposed strategy converges quickly in a wide speed range.Moreover, the power consumption is reduced after the commutation instants are compensated with the proposed strategy. In these power consumption tests, the commutation instants are set to be delayed and advanced by 10°and 12°, respectively, the speed range is 300–1500 rpm and the load torques ${T}_{\mathrm{L}}$ are about 11, 12, 13 and 15 Nm. Figure 16 shows the power consumption of the BLDC motor before and after compensation after steady operation for 40 min. The experimental results in Figure 16 show that the proposed strategy can reduce power consumption over wide speed ranges, especially in the high-speed ranges.

## 4. Conclusions

This paper presents a novel compensation strategy for commutation error of sensorless BLDC motors. The method is suitable in both the steady-speed and variable-speed range. The relationship between the line voltage difference integral in 60 electrical degrees interval and the commutation error is established. A commutation error commutation strategy with respect of the line voltage difference integral is proposed to correct the inaccurate commutation instants by regulating the three-phase back-EMF integral to zero. In this method, the influence of the voltage pulses caused by the diode-freewheeling conduction on the line voltage difference integral is analyzed, making the proposed strategy applicable to BLDC motors considering the freewheeling period. Furthermore, a PI controller is also designed to realize closed-loop compensation for commutation errors. Finally, experimental results show the effectiveness and feasibility of the proposed strategy under different test conditions.

## Author Contributions

This paper is the result of the hard work of all of the authors. X.Y. and J.Z. conceived and designed the proposed method. X.Y. and J.Z. conceived and analyzed the data. X.Y. provided funding support. J.Z. and G.L. conducted the experiment and verified the proposed method. J.Z., G.L., and H.L. wrote the paper, and H.L. and J.W. contributed to the review of the document. All authors gave advice for the manuscript.

## Funding

This work was supported by the High-tech Ship Project of China under Grant No. GJYF-043/6.

## Conflicts of Interest

The authors declare no conflict of interest.

## References

- Capolino, G.A.; Cavagnino, A. New trends in electrical machines technology—Part I. IEEE Trans. Ind. Electron.
**2014**, 61, 4281–4285. [Google Scholar] [CrossRef] - Acarnley, P.P.; Watson, J.F. Review of position-sensorless operation of brushless permanent-magnet machines. IEEE Trans. Ind. Electron.
**2006**, 53, 352–362. [Google Scholar] [CrossRef] - Samoylenko, N.; Han, Q.; Jatskevich, J. Dynamic performance of brushless DC motors with unbalanced hall sensors. IEEE Trans. Energy Convers.
**2008**, 23, 752–763. [Google Scholar] [CrossRef] - Hwang, C.; Li, P.; Chuang, F.; Liu, C.; Huang, K. Optimization for reduction of torque ripple in an axial flux permanent magnet machine. IEEE Trans. Magn.
**2009**, 45, 1760–1763. [Google Scholar] [CrossRef] - Yang, Y.; Ting, Y. Improved angular displacement estimation based on Hall-effect sensors for driving a brushless permanent-magnet motor. IEEE Trans. Ind. Electron.
**2014**, 61, 504–511. [Google Scholar] [CrossRef] - Cheng, C.; Cheng, M. Implementation of a highly reliable hybrid electric scooter drive. IEEE Trans. Ind. Electron.
**2007**, 54, 2462–2473. [Google Scholar] [CrossRef] - Huang, X.; Goodman, A.; Gerada, C.; Fang, Y.; Lu, Q. A single sided matrix converter drive for a brushless DC motor in aerospace applications. IEEE Trans. Ind. Electron.
**2012**, 59, 3542–3552. [Google Scholar] [CrossRef] - Chun, T.; Tran, Q.; Lee, H.; Kim, H. Sensorless control of BLDC motor drive for an automotive fuel pump using a hysteresis comparator. IEEE Trans. Power Electron.
**2014**, 29, 1382–1391. [Google Scholar] [CrossRef] - Bhogineni, S.; Rajagopal, K.R. Position error in sensorless control of brushless dc motor based on average line to line voltages. In Proceedings of the IEEE International Conference on Power Electronics, Drives and Energy Systems (PEDES), Karnataka, India, 16–19 December 2012; pp. 1–6. [Google Scholar]
- Shen, J.; Tseng, K. Analyses and compensation of rotor position detection error in sensorless PM brushless DC motor drives. IEEE Trans. Energy Convers.
**2003**, 18, 87–93. [Google Scholar] [CrossRef] - Cheng, K.; Tzou, Y. Design of a sensorless commutation IC for BLDC motors. IEEE Trans. Power Electron.
**2003**, 18, 1365–1375. [Google Scholar] [CrossRef] - Park, J.; Hwang, S.; Kim, J. Sensorless control of brushless DC motors with torque constant estimation for home appliances. IEEE Trans. Ind. Appl.
**2012**, 48, 677–683. [Google Scholar] [CrossRef] - Wang, S.; Lee, A. A 12-step sensorless drive for brushless DC motors based on back-EMF differences. IEEE Trans. Energy Convers.
**2015**, 30, 646–654. [Google Scholar] [CrossRef] - Bernardes, T.; Montagner, V.F.; Grundling, H.A.; Pinheiro, H. Discrete-time sliding mode observer for sensorless vector control of permanent magnet synchronous machine. IEEE Trans. Ind. Electron.
**2014**, 61, 1679–1691. [Google Scholar] [CrossRef] - Lee, H.; Lee, J. Design of iterative sliding mode observer for sensorless PMSM control. IEEE Trans. Control. Syst. Technol.
**2013**, 21, 1394–1399. [Google Scholar] [CrossRef] - Alonge, F.; D’Ippolito, F.; Sferlazza, A. Sensorless control of induction-motor drive based on robust Kalman filter and adaptive speed estimation. IEEE Trans. Ind. Electron.
**2014**, 61, 1444–1453. [Google Scholar] [CrossRef] - Quang, N.K.; Hieu, N.T.; Ha, Q.P. FPGA-based sensorless PMSM speed control using reduced-order extended kalman filters. IEEE Trans. Ind. Electron.
**2014**, 61, 4574–4582. [Google Scholar] [CrossRef] - Idkhajine, L.; Monmasson, E.; Maalouf, A. Fully FPGA-based sensorless control for synchronous AC drive using an extended Kalman filter. IEEE Trans. Ind. Electron.
**2012**, 59, 3908–3918. [Google Scholar] [CrossRef] - Chen, H.C.; Liaw, C.M. Sensorless control via intelligent commutation tuning for brushless dc motor. Inst. Electron. Eng. Electron. Power Appl.
**2002**, 46, 678–684. [Google Scholar] [CrossRef] - Fang, J.; Li, W.; Li, H. Self-compensation of the commutation angle based on dc-link current for high-speed brushless DC motors with low inductance. IEEE Trans. Power Electron.
**2014**, 29, 428–439. [Google Scholar] [CrossRef] - Wu, X.; Zhou, B.; Song, F.; Chen, F.; Wei, J. A closed loop control method to correct position phase for sensorless Brushless DC motor. In Proceedings of the International Conference on Electrical Machines and Systems, Wuhan, China, 17–20 October 2008; pp. 1460–1464. [Google Scholar]
- Krishnan, G.; Ajmal, K.T. A neoteric method based on PWM ON PWM scheme with buck converter for torque ripple minimization in BLDC drive. In Proceedings of the Annual International Conference on Emerging Research Areas: Magnetics, Machines and Drives (AICERA/iCMMD), Kottayam, India, 24–26 July 2014; pp. 1–6. [Google Scholar]
- Lee, A.; Wang, S.; Fan, C. A current index approach to compensate commutation phase error for sensorless brushless dc motor with non-ideal back EMF. IEEE Trans. Power Electron.
**2016**, 31, 4389–4399. [Google Scholar] [CrossRef] - Jang, G.; Kim, M. Optimal commutation of a BLDC motor by utilizing the symmetric terminal voltage. IEEE Trans. Magn.
**2006**, 42, 3473–3475. [Google Scholar] [CrossRef] - Zhou, X.; Chen, X.; Lu, M.; Zeng, F. Rapid self-compensation method of commutation phase error for low inductance BLDC motor. IEEE Trans. Ind. Inform.
**2017**, 13, 1833–1842. [Google Scholar] [CrossRef]

**Figure 3.**Three-phase back-EMF. (

**a**) Accurate commutation; (

**b**) Advanced commutation; (

**c**) Delayed commutation.

**Figure 4.**Line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ and integral $d$ in the conduction period of phase A+B− and A−B+. (

**a**) Accurate commutation; (

**b**) Advanced commutation; (

**c**) Delayed commutation.

**Figure 6.**The line voltage difference $\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)$ and corresponding integral ${d}^{\ast}$ in the conduction period of phase A+B− and A−B+. (

**a**) Accurate commutation; (

**b**) Advanced commutation; (

**c**) Delayed commutation.

**Figure 7.**Relationships between $f\left(\alpha \right)$, ${E}_{1}/{E}_{5}$, and the commutation error $\alpha $ during the freewheeling period ${t}_{\mathrm{fw}}$. (

**a**) ${E}_{5}>0$; (

**b**) ${E}_{5}<0$.

**Figure 12.**Phase current and the line voltage difference integral. (

**a**) Advanced commutation; (

**b**) Delayed commutation; (

**c**) Exact commutation.

**Figure 13.**Current waveform of phase C before and after compensation. (

**a**) Commutation instants are delayed by 10° at a speed of 1000 rpm and load torque of 12 Nm; (

**b**) Commutation instants are delayed by 12° at a speed of 1500 rpm and load torque of 16 Nm; (

**c**) Commutation instants are advanced by 12° at a speed of 850 rpm and load torque of 10 Nm; (

**d**) Commutation instants are advanced by 14° at a speed of 1200 rpm and load torque of 14 Nm.

**Figure 14.**Transient performance and enlarged view with the proposed strategy when the motor accelerates from 300 to 1500 rpm.

**Figure 15.**Comparative results of the phase current, the integral of the line voltage difference, and their enlarged view at a speed of 800 rpm and load torque of 12 Nm.

**Figure 16.**Power consumption comparison before and after compensation. (

**a**) Under delayed commutation; (

**b**) Under advanced commutation.

Conduction Switch | $\mathit{d}$ | Sign of d | Advanced/Delayed |
---|---|---|---|

${\mathrm{VT}}_{1}{-\mathrm{VT}}_{6}$ | ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)}dt$ | >0 | Delayed |

<0 | Advanced | ||

${\mathrm{VT}}_{1}{-\mathrm{VT}}_{2}$ | ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{ab}}-{u}_{\mathrm{bc}}\right)}dt$ | <0 | Delayed |

>0 | Advanced | ||

${\mathrm{VT}}_{3}{-\mathrm{VT}}_{2}$ | ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{ba}}-{u}_{\mathrm{ac}}\right)}dt$ | >0 | Delayed |

<0 | Advanced | ||

${\mathrm{VT}}_{3}{-\mathrm{VT}}_{4}$ | ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{bc}}-{u}_{\mathrm{ca}}\right)}dt$ | <0 | Delayed |

>0 | Advanced | ||

${\mathrm{VT}}_{5}{-\mathrm{VT}}_{4}$ | ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{ab}}-{u}_{\mathrm{bc}}\right)}dt$ | >0 | Delayed |

<0 | Advanced | ||

${\mathrm{VT}}_{5}{-\mathrm{VT}}_{6}$ | ${\int}_{{t}_{\mathrm{s}}}^{{t}_{\mathrm{e}}}\left({u}_{\mathrm{ba}}-{u}_{\mathrm{ac}}\right)}dt$ | <0 | Delayed |

>0 | Advanced |

Commutation Case | ${\mathit{u}}_{\mathbf{a}}$ | ${\mathit{u}}_{\mathbf{b}}$ | ${\mathit{u}}_{\mathbf{c}}$ | ${\mathit{u}}_{\mathbf{bc}}-{\mathit{u}}_{\mathbf{ca}}$ |
---|---|---|---|---|

C+A− → C+B− | ${u}_{\mathrm{dc}}$ | 0 | ${u}_{\mathrm{dc}}$ | $-{u}_{\mathrm{dc}}$ |

C+B− → A+B− | ${u}_{\mathrm{dc}}$ | 0 | 0 | ${u}_{\mathrm{dc}}$ |

A+B− → A+C− | ${u}_{\mathrm{dc}}$ | ${u}_{\mathrm{dc}}$ | 0 | $2{u}_{\mathrm{dc}}$ |

A+C− → B+C− | 0 | ${u}_{\mathrm{dc}}$ | 0 | ${u}_{\mathrm{dc}}$ |

B+C− → B+A− | 0 | ${u}_{\mathrm{dc}}$ | ${u}_{\mathrm{dc}}$ | $-{u}_{\mathrm{dc}}$ |

B+A− → C+A− | 0 | 0 | ${u}_{\mathrm{dc}}$ | $-2{u}_{\mathrm{dc}}$ |

H_{va,} H_{vb,} H_{vc} | 001 | 101 | 100 | 110 | 010 | 011 |
---|---|---|---|---|---|---|

Direction | Clockwise | |||||

Conduction switch | ${\mathrm{VT}}_{3}{-\mathrm{VT}}_{2}$ | ${\mathrm{VT}}_{3}{-\mathrm{VT}}_{4}$ | ${\mathrm{VT}}_{5}{-\mathrm{VT}}_{4}$ | ${\mathrm{VT}}_{5}{-\mathrm{VT}}_{6}$ | ${\mathrm{VT}}_{1}{-\mathrm{VT}}_{6}$ | ${\mathrm{VT}}_{1}{-\mathrm{VT}}_{2}$ |

Direction | Anti-clockwise | |||||

Conduction switch | ${\mathrm{VT}}_{5}{-\mathrm{VT}}_{6}$ | ${\mathrm{VT}}_{1}{-\mathrm{VT}}_{6}$ | ${\mathrm{VT}}_{1}{-\mathrm{VT}}_{2}$ | ${\mathrm{VT}}_{3}{-\mathrm{VT}}_{2}$ | ${\mathrm{VT}}_{3}{-\mathrm{VT}}_{4}$ | ${\mathrm{VT}}_{5}{-\mathrm{VT}}_{4}$ |

Motor Parameter | Value | Unit |
---|---|---|

Rated voltage | 200 | V |

Rated power | 3.15 | kW |

Rated speed | 1500 | rpm |

Rated torque | 20 | Nm |

Pole pairs | 4 | |

Phase inductance | 1.234 | mH |

Phase resistance | 0.0654 | Ω |

Back-EMF coefficient | 0.528 | V/(rad/s) |

Speed (rpm) | 300 | 500 | 800 | 1200 | 1500 |

Convergence rate (s) | 2.52 | 1.59 | 1.05 | 0.713 | 0.565 |

© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).