I think I might have been adjusting the wrong velocity & acceleration 
parameters … see below for the trajectory planner section of the INI:

I assume that increasing the max linear velocity term will help with at least 
some of the issues.  And making sure my max linear acceleration is 25% greater 
as well.

# Trajectory planner section --------------------------------------------------
[TRAJ]
# Full 4th Axis with Knee
# COORDINATES =         X Y Z W A
# 3 Axes plus Knee
# COORDINATES =         X Y Z W
# 3 Axes only
COORDINATES =           X Y Z
HOME =                  0 0 0
LINEAR_UNITS =          inch
ANGULAR_UNITS =         degree
DEFAULT_LINEAR_VELOCITY = 1
MAX_LINEAR_VELOCITY = 8.33
DEFAULT_LINEAR_ACCELERATION = 15.0
MAX_LINEAR_ACCELERATION = 20.0


> On Jun 27, 2021, at 8:07 PM, Matthew Herd <herd.m...@gmail.com> 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

Reply via email to