View Full Version : Stepper motor midband resonance compensation

Peter Jakacki
04-01-2012, 03:33 AM
Arrgh... just typed up a long post on this subject and as I was entering the tags it just lost everything. I will try again (but briefly)

This post is mainly for those who have experience with midband resonance when running stepper motors at a certain speed and load etc. I am looking at driving the step clock directly on the L6470 and dithering it if I want to run in this speed range.
Looking at the first photo you can see what is happening with my NEMA34s at around about 150 RPM. The current peak is the motor start then it starts to ramp up to speed which in this case is in the problem range.Eventually the motor stalls


Here's a shot of one motor that works fine and another that doesn't (gray) when ramping through this range to a higher speed.

Seeing there are a few working with higher power motors (not talking about unipolar puppies) I'm wondering what you may have done to combat this problem other than using expensive drivers.

04-01-2012, 03:52 AM
In my testing and experimentation, I found that the current drive had to be varied at different speeds to avoid resonance. My solution is to have a 4 entry lookup table that has step rate vs current. What I found is that at low step rates, you can run low currents, but as the step rate increases, you had to increase the current to overcome the back EMF from the motor. Most drivers aren't doing dynamic current control, simply running the motor at saturation all the time. I found that you could run at less than 50% current at low step speeds, then increase to 80% at higher rates. The full saturation all the time method doesn't jive for me because it's just dissipating heat in the windings and isn't measurably contributing to the performance of the motor.

I don't have any traces to offer, what I did was run a motor through a current shunt with amplifier to read the ma the motor would draw. What I found was the locked rotor current was 250% of normal running current, and when a step was missed the current would spike even though I was chopping at the same rate. I would run up to 160% of normal current to overcome the resonance, past that it didn't help any.

Interestingly, this is all very similar to field weakening used in 3 phase induction motors. You have to pull the current back from saturation once you hit the knee point, so the speed will continue to climb. You could look at it like once you hit a certain RPM, you must derate the current from full saturation to weaken the field and overcome the back EMF.

BLDC controllers don't do field weakening, they just over voltage the motor, much like steppers are run. Run 400v into a 100v BLDC motor, but at reduced current so the effective power in the windings is the same. Then they only need to ramp the voltage up to max RPM, just like how induction motors are run up to base speed. At below base speed induction motors are run constant current, variable voltage, then above base speed they run variable current and constant voltage, to effect field weakening and overcome the back EMF so the RPMs will climb.

Peter Jakacki
04-02-2012, 01:41 PM
Thanks for the feedback pedward. The current control on the L6470 is quite good and even if I set the run current to be higher it will normally only use it when it has to under load etc. So the chips run cool (mostly) but other than the pcb copper there is no other heatsinking. The old L298 and L297 combo not only looks monstrous and stone age compared to this chip but it can't do a fraction of what it does.

Just to to let you know that under proper load I don't really have a problem with resonance and the microstep really helps it to run quiet. I will post a video back on this thread showing what happens as I had a customer in disbelief that there was such a thing and that a motor could completely stall. But he saw it all with his own eyes.

Beau Schwabe
04-02-2012, 03:26 PM
From what I understand, there are at least three ways to compensate for mid-band resonance.

1) Through software to change the rate through the resonant 'dead-band' and push through beyond, however it seems as thought you still hit the barrier somehow
2) Mechanically dampen the motor by changing the load characteristics through the barrier. This can be costly
3) Electronically insert a capacitive load across the stepper motor terminals during the barrier transition. This solution is cheap, and perhaps the most reliable. The idea, by inserting a capacitive load is to shift the resonant frequency to another location allowing the motor to traverse through the problematic speed region.

04-02-2012, 11:03 PM
Just to to let you know that under proper load I don't really have a problem with resonance and the microstep really helps it to run quiet.

Can you clarify that ?

I was under the impression that microstepping helped avoid resonance effects as the magnetic vector rotated without jumps - or are you in a operating region where microstepping is not really happening ?

Does "under proper load" mean more torque, or more torque and a higher moment of inertia ?

Christof Eb.
04-03-2012, 11:45 AM
Hi Beau,
have you tried your idea about the capacitor? I am curious, because I would assume, that you would need a rather big capacitor, because this is a mechanical oscillation with relatively low frequency.

Beau Schwabe
04-03-2012, 02:35 PM
Christof Eb.,

"have you tried your idea about the capacitor?" - not my idea, just something that I read. I'll see if I can find a reference.

Beau Schwabe
04-03-2012, 05:04 PM
Christof Eb.,

I couldn't find a particular reference, I just remember this from my motion control days in prosthetic research and development. The capacitor doen't need to be that big to skew the resonant frequency. The caveat is that you need to double up on your driver circuit, and when they are both running the gate drives need to be synchronized. Basically when both are running, you are 'inserting' a capacitor in parallel with the motor coils. Since the capacitor is trickle fed from the supply power, essentially you providing a current boost through the mid-range resonance region that can 'punch through' the barrier. At the same time the current boost quenches the resonant frequency buildup.

Note: The resistor and capacitor should be properly rated to handle your particular system.

04-03-2012, 09:31 PM
What about having a cap installed permanently that changes the resonant frequency so it's far outside the operating range?

04-03-2012, 10:26 PM
What about having a cap installed permanently that changes the resonant frequency so it's far outside the operating range?

I'm not following this line of logic ?

Any LC resonance will already be well outside the operating range, - the Stepper effects are Electro-Mechanical, not LCR in nature.

I can see that power phasing, and higher power supplies for more current-mode operation, can reduce L/R and improve dI/dT, but that is not an LCR effect.

Phil Pilgrim (PhiPi)
04-03-2012, 11:07 PM
The reason resonance occurs in the first place is due to a lack of mechanical damping. Every step in an undamped step motor will overshoot and oscillate about its new position. If the step rate equals the frequency of oscillation, you get resonance, which increases the oscillation amplitude to the point that the shaft can actually bounce back to a different stable position. This results in an apparent loss of torque, since the shaft quits rotating. The cure is either mechanical dampling, dithering the step rate in the resonance zone so the oscillations can't build up, or some kind of fine current regulation that prevents the steps from overshooting and oscillating in the first place. Microstepping is one example of the last method. But even without microstepping, there should be ways to shape the current profile to avoid overshoots.

I don't see how a cap is going to shift the resonance frequency, since that frequency is mechanical, not electrical.