On 03/26/2015 01:16 AM, Leonardo Marsaglia wrote:
> 2015-03-26 1:06 GMT-03:00 Jon Elson <el...@pico-systems.com>:
>
>> Do you mean to extract velocity from the encoder and then
>> feed it out a DAC channel to
>> a velocity servo amp?  This is what almost all FANUC
>> controls do, and a few people are
>> doing this with LinuxCNC.  I think Chris Radek is doing this
>> on his machine, and John Kasunich and Chris
>> Kelley at Tx/Rx Labs in Texas got this working on their
>> PowerHawk mill.
>>
> Well, If I understand you correctly, yes we're talking about the same.
> Extract the encoder velocity, feed the DAC through a PID to close the
> velocity loop and also close the position loop to move that axis. What I'm
> using here is not a servo drive as you know but the purpose is the same.
> I'm thinking about using the approach on the link you sended to me from the
> wiki but instead of using two feedback devices, use just one.
No, I don't think we are talking exactly about the same 
thing. Common velocity servo amplifiers have an analog 
velocity error amp, which takes in a velocity command from 
the CNC control and a measured velocity, usually from a DC 
tachometer mounted on (or IN) the motor.  If there is not 
tachometer, then some controls, especially Fanuc, synthesize 
the tach signal using a chip such as the ST Micro L290 
(sadly, no longer available).  A few people who have big 
servo amplifiers like this have made LinuxCNC do the same as 
the Fanuc control, and it works.  Assuming a 1 KHz servo 
cycle, there is inevitably a 1 ms delay in providing the 
synthetic velocity output, but it seems to work fine.  
Probably these old velocity amps from the 1970s don't have a 
very high bandwidth, so it is OK.
> I'm going to try it out tomorrow to see what happens, anyway as I said
> before.. LinuxCNC is working great so far without closing the velocity
> loop. What I'm doing so far is, closing the position loop and the DACs are
> feeding the VFDs without really closing the velocity loop, LinuxCNC is only
> asking to VFDs for a velocity but without knowing if the motor is reaching
> the speed at the moment LinuxCNC expects them to reach it. I guess this is
> why closing the loop both ways makes it more accurate. Anyway I don't
> expect them to be as delicate as a permanent magnet servo but I think they
> can be improved.
I make some "dumb" PWM-controlled servo amps.  The PWM duty 
cycle is converted to voltage output, not a current (as in a 
torque-mode amp) or true velocity (there's no velocity or 
current feedback).  So, LinuxCNC's PID module is the only 
thing between the commanded position and the motor-encoder.  
This system is harder to tune, but it does work pretty 
well.  Velocity is extracted using the velocity estimation 
scheme used on many LinuxCNC encoders and fed to the 
optional velocity input of the PID  ( pid.0.feedback-deriv).

Jon

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to