Control speed of brushless DC motor
It depends on the motor.  Here are three cases I've seen.

(1) Generate a rather slow PWM signal. I used 100Hz.  It was a small fan and it varied speed rather nicely.

(2) Fans with lots of smarts inside (I tore one apart and there was a Microchip PIC in there).  It had a power-up delay of 100-200 milliseconds.  That means that when your operating frequency approaches 5-10 Hz, the fan is off 100% percent of the time (it never completes the power-on).  You can run pulses around 5 Hz or less, but it sounds ridiculous and you don't get much control.

(3) I put a big capacitor across the output in an attempt to convert the output pulses to an average dc level.  Fan had an internal commutation circuit alright, and when I reduced the voltage, it would draw more current in an attempt to keep going the same speed!  So you couldn't really control it that way, either.