A stepper motor system is an open-loop position control system. The system controller or the motor driver IC has no information on how much load torque is being applied or what should be the optimal current for operation without step loss. Since the driver is imperceptive of the load torque demand, motors are generally driven at constant full-scale current which can sustain maximum load torque. However, the use of large operating current is needless at lighter loads as it results in unnecessary I2R losses. Apart from lowering overall system efficiency, high coil current leads to thermal issues due to motor heating reducing the durability and longevity of the motor.
Texas Instruments recently introduced the DRV8462, DRV8452 and DRV8461 stepper motor drivers, which include several new features including the auto-torque algorithm. Auto-torque boosts system efficiency by adjusting the stepper coil current automatically according to the load torque. Auto-torque does not require any external sensor. Instead, by monitoring the power delivered to the motor, it generates an internal signal which varies linearly with the load torque, with fast sensing capability. This application report aims to highlight the advantages of the auto-torque algorithm and how it can be tuned for maximum benefits.
All trademarks are the property of their respective owners.
Stepper motors are popular due to their simplicity of translating excitation changes on the input to precise positional changes on the output without using any external sensor to monitor position. The currents in stepper coils are regulated to achieve precise position and velocity control.
Torque equation for a motor is given by Equation 1. It depends on coil current and motor construction:
where τmax is the maximum supported torque, KT is motor’s torque constant and I is the coil current.
Equation 1 can be interpreted as torque capability offered by coil current I. To sustain a given load torque, the motor driver must always operate at a coil current which can offer more torque than demanded.
Conventional motor drivers configure operating full-scale current based on the peak load torque demand. This ensures that the motor does not lose steps any time peak load is demanded. The current therefore is constant irrespective of the load torque. As a result, when load torque is lower than the peak load, the driver and the motor dissipate some of the input power as resistive power loss as represented in Figure 1-1.
In most systems, the demand for peak load torque occurs only rarely. For example, in an ATM machine, the stepper motors might be needed to deliver peak load for less than 15% of their overall run time. A typical stepper driver though ends up delivering full-scale current to the motors all the time - leading to lower system efficiency due to the unwanted power loss, larger system size and shorter lifetime of components.
The Auto-torque algorithm implemented in the DRV8462, DRV8452 and DRV8461 motor drivers improves system efficiency by dynamically changing the output current according to the load torque. Whenever the load torque is low, the output current is lowered to reduce resistive losses; and when the load torque goes up, the output current increases immediately to prevent motor step loss. This concept is shown in Figure 2-1. As a result of improved efficiency due to auto-torque, the system runs at a lower temperature, which extends the lifetime of the components. Auto-torque can also enable the use of cheaper and smaller sized stepper motors.
In a stepper motor system, the total power delivered by the power supply goes into providing for the torque requirement of the load and into power losses such as resistive losses caused by motor winding resistance and driver ON resistance. This is represented by Equation 2:
where τ is load torque and ω is motor speed.
From Equation 2, it is observed that when the load torque increases, the power delivered by the supply increases as well. The auto-torque algorithm obtains information about the load-torque by monitoring the power delivered by the supply. The constant losses are represented by the ATQ_LRN parameter, and the ATQ_CNT parameter represents the power required to support the load torque, as explained in Section 2.1.
This section explains the steps to follow for the auto-torque algorithm to learn about the motor parameters and motor operating conditions.
As mentioned in Section 2, the ATQ_LRN parameter depends upon the constant losses in the system. For any given motor, ATQ_LRN is directly proportional to the coil current. This can be expressed by Equation 3:
where, IM is the motor current, VVM is the supply voltage to the driver and k is a constant. Equation 3 gives a linear relationship between the ATQ_LRN and the motor current. The auto-torque learning routine learns ATQ_LRN values at any two currents at no load, and then uses this relation to interpolate ATQ_LRN value at any other current.
The ATQ_CNT parameter represents the component of the delivered power that supports the load torque. This relation can be expressed by Equation 4.
where k1 is a constant at a given operating condition and IFS is the full-scale current (peak of the sinusoidal current waveform) of the stepper driver.
Equation 4 defines the basic working principle of the auto-torque algorithm. The ATQ_CNT parameter can be used to perform motor coil current regulation based on applied load torque on the stepper motor.
Figure 2-2 shows (ATQ_LRN + ATQ_CNT) measured as a function of load torque at 2.5A full-scale current for a hybrid bipolar NEMA 24 stepper motor rated for 2.8A. ATQ_LRN does not change with load torque, whereas ATQ_CNT changes linearly with load torque.