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