A Software Solution to Eliminate Ringing?
-
@DigitalVision I think it's best not to look to deeply into my tests. I didn't isolate the Y axis as you mentioned, and my Y axis is insanely stupid to begin with (there is a longer "short side" on the primary drive than at any point of the secondary drive belt. I don't know what I was thinking at the time). I have plans to change it to be "the same" as the X axis, just with more weight to move around. Then I will perform more tests.
All I wanted to do was confirm or deny the idea that the ringing was variable (in frequency) depending on where it was printed. I feel like I confirmed that and your theories all seem to line up.
So, given all that, would using your method be as simple as determining the different frequencies at different parts of the axes, and cancelling as required based on position?
-
@bot said in A Software Solution to Eliminate Ringing?:
So, given all that, would using your method be as simple as determining the different frequencies at different parts of the axes, and cancelling as required based on position?
Yes, in theory at least. For a cartesian all you would need is to determine the frequencies at two different positions per axis and provide the positive and negative belt lengths at a known location. One could probably create a nice script to automatically generate the right structures to print at the known locations. I found it most easy and consistent to spot the acceleration ringing (where the extrusion width oscillates), and especially when printing in a semi-translucent material. Here's a photo on silver filament which is very hard to capture on photo showing the phase inversion in the ringing pattern as the f_n parameter was varied across the print z. If you get it right, there is a rather sharp region without ringing that's fairly easy to spot and measure:
-
@DigitalVision The results are truly fantastic.
Do you think it would be easier or harder to determine the "positional frequency" on a corexy machine? A delta?
-
This post is deleted! -
@bot a CoreXY has a more complex model, but it seems to be enough to measure 3 points per axis instead of 2. I haven't yet started to work on a position dependence model for a delta yet – and I still need to get some time to implement and test the CoreXY one. The delta geometry is more symmetric, so it may be easier to calibrate – unless the wire bundle ends up messing up things. I did get great results in the center of bed though, and I haven't yet tested how they vary with position.
-
Another approach that should be very straightforward for calibrating the ringing dynamic would be to attach a cheap MEMS accelerometer to the print head and log samples at different locations. Accelerometers with up to 8kHz sampling rates are less than $1 each in volume. Determining the ringing frequency should be trivial and very accurate.
A more crazy idea: You could easily build a closed loop system with an IMU. The filter lag in an accelerometer can be as low as 1 ms, and with say 1kHz sampling we’d be well within reasonable latencies. So you could simply measure the x,y,z acceleration in real-time and compare to the desired acceleration - and apply a motion compensation signal (using the spring model) to correct for any deviation.
-
@DigitalVision klipper's input shaper implementation uses an ADXL accelerometer to measure vibrations and and configure the input shaper.
-
@bot said in A Software Solution to Eliminate Ringing?:
@dc42 In my experience, it's easy to avoid the low-frequency ringing by choosing sensible acceleration/jerk/speed settings. It's the high-frequency ringing that is nearly impossible to be rid of. No matter how low of a jerk and accel/speed value I use, there is always a tiny amount of HF ringing.
That's exactly opposite to my experience. I find low frequency ringing to be a problem at any sensible acceleration. I would need to use really low acceleration to avoid it, which would slow the prints down too much.
-
@dc42 said in A Software Solution to Eliminate Ringing?:
@bot said in A Software Solution to Eliminate Ringing?:
@dc42 In my experience, it's easy to avoid the low-frequency ringing by choosing sensible acceleration/jerk/speed settings. It's the high-frequency ringing that is nearly impossible to be rid of. No matter how low of a jerk and accel/speed value I use, there is always a tiny amount of HF ringing.
That's exactly opposite to my experience. I find low frequency ringing to be a problem at any sensible acceleration. I would need to use really low acceleration to avoid it, which would slow the prints down too much.
Interesting. I have a somewhat different setup than most: there is a lot of mass to be moved by most of my axes. What printer are you thinking of when you say you experience the opposite? All printers you've used? Do they all tend to be lightweight?
It's entirely possible that the low-frequency ringing on my printer is of such low-frequency that it is hard to see it. As mass increases in a system, the resonant frequency decreases, right?
Edit: When I think about it, the low-frequency ringing I experience shows up at high print speeds, maybe regardless of how low I have the acceleration. How fast are you printing, normally, dc42? I've settled on quite low perimeter print speeds, so I don't see or notice any ringing in my prints.
-
Just registered to say thanks for your work @DigitalVision, it's like magic!
My custom CoreXY-Toolchanger has quite a heavy gantry and would benefit a lot from something like that, because if I want to print ringingless, I have to slow down quite a lot.
If you want me to test something in particular, just drop me a line. -
Any updates on this?
-
See the threads on accelerometers and input shaping.
-
@dc42 said in A Software Solution to Eliminate Ringing?:
See the threads on accelerometers and input shaping.
I just went ahead and ordered the recommended Adafruit accelerometer. Any time estimate on a first pass at input shaping?
-
@ccs86 said in A Software Solution to Eliminate Ringing?:
@dc42 said in A Software Solution to Eliminate Ringing?:
See the threads on accelerometers and input shaping.
I just went ahead and ordered the recommended Adafruit accelerometer. Any time estimate on a first pass at input shaping?
I have some preliminary results, see https://forum.duet3d.com/topic/22296/input-shapers-2hump_ei-3hump_ei-auto-tuning/17?_=1619123752409.