Electronic – How to calculate and measure motor constant for stepper motor

stepper motor

I am working on a project using ST4118D30004 stepper motors and powerSTEP01 drivers.
The ST4118D30004 is a bipolar stepper motor with 4 wire connection.

While researching how to find the optimal settings for the driver I came across

"Holding torque (T) is the product of a motor's torque constant (KT) and the current (i) applied to the stator windings."
controleng.com Stepper motor torque basics

"the k_t parameter is the motor torque constant which is equal to the k_e constant, but expressed in Nm/A instead of V/Hz"
page 6 of PowerSTEP01 Voltage mode control operation and parameter optimization

as well as how to measure K_e by applying scope across a phase and turning it at constant speed, K_e is then supposedly the ratio of peakVoltage/frequency.

"The \$k_e\$ is the coefficient that relates the motor speed to the BEMF amplitude. This value is not usually present on stepper motor datasheets, but it can be easily measured by means of an oscilloscope:

  • Connect one of the motor phases to an oscilloscope channel
  • Set the oscilloscope to the trigger value on the rising or falling edge of the channel and set the threshold value close to zero (few mV above or below zero)
  • Turn the motor shaft. This can be done by hand or by means of another motor. The most important thing is to obtain a rotation speed as constant as possible
  • Set oscilloscope time and voltage scales in order to display a sine wave during the motor rotation.

If the rotor is turned by hand, the operations should be repeated until a good sine wave is obtained. A good sine wave keeps its amplitude constant for at least 2 or 3 cycles (Figure 7 and Figure 8). This operation might require several attempts.

  • Measure the peak voltage to frequency ratio of the sine wave. The resulting value is the motor electric constant expressed in V/Hz."

page 14 of PowerSTEP01 Voltage mode control operation and parameter optimization

calculating K_t from values given by specification by manufacturer of motor
holding torque T = 0.8 Nm current i = 3 A
T/i = 0.8 Nm / 3 A = 0.267 Nm/A

Measuring K_e

  • 2.55 V / 85.5 Hz = 0.0298 V/Hz = 0.00474 V/(rad/s)
  • 5.55 V / 208 Hz = 0.0267 V/Hz = 0.00425 V/(rad/s)
  • 7.00 V / 263 Hz = 0.0266 V/Hz = 0.00423 V/(rad/s)
  • 11.1 V / 420 Hz = 0.0264 V/Hz = 0.00420 V/(rad/s)

About a factor 10 difference 0.267 Nm/A to 0.0266 V/Hz, why?

Addition 1: As mentioned in comments and also specified here http://www.spectrum-soft.com/news/spring2014/stepper_motor.shtm the K_e should be in V/(rad/s) not in Hz for K_t to equal K_e. This however actually means the difference in my results is a factor ~6.28 bigger does it not?

About a factor 60 difference 0.267 Nm/A to 0.00423 V/(rad/s), why?

Best Answer

Almost certainly you have misunderstood your k_e measurement. Your shaft speed is almost certainly in rpm rather than Hz, so your values need to be multiplied by 60 to be accurate, and 60 is your missing factor.

The reason I say "almost certainly" is that, for instance, your 11.1 V/420 Hz is equivalent to 25,000 rpm, and that's pretty impressive for a home setup. Not to mention unrealistic.