Servo tuning / debugging help - clarification of context….

More
5 years 8 months ago #198076 by PCW

Jaro wrote: Thank you, Todd.
any value of FF1, whether positive or negative, does not affect the f-error curve. I tried values from -10 to +10.


This indicates a problem in the hal file.
pretty sure there is a bug in 2.7 vintage pncconf
relative to changes in the PID component
that causes this issue.

Can you post your current hal/ini files?

Please Log in to join the conversation.

More
5 years 8 months ago #198080 by Jaro
yes I'll manualy comment: net x-vel-cmd => pid.x.command-deriv

motor have limit 2000rpm/min, gear ratio is 1:2 and ballscrew pitch is 5mm.
I tried to set max 2100mm/min like rapid speed was set in heidenain tnc 135 for this mill.

Please Log in to join the conversation.

More
5 years 8 months ago #198084 by Jaro
here is the current .ini and .hal file
not cleaned yet (I played with the probe screen ....)

Attachment not found


Attachment not found

Please Log in to join the conversation.

More
5 years 8 months ago #198085 by PCW
This should not be commented out:
#setp pid.x.error-previous-target true

and this should be commented out:
net x-vel-cmd => pid.x.command-deriv

(for all axis)

Please Log in to join the conversation.

More
5 years 8 months ago #198135 by db1981
Then your axis scaling is wrong, with this numbers i get 83.33mm/s.
the max_velocity from each axis should be ~ the theoretical mechanical speed at max Output. (you can correct this with ff1, but normaly in an velocity controll loop this should be 1.0. )

So, if you only want 2100mm/min then [Axis]max velocity should be 35.0 and [Axis] Outputscale = 4.2 (if your servo drive is set to 10V=2000rpm), ff1 = 1.0.

Then Limit the Pid output to near your output scale for example +5 / -5 so the controller would never output more than 1000rpm. 5V becaus you will need some
headroom for the controller to correct moves at max speed.

Please Log in to join the conversation.

More
5 years 8 months ago #198182 by Jaro
Thanks DB.
please, can you explain me how to calculate max velocity and outputscale?
servo has 2000rpm/10V
gear ratio is 1:2 so i get 1000rpm/10V behind the transfer
balscrew pitch is 5mm

1000 x 5 / 60 = 83.33mm/sec (this is maximal theoretical velocity)
meantime i corrected MAX-VELOCITY = 16.6 (last ini file )
but how this everything I can calculate on OUTPUT_SCALE, OUTPUT_MIN_LIMIT , OUTPUT_MAX_LIMIT and MAX_OUTPUT?
please, try to explane. what is necessy to stet or change?

when I set servo 800rpm/10V (i think it is possible configure driver for that)
and set
MAX_LINEAR_VELOCITY = 33.33
(TRAJ)
MAX_VELOCITY = 33.33
(AXIS X,AXIS Y,AXIS Z)
MAX_OUTPUT = 10
OUTPUT_SCALE = 9
OUTPUT_MIN_LIMIT = -10
OUTPUT_MAX_LIMIT = 10
is this correct?

thanks
Jaro

Please Log in to join the conversation.

More
5 years 8 months ago #198183 by Jaro
thank you very much PCW and TODD.
today I manualy comment: net x-vel-cmd => pid.x.command-deriv and
uncommented #setp pid.x.error-previous-target true.
now I can use FF1 and FF2 for F-error tuning with halscope.
thanks again
Jaro

Please Log in to join the conversation.

Time to create page: 0.054 seconds
Powered by Kunena Forum