CAD CAM EDM DRO - Yahoo Group Archive

DIY AC servodrive questions

Posted by Anders Wallin
on 2006-06-05 13:57:57 UTC
Hi Group,

I'm working on an AC servodrive to control Sanyo P5 brushless servos
(the ones from surpluscenter last fall).

So far the prototype spins the motor and commutation works almost
flawlessly, there is still some hissing and humming left when turning
the motor in one direction which I will have to iron out. There are two
pictures at:
http://electronics.physics.helsinki.fi/personal/awallin/pic1.jpg
and
http://electronics.physics.helsinki.fi/personal/awallin/pic2.jpg

differential encoder and hall signals come in at the left, get converted
to single ended signals, and are fed to the dsPIC30F3011 which controls
the whole thing. The dsPIC outputs six PWM wavefors (row of LEDs at
45deg) to the powerstage (right) which is an IRF IRAMS10UP60B.

The drive now runs in open-loop mode as far as speed goes, i.e. an
analog input controls the amplitude of the sinewaves.

I'm going to be controlling these servodrives with EMC2 using a Mesa
5i20 servo-card. So I feed EMC with the encoder signals, a postion PID
loop runs in realtime(1-10 kHz update time) on the PC, and a speed
command is fed out from the 5i20 to the servodrive.

Now for my question:
Is it going to be worthwile, in terms of overall performance of my servo
system, to close a current or speed PID loop in the servodrive ?

The current loop would look at two of the phase currents (big black
sense resistor at lower edge of powerstage card), compute the phase
currents from that, and increase/decrease voltage if neccessary. I now
have IR2175 chips on the powerstage card which could do this but the
implementation/debugging etc. is not going to be trivial.

The speed loop would look at the incoming speed command from the 5i20,
compare that to the actual speed measured with either the hall sensors
or the encoder, and increase/decrease torque (if there is a
current-loop) or voltage (if there is no current loop). This is also not
trivial since measuring speed over a wide range is tricky ( encoder
counts at 400kHz during max rpm and maybe 10 Hz during sloooow moves)

Seems to me that EMC should be able to close the position loop just fine
eventhough the servodrive does not guarantee the speed that is fed to
it. The position PID loop in EMC can run at a 10kHz update rate which
should be plenty fast. Any current loop or speed loop in the
microcontroller could not be made to run or update much faster than this
since the PWM period is 20 kHz.

Once again, what will be gained from having separate speed and current
PID loops in the servodrive - compared to letting the EMC position PID
loop worry about everything ?

Comments ?

--
Anders Wallin

PS. In due time, the schematics, pcb, and code will be available, probably under GPL. What I have right now is hacked and improved version of microchips AN1017:
http://ww1.microchip.com/downloads/en/AppNotes/01017A.pdf

Discussion Thread

shadi_salhab_78 2006-06-04 12:08:07 UTC Tacho Generator To Incremental Encoder Anders Wallin 2006-06-05 13:57:57 UTC DIY AC servodrive questions leslie watts 2006-06-05 14:42:43 UTC RE: [CAD_CAM_EDM_DRO] DIY AC servodrive questions Anders Wallin 2006-06-05 15:32:40 UTC Re: [CAD_CAM_EDM_DRO] DIY AC servodrive questions leslie watts 2006-06-06 04:54:22 UTC RE: [CAD_CAM_EDM_DRO] DIY AC servodrive questions leslie watts 2006-06-06 05:48:02 UTC RE: [CAD_CAM_EDM_DRO] DIY AC servodrive questions Anders Wallin 2006-06-06 12:53:59 UTC Re: [CAD_CAM_EDM_DRO] DIY AC servodrive questions Anders Wallin 2006-06-11 12:46:18 UTC Re: [CAD_CAM_EDM_DRO] DIY AC servodrive Bob Muse 2006-06-11 14:03:25 UTC Re: [CAD_CAM_EDM_DRO] DIY AC servodrive David Bloomfield 2006-06-11 18:15:59 UTC Re: DIY AC servodrive