4、固件与运动控制:Marlin/Klipper中挤出相关参数、挤出加速度、回抽设置
3D打印机的挤出系统并非独立运作,它必须与运动控制系统深度耦合。固件(Firmware)作为硬件与G代码指令之间的翻译官与执行者,决定了挤出电机如何响应运动指令、如何补偿压力波动、以及如何处理回抽与回填。本章将聚焦Marlin与Klipper两大主流固件,深入解析挤出相关参数、挤出加速度与回抽设置的底层逻辑与调优方法。理解这些参数,是从“能打印”迈向“打印得好”的关键一步。
上图展示了挤出系统从G代码指令到电机执行的整体链路。无论是Marlin还是Klipper,其核心目标都是精确控制挤出头的“流量”与“压力”。Marlin采用基于步进脉冲的直接映射,而Klipper则通过软件层面的运动学解算与压力提前补偿(Pressure Advance)实现更平滑的挤出。理解两者的差异,是进行参数调优的前提。
4.1 挤出相关核心参数:从步进值到流量映射
核心原理:挤出参数的本质是建立“电机步数”与“实际挤出丝材长度/体积”之间的数学关系。Marlin使用 DEFAULT_AXIS_STEPS_PER_UNIT 定义每毫米挤出长度对应的步进脉冲数;Klipper则使用 rotation_distance(旋转距离)定义电机转动一圈所推进的丝材长度。两者殊途同归,但Klipper的抽象层级更高,更易于理解和校准。
判断方法与操作流程:校准挤出步进值是所有调优的基础。操作流程如下:
- 标记法:在距离挤出机进料口100mm处标记丝材。
- 指令控制:通过控制台发送
G1 E100 F100(Marlin)或G91后G1 E100 F100(Klipper),让挤出机理论推进100mm。 - 测量实际值:用卡尺测量标记点移动的实际距离。
- 计算新参数:Marlin新值 = 旧值 × (实际挤出长度 / 100);Klipper新值 = 旧值 × (100 / 实际挤出长度)。
93 steps/mm,实际挤出92mm。则新值 = 93 × (92/100) = 85.56 steps/mm。更新固件后重新测试,直至误差在±0.5mm以内。Klipper同理,若 rotation_distance 为40mm,实际挤出98mm,则新值 = 40 × (100/98) = 40.82mm。
| 参数项 | Marlin | Klipper | 影响 |
|---|---|---|---|
| 步进映射 | steps_per_unit | rotation_distance | 挤出长度准确性 |
| 最大挤出速度 | DEFAULT_MAX_FEEDRATE | max_extrude_only_velocity | 防止失步 |
| 最大挤出加速度 | DEFAULT_MAX_ACCELERATION | max_extrude_only_accel | 冲击与压力波动 |
| 单次最大挤出长度 | EXTRUDE_MAXLENGTH | max_extrude_only_distance | 安全保护 |
| 压力补偿 | LIN_ADVANCE (K因子) | pressure_advance | 消除转角拉丝/缺料 |
4.2 挤出加速度与压力补偿:Marlin LIN_ADVANCE vs Klipper Pressure Advance
核心原理:挤出加速度决定了挤出电机速度变化的剧烈程度。但真正影响打印质量的是“压力波动”。当挤出速度突然增加时,熔融材料被压缩,导致实际挤出量偏少;当速度减小时,压力释放,导致过量挤出(出现凸点或拉丝)。压力补偿技术通过提前或延后挤出电机的动作来抵消这种压力滞后。
判断方法与操作流程:Marlin的LIN_ADVANCE通过设置K因子(如 M900 K0.15)来调节。Klipper的Pressure Advance通过 pressure_advance 参数(如 pressure_advance: 0.05)设置。调优流程如下:
- 打印测试模型:使用带有尖角、急转弯和空心方块的测试模型。
- 观察缺陷:若转角处出现缺料(凹坑),说明补偿不足;若出现凸起或拉丝,说明补偿过度。
- 二分法调整:以0.05为步长增减K值或PA值,每次打印后对比效果。
pressure_advance 为0。打印20mm立方体时,发现每个转角处都有明显的“圆角”和轻微拉丝。分析认为,由于Bowden管较长,压力传递滞后明显。将 pressure_advance 设为0.08后,转角变得锐利,但表面出现轻微“水波纹”。继续调整为0.06,水波纹消失,转角依然锐利。最终确定最佳值为0.06。此过程耗时约40分钟,共打印4个测试块。
smooth_time 参数(默认0.1s)会影响补偿的平滑度,若出现振动噪声,可适当增大至0.2s。
4.3 回抽设置:长度、速度与Z-hop的协同
核心原理:回抽(Retraction)是在非打印移动(如换层、跨越空腔)时,将熔融材料从喷嘴中抽回一小段距离,以降低喷嘴内部压力,防止重力渗漏和拉丝。回抽长度取决于喷嘴直径、耗材类型、热端结构(直驱或Bowden)以及温度。回抽速度则影响抽吸的果断性,过慢会导致抽吸不彻底,过快则可能产生负压气泡。
判断方法与操作流程:回抽设置通常通过切片软件(如Cura、PrusaSlicer)中的参数进行,但固件层面的限制(如最大回抽速度)也需要匹配。操作流程:
- 直驱挤出机:回抽长度通常为0.5-2mm,速度25-50mm/s。
- Bowden挤出机:回抽长度通常为4-8mm,速度30-60mm/s。
- Z-hop(抬升):在回抽的同时,将Z轴抬升0.1-0.3mm,避免喷嘴刮擦已打印表面。
| 结构类型 | 回抽长度 (mm) | 回抽速度 (mm/s) | Z-hop (mm) |
|---|---|---|---|
| 直驱 (Direct Drive) | 0.5 - 1.5 | 25 - 40 | 0 - 0.2 |
| 远程 (Bowden) | 4 - 8 | 35 - 60 | 0.1 - 0.3 |
| 柔性耗材 (TPU) | 1 - 2 (直驱) | 15 - 25 | 0.1 |
4.4 实战调优案例:从拉丝到完美表面的完整闭环
背景与约束:一台改装过的Ender-3,使用Marlin 2.0固件,升级了全金属热端和Bowden管(长度350mm)。打印PLA时,温度设定210℃,打印速度60mm/s。用户反馈打印模型表面布满细丝,严重影响外观。
初始现象与目标:打印一个标准校准立方体(20mm),发现所有非打印移动路径上均有大量拉丝。目标是将拉丝数量降至零,同时保证表面光洁度。
关键输入数据与日志:切片软件中回抽距离为5mm,回抽速度45mm/s。固件中 DEFAULT_MAX_ACCELERATION 的E轴值为5000mm/s²。通过串口监视器观察,回抽动作执行正常,但回抽后喷嘴仍有轻微渗漏。
分析判断过程:首先怀疑回抽距离不足。将回抽距离从5mm逐步增加至6.5mm,拉丝减少但仍有。其次,检查回抽速度,发现45mm/s对于350mm长的Bowden管可能过快,导致管内压力瞬间降低,但喷嘴处熔融材料因惯性仍会渗出。将回抽速度降低至35mm/s,同时增加0.2mm的Z-hop,拉丝明显减少。最后,微调温度至205℃,并启用Marlin的 LIN_ADVANCE,设置K因子为0.12,以补偿挤出启动时的压力不足。
实际操作步骤:
- 在切片软件中,将回抽距离设为6mm,回抽速度设为35mm/s,Z-hop设为0.2mm。
- 在固件中,通过
M900 K0.12设置LIN_ADVANCE。 - 打印测试模型,观察结果。
- 若仍有轻微拉丝,将回抽距离微调至6.3mm。
结果对比:调整前,模型表面拉丝数量超过20处;调整后,拉丝完全消失,表面光洁度显著提升。打印时间增加了约3%,主要来自Z-hop的额外移动。
风险与代价:LIN_ADVANCE的K因子设置不当会导致表面出现“水波纹”或挤出不足。此案例中,K因子从0.12调整至0.15时,表面出现明显波纹,最终回退至0.12。
复盘经验:回抽设置不是孤立的,必须与温度、速度、加速度协同调整。Bowden结构对回抽速度极为敏感,降低速度往往比增加距离更有效。压力补偿技术是解决拉丝问题的终极手段,但需要耐心校准。