Update:
All 3 axis do jitter / oscillate slightly at idle, but the X and Y usually stop after 1 - 2 seconds.
Hi,
I'm configuring my machine with Mach3. I have the following specification:
HDBB2 parallel port BOB (no motion controller)
DG4S-08020 cncdrive servo amps
75vdc 20a SEM MT30 servo motors
I have all 3 axis configured and the steps set accordingly, with accurate results! However I'm having an issue with my Y axis. The axis moves to position as it should when commanded. However upon stopping it just jitters or oscillates rapidly and sounds like buzzing bee until the next move is commanded. Sometimes it will stop after 5 - 10 seconds. If I pull lightly on one side of the drive belt from the motor I can get it to stop.
All three servo amps are configured identically (see below)
http://www.cnczone.com/forums/attach...d=348664&stc=1
When the drive is oscillating, if I check the drive / amp diagnostics it seems as if the servo is fluctuating by +0.001852 and -0.001852 around the commanded position (see below)
http://www.cnczone.com/forums/attach...d=348666&stc=1
If I can just get this ironed out I'll be over the moon, as other than this the machine is absolutely spot on! I'm afraid if I leave it, damage will occur to either the servo or the drive.
Many thanks in advance.
Jim
Similar Threads:
Update:
All 3 axis do jitter / oscillate slightly at idle, but the X and Y usually stop after 1 - 2 seconds.
Try lowering the gain a bit, Ap parameter. That is normally the problem.
http://cnc4pc.com/Tech_Docs/PID_tuning_eng.pdf
Adjusted slightly and ran the analysis. I'm getting a perfect wave form with little overshoot and no fluctuation.
But that doesn't stop the motor from oscillating when idle. The only way I can stop the jittering is if I put a little force on one side of the belt. When idle, although the servo oscillates it doesn't actually move from its commanded position. But you can literally see the belt vibrating.
The other axis oscillate slightly for a second or so then stop and the servo becomes silent.
Checked the encoders as tight on the motor shaft, which they are.
I get this issue with backlash enabled and disabled.
Any ideas?
Thanks
The only thing I can think of is adjusting the PID parameters. That normally solves jitter problems. You may have to adjust several times. Sometimes I make a large change in the parameters, one at a time, just to see how the system reacts. Then adjust to find the best compromise between system stiffness/accuracy and stability. It sounds like you are right on the edge of being stable.
How many pulses per rev? in your second pic it says steps per: 540, is this pulses per rev?
If you have low resoloution encoders it may be more likely to buzz or dither then a higher resoloution. 540ppr would be on the low side for sure.
More info here: http://www.cnczone.com/forums/servo-...dithering.html
I'll keep messing with parameters in the servo configuration this weekend then. Although, so far this seems to have not made much difference.
I'm running ENI-1024 magnetic quadrature encoders in 4X encoding mode counting both the rising and falling edges of channels A&B. This giving a CPR count of 1024. (Spec sheet below)
http://www.cncdrive.com/downloads/EN...der_manual.pdf
So I suppose these are very low resolution encoders?
Regarding the steps per unit value. I'm lucky as I have glass scale encoders already on the machine from the Crusader 2 era. This now acts as a DRO but has allowed me to calculate the steps per value quite easily. My Y Axis servo motor is configured as below.
Steps per = 524.042069
Velocity = 1000.2mm
Acceleration = 10mm/sec
Step pulse = 0 us
Dir pulse = 0 us
Other than the dither this yields near perfect results with accuracy down to 0.03mm.
Could my low steps per value be part of the issue? If so, I'm unsure of how I can increase this as I'm limited by my encoder CPR of 1024.
Edit : Murray, very interesting read right there! Thank you for the link. This dither / ping-ponging between encoder edges is what I am experiencing, but only on the Y axis.
Last edited by jim_cliff11; 02-03-2017 at 04:18 AM.
You might have a mechanical issue. A cogging or elastic belt can upset the servo loop, because it introduces a deadband on direction changes.
You can try to adjust the PID controller to act softer to overcome this issue but that will produce larger response times laggier resposes, higher following errors.
Your best option is to tension the belt and make sure there is no backlash cogging in the mechanics.
Thanks for the reply Olf,
I've tensioned the belt to no avail unfortunately.
The Y axis does have a little more backlash than the other axis. But I've measured this at 0.08mm of play.
Mechanically, the ball screw and axis respond well to hand movement, and there is no sticking or twisting of the bed.
I'll have a play with PID for the amps and the mach3 backlash settings.
I think the deadband would only be an issue if the encoder feedback came from the axis rather than the motor.
Your problem really sounds like a tuning issue. Does your drive/motor software have an autotune feature?
I usually start the tuning process with integral set to zero and get proportional and derivative set first. There's a lot of tutorials on the internet about motor tuning.
Good Luck.
Sounds like your servos are not turned correctly. How did you tune them. Normally they can be tuned with different loads. If you tuned them with no load and then put the load on that could be the issue, as you normally need to tune them again after they are connected to the load on the ballscrew or cog rails however you converting the rotational motion to linear motion.
Russ
Hi WesM,
I didn't manage to eliminate it completely, but I did manage to reduce it greatly through tuning the PID.
It took me a while, but what I found was the smallest of changes made a big difference.
Sorry I cant be of any more help.