Hi Les,

The drives accept step/direction from the USC board to command position, not 
velocity.  The encoders are pass-through to the USC board and then to LinuxCNC.

Thanks!
Matt

> On Jun 28, 2021, at 9:02 AM, Les Newell <les.new...@fastmail.co.uk> wrote:
> 
> 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



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

Reply via email to