Stepping motor torque ripple

Dec 26, 2021 Last reply: 4 years ago 34 Replies

Hi


I am working on a stepping motor driver


To reduce cost I will be making a discrete driver stage driven from a microcontroller that has all the control features that would normally be included in a micrstepping driver like the A4988



formatting link



For easy calculation let's say the power stage is driven from 10V and the stepping motor has an inductance of 10mH and the peak current is 100mA


In fast decay mode the rising and falling didt is thus 1A/ms


For micro stepping the current in the 2 phases are set to place the armature in between a full step. So for a position 50% between two steps the currents in the windings are the same to have a resulting vector at that point 


If the on time is 5us, the ripple current is 5mApp. So, the current ripple is 5% of the nominal peak current. For lower excitation, at 10mA peak drive, the ripple is 50%


So the magnetic field will cause quite a bit of torque ripple. 


Will this have any impact on the drive of the motor, or is the inertia so big that it is insignificant? 



Also, at other positions than 50%, the ripple with not cancel out between the phases and generate even more torque ripple



I don't see any mention of this, so it is probably insignificant...



Regards


Klaus 


søndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund:

isn't it such low current that a linear drive would work?

The application is 20V/90mA, so 3.6W total. That will dissipate too much heat (industrial temperature specs)

But I like you idea of challenging how it is done ?

One could do an envelope converter fed to each half bridge (buck). But then it is very slow ramp up of the current

Some ideas are centered around doing feed forward instead of current chopping. So like a VF control with a sinusoidal voltage vector so the current is without distortion around zero current. It will not be perfect, since it does then not regulate on the current

Perhaps a combination, with feed forward and current feedback to trim the wave shape

only one coil will be fully on at a time, and at such high inductance the DC resistance must be quite high too

it is basically a buck already, the inductor is just inside the motor

afaict the Powerstep01 driver, in voltage mode, basically does pwm sinewaves with feedforward of speed, supply voltage, etc.

Yes. But for an envelope buck it can be filtered more, so torque ripple is reduced

Sounds like I am reinvent the wheel ?

I did a microstepper once, for tuning superconductive microwave cavities in an accelerator. It used a uP and a pair of integrated h-bridge drivers.

It was basically a DDS synthesizer, a phase accumulator (representing angular position) mapping into a sin-cos lookup table, which fetched the duty cycle values to go into the pair of full h-bridges which drove the motor coils. If the switching frequency is reasonably high, there won't be noticable ripple torque.

My basically constant-voltage drive caused torque to drop off at high step rates, which wasn't a problem in that application.

Most motors are imperfect in that you won't get smooth angular position as a function of sin-cos coil currents; they basically have distortion. That can be fudged in the trig lookup table if you really need to.

There was a paper in the (UK) Journal of Scientific Instruments in the 1970's that went into that in some detail - the correction table went into a PROM. If I remember rightly (and I probably don't) it was eight-bit accurate after correction, but the look-up table was ten bit words.

maybe :)

how cheap do you think you can make it? considering the low price of stepdriver boards for 3D printers and the like the must be <$1 drivers and that includes all the protection niceties

What is the DC resistance, rated voltage of the stepper motor and how fast do you need to run it?

That is the same as I was talking about with VF control. It the same used for Field Oriented Control of PMSM motors

this one (section 19.2)

formatting link
a table for a quadrant with some trickery to make the table small

I had lots of memory available so I just folded the MSB to cut the table size in half. More thinking can reduce it more. I guess one could just compute sin and cos.

I also reduced the motor drives after a second of no motion. Theoretically, the vector angle doesn't change if you reduce both currents.

If you want to try to do it in analogue:

formatting link

Circuit description on P31 of the manual:

formatting link

If I remember rightly, Portescap claimed that some of their stepper motors gave much more uniform rotation than regular stepper motors.

Poking around their website didn't give me anything explicit but

formatting link
seems to be claiming something like that.

formatting link
offer smaller than usual steps and "less detent torque" which might offer less distortion

So, now I am getting closer to having first prototype ready

I was doing the chopping control, peak current setting of the current in the coils, a loop in the microcontroller that would control this peak current with a DAC

Thinking about it, seems like it is all to no good. Just using the PWM sine/cosine lookup table, with no feedback seems to work fine, provided the speed of the motor is significantly below the max specified speed. In that case BEMF has little effect, and really the winding resistance sets the current according to applied voltage

Doing the open loop control would remove need for precise current sensing and DACs (all though they could just be PWM outputs). Also reduces the CPU resources needed for the control of the motor

I will keep the comparator to check for shorted halfbridge, at least for now

Cheers

Klaus

Constant-voltage PWM will result in torque rolloff at high step rates, and eventually stalling. More voltage with current feedback helps stuff current into the winding inductance.

Some sort of pre-emphasis without feedback should work too.

mandag den 31. januar 2022 kl. 02.33.22 UTC+1 skrev snipped-for-privacy@highlandsniptechnology.com:

page 38,

formatting link

Yes, that's why I wrote that my application has: "the speed of the motor is significantly below the max specified speed"

In some cases the voltage PWM is better than current mode controlled. For example, around the zero crossing where current feedback has distortion

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required