Input Shaper - Why do low frequencies equal low accelerations?

Hello everyone,

I was wondering if somebody could explain to me, why a low resonance frequency equals a low acceleration recommendation by the Input shaper?

Kind regards

While I can’t provide you with actual formulas, it perhaps helps comparing it with a pendulum:

If you have a mass on a rope, the longer the rope, the longer it will take for one swing (Low resonance frequency)
But if you have a long rope to your mass, it will swing a longer distance from your base point if you accelerate it fast.
If it is on a short rope, you could accelerate very fast without swinging too far away from the center point.

Thanks for your input.

I am not sure if I can follow your argument, because usually for oscillating systems the amplitude and frequency are looked at separately.

Also I can’t see how this applies to the Input shaping. As I understand it, the input shaping algorithm applies counter pulses to cancel out the amplitude at the resonance frequency. I can’t see, how the resonance frequency limits the max. acceleration for this technique.

because usually for oscillating systems the amplitude and frequency are looked at separately.

That’s correct. This comparison is not very accurate as we do not look at the system in just the basic excitation state.

Perhaps it is better to be compared to a long stick with an attached pencil?
If you want to draw an ‘L’ shape, with the same mass at the end, you will need to be more careful (“low acceleration”) with the longer stick, compared to a pencil with the short stick. It will have a bigger/smaller inertia to overcome.

In the real world, lets compare a cartesian axis X, where the hotend is in one case attached with a very rigid steel cable, and in the other a stretchy rubber band.
The rubber band version will have (for the same hotend mass) a lower resonance frequency (high spring coefficient) compared to the steel wire version.

I can totally follow you here and understand it 100%.

But the Resonance mostly shows in straight line applications (as Ghosting). And in my mind I can’t make the transition from your example to this one. Why does IS have trouble sending the couterpulses for low resonances compared to high ones?

I think this is because the IS works less like counterpulses but more like smoothing.
The less “directness” the controller has, the less control it has over the head at high frequencies.
It will probably “like” to stay below the resonance frequency.
I don’t have a more precise explanation :smiley:

Relation between mass and acceleration (= force). Does not apply to pendulum (pendulum period is not related with mass, only with length and g) ; but easy to understand. The more the mass, the more the force. Hence the more energy and power.

While indeed input shaper ‘sends’ counterpulses to cancel the vibrations, ultimately it works as a filter that removes (or significantly reduces) certain frequencies from the input. That affects the shape of the processed commands, e.g. a rectangular-shaped function (1 when |x| < 1, 0 otherwise) has infinite spectrum, and filtering some of it will result in the output not being rectangular anymore. So, in fact what we care about is the frequency spectrum of the input commands. However, that is quite difficult to estimate in advance. So instead Klipper uses the following assumption: since the toolhead must decelerate near any corners (from junction deviation calculation), we can try to estimate the smoothing of a single corner instead. And that we can do, although somewhat approximately, and ultimately it depends on the [lowest] resonance frequency that the input shaper has to cancel, square corner velocity, maximum acceleration, the angle value, and a bit on the shaper itself. In fact, Klipper estimates smoothing on a square and 180 degrees corners, and uses that to project the acceleration that a user should not exceed to not get too smoothed models. Of course, you could, in principle, use higher accelerations, but that will simply result in a loss of fine details in the print (you can actually see it in practice very well if you do that). That said, if you were to set a printing velocity very low, then it’s likely that you could use higher accelerations (Klipper assumes unbounded acceleration when estimating smoothing near a corner). E.g. if with 40 Hz you get, say, max_accel <= 4000 mm/sec^2, if you print at 30 mm/sec, you could likely set higher acceleration value, maybe 5000 mm/sec^2 or something.

Thank you very much for that detailed insight. I’ve got to read it a couple of more times to fully wrap my head around it.

But is the bottom line, that the acceleration recommendation has nothing to do with eliminating ghosting on straight/flat surfaces but “only” the fine details you mentioned?

Yeah, exactly. It is really about the fine details in the prints. It is possible that the ringing will appear much later at much larger accelerations, and it is similarly possible that some amount of ringing will be present even below the acceleration threshold produced by the script.