When controlling a BLDC motor which has hall sensors, are the hall sensors always enough when combined with suitable logic in software?
Whether using Hi/Lo PWM block commutation or a sinusoidal wave with all 3 windings used at any time, it is possible to get a reasonable approximation of the current motor position with the 1st, 2nd and 3rd derivatives of the motor position with respect to time (speed, acceleration and rate of change of acceleration). With timings for the each hall state for the phase rotation of the motor this is fairly simply to calculate and to adjust based on changes in power levels. This does require the motor to be moving above around 60rpm but this is not generally a problem.
So given I have this... why would I want to consider measuring the back EMF or the current on each phase?
Both would add complexity to the circuits, and with sinusoidal commutation you are pretty much limited to the current sensing method as each winding is in use with possibly very minimal off time.
Am I missing something obvious where there is a distinct advantage in the calculation of rotor position based on current sensing?
For the purposes of this question I'd like to limit this to small, low voltage motors in the range of 25-500W, 12-48V.
Note: This is not looking to consider sensor less design which has specific reasons for needing other forms of measurement.