There are several methods for maintaining a fixed speed under variable load with both brushless motors and stepper motors. These vary in accuracy and cost and choosing the best option for your project is best done on a case by case basis.
Broadly speaking, the key methods for achieving a fixed speed under a variable load can be split into two options. The first is to use a range of closed loop options – encoders, hall sensors or pots. The second is to use a sensorless brushless DC motor controller that can detect the back-EMF of the motor in order to adjust the speed as required.
By using an encoder or pot on the back of a motor it is possible to actively monitor the exact speed of the motor and adjust it at any time to the speed required. This is called a closed loop system. An incremental encoder works by pulsing as the shaft turns and then sending these signals back to controller. This enables the controller to read the speed of the pulses and therefore accurately calculate the speed. An absolute encoder or pot works in a similar way but uses the variable resistance of the pot or the electromechanical construction of the encoder to enable the controller to calculate the absolute position of the shaft.
Hall effect sensors are largely used in brushless DC motors as a method for sensing the position of the shaft within the motor itself. These sensors are (perhaps rather predictably!) only found in sensored brushless DC motors and not in sensorless brushless DC motors. Bear in mind that sensored brushless DC motors can be driven by sensorless brushless DC motor controllers but that sensorless brushless DC motors cannot be driven by sensored brushless DC controllers…
All of these methods can be used to accurately judge the exact speed of the motor shaft and therefore make adjustments and can be used in both brushless motors or stepper motors (or indeed brushed DC motors). In all of these cases a change in the actual speed of the motor which was caused by an increase or decrease in load would be instantly picked up by an intelligent controller such as the ZD10 Stepper Motor Driver or the ZDBL15 Sensorless Brushless DC Motor Controller and the ZD10 or ZDBL15A could then be programmed to increase or decrease the power going into the motor to correct the speed.
Please note that in such systems safety features can become very important as there is obviously a cut off point at which the stepper motor controller or BLDC motor driver will not be able to deliver the power required to turn the motor if too much load is applied (ie the top power rating of the controller and/or motor). By having maximum current settings and other protective measures it is possible to protect the motor and controller by simply stalling the system and highlighting the error accordingly
Speed monitoring and constant speed can also be achieved without encoders and similar devices by using a sensorless brushless motor driver (brushless ESC) such as the ZDBL10 sensorless brushless motor controller which can measure the back EMF from a brushless motor and therefore determine the speed of the motor and make adjustments accordingly.
Back EMF stands for Back Electro Motive Force and is a force generated by the action of the brushless motor turning. Because Back EMF frequency is directly related to the speed of the motor (it is similar to the way in which power is generated using a wind turbine for example) this frequency can be read by the BLDC motor driver and the speed of the motor calculated accordingly. It should be noted that this is generally a much lower cost option than using encoders and similar devices.
The choice as to the best option for your specific project will depend on the constraints that you are working within. The back-EMF method of monitoring speed is usually the lowest cost solution but it does not operate particularly well at lower speeds. If your application does not generally need to be run at low speeds then this might well be the best option for you. However, if you wanted complete performance over the entire speed range then a system such as a sensored brushless motor might well be the best situation. Such a motor in tandem with an absolute positioning controller would represent a solid option
The nature of your application and the budget that you are working to will ultimately determine the most appropriate way to set your system up but the key thing to note is that there are several ways in which constant speed under variable load can quickly be achieved. Of these, using a sensorless brushless motor controller such as the ZDBL15 is probably the lowest cost and simplest but if you require a greater level of accuracy then it may well be the case that using an encoder or pot would be more beneficial.