Electronics-Related.com
Forums

Stepping motor torque ripple

Started by Klaus Kragelund December 26, 2021
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

https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988


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�




--
Klaus
søndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund:
> 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 > > https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 > > > 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... >
isn't it such low current that a linear drive would work?
26.12.21 23:43, Lasse Langwadt Christensen  wrote:
>s�ndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund: >> 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 >> >> https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 >> >> >> 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... >> > >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 -- Klaus
26.12.21 23:55, Klaus Kragelund   wrote:
>26.12.21 23:43, Lasse Langwadt Christensen wrote: >>s?ndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund: >>> 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 >>> >>> https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 >>> >>> >>> 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... >>> >> >>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 -- Klaus
søndag den 26. december 2021 kl. 23.55.09 UTC+1 skrev Klaus Kragelund:
> 26.12.21 23:43, Lasse Langwadt Christensen wrote: > >søndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund: > >> 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 > >> > >> https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 > >> > >> > >> 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... > >> > > > >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)
only one coil will be fully on at a time, and at such high inductance the DC resistance must be quite high too
> 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
it is basically a buck already, the inductor is just inside the motor
mandag den 27. december 2021 kl. 00.01.15 UTC+1 skrev Klaus Kragelund:
> 26.12.21 23:55, Klaus Kragelund wrote: > >26.12.21 23:43, Lasse Langwadt Christensen wrote: > >>s?ndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund: > >>> 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 > >>> > >>> https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 > >>> > >>> > >>> 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... > >>> > >> > >>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
afaict the Powerstep01 driver, in voltage mode, basically does pwm sinewaves with feedforward of speed, supply voltage, etc.
27.12.21 00:18, Lasse Langwadt Christensen  wrote:
>s�ndag den 26. december 2021 kl. 23.55.09 UTC+1 skrev Klaus Kragelund: >> 26.12.21 23:43, Lasse Langwadt Christensen wrote: >> >s�ndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund: >> >> 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 >> >> >> >> https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 >> >> >> >> >> >> 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... >> >> >> > >> >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) > >only one coil will be fully on at a time, and at such high inductance the DC resistance must be quite high too > >> 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 > >it is basically a buck already, the inductor is just inside the motor > >
Yes. But for an envelope buck it can be filtered more, so torque ripple is reduced -- Klaus
27.12.21 00:20, Lasse Langwadt Christensen  wrote:
>mandag den 27. december 2021 kl. 00.01.15 UTC+1 skrev Klaus Kragelund: >> 26.12.21 23:55, Klaus Kragelund wrote: >> >26.12.21 23:43, Lasse Langwadt Christensen wrote: >> >>s?ndag den 26. december 2021 kl. 23.38.54 UTC+1 skrev Klaus Kragelund: >> >>> 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 >> >>> >> >>> https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 >> >>> >> >>> >> >>> 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... >> >>> >> >> >> >>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 > >afaict the Powerstep01 driver, in voltage mode, basically does pwm sinewaves with feedforward of speed, supply voltage, etc. > > >
Sounds like I am reinvent the wheel ? -- Klaus
On Sun, 26 Dec 2021 23:38:44 +0100, Klaus Kragelund
<klauskvik@hotmail.com> wrote:

>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 > >https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988 > > >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
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. -- I yam what I yam - Popeye
On 12/26/2021 3:38 PM, Klaus Kragelund wrote:
> I am working on a stepping motor driver
Is there a reason you are using a stepper motor and not another type of motor? Usually, the stepper is chosen for precise (open-loop) control of shaft rotational position -- usually requiring that position to be held when the stepping stops. (as long as current remains applied). Microstepping shows poor performance, in this regard, when you try to "hold" at anything other than a half/full step. [Note that you can also drive a stepper as if a BLDC by monitoring feedback from the other coils. But, this is prone to losing sync if you miss a feedback event (the motor, usually operating at accelerated speed, then drops a step and stalls)]