# Why are stepper motor phase currents a sinusoildal waveform?

I don't know if this is a really dumb question or not, but I've seen all kinds of torque, peak-current and RMS discussions related to current drive output for stepper motors. I acknowledge that for a 2-phase Hybrid stepper motor to run smoothly the phase currents must be two sinusoids one advanced 90º in relation to the other, like the image below

https://www.researchgate.net/figure/Sampled-currents-in-2-phases-of-stepper-motor-in-500-ms_fig4_275460011 But I really don't know why is that. I've read in a book ( Stephen D. Umans- Fitzgerald & Kingsley's Eletrical Machinery) that the torque as a function of the rotor angle is a sinuisoidal curve when phase A or B are excited, but why phase A and B should also be a sinuisoidal current is not clear to me. I'm a grateful in advance for anyone who can explain for me this correlation between current sinusoidal waveforms and torque

• Think of a simple stepper motor with one magnet and two orthogonal coils. What do you know about sines, cosines, and inscribed triangles having the radius of a circle as their hypotenuse? – Chris Stratton Apr 15 at 18:51
• Stepper motor currents DO NOT have to be sinusoidal, it depends purely on whether you micro-step or not. Micro-stepping allows you to position the motor between its base step positions. For example a 1.8deg step motor can be driven at 4, 8, 16 ….256 times it's base step resolution. Start reading: linearmotiontips.com/microstepping-basics – Jack Creasey Apr 15 at 19:02
• It's a dumb question, because you are ambiguous about your uncertainty. Is it only the how does quadrature phase 2 pole torque work with sin/cos? or why is it smooth sin/cos current instead of triangular? – Sunnyskyguy EE75 Apr 16 at 13:16

The sinusoid shown in your question is related to the position of the stepper motor between its base detents it has nothing to do with the current through the phases or the speed (rpm) of the motor. The frequency of this sinusoid can be reduced to DC, in other words the motor is stationary. Look at something like the TB6600 datasheet to understand the difference between the position current ratio (relative to two phases) and the switcher current (relates to only one phase).
One describes the relative ratios between the currents in two phases (but has nothing to do with absolute values, stepper motor phase inductance or resistance), while the other describes the actual phase current in one phase. Consider that the same driver can drive a stepper motor with 0.5A peak current and stepper with 2A peak current.....the position ratios do not change.

Stepper motor currents DO NOT have to be sinusoidal, but the ratios between phase current must be sinusoidal. This depends purely on whether you micro-step or not.
Micro-stepping allows you to position the motor between its base step positions. For example a 1.8deg step motor can be driven at 4, 8, 16 ….256 times it's base step resolution. Start reading:

1. Micro-stepping as it relates to per step torque
2. Switching frequency as it relates to per phase current

Notice that in #1 the torque collapses rapidly as you increase the micro-step ratio. Consider that at any point in the position domain the change in current through the two phases drops, so effectively reducing the power available to turn the motor armature.

You DO NOT need to have a switching driver for the per phase currents. There were many disk drives in the early days that did head positioning with stepper motors, but they used a D/A with a constant current driver to set the current per phase.

If you want a good reference for understanding stepper motors and the drive technologies you can't do much better than Paul Acarnley's book STEPPING-OTORS A GUIDETO THEORY AND PRACTICE.
In particular, sections 3.4.2 and 3.4.3 and 5.4.4 will be of interest to your question.

• Regardless if the Stepper is PWM current controlled or Voltage PWM controlled , this waveform is 500ms cycle or 2 Hz and motor T=L/R decay time is much shorter. so the steady state current per microstep is still V/DCR of coil if voltage controlled by PWM at say > 100kHz So the voltage has steps but the current is smoother just like my answers shows with L/R time constant e.g. 400us – Sunnyskyguy EE75 Apr 15 at 22:17
• I simply don't get that you can't see that the current ripple in the phase (which is the only component your answer relates to in any way) has absolutely nothing to do with the sinusoidal RATIO of phase currents required to provide the position of the motor. There is no smoothing of the sinusoid ….they are steps (ratios) defined in the controller that have nothing to do with the absolute current value flowing in the phases. – Jack Creasey Apr 15 at 22:27
• THe question shows 2 sine wave coil currents about 60 deg apart with 2 Hz. I agree this is the slow microstepped wave. but as it is stepped towards max speed, there is an L/R effect. OK my bad. But it also has nothing to do with current feedback at this low speed. I = %V/DCR in open loop as well – Sunnyskyguy EE75 Apr 15 at 22:35
• Jack if you make a small edit ..such as explain why sin/cos example in question is 72 deg instead of 90 deg. then I can upvote it.. Thanks in advance as it is locked" until edited" – Sunnyskyguy EE75 Apr 16 at 13:18

All DC Motors behave with Current controlled torque.

Steppers are no different at slow speeds of variable current steps.

Holding torque (T) is the product of a motor’s torque constant (KT) and the current (i) applied to the stator windings.

it is true that as current is reduced with microstep position between poles, that the torque is reduced in a sine fashion and thus can only go 1/16 the acceleration and 1/16 the worse case static load to slip vs a full step current control. This torque smoothing method thus trades off max torque and max acceleration significantly. The step-to-step slew rate of the step is reduced by the L/R response time makes time plot look sinusoidal.

This researcher had some noise issues in his plots, which does not matter much due to necessary deadtime glitches with the motor L/R = 3.5mH/5R = 440 us risetime resulting in 1.1 kHz noise.

Ideally, the motor currents are in quadrature 90 deg phase difference. i.e. sin/cos controlled currents at some phase according to a sine lookup table from 0 to 100% with 8 bit resolution resulting 256 microsteps of PWM duty cycle 0 to 255.

e.g.

Step  𝐷 = duty cycle @ 40 kHz for one phase winding
1 251
2 238
3 217
4 188
5 154
6 114
7 70
8 24
9 24
10 70
11 114
12 154
13 188
14 217
15 238
16 251


This is not an ideal design, but works.

This paper FPGA implementation is not ideal and they show the quadrature currents 72 degrees apart. Operating at a pole frequency of 2 Hz.

When operating at maximum Stepper rate the Motor inductance/resistance ratio is the limiting factor for pole frequency as the inductance raises the impedance , reduces the winding current and torque and is more likely to slip.

This paper used 40 KHz L=3.5mH and DCR= 5 Ohms.

• The integral applies to the switching frequency of the driver, typically in the 30-100kHz range and has absolutely nothing to do with micro-stepping. Try to explain when the motor is stopped at any of the micro-step positions. The motor is then stationary, stopped at some fixed position in the sinusoidal drive, but the switcher is still working at it's independent frequency. – Jack Creasey Apr 15 at 20:03
• That is not how micro-stepping works @JackCreasey The fundamental frequency ramps up from DC to some f with staircase PWM steps in quadrature cycles to a maximum RPM (f) at some fundamental frequency. So the waveform given in the question is at maximum RPM not static DC -1 to your comment. The number of microsteps is user selected results in fmax/N for N steps per half cycle. The lag current is the exponential or partial integral for each microstep due to L/R time constant. The actual cct is a Full H bridge and not the single switch as shown but the result is the same. for DC – Sunnyskyguy EE75 Apr 15 at 21:53
• But I agree some fast steppers use current steps. but the filtering effect is the same. – Sunnyskyguy EE75 Apr 15 at 21:55
• Regardless of whether you use Current Feedback or voltage PWM control, the resulting current is same %PWM difference between dual coils is due to the V/R =I thus current = torque balance to some microstep position between poles. So you still have a static DC current at rest, And this becomes sinusoidal at max RPM . As the stepper slows , the voltage reverses from BEMF then applied voltage and the same filtering effect as above is what the OP is asking about. DO you think it is about current controlled steps or DC position or at full speed microsteps.? – Sunnyskyguy EE75 Apr 15 at 22:05
• Absolutely none of what you just said applies a stepping motor at affixed position....or at very low stepping speed. You simply don't understand how it works. I suggest you go read the reference book I added to my answer, or any of the micro-stepping controller chip data sheets. – Jack Creasey Apr 15 at 22:09