Periodicity of ringing
-
@dragonn said in Periodicity of ringing:
So the ultimate solution would be to put an accelerometer in the extruder carriage which would allow too do a self calibration of ringing?
Yeah I know this would require a lot of research and math. I'm just throwing an idea based on my limited knowledge of such things.
Yes, that would be a good solution for calibration, although it doesn't get around the issue of different ringing frequencies for the X and Y axes.
I'm putting together a spreadsheet to help predict ringing frequencies based on belt and motor specifications and the mass being moved, but I may not have time to complete and test it for a little while.
-
@dc42 you could make different moves to stimulate ringing on x separate from y and vice versa. On a cartesian/CoreXY this would be just moving axes separately during the calibration.
-
@dragonn said in Periodicity of ringing:
@dc42 you could make different moves to stimulate ringing on x separate from y and vice versa. On a cartesian/CoreXY this would be just moving axes separately during the calibration.
Yes, but that wouldn't help with the fact that if the ringing frequencies are different, then eliminating both of them may require a very low acceleration.
-
@dc42 how exact does the acceleration have to be to get the ringing to go away?
On a test I measured the different ringing periods of x and y and it turned out that for x it was 2000ish and for y it was 1000ish. Half of 2000 is 1000. So I thought great, 1000 should get rid of both. But it didn't really workout. Now the values weren't exactly 2000 and 1000 but were within a couple hundred. Is that just too wide a margin?
And how accurate do you have to be on measuring the distance? Using calipers and a magnifying glass I think I'm probably as accurate as I can get.
-
I suggest you set the acceleration so that the deceleration time when decelerating from moves at perimeter printing speed is a multiple of 1ms, the period of the lower of your two ringing frequencies. Because your ringing period is low, you may want to make the deceleration time a small multiple of the ringing period instead of setting it equal to the ringing period.
You could try printing a test tower (e.g. a cuboid in vase mode) and change the printing acceleration at various heights using M204. This is on my list to do to test the theory that I worked out while on vacation, but I am too busy with other things right now.
-
@dc42 said in Periodicity of ringing:
I suggest you set the acceleration so that the deceleration time when decelerating from moves at perimeter printing speed is a multiple of 1ms, the period of the lower of your two ringing frequencies. Because your ringing period is low, you may want to make the deceleration time a small multiple of the ringing period instead of setting it equal to the ringing period.
You could try printing a test tower (e.g. a cuboid in vase mode) and change the printing acceleration at various heights using M204. This is on my list to do to test the theory that I worked out while on vacation, but I am too busy with other things right now.
You really know how to party it up while on vacation
-
I have put a preliminary version of my spreadsheet to calculate ringing frequencies at https://www.dropbox.com/s/rc1lf1ml82dfzr0/3D printer resonant frequencies.ods?dl=0. It attempts to calculate the ringing frequencies you can expect to have due to belt elasticity and motor elasticity. I don't promise that it is correct.
It should be straightforward to apply to Cartesian printers, although I should probably combine the motor and belt elasticities to calculate the overall ringing frequency.
For CoreXY printers it will be necessary to work out how the elasticities of the two belts combine. I haven't done that yet.
For delta printers, I expect there to be 3 resonant frequencies fairly close together, rather like the stretching modes of an ammonia molecule (see http://www.chemtube3d.com/vibrationsnh3.htm) except that instead of the rods stretching, the carriages will move up and down.
-
I finally found time to do some beer-sloshing tests to verify my calculations. You can see the results here:
I estimated the frequency of sloshing to be 5Hz, so when the acceleration or deceleration time is 200ms then the sloshing should be cancelled as far as possible. The acceleration for these tests was set at 1500mm/sec^2, so that corresponds to a speed change of (1500/5) = 300mm/sec = 18000mm/min. And sure enough, when the motion speed is set to around 18000mm/min the sloshing is almost absent! Increase the speed to 25000mm/min and it comes back.
-
@dc42 The result is quite impressive and thanks a lot that you spent such a great effort in the vacancy (every test one beer - drunken ... ? )
In 3d printing, the movement goes on with direction change, speed not ending in 0. So the new direction, if it is not 90°, will enhance or diminish the effect. A test with those combinations would be interesting also. If you produce sloshing at the end and go on with a specific acceleration in the new movement, this could cancel out the sloshing. You could even set acceleration types differently for x and y, depending on which axis produces the sloshing.
-
Yes, a new acceleration that happens immediately after a deceleration and is not at 90 degrees to it will modify the ringing produced by the deceleration. However, if both the deceleration time and the acceleration time are chosen independently to avoid exciting the ringing, it should still give good results. On a delta printer, the deceleration and acceleration will interact even if they are at 90 degrees, and working out the interaction would be complicated.
-
This post is deleted! -
@dc42 You seem to have a pretty good understanding of ringing, so I have a few very basic questions.
What exactly is the cause of ringing? I see ripples in the Y axis parallel sides of prints, and the Y axis is the more massive of the two. Is the ripple caused by wobbling of the extruder as it comes to a stop in the X direction (a function of jerk, mainly, I think, and the springiness of cables and motors), or is it caused by brief variations in speed of the Y axis as it accelerates, leaving irregularly extruded plastic behind? Or is it a function of the extruder's jerk/acceleration?
It seems like the length of the rippled area on the print is much longer than the acceleration zone of the Y axis, so I don't think it's the Y acceleration. That points back to the X axis, but since the Y axis is the more massive of the two, I would expect that if the extruder were wobbling and causing the ripple, I'd see it in the X parallel sides of prints as it takes longer for the Y axis to come to a stop do to its greater inertia, but I see almost no ripple at all in the X parallel sides of prints.
If it were the extruder's jerk or acceleration, I'd expect to see equal ripple in X and Y.
What am I missing?
-
3D printer mechanics comprise some element or elements with significant mass (e.g. the print head, and the bed in the case of a moving-bed cartesian printer) driven by elastic elements (belts and motors). Any time you combine a mass with a spring, you will get a resonance (assuming the dampling isn't very heavy). Any time you try to accelerate or decelerate the mass, you will excite the resonance to a greater or lesser extent.
I think the main cause of visible ringing is when the print head or bed is subject to deceleration in one direction, and then a perimeter is printed in a direction at right angles or with a component at right angles. For example, if you print a square tower and there is a resonance in the Y axis, then at the end of printing a perimeter on the Y face, the Y deceleration may cause the Y axis to ring, so that when the perimeter on the X face is printed it waves a little in the Y direction instead of being printed in a straight line.
If there is X axis ringing, then the acceleration along the X axis at the start of printing the X face will cause the feed rate to oscillate a little too, resulting in under- and over-extrusion. I would expect this to cause less visible ringing on the X-face than Y axis ringing would, but I could be wrong.
Ringing will in general be excited even when using zero jerk; but high jerk settings may make it worse.
I think a good way to expose and measure ringing should be to print a square tower in vase mode, either at constant speed but changing the XY acceleration every several layers, or with constant XY acceleration but changing the printing speed every few layers. I intend to try this out on my 3 printers later today or tomorrow.
I already have a build of RepRapFirmware that adjusts the acceleration dynamically to avoid exciting a particular ringing frequency. It works quite well with the sloshing-glass test, but I have yet to do any printing tests with it.
-
I see. I will try some test prints tonight and see what comes of it. I have noticed in my high acceleration tests I am getting some really amazing ringing.
-
Yes, short acceleration/deceleration periods are most effective at exciting ringing.
If you can, please measure the ringing frequency or frequencies. It's the speed at which you printed the perimeters (in mm/sec) divided by the observed wavelength of the ringing (in mm).
-
I've found this to be a really good model to test for ringing as it rotates the walls from 0 to 45 degrees as it raises.
https://www.thingiverse.com/thing:2798485
@mrehorstdmd In case you missed it above, I also went and created an Excel table that will help calculate the new accel value. Ringing Calculator.xlsx
-
@phaedrux said in Periodicity of ringing:
I've found this to be a really good model to test for ringing as it rotates the walls from 0 to 45 degrees as it raises.
Thanks, I'm printing that now. As the layer time is so short, when printing it in PLA I have found it necessary to scale it up to 2x size and add some infill. I selected 3 perimeters to avoid the infill showing on the outside and leaving a pattern that could be confused with ringing.
When I've done some more tests, I'll make the 2.02alpha build with dynamic ringing cancellation available.
-
I've used that test piece to measure the predominant ringing frequencies of my printers:
Cartesian (Ormerod): 24Hz
Delta (Kossel): 44Hz
SCARA: 12.5HzNext step is to reprint them with DRC enabled.
-
I ran a 100 mm cube print on my coreXY machine with speed at 50, 100, 150 and 200 mm/sec, and acceleration at 1000, 2000, 3000, 4000, and 5000 mm/sec^2.
It was hard to find lighting that made it easy to see all the weirdness because the print warped quite a bit (ABS, single wall, straight sides- not much to be done about it), but at 150mm/sec, A=3000 mm/sec^2 and at 200 mm/sec, A=4000, the ringing all but disappears. There are some other weird ripples in the 200 mm/sec layers that I suspect are related to extruder settings, not XY motion settings. Jerk was 100 in X and Y.
All the ringing is on the start of motion in the Y direction after finishing a move in the X direction. There is some very minor ringing on the X parallel sides, but appears to be completely gone at 50 mm/sec, A=1000 and 2000 mm/sec^2, and several other settings. Where it is visible, the amplitude is so low I probably wouldn't complain about it.
There are some random bumps scattered all over the surface- not sure what's causing those.
I may try the same test with the cube rotated 45 degrees on the plate to see what happens when only one motor is driving the motion on each side.
-
Have you measured the ringing frequency? See my earlier response.