Stall detection is an integral feature in motor control, but while it's is easy to implement with an encoder it can also be out-of-budget for many designs.
In some cases, an analysis of the electrical signals in the motor can determine if the motor is stalled or not just as well as directly checking the position of the shaft. There are three main ways to incorporate back electromagnetic force (BEMF) values in the analysis of your motor:
- Check the timing of the PWM controlling the current in the coil.
- Measure the BEMF value when the motor in the coil is null.
- Monitor the increase of current when no BEMF is present.
The first two methods work when the stepper motor is driven in current mode and the last one works when the stepper motor is driven in voltage mode.
To control torque and speed of a motor is to control the current in an inductance. A voltage is applied to reach the target current and a decay is applied in order to decrease the current. With the formula u = L di/dt, the current depends on the voltage applied to the coil, this voltage is the voltage applied to the driver minus the voltage across the resistance of the motor and the BEMF that is proportional to the speed of the motor. In the absence of BEMF, the current in the motor increases quicker than expected and when detecting this abnormality, the motor can be considered as stalled. It is a simple principle but this method can be difficult to implement as parameters change with the environment. For instance, the resistance of a motor can change dramatically with the temperature (either ambient temperature or a high current in the motor making the motor hot). It can then be difficult to find the sweet spot that defines stall detection in a reliable way. In applications where the supply voltage is not well regulated, this method is not reliable.
To overcome these issues, it is advantageous to directly measure the BEMF. When a stepper motor is driven in microsteps, there is a short time where the current is at zero amperes. As the voltage across the resistance is null, the voltage across the motor is equal to the BEMF when the phase is not being driven. This has obvious limitations due to the short time to measure the BEMF value, and the similarities of BEMF values at low stall speeds and high stall speeds; A fully loaded motor just on the edge of stalling looks the same as a fully stalled motor. In real conditions, a given design is specifically calibrated to stay far away from this situation.
Finally, when a stepper motor is driven in voltage mode, another approach is available to detect a stall situation. In voltage mode, the current is not monitored, but by knowing the resistance of the motor, the inductance of the motor and the BEMF, the voltage that must be applied can be calculated versus the target current. In order to have the same current when the motor spins faster, the applied voltage is increased to compensate the increase of the BEMF. When the motor stalls, the BEMF is not present but the applied voltage stays the same. As a consequence, the current in the motor spikes and this over current is easily detectable. Again, if the BEMF is too small, the current will barely increase and won’t allow for the detection of a stall condition.
In conclusion, there are alternative methods of stall detection that can save you the cost of an encoder, but they are only applicable if the motor spins fast enough because they all rely on a BEMF value that must be high enough. If your motor spins slowly and generates a BEMF close to zero, you’ll still have to shell out some cash if you want to keep it from stalling for now.
Ähnliches Produkt:
Ähnliches Produkt:
Ähnliches Produkt: