2.7 KiB
2.7 KiB
本教程旨在针对性优化温补参数,降低温飘,进行本优化耗时较长(1h以上),如果不温补已经能满足需求则不需要进行本操作。
首先将下方宏粘贴到配置文件中
[gcode_macro DATA_SAMPLE]
gcode:
{% set bed_temp = params.BED_TEMP|default(90)|int %}
{% set nozzle_temp = params.NOZZLE_TEMP|default(250)|int %}
{% set min_temp = params.MIN_TEMP|default(40)|int %}
{% set max_temp = params.MAX_TEMP|default(70)|int %}
M106 S255
TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MAXIMUM={min_temp}
M106 S0
G28
G0 Z1
M104 S{nozzle_temp}
M140 S{bed_temp}
TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={min_temp}
IDM_STREAM FILENAME=data1
TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={max_temp}
IDM_STREAM FILENAME=data1
M104 S0
M140 S0
M106 S255
G0 Z80
TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MAXIMUM={min_temp}
M106 S0
G28 Z0
G0 Z2
M104 S{nozzle_temp}
M140 S{bed_temp}
G4 P1000
IDM_STREAM FILENAME=data2
TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={max_temp}
IDM_STREAM FILENAME=data2
M104 S0
M140 S0
M106 S255
G0 Z80
TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MAXIMUM={min_temp}
M106 S0
G28 Z0
G0 Z3
M104 S{nozzle_temp}
M140 S{bed_temp}
G4 P1000
IDM_STREAM FILENAME=data3
TEMPERATURE_WAIT SENSOR='temperature_sensor IDM_coil' MINIMUM={max_temp}
IDM_STREAM FILENAME=data3
M104 S0
M140 S0
使用DATA_SAMPLE BED_TEMP=指定热床温度 NOZZLE=指定喷嘴温度 MIN_TEMP=采集温度范围最小值 MAX_TEMP=采集温度范围最大值
(若不输入自定义参数,宏将按默认值运行(BED_TEMP=90 NOZZLE_TEMP=250 MIN_TEMP=40 MAX_TEMP=70))
即可开始采集数据,之后会在klipper文件夹中生成data1,data2,data3 三个文件,耗时较长。
完成后将3个文件移动到用户目录下的IDM文件夹中。
然后执行
cd ~/IDM
~/klippy-env/bin/python arg_fit.py
(请在执行前确认当前使用的是最新的脚本包,如果不是 请重新git clone)
运行后会生成出三个参数,并在IDM文件夹中生成一张图片。(这个过程运算量很大,需要一段时间)
请检查该文件名为fit_result.png的图片,并判断拟合效果,图片示例如下:

第一行为原始数据,第二行为温补后的数据。可以看到这是一个拟合效果比较好的,偏移都被控制在3位数内。
