Author Topic: Reducing ripple current in PWM controlled DC Servo motor.  (Read 245 times)

0 Members and 1 Guest are viewing this topic.

Offline morris6Topic starter

  • Regular Contributor
  • *
  • Posts: 82
  • Country: nl
Reducing ripple current in PWM controlled DC Servo motor.
« on: August 27, 2024, 07:15:33 pm »
Putting this in the Projects section and not in Mechanical & Automation since my question is more electronics related than mechanical.

Some ten years ago I assembled a driver system for an old industrial robot. It's an ASEA IRb 6 that I obtained without the original power and control unit. The idea at the time was to control it with a pc running LinuxCNC. The robot has 5 axes with 5 identical DC Servo motors. Position feedback was by means of rotary transformers, synchro's. These I replaced with optical encoders and the servo motors were driven by GeckoDrive G320X servodrives. So basically to control the robot movements step and direction pulses are to be send to each of the servodrive axes.

So far, so good.., however.., when motion is held stopped and the servomotors are dithering around the last step position, a considerable amount of electrical power seemed to flow through the motor windings. The servomotors are rated 35 V, 6.5 A, 3000 rpm, 0.168 kW and are good for continuous operation, S1 Service. The motors got hot quickly. I guess the heating is caused by Eddy current losses due to the 20kHz 50%ish PWM power. My conclusion was these servo's were not suited for PWM control and I got distracted by another project. The robot ended in a corner of my workshop.

Last week SWMBO suggested to put the orange obstacle in the workshop up for sale and free the corner. Looking for ideas for the text of the advertisement I searched through my old notes and schematics. An idea popped up: PWM control of a motor has a lot in common with a class D audio amplifier controlling a loudspeaker. Class D amplifiers have low pass filters at the output, for EMI control but also to limit ripple current. Googling around I found that inductors are indeed used to limit ripple current in low impedance servo's when using PWM control. So, the robot is not for sale yet.., let's do some experiments..!

One of the motors and a G320X servodrive are on the bench connected to a power supply. The power supply is indicating 4.2 A, so about 150 Watt power while the motor is stopped. First trial is with a fat 5 V output toroid coil from an old pc supply. This brings the supply current down to about 0.2 A while the motor is holding position. Inductance of this coil is ~180 uH. This is a nice result, however, this coil gets rather hot. Most probably the toroid coil has an iron powder core and is not ideally suited here. Second trial is with a ferrite E type inductor out of the horizontal section of an old CRT monitor. It remains nice and cool. Inductance of this one is 500 uH, supply current now only some 30 mA. The motor can still reach its max rpm, maybe needing some changed PID settings at the GeckoDrive.

For the reader that has followed along until now is my question: What could go wrong if I assemble some ferrite core inductors of about 200 uH and use these to limit the ripple current in the servo motors? And the follow-up questions: When the motor is running and a substantial DC current is flowing the ferrite core can saturate but is that really a problem here? What kind of ferrite core is good for 20 kHz PWM, low loss, low hysteresis?

Last but not least: how to convince SWMBO that the old robot is a fun project? Or sell it after all..?

Some pictures:

The main rotation axis servo motor, optical encoder, ferrite coil, current waveform with coil.

 

Offline H.O

  • Frequent Contributor
  • **
  • Posts: 844
  • Country: se
Re: Reducing ripple current in PWM controlled DC Servo motor.
« Reply #1 on: August 28, 2024, 06:31:39 pm »
I'm surprised you get that much ripple current to begin with - the motors must have really low inductance. Or you have WAY to high D-gain causing excessive dithering. Burning 150W with the motor unloaded isn't quite right :-)

The G320X is a "simple" PWM drive and there is no real current control loop, just cycle by cycle current limit so placing a sensible value inductor in series with the motor should not pose any issues I don't think. After all, that's what they did with old SCR-type drives back in the day. Unfortunately I can't help with the type of core material but the 5mH 22A inductors that was on my Indramat servo drive system looks like a good old E-core transformer.

[Anecdote]
Many years ago I wanted to use the G320X for a project. The motor in question had an inductance of 0.42mH and I had the current limit of the drive set fairly close to max. If I loaded the motor shaft slowly evertyhing was fine and the drive limited the current but if I applied torque to the motor shaft quickly the drive just faulted (not due to following error). Geckodrive determined that it was due to ripple current caused by the low inductance and said that their manual calls for a minimum motor inductance 1mH - a figure I've never been able to find in their manual....not then and not now.
[End anecdote]

If you're adding external inductors I'd try to get the total inductance if not all the way to 1mH at least close to it - especially so if you plan to have the current limit trim pot anywhere near max.
 
The following users thanked this post: morris6

Offline jmelson

  • Super Contributor
  • ***
  • Posts: 2815
  • Country: us
Re: Reducing ripple current in PWM controlled DC Servo motor.
« Reply #2 on: August 28, 2024, 10:16:15 pm »
I make servo drives using a full-bridge switching topology.  But, for the exact reasons you are experiencing, I designed the modulation differently.  The Gecko 320X uses a synchronous antiphase modulation scheme.  This puts a ~25 KHz square wave across the motor at idle.
My preferred scheme is to use a sign-magnitude scheme, so no transistors are ever on at idle, and whenever the motor is being driven, the polarity does not flip, but just the duty cycle of the high-side transistor is varied.  This avoids the heating of the motor and output filter components. 
Jon
 

Offline langwadt

  • Super Contributor
  • ***
  • Posts: 4647
  • Country: dk
Re: Reducing ripple current in PWM controlled DC Servo motor.
« Reply #3 on: August 28, 2024, 11:14:10 pm »
I make servo drives using a full-bridge switching topology.  But, for the exact reasons you are experiencing, I designed the modulation differently.  The Gecko 320X uses a synchronous antiphase modulation scheme.  This puts a ~25 KHz square wave across the motor at idle.
My preferred scheme is to use a sign-magnitude scheme, so no transistors are ever on at idle, and whenever the motor is being driven, the polarity does not flip, but just the duty cycle of the high-side transistor is varied.  This avoids the heating of the motor and output filter components. 
Jon

with the low sides on you get slow decay and possibly less ripple, (yellow)

https://www.motioncontroltips.com/wp-content/uploads/2018/12/Current-Decay-Modes-768x471.jpg




 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf