Hi Matthew,

First of all, how are your drives configured? Is the step/direction commanding position to the drives or velocity? If you are using position (the most common with step/dir) all of your PID tuning should be done in the drive. Do you have feedback to LCNC from the encoders?

Les

On 28/06/2021 01:07, Matthew Herd wrote:
Hi All,

It’s been a long time, but I finally got my servos mounted on my mill today.  
While attemping to tune them I encountered great frustration.  I have 1kW 
Yaskawa clone AC servo motors and drives that accept step and direction signals 
and provide encoder feedback which is currently interfaced to the Pico Systems 
USC board.  I set the acceleration and velocity values in my ini file to what I 
thought were plausible and set the ferror to 1.  I was able to move the axes 
successfully, so I started tuning the X axis (joint 0).  That proved to be a 
debacle.  I attempted to tune by turning P up until it oscillated, backing off 
to 60%, then tuning FF1.  Although P could be tuned effectively, no amount of 
FF1 made any difference.  Typical performance was that ferror increased as long 
as I held the jog button at a speed of 60 IPM.  Then I started increasing the 
max velocity for Axis X to nearly double the max velocity for Joint 0.  This 
finally caused the ferror to stabilize while jogging and I was able to tune FF1 
to achieve an ferror of around 0.002 during steady state moves.  I had some 
substantial oscillations at start and stop, but overall much improved.  I 
presume the ferror values is in inches since I’m using inches for my machine 
units.  I turned up the jog speed to ~120IPM and tweaked FF1 a bit further, 
ending up at 17.  The ferror remained ~0.002.  I then turned up the jog speed 
to 250IPM and the ferror was completely unstable.  The machine doesn’t seem to 
be accelerating as quickly as I’d expect, and tuning seems to be extremely 
challenging.  Extended jogs tend to result in the machine moving awhile after I 
release the button and ferror is all over the place (except below 120IPM with 
the settings below).  My ini data is copied below.  It’s derived from the 
sample config for the USC board.  Given all this, I have a few questions.

What is a reasonable acceleration value for a Bridgeport BOSS5 (Series 1 type 
factory CNC machine) with 1kW 5Nm AC servos?  Are my accelerations too low?  
Raising them by orders of magnitude seemed to have no effect.  I freely admit 
I’ve been too lazy to try to calculate it.
Why do I seem to need so much headroom on the Axis X max velocity over the 
Joint 0 max velocity?  I thought this was supposed to be 5-25%, but that was 
insufficient too allow FF1 to have any impact.
Does the "PID_MAX_VEL" parameter do anything?
Is my ferror the actual encoder feedback or is it the ferror from the step 
generator?  I’m trying to determine if the control loop in the drive is in need 
of additional tuning and not sure how to identify which loop is the problem.  
I.e. LinuxCNC’s control loop or the drive control loop?
What is a good strategy for finding the max acceleration and tuning the drives?

Thanks in advance for your input!

Matt


My Actual INI below:
# First axis
[AXIS_X]
MIN_LIMIT = -0.20
MAX_LIMIT = 17.80
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 15

[JOINT_0]
TYPE =                          LINEAR
HOME =                          0.000
MAX_VELOCITY =                  8.33
MAX_ACCELERATION =              10.0
PID_MAX_VEL =                   150
BACKLASH = 0.000
# INPUT_SCALE sets the resolution of the encoder in user units
# for instance a 500 line encoder directly connected to a 5 TPI leadscrew
# would give 500 * 4 (for quadrature) * 5 = 10000
INPUT_SCALE =                   -50000
# OUTPUT_SCALE sets the resolution of the step generator
# for a Gecko320 with no pulse multiplier, it should be the same magnitude
# as INPUT_SCALE, but the arithmetic sign might need to be opposite
# if it runs away.
# if you have an encoder on a stepper motor, then this should be calculated
# by number of (micro)steps/rev X the leadscrew pitch, and may not match the
# INPUT_SCALE.
OUTPUT_SCALE =                                  -12500
MIN_LIMIT =                     -0.20
MAX_LIMIT =                     17.80
FERROR =                       01.010
MIN_FERROR =                   1.001
HOME_OFFSET =                    -0.10
HOME_SEARCH_VEL =                -0.160
HOME_LATCH_VEL =                 -0.02
HOME_USE_INDEX =                 YES
HOME_IGNORE_LIMITS =             NO
DEADBAND =                         0.000126
P =                              1200
I =                              0
D =                                0
BIAS =                             0
FF0 =                              0
FF1 =                              17
FF2 =                           0
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users





_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to