Klipper 输入整形实战:如何一次共振测试消除打印面波纹
2026/9/14 5:25:19 网站建设 项目流程

Klipper 输入整形实战:如何一次共振测试消除打印面波纹

【免费下载链接】klipperKlipper is a 3d-printer firmware项目地址: https://gitcode.com/GitHub_Trending/kl/klipper

打印塔表面布满周期性波浪纹,速度越快条纹越明显——这是机械共振的典型症状,靠手感猜参数是猜不出来的。这篇讲的是 Klipper 固件"共振测试 + 输入整形"这套组合拳:用加速度计测出共振峰,再让整形器自动选出抑制参数,从接线到出结果大约 20 分钟。

把打印机当音箱,调一次"均衡器"

可以把整机想象成一只音箱:结构件在某些频率下会"轰头",也就是共振。Klipper 的处理方式像一位调音师给音箱做均衡:

  • 共振测试:像放一段扫频测试音,让打印头沿某个轴从低到高频率加速运动,加速度计在每个频率上记录振幅,画出一条频率响应曲线,共振峰一目了然;
  • 输入整形:曲线找到后,整形器在运动指令里提前塞入一组反相小脉冲,把共振峰"削"下去,就像均衡器把轰头的频段拉低;
  • 它做的事就一句话:测出 X/Y 轴的共振频率和衰减特性,自动挑一个整形类型和频率,写进运动规划。

常见整形器可以对照着理解:

整形器削峰风格适用倾向
zv单个脉冲,削得最狠频率测得准、结构简单时
mzv两脉冲,削峰与容错均衡官方默认,通用性好
zvd削峰温和、容错高频率有漂移、低频区
ei/2hump_ei/3hump_ei多个小脉冲叠加,更柔和高频、复杂共振峰

下面这张图就是一次真实 X 轴测试的结果:红色是原始频率响应,60Hz 附近的尖峰就是共振;右侧虚线是各候选整形器的振动抑制比,After shaper那条曲线说明整形后振动被压了 90% 以上。

🔧 三步跑通共振测试与整形校准

准备:装好传感器,写两段配置。核心是一颗 ADXL345 加速度计,尽量贴紧运动部件刚性固定——测 X 轴装在运动车架上,测 Y 轴装在热床上。接线完成后在配置里声明传感器和测试点:

[adxl345] cs_pin: ar100:PA05 # 按实际接线修改 axes_map: x, y, z [resonance_tester] probe_points: 100, 100, 20 # 测试点坐标,至少一个 accel_chip: adxl345

保存后重启 Klipper,用ACCELEROMETER_QUERY CHIP=adxl345确认有读数,说明芯片活着。

执行:一条命令测完两轴。跑完这条命令你会看到打印头沿着测试点来回加速"嗡嗡"扫频,几分钟到十几分钟不等(默认每轴扫 5~135Hz):

# 想先看单轴曲线、定位问题,可以先跑这条 TEST_RESONANCES AXIS=X OUTPUT=resonances,raw_data # 一条命令完成 X/Y 双轴校准,控制台直接打印推荐参数 SHAPER_CALIBRATE

控制台输出会列出每个轴测到的共振频率、衰减比,以及"Recommended input shaper for axis X"这样的推荐类型和频率,同时把数据写到/tmp/calibration_data_x_*.csv

确认:写进配置,用曲线复核。把控制台推荐值落进配置文件:

[input_shaper] shaper_freq_x: 62.5 # 以校准输出为准 shaper_type_x: 3hump_ei

执行SAVE_CONFIG,按提示重启后参数即刻生效。想直观确认效果,把原始数据画成图:

python scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png

对比开启前后同一表面的波纹深度,或者干脆再打一次测试塔——条纹消失即收工。

⚠️ 高频踩坑速查

曲线像山脉、没有清晰尖峰:传感器没贴紧或支架自身先共振了 → 传感器与运动件之间不留缝隙、用螺丝刚性固定,支架越小越硬越好。

扫频时机身狂震、读数爆表:激励加速度太大 → 把[resonance_tester]accel_per_hz从默认 60 调低,但调太低会牺牲高频测量精度,别一次降太多。

推荐了高频整形器,表面反而更糙:高频整形器自身会引入振动 → 给[resonance_tester]max_smoothing: 0.1(或校准时传MAX_SMOOTHING),把平滑度上限锁住。

💡 再往深走一步

  • 多点共振测试probe_points可以写多个坐标,同一根轴在床面不同位置共振频率会变,多点测量让整形器更稳,细节见docs/Measuring_Resonances.md
  • 打印中动态换整形SET_INPUT_SHAPER允许在 G-code 里运行时切换频率和类型,配合宏可以做到"慢层精细、快层保守",源码在klippy/extras/input_shaper.py

下次看到条纹,别再手动猜参数了——让加速度计去听,让整形器去调。

【免费下载链接】klipperKlipper is a 3d-printer firmware项目地址: https://gitcode.com/GitHub_Trending/kl/klipper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询