Help Needed: Z-Axis Linear Guide Vibrations at Specific Speeds

More
09 Jan 2025 14:33 #318544 by 4ashishkr
I'm facing an issue with my Z-axis linear guide, and I could use some advice.The axis is mounted upright, and I’ve noticed significant vibrations. At higher speeds (10,000 mm/min), the vibrations are less pronounced, but at lower speeds (3,000 mm/min), they are much more noticeable. Interestingly, the issue becomes more severe when the block on the linear guide moves farther away from its mechanical fixing point.I’ve already tried changing the motor stepping settings, but it hasn’t resolved the problem.If anyone has experienced a similar issue or has suggestions for troubleshooting, I’d greatly appreciate your input.Thank you in advance!
Ini for reference.

# EMC controller parameters for a simulated machine.
# General note: Comments can either be preceded with a # or ; - either is
# acceptable, although # is in keeping with most linux config files.

# General section
[EMC]
VERSION = 1.1
MACHINE = my_gui
DEBUG = 0

# Sections for display options
[DISPLAY]
DISPLAY = my_gui
# Log level:
# DEBUG       -d
# INFO        -i
# VERBOSE     -v
# ERROR       -q

# Cycle time, in milliseconds, that display will sleep between polls
CYCLE_TIME = 100

# Values that will be allowed for override, 1.0 = 100%
MAX_FEED_OVERRIDE    = 2.0
MAX_SPINDLE_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5

# Max and default jog speeds in units per second
MAX_LINEAR_VELOCITY     = 800
DEFAULT_LINEAR_VELOCITY = 100
MAX_ANGULAR_VELOCITY    = 234
DEFAULT_SPINDLE_SPEED   = 450

# Prefix to be used
PROGRAM_PREFIX = /home/cnc/linuxcnc/nc_files

# Introductory graphic
#INTRO_GRAPHIC = linuxcnc.gif
#INTRO_TIME = 5

# list of selectable jog increments
INCREMENTS = 1.000 mm, 0.100 mm, 0.010 mm, 0.001 mm, 1.2345 inch

# for details see nc_files/subroutines/maco_instructions.txt
[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python3


# Task controller section
[RS274NGC]
RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9
PARAMETER_FILE = sim.var
SUBROUTINE_PATH = macros

# Motion control section
[EMCMOT]
EMCMOT =              motmod
COMM_TIMEOUT =          1.0
BASE_PERIOD  =          100000
SERVO_PERIOD =          1000000

[HMOT]
CARD0=hm2_7i96s.0


# Hardware Abstraction Layer section
[TASK]
TASK =                  milltask
CYCLE_TIME =            0.001

# Part program interpreter section
[HAL]
HALFILE = my_gui_DEVICE.hal
# Single file that is executed after the GUI has started.
#POSTGUI_HALFILE = my_gui_postgui.hal
HALUI = halui
SHUTDOWN = shutdown.hal


# Trajectory planner section
[HALUI]
#No Content

[TRAJ]
COORDINATES =      X Y Z 
LINEAR_UNITS =     mm
ANGULAR_UNITS =    degree
DEFAULT_LINEAR_VELOCITY = 100
MAX_LINEAR_VELOCITY = 800.0
POSITION_FILE =    position.txt
#NO_FORCE_HOMING = 1

[EMCIO]
EMCIO =         io
CYCLE_TIME =    0.100

# tool table file
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 100 100 -10
TOOL_CHANGE_QUILL_UP = 1

[KINS]
KINEMATICS = trivkins coordinates=xyz
JOINTS = 3

[AXIS_X]
MIN_LIMIT = 0
MAX_LIMIT =  370.0
MAX_VELOCITY = 800.0
MAX_ACCELERATION = 10000.0

[JOINT_0]
TYPE =                          LINEAR
MAX_VELOCITY = 800.0
MAX_ACCELERATION = 10000.0
BACKLASH = 0.000
#INPUT_SCALE =                   10000
OUTPUT_SCALE = 1.000
MIN_LIMIT = 0
MAX_LIMIT =  370.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET =                    -1.0
HOME =                           0.0
HOME_SEARCH_VEL =                -20.0
HOME_LATCH_VEL =                 5.0
HOME_FINAL_VEL =                 5.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             YES
HOME_SEQUENCE = 1
#HOME_IS_SHARED = 1

STEPGEN_MAXVEL = 2083.33
STEPGEN_MAXACCEL = 12500.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0

# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = -14.28571





# Second axis
[AXIS_Y]
MIN_LIMIT = 0.0
MAX_LIMIT =  371.8
MAX_VELOCITY = 800.0
MAX_ACCELERATION = 10000.0

[JOINT_1]
TYPE =                          LINEAR
MAX_VELOCITY = 800.0
MAX_ACCELERATION = 10000.0
BACKLASH = 0.000
#INPUT_SCALE =                   10000
OUTPUT_SCALE = 1.000
MIN_LIMIT = 0.0
MAX_LIMIT =  371.8
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET =                    -1.0
HOME =                           0.0
HOME_SEARCH_VEL =                -20.0
HOME_LATCH_VEL =                 5.0
HOME_FINAL_VEL =                 5.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             YES
HOME_SEQUENCE = 1

STEPGEN_MAXVEL = 2083.33
STEPGEN_MAXACCEL = 12500.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = 14.2857







# Third axis
[AXIS_Z]
MIN_LIMIT = -147.0
MAX_LIMIT = 0.0
MAX_VELOCITY = 800.0
MAX_ACCELERATION = 10000.0

[JOINT_2]
TYPE =                          LINEAR
MAX_VELOCITY = 800.0
MAX_ACCELERATION = 10000.0
BACKLASH = 0.000
#INPUT_SCALE =                   10000
OUTPUT_SCALE = 1.000
MIN_LIMIT =                     -147.0
MAX_LIMIT =                     0.0
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET =                    1.0
HOME =                           0.0
HOME_SEARCH_VEL =                20.0
HOME_LATCH_VEL =                 -5.0
HOME_FINAL_VEL =                 5.0
HOME_USE_INDEX =                 NO
HOME_IGNORE_LIMITS =             YES
HOME_SEQUENCE = 0
#HOME_IS_SHARED = 1

STEPGEN_MAXVEL = 2083.33
STEPGEN_MAXACCEL = 12500.00
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
# these are in nanoseconds
DIRSETUP   = 10000
DIRHOLD    = 10000
STEPLEN    = 5000
STEPSPACE  = 5000
STEP_SCALE = -20.0

#******************************************






# section for main IO controller parameters
[MACROS]
MACRO = go_to_position x-pos y-pos z-pos
MACRO = i_am_lost
MACRO = increment x-incr y-incr
MACRO = macro_4
MACRO = macro_5
MACRO = macro_6
MACRO = macro_7
MACRO = macro_8
MACRO = macro_9
MACRO = macro_10
MACRO = macro_11
MACRO = macro_12
MACRO = macro_13
MACRO = macro_14
MACRO = macro_15


 

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
09 Jan 2025 15:08 #318545 by tommylight

Please Log in or Create an account to join the conversation.

  • spumco
  • Away
  • Platinum Member
  • Platinum Member
More
09 Jan 2025 15:09 #318547 by spumco
Sounds like stepper resonance to me.

Without knowing anything about your drives, motors, or mechanical components... an easy test would be to increase the drive's microsteps and adjust the STEP_SCALE accordingly.

Your STEP_SCALE for X&Y is ~14, and Z is ~20.  This seems extremely low for a typical 5mm or even 10mm pitch ballscrew assembly with 1.8 degree steppers.  Maybe I'm missing something.

You did mention that you've adjusted the drives microsteps, but have you tried all (or some) available microstep values?  What value(s) do you have the drives set to now?
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
10 Jan 2025 04:40 #318612 by 4ashishkr
Currently the step setting is 1000 and i tried 800, 25600 and 12800 (yes i changed scale accordingly) no major change and the best setting was 1000 imo.

It is vibrating alot after a certain point on the axis and if i just support the load on it is completely fine.

and the main thing is on going up there is no vibration at all.

The pitch of the linear actuator is 50mm.

Please Log in or Create an account to join the conversation.

  • spumco
  • Away
  • Platinum Member
  • Platinum Member
More
10 Jan 2025 07:21 #318619 by spumco
50mm pitch?

What is the actuator - do you have a picture?  If it's only doing it in one direction there may be an issue with the actuator or related mechanicals.

Please Log in or Create an account to join the conversation.

More
10 Jan 2025 14:50 #318634 by 4ashishkr
The one attached is similar.
Attachments:

Please Log in or Create an account to join the conversation.

  • spumco
  • Away
  • Platinum Member
  • Platinum Member
More
10 Jan 2025 16:44 #318651 by spumco
Perhaps I'm still misunderstanding, but the actuator you showed looks like it has a leadscrew with a pitch more like 5mm, not 50mm.

Just to make sure we're talking about the same thing, 'pitch' to me means the spacing between the screw threads. 50mm is an abnormally steep pitch unless it's a multi-start screw.

In other words, does the carriage really move 50mm for a single turn of the screw?

Please Log in or Create an account to join the conversation.

More
16 Jan 2025 04:55 #319090 by 4ashishkr
The attached image is not the exact one but it is looks the same but pitch is 50mm.

Please Log in or Create an account to join the conversation.

More
16 Jan 2025 06:18 - 16 Jan 2025 06:18 #319091 by rodw

The attached image is not the exact one but it is looks the same but pitch is 50mm. 

I think stepper resonance is confirmed.
3000 mm/min with 50mm pitch = 60 rpm
10000 mm/min with 50mm pitch = 200 rpm

You need to add some gearing or change your lead screw pitch so you move the resonance RPM zone out of the operating range.
Last edit: 16 Jan 2025 06:18 by rodw.
The following user(s) said Thank You: spumco

Please Log in or Create an account to join the conversation.

  • spumco
  • Away
  • Platinum Member
  • Platinum Member
More
16 Jan 2025 13:09 #319120 by spumco
I'll second rod's conclusion.  At that RPM steppers can vibrate like mad.

Change the screw pitch and you'll get the rpm out of the vibration range, as well as gaining some resolution and thrust.
The following user(s) said Thank You: rodw

Please Log in or Create an account to join the conversation.

Time to create page: 0.090 seconds
Powered by Kunena Forum