High Pitched Motor Vibration in Narrow Range
-
I've been ignoring this issue for a while, but I have pretty bad motor vibration on my Voron 2.4 in a speed zone from 64mm/s-69mm/s. Above and below that everything runs smooth. I'm using a 6HC mainboard for the AB motors and Z motors. I'm running in spreadcycle only. I've tried the following:
-
Varying motor currents. Increasing current shifts the vibration slightly from 66-72mm/s or so
-
Varying belt tension. Not much affect.
-
Tuned input shaper. Last ditch effort, I know that only cancels out frame resonances and doesn't have much to do with the motors.
I'm hoping that something can be done to tune Spreadcycle to help cancel out this vibration. I need help with someone with that knowledge, because it's complexity is over my big head! If that's even the problem.
-
-
It may help to give us the specs of the motors in use.
-
Moon’s is the mfgr
-
4mH inductance is right at the top of recommended.
Not sure if that's directly related to your vibration or not.
Do you have enough space to add some motor dampers to the AB motors? Something like a cork pad?
-
@phaedrux I get where you're coming from, but the inductance has more to do with back emf at high speeds. 65mm/s isn't really that fast considering two motors are splitting the work if moving along one axis.
I ordered a pair of LDO motors to try. I'd like to try and continue to troubleshoot with my current motors, but I'm at a loss at what else to try. I greatly appreciate your help regardless. You all do great work.
-
@phaedrux Doing some more troubleshooting I found something pretty interesting. I made the following macro that increments the speed after each iteration so I could find the worst vibration
var speed_step=100 var speed=3700 while iterations < 6 echo var.speed G1 X60 Y60 F{var.speed} G1 Y240 F{var.speed} G1 X240 F{var.speed} G1 Y60 F{var.speed} G1 X60 F{var.speed} G1 X240 Y240 F{var.speed/2} G1 Y60 F{var.speed} G1 X60 Y240 F{var.speed/2} set var.speed = var.speed + var.speed_step
What this does is moves in a square, then diagonally twice. For the diagonal moves I'm dividing the feedrate by 2 to keep the motor RPM the same. You would expect the same vibration on the diagonal moves as the straight right? Nope. Dead silent. So the issue is that when both motors are moving together, they are inducing the vibration in that narrow speed zone.
Maybe it's because the motors turn in opposite directions therefore amplifying the vibration because they are "out of phase" of each other? IDK. Thought you may find that helpful. I know this isn't a Duet problem or your responsibility to help me troubleshoot, but I do appreciate your input.
-
@ctilley79 thanks for this. i have a similar issue with my voron 2.4. mostly the tool head/fan vibrates a ton a specific speed, but i noticed at least two speeds for mine. i don't use the ldo motors either but i have them. just not that excited to change them out...
-
@ctilley79 have you tried using slightly different settings (e.g. current) for the two motors? When yiu get the LDO motors might be worth trying one of each so they don't have the same resonant frequency?
Finally, should it be half or sqrt 2 for the diagonal move? It's to early for my brain to do maths...
-
@engikeneer I decided to do the maths (in a probably not very optimal way!). The kinematics are...
deltaX = 1/2(deltaA + deltaB)
deltaY = 1/2(deltaA - deltaB)
The overall feed rate of a move will be...
F = sqrt(sqr(deltaX) + sqr(deltaY))/t
F=(sqrt(sqr(1/2(deltaA+deltaB)) + sqr(1/2(deltaA-deltaB))/t
So the feed rate for a target step rate of say X steps per second with both motors driving we get....
F=sqrt(sqr(1/2(X+X)) + sqr(1/2(X-X))/1
F=sqrt(sqr(X) + sqr(0))/1
F=X
For just a single motor driving
Fs=sqrt(sqr(1/2(X+0)) + sqr(1/2(X-0))/1
Fs=sqrt(sqr(X/2) + sqr(X/2))/1
Fs=sqrt(2sqr(X/2))/1
Fs=Xsqrt(2)/2
Fs=X/sqrt(2)
Fs=F/sqrt(2)So to have the same step rate for a diagonal move (one motor running) we need to divide the feedrate used by the vertical/horizontal two motor move by sqrt(2). I think the above is correct, but feel free to put me right.
-
@gloomyandy yes I believe that is correct. Nice work!
-
You can tell I’m not an engineer and rusty on math lol.
So it would be F{var.speed/sqrt(2} I’ll try it soon.
-
Yep. Vibration is still there on diagonal moves once I corrected the math. Fiddling around with currents again to try and reduce vibration. I'm getting much better results, but I'm having to lower currents to 480ma to quiet things down. That's 24% of rated motor current. Does that seem right? Here's the output from the EMF Calculator
-
@ctilley79 Sorry can't help with the current, what I can say is that I've had similar issues when using 0.9degree steppers (I've tried several types) with both TMC5160 and TMC2209 drivers, so I'd be interested to hear if anyone finds a solution.