软件设置
请注意,共振测量和整形器自动校准需要默认未安装的其他软件依赖项。首先,在树莓派上运行以下命令:
sudo apt update
sudo apt install python3-numpy python3-matplotlib libatlas-base-dev
接下来,为了在Klipper环境中安装NumPy,请运行以下命令:
~/klippy-env/bin/pip install matplotlib numpy
请注意,根据 CPU 的性能,可能需要很多时间,最多 10-20 分钟。请耐心等待安装完成。在某些情况下,如果主板的 RAM 太少,安装可能会失败,您需要启用交换。
使用 RPi 配置 ADXL345
在printer.cfg中添加以下内容:
[mcu rpi]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: rpi:None
[resonance_tester]
accel_chip: adxl345
probe_points:
100, 100, 20 # an example
测量共振值
现在可以运行进行实测。 运行以下命令:
TEST_RESONANCES AXIS=X
TEST_RESONANCES AXIS=Y
Tip
如果测试过程中打印机震动太剧烈请及时按紧急停止或发送M112
来停止。过高的accel_per_hz
会让振动变得剧烈,可以适当降低。
[resonance_tester]
accel_chip: adxl345
accel_per_hz: 50 # 默认值为75
probe_points: ...
使用
klipper支持自动校准,在校准开始前记得全部归位
SHAPER_CALIBRATE
SHAPER_CALIBRATE
执行这个命令后打印机将开始自动校准X,Y- 在校准完成后执行
SAVE_CONFIG
来保存数据 - 也可以使用
SHAPER_CALIBRATE AXIS=X
来自动校准一个轴, - 在每个轴校准结束后都要先保存数据在校准下一个

- 校准过程可能会比较长,请耐心等待
这将生成 2 个 CSV 文件。这些文件可以使用树莓派上的独立脚本进行处理。为此,请运行以下命令:
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png
此脚本将生成频率响应的图表 。 它还会给出每个输入整形器的建议频率,以及推荐的输入整形器。 例如:
/tmp/shaper_calibrate_x.png/tmp/shaper_calibrate_y.png

Fitted shaper 'zv' frequency = 34.4 Hz (vibrations = 4.0%, smoothing ~= 0.132)
To avoid too much smoothing with 'zv', suggested max_accel <= 4500 mm/sec^2
Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 0.0%, smoothing ~= 0.170)
To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2
Fitted shaper 'ei' frequency = 41.4 Hz (vibrations = 0.0%, smoothing ~= 0.188)
To avoid too much smoothing with 'ei', suggested max_accel <= 3200 mm/sec^2
Fitted shaper '2hump_ei' frequency = 51.8 Hz (vibrations = 0.0%, smoothing ~= 0.201)
To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2
Fitted shaper '3hump_ei' frequency = 61.8 Hz (vibrations = 0.0%, smoothing ~= 0.215)
To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2800 mm/sec^2
Recommended shaper is mzv @ 34.6 Hz
推荐的配置可以添加到的分段中,例如:
[input_shaper]
shaper_freq_x: ...
shaper_type_x: ...
shaper_freq_y: 34.6
shaper_type_y: mzv
[printer]
max_accel: 3000 # should not exceed the estimated max_accel for X and Y axes
也可以根据生成的图表自己选择一些其他配置:图表上的功率谱密度的峰值对应于打印机的共振频率。
请注意,您也可以直接从 Klipper 运行输入整形器自动校准,这很方便,例如,用于输入整形器重新校准。
最大平滑度
请注意,输入整形器会在使一些打印的路径被平滑。 由执行脚本或命令自动得出的输入整形器会尽量不加剧平滑的同时试图最小化产生的振动。 脚本可能会得出不是最优的整形器的频率,或者你可能希望以更强的剩余振动为代价来减少平滑度。 在这些情况下,可以要求脚本限制输入整形器的最大平滑度。
calibrate_shaper.pySHAPER_CALIBRATE
参考以下自动调谐结果:

Fitted shaper 'zv' frequency = 57.8 Hz (vibrations = 20.3%, smoothing ~= 0.053)
To avoid too much smoothing with 'zv', suggested max_accel <= 13000 mm/sec^2
Fitted shaper 'mzv' frequency = 34.8 Hz (vibrations = 3.6%, smoothing ~= 0.168)
To avoid too much smoothing with 'mzv', suggested max_accel <= 3600 mm/sec^2
Fitted shaper 'ei' frequency = 48.8 Hz (vibrations = 4.9%, smoothing ~= 0.135)
To avoid too much smoothing with 'ei', suggested max_accel <= 4400 mm/sec^2
Fitted shaper '2hump_ei' frequency = 45.2 Hz (vibrations = 0.1%, smoothing ~= 0.264)
To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2200 mm/sec^2
Fitted shaper '3hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.356)
To avoid too much smoothing with '3hump_ei', suggested max_accel <= 1500 mm/sec^2
Recommended shaper is 2hump_ei @ 45.2 Hz
请注意,报告的 (平滑)值是抽象的预测值。 这些值可用于比较不同的配置:值越高,整形器造成的平滑度就越高。 但是,这些平滑值并不表示任何实际的平滑度的量,因为实际的平滑取决于max_accel
和参数。 因此,如果希望了解所选配置造成的实际平滑效果,需要打印一些测试件。
smoothingsquare_corner_velocity
在上面的示例中,脚本给出了不错的整形器参数建议,但是如果想在 X 轴上减少平滑度,就需要尝试使用以下命令限制脚本挑选参数时的整形器平滑值极限:
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2
这将平滑值限制在0.2。 现在可以得到以下结果:

新的参数与之前的建议比,振动要大一些,但平滑度明显比之前小,允许打印时更高的极限加速度。
在选择 参数时,可以使用试错的方法。 试试几个不同的值并对比得到的结果。 请注意,输入整形器产生的实际平滑效果主要取决于打印机的最低谐振频率:最低谐振的频率越高,平滑效果越小。 因此,如果要求脚本找到一个具有不切实际小平滑度的输入整形器配置,它将以增加最低共振频率的振纹为代价(通常,这在打印件中比平滑产生的影响更明显)。 因此,一定要仔细检查脚本所报告的预计剩余振动,确保它们不会太高。max_smoothing
注意,如果为两个轴选择了一个相同的 值,可以把它存储在 为max_smoothing
printer.cfg
[resonance_tester] accel_chip: ... probe_points: ... max_smoothing: 0.25 # an example
如果在将来使用 Klipper命令重新运行输入整形器自动调谐,它将使用存储的 值作为参考。SHAPER_CALIBRATEmax_smoothing