I am using a 3 phase BLDC motor with current rating of 20 A and voltage rating of 18V. At the moment zero cross detection scheme has been employed in the floating phase for position detection of the rotor while two phases are energized at a time. In the start, motor is commutated for a predefined interval until a specific speed is reached. After that, the motor is commutated normally using BEMF detection method. The problem is sometimes commutation works fine and sometimes not. In other words it is not reliable. For example, i have to play a lot with the parameters so that commutation works fine until smooth BEMF signals are acquired. Still then, the results are not reliable.
How to proceed in this situation? any ideas or references would be appreciated!