BLDCモータを搭載したプリンタ3号機であるが印刷品質が悪いため、諸々見直しを図った。
まず、エンコーダの面に対して軸が垂直になっていない可能性があるため、モータマウントを印刷し直した。
そのあと、erase_configurationで設定をクリアしてから再設定を行った。
手順としては以下の通り。
- キャリブレーションに必要な項目を設定
- モーターキャリブレーション、エンコーダオフセットキャリブレーション実施
- クローズドループ状態でvel_gainを調整(振動しだした値の50%)
- vel_integrator_gainを式で設定(0.5 * 100 * 現在値)
- アンチコギングキャリブレーション実施
- velモードで高速に回して、大きく振動しないことを確認
- pos_gainを上げる
設定は以下の通り。
"config.max_regen_current": 0.0, "config.brake_resistance": 2.0, "config.dc_bus_undervoltage_trip_level": 9.5, "config.dc_bus_overvoltage_trip_level": 16.0, "config.dc_bus_overvoltage_ramp_start": 14.0, "config.dc_bus_overvoltage_ramp_end": 16.0, "config.dc_max_positive_current": 20.0, "config.dc_max_negative_current": -0.009999999776482582, "axis0.config.startup_encoder_offset_calibration": true, "axis0.config.startup_closed_loop_control": true, "axis0.config.enable_step_dir": true, "axis0.config.turns_per_step": 0.00015619999612681568, "axis0.config.calibration_lockin.current": 5.0, "axis0.config.calibration_lockin.vel": 2.0, "axis0.motor.config.pre_calibrated": true, "axis0.motor.config.pole_pairs": 7, "axis0.motor.config.calibration_current": 10.0, "axis0.motor.config.resistance_calib_max_voltage": 2.0, "axis0.motor.config.torque_constant": 0.01046835444867611, "axis0.motor.config.current_lim": 20.0, "axis0.motor.config.requested_current_range": 20.0, "axis0.controller.config.control_mode": 3, "axis0.controller.config.input_mode": 3, "axis0.controller.config.pos_gain": 50.0, "axis0.controller.config.vel_gain": 0.035208333283662796, "axis0.controller.config.vel_integrator_gain": 1.7604166269302368, "axis0.controller.config.vel_limit": 33.29999923706055, "axis0.controller.config.input_filter_bandwidth": 200.0, "axis0.controller.config.anticogging.pre_calibrated": true, "axis0.controller.config.anticogging.anticogging_enabled": true, "axis0.encoder.config.mode": 257, "axis0.encoder.config.abs_spi_cs_gpio_pin": 7, "axis0.encoder.config.cpr": 16384, "axis0.encoder.config.pre_calibrated": true,
テスト印刷の結果

左からステッピングモータで印刷、circular_setpoints = Trueで印刷、Falseにしてklipperのアクセラレーションを順次下げて印刷、最後がinput_modeをINPUT_MODE_PASSTHROUGHからINPUT_MODE_POS_FILTERに変更して印刷である。
Z文字の縁がなまっているのが解消されて、ほぼステッパと同じ品質になった。
