Usually you ramp up the speed, such as trapezoidal or an "S-curve".
You really can't have velocity feedback initially, but you do have to know that it's rotating. That's probably why the "S" curve is more preferred profile.
An "S" is slow to turn on, then a rapid to very close to desired speed and then a slow ramp to the desired speed.
Do you know how bldc motor works when it is runnin? If you do, then it is much easier to explain how to start from stall..
BLDC motor has a permanent magnet rotor that follows a sinusoidal waveforms fed to the stator. If the sinusoids are too fast the motor can not keep up and it will skip, this means that it is not turning as it should. So how do you know how to get the magnet to follow the sinusoids so that it does not skip. You start with a slow frequency sinusoid. Slow enough that you know that the magnet will follow. And then you can start to increase the frequency.. slowly enough so that the rotor magnet can follow.
Herehttp://www.globalspec.com/FeaturedProducts/Detail/TexasInstrumentsHighPerformanceAnalog/BLDC_Motor_Controller/236265/0 is an interesting IC for sensorless BLDC control
I only briefly worked on, meaning fixed, a commercial, sensor-based, 40,000 RPM motor controller.
i am using spwm in matlab/simulink and pid controller to control error, the
required speed.
here is little example of what i need, bldc motor has permanent magnet rotor, when input the voltage the rotor it repels the like poles and rotor starts moving.
but the problem is i cannot express this in details, as this is one of the main part of my discussion.