Re: [Emc-users] torque-velocity questions

2012-04-06 Thread Stuart Stevenson
The first thing to do is increase the allowable following error to a large
enough number you can experiment with the PID values. Then start tweaking P
and then D etc per the above protocol. You will be able to adjust for/in
either control loop mode.
On Apr 5, 2012 11:06 PM, Peter C. Wallace p...@mesanet.com wrote:

 On Thu, 5 Apr 2012, lloyd wilson wrote:

  Date: Thu, 05 Apr 2012 20:32:27 -0400
  From: lloyd wilson llwilso...@rochester.rr.com
  Reply-To: Enhanced Machine Controller (EMC)
  emc-users@lists.sourceforge.net
  To: Emc mail list emc-users@lists.sourceforge.net
  Subject: [Emc-users] torque-velocity questions
 
  We are investigating using my favorite cnc controller for an application
  which will require as much stiffness as we can arrange; websearching
  suggests that torque mode rather than velocity mode is preferrred in
  such applications. We are using a Pico PPMC interface set to mediate
  between the computer and a Parker Aries amp/motor combination (+/- 10v
  control input, 2000 line encoder, vendor rep loaded any requisite motor
  parameters into the amp).  We finally have the system so it doesn't
  immediately fault on a following error, but only in velocity mode; we've
  been totally unable to generate a set of PID parameters that are viable
  when the amp is set to torque mode. Ergo, it's guru time-
 
  1 - is there some inherent incompatibility between Linux CNC and torque
  mode servos?

 No, but a torque mode PID loop is also responsible for velocity control.
 This
 is handled by a separate high speed loop in your drive when your drive is
 in
 velocity mode. A Torque mode PID loop often needs to to run at a higher
 sample
 rate than a PID loop controlling a velocity mode drive. That is to say
 LinuxCNCs 1 KHz default servo thread rate may be marginal for a torque mode
 drive (not enough phase margin for the D term).

 Also because a torque mode PID control loop depends so much on the D term,
 its
 helpful if the velocity feedback is a good as possible. I'm pretty sure the
 PPMC has velocity estimation (as opposed to plain old crunchy dp/dt)  in
 its encoder counter/driver, but you need to connect the velocity estimate
 to
 the feedback-deriv pin on the PID component to make use of this better
 velocity feedback.

  2-  is there some deeply buried config parameter that needs to be
 changed?

 Not that I know of (other that using the velocity estimate instead of the
 PID
 comps default dp/dt) but torque mode PID tuning is  different and
 somewhat tougher to do that velocity mode tuning (IMHO).

  3-  can somebody point us to a strategy specifically oriented to tuning
  torque mode servos?

 Well I'm sure there are some good tuning tutorials...

 But from memory this is what I have done with torque mode drives:

 first I would do step response plotting and then alternately bump up P
 till it
 overshoots on a step and then bump up D till you regain a little less than
 critical damping and then repeat bumping both up to the point you can no
 longer make it stable with more D. Then back P and D off a little till its
 stable for the next step.

 Next I would adjust FF2 by doing a controlled move at say 1/2 the accel
 capability of the motor/drive/load and adjust FF2 to null the error during
 accell/decell.

 Similarly I would adjust FF1 by doing a long slew at perhaps 1/2 of the
 machines maximum speed and nulling and error during constant motion.

 At the end I would add I term until the drive becomes unstable (jog while
 adjusting to make sure you notice when it becomes unstable) and then reduce
 the amount of I term to about 1/2 the value that caused instability.

  4-  any other ideas?
 
  as always, thanks in advance - this community never stops astounding me
  with its knowledge and its willingness to share
 
 
  lloyd
 
 
 --
  For Developers, A Lot Can Happen In A Second.
  Boundary is the first to Know...and Tell You.
  Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
  http://p.sf.net/sfu/Boundary-d2dvs2
  ___
  Emc-users mailing list
  Emc-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/emc-users
 

 Peter Wallace
 Mesa Electronics

 (\__/)
 (='.'=) This is Bunny. Copy and paste bunny into your
 ()_() signature to help him gain world domination.



 --
 For Developers, A Lot Can Happen In A Second.
 Boundary is the first to Know...and Tell You.
 Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
 http://p.sf.net/sfu/Boundary-d2dvs2
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users

--
For Developers, A Lot Can Happen In A Second.
Boundary

Re: [Emc-users] torque-velocity questions

2012-04-06 Thread Anders Wallin
 1 - is there some inherent incompatibility between Linux CNC and torque
 mode servos?
 2-  is there some deeply buried config parameter that needs to be changed?
 3-  can somebody point us to a strategy specifically oriented to tuning
 torque mode servos?
 4-  any other ideas?

Here are some tuning-graphs I did in 2008.
These are for brush DC-servos with Pico PWM drives and a Mesa 5i20
card with 4 kHz (IIRC) servo-thread.
If I understand correctly these PWM-drives are voltage-mode which is
neither speed nor torque, but the graphs might be instructive
anyway...
http://www.anderswallin.net/2008/04/pid-tunig/
http://www.anderswallin.net/2008/04/x-axis-test/

Someone should make a PID-tuning utility that makes it super-easy to
capture these HALScope screenshots together with the PID-parameters
used. I think we might see more logs of these tuning sessions on the
interwebs then...

Anders

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] torque-velocity questions

2012-04-06 Thread Jon Elson
lloyd wilson wrote:
 We are investigating using my favorite cnc controller for an application 
 which will require as much stiffness as we can arrange; websearching 
 suggests that torque mode rather than velocity mode is preferrred in 
 such applications. We are using a Pico PPMC interface set to mediate 
 between the computer and a Parker Aries amp/motor combination (+/- 10v 
 control input, 2000 line encoder, vendor rep loaded any requisite motor 
 parameters into the amp).  We finally have the system so it doesn't 
 immediately fault on a following error, but only in velocity mode; we've 
 been totally unable to generate a set of PID parameters that are viable 
 when the amp is set to torque mode. Ergo, it's guru time-
   
What, exactly, is the problem?  Is it unstable?  Torque mode is going to 
be less stable
that velocity mode, I think.  It will require more careful tuning of the 
P and D
parameters, and when you get the P as high as you can go while still 
having good
stability, you then need to use FF1 and FF2 to improve on that.  But, 
that won't
improve stiffness against external torque.

There may be as much or more tweaking required on the Parker amp as in 
LinuxCNC
to get the best results.

I agree with Dave that I don't see any reason why torque mode should be 
stiffer
than velocity mode.  Velocity mode moves one more control loop out to 
the drive,
which likely has a higher servo update rate than LinuxCNC, so that can 
be helpful.

Jon

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] torque-velocity questions

2012-04-06 Thread Jon Elson
Peter C. Wallace wrote:


 No, but a torque mode PID loop is also responsible for velocity control. This 
 is handled by a separate high speed loop in your drive when your drive is in 
 velocity mode. A Torque mode PID loop often needs to to run at a higher 
 sample 
 rate than a PID loop controlling a velocity mode drive. That is to say 
 LinuxCNCs 1 KHz default servo thread rate may be marginal for a torque mode 
 drive (not enough phase margin for the D term).
   
It is possible to turn up the servo rate by reducing SERVO_PERIOD in the 
.ini file.
2 KHz should be easy, 4 KHz should be possible with a PCI plug-in 
parallel port,
but may not work with the on-motherboard port.
 Also because a torque mode PID control loop depends so much on the D term, 
 its 
 helpful if the velocity feedback is a good as possible. I'm pretty sure the 
 PPMC has velocity estimation (as opposed to plain old crunchy dp/dt)
No, it doesn't.  The only one of our boards that has this, NOW, is the 
Universal PWM Controller.
I plan to put it into the other boards soon.  But, until the release of 
2.5, users would have had to
run a developer's version of LinuxCNC to use this feature, it was not in 
the driver for
2.4.x.

Jon

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


[Emc-users] torque-velocity questions

2012-04-05 Thread lloyd wilson
We are investigating using my favorite cnc controller for an application 
which will require as much stiffness as we can arrange; websearching 
suggests that torque mode rather than velocity mode is preferrred in 
such applications. We are using a Pico PPMC interface set to mediate 
between the computer and a Parker Aries amp/motor combination (+/- 10v 
control input, 2000 line encoder, vendor rep loaded any requisite motor 
parameters into the amp).  We finally have the system so it doesn't 
immediately fault on a following error, but only in velocity mode; we've 
been totally unable to generate a set of PID parameters that are viable 
when the amp is set to torque mode. Ergo, it's guru time-

1 - is there some inherent incompatibility between Linux CNC and torque 
mode servos?
2-  is there some deeply buried config parameter that needs to be changed?
3-  can somebody point us to a strategy specifically oriented to tuning 
torque mode servos?
4-  any other ideas?

as always, thanks in advance - this community never stops astounding me 
with its knowledge and its willingness to share


lloyd

--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] torque-velocity questions

2012-04-05 Thread Dave
You might be making this more difficult than need be.

If you tell the drive to go to a position via a path and while executing 
that path you have very little following error, then how could that be 
improved upon?

The stiffness of your drive system will be more related to the size of 
your servo drive and motor than whether you control it via torque or 
velocity mode assuming your pid tuning is good.

When you put the drive into velocity mode, the torque/current loop is 
handled inside the drive itself.  Which is probably the best place for it.

If you get into the fine details, don't overlook the parameters that 
your supplier loaded into the Aries drive.   Are you sure he did that 
correctly?
The last time I set up an Aries drive the software was available on the web.

Dave



On 4/5/2012 8:32 PM, lloyd wilson wrote:
 We are investigating using my favorite cnc controller for an application
 which will require as much stiffness as we can arrange; websearching
 suggests that torque mode rather than velocity mode is preferrred in
 such applications. We are using a Pico PPMC interface set to mediate
 between the computer and a Parker Aries amp/motor combination (+/- 10v
 control input, 2000 line encoder, vendor rep loaded any requisite motor
 parameters into the amp).  We finally have the system so it doesn't
 immediately fault on a following error, but only in velocity mode; we've
 been totally unable to generate a set of PID parameters that are viable
 when the amp is set to torque mode. Ergo, it's guru time-

 1 - is there some inherent incompatibility between Linux CNC and torque
 mode servos?
 2-  is there some deeply buried config parameter that needs to be changed?
 3-  can somebody point us to a strategy specifically oriented to tuning
 torque mode servos?
 4-  any other ideas?

 as always, thanks in advance - this community never stops astounding me
 with its knowledge and its willingness to share


 lloyd

 --
 For Developers, A Lot Can Happen In A Second.
 Boundary is the first to Know...and Tell You.
 Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
 http://p.sf.net/sfu/Boundary-d2dvs2
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users




--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users


Re: [Emc-users] torque-velocity questions

2012-04-05 Thread Peter C. Wallace
On Thu, 5 Apr 2012, lloyd wilson wrote:

 Date: Thu, 05 Apr 2012 20:32:27 -0400
 From: lloyd wilson llwilso...@rochester.rr.com
 Reply-To: Enhanced Machine Controller (EMC)
 emc-users@lists.sourceforge.net
 To: Emc mail list emc-users@lists.sourceforge.net
 Subject: [Emc-users] torque-velocity questions
 
 We are investigating using my favorite cnc controller for an application
 which will require as much stiffness as we can arrange; websearching
 suggests that torque mode rather than velocity mode is preferrred in
 such applications. We are using a Pico PPMC interface set to mediate
 between the computer and a Parker Aries amp/motor combination (+/- 10v
 control input, 2000 line encoder, vendor rep loaded any requisite motor
 parameters into the amp).  We finally have the system so it doesn't
 immediately fault on a following error, but only in velocity mode; we've
 been totally unable to generate a set of PID parameters that are viable
 when the amp is set to torque mode. Ergo, it's guru time-

 1 - is there some inherent incompatibility between Linux CNC and torque
 mode servos?

No, but a torque mode PID loop is also responsible for velocity control. This 
is handled by a separate high speed loop in your drive when your drive is in 
velocity mode. A Torque mode PID loop often needs to to run at a higher sample 
rate than a PID loop controlling a velocity mode drive. That is to say 
LinuxCNCs 1 KHz default servo thread rate may be marginal for a torque mode 
drive (not enough phase margin for the D term).

Also because a torque mode PID control loop depends so much on the D term, its 
helpful if the velocity feedback is a good as possible. I'm pretty sure the 
PPMC has velocity estimation (as opposed to plain old crunchy dp/dt)  in 
its encoder counter/driver, but you need to connect the velocity estimate to 
the feedback-deriv pin on the PID component to make use of this better 
velocity feedback.

 2-  is there some deeply buried config parameter that needs to be changed?

Not that I know of (other that using the velocity estimate instead of the PID 
comps default dp/dt) but torque mode PID tuning is  different and 
somewhat tougher to do that velocity mode tuning (IMHO).

 3-  can somebody point us to a strategy specifically oriented to tuning
 torque mode servos?

Well I'm sure there are some good tuning tutorials...

But from memory this is what I have done with torque mode drives:

first I would do step response plotting and then alternately bump up P till it 
overshoots on a step and then bump up D till you regain a little less than 
critical damping and then repeat bumping both up to the point you can no 
longer make it stable with more D. Then back P and D off a little till its 
stable for the next step.

Next I would adjust FF2 by doing a controlled move at say 1/2 the accel 
capability of the motor/drive/load and adjust FF2 to null the error during 
accell/decell.

Similarly I would adjust FF1 by doing a long slew at perhaps 1/2 of the 
machines maximum speed and nulling and error during constant motion.

At the end I would add I term until the drive becomes unstable (jog while 
adjusting to make sure you notice when it becomes unstable) and then reduce 
the amount of I term to about 1/2 the value that caused instability.

 4-  any other ideas?

 as always, thanks in advance - this community never stops astounding me
 with its knowledge and its willingness to share


 lloyd

 --
 For Developers, A Lot Can Happen In A Second.
 Boundary is the first to Know...and Tell You.
 Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
 http://p.sf.net/sfu/Boundary-d2dvs2
 ___
 Emc-users mailing list
 Emc-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/emc-users


Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
()_() signature to help him gain world domination.


--
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
___
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users