1. Sensorless Trapezoidal BLDC Motors Control  Algorithm based on Back Electromotive Force (BEMF) Zero Crossing.
  2. Motor start  of two types: a) initialize the motor to a known position by powering a phase pair and waiting for the rotor alignment (it causes a rotor initial movement, may be in an opposite to desired direction); b) detect a rotor position and start switching by powering a phase pair accordingly.
  3. Ramp up begins with “open loop” (very short) and then “close loop” starts with BEMF Zero Crossing synchronization.
  4. Speed controller implemented to hold pre selected speed regardless external disturbances. I use fuzzy logic to make it simple, fast and reliable without any kind of tuning.
  5. Switching a revolving direction on a fly that can be used as a regenerative brake to accelerate reaction on a speed down change.

Some helpful links: