В этой статье описан процесс настройки компенсации резонансов
Klipper поддерживает технологию "Input shaper" - метод, с помощью которого можно уменьшить эффект эха на изделиях. Эхо - это дефект печати, при котором на ровных поверхностях появляются ореолы, рябь или звон, по форме повторяющие рядом находящийся угол или край отпечатка. Эхо возникает из-за механической вибрации принтера, вызываемой быстрой сменой направления движения печатной головки.
Обратите внимание, что резонанс обычно имеет механическое происхождение.
Cреди причин можно выявить следующие, наиболее частые проблемы, которые стоит проверить и решить, до настройки Input shaper'а:
Input shaper - это метод управления без обратной связи, который разбивая одно цельное движение на несколько небольших - генерирует импульсы, гасящие собственные вибрации. Input shaper требует некоторой настройки и измерений, прежде чем его можно будет включить. Кроме снижения эха, input shaper снижает общее количество вибраций и тряску принтера при печати, а так же может повысить надежность режима stealthChop активированного в драйверах Trinamic.
Для автоматической настройки Input shaper, необходим подключенный, настроенный и правильно размещенный датчик акселерометра: ADXL345
.
Подключение и активация акселерометра описаны в статье Подключение периферии)
Проверьте соединение и работоспособность акселерометра:
ACCELEROMETER_QUERY
ACCELEROMETER_QUERY CHIP=<chip>
где <chip>
- это имя акселерометра, как оно введено в файле конфигурации.Вы должны увидеть текущие данные с акселерометра, включая ускорение свободного падения. Примерно такое:
// adxl345 values (x, y, z): 305.967480, -611.934960, 11091.321150
Если вы получаете сообщение об ошибке, например
Invalid adxl345 id (got xx vs e5)
, гдеxx
другой идентификатор, это указывает на проблему с подключением ADXL345 или неисправный датчик. Дважды проверьте питание, проводку (соответствие схемам, отсутствие оборванных или ослабленных проводов и т.д.), а так же качество пайки.
Затем попробуйте запустить команду MEASURE_AXES_NOISE
в консоли. Вы должны получить некоторые базовые числа уровня шума с акселерометра на осях (они должны быть где-то в диапазоне ~ 1-100). Слишком высокий уровень шума на осях (например, 1000 и более) может указывать на проблемы с датчиком, проблемы с его питанием или слишком шумные несбалансированные вентиляторы на 3D-принтере.
Теперь можно провести несколько реальных тестов. Для этого выполните следующую команду:
TEST_RESONANCES AXIS=X
Внимание! Принтер начнёт вибрировать головкой по оси X. Так же будет отключен Input shaper, если он был включен ранее, так как запускать тестирование резонансов с включенным Input Shaper'ом недопустимо.
Внимание!!! Обязательно наблюдайте за принтером при первом тестировании, чтобы убедиться, что вибрации не станут слишком сильными (команду M112 можно использовать для прерывания теста в случае нештатной ситуации, но мы надеемся, всё будет хорошо)!
Если вибрации становятся слишком сильными, вы можете указать значение accel_per_hz
меньше, установленного по умолчанию в разделе [resonance_tester]
в файле printer.cfg
, например так:
[resonance_tester]
accel_chip: adxl345
accel_per_hz: 50 # по умолчанию 75
probe_points: ...
Если при тестировании оси X всё прошло без осложнений, можно запускать тестирование для оси Y:
TEST_RESONANCES AXIS=Y
После этих действий в папке /tmp
появится 2 файла resonances_x_*.csv
и resonances_y_*.csv
. Эти файлы можно обработать с помощью автономного скрипта. Для этого выполните следующие команды в терминале (putty):
~/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]
в файле printer.cfg
:
[input_shaper]
shaper_freq_x: ...
shaper_type_x: ...
shaper_freq_y: 34.6
shaper_type_y: mzv
[printer]
max_accel: 3000 # Не должно превышать расчетное значение для осей X и Y
Вы так же можете выбрать другую конфигурацию на основе сгенерированных диаграмм самостоятельно: пики на которых соответствуют мощности резонанса принтера на каждой частоте.
Обратите внимание, что вы так же можете запустить автокалибровку input shaper'а из Klipper непосредственно, что может быть удобно, например, для повторной калибровки.
Если вы счастливый обладатель дрыго принтера, вам нужно будет изменить положение акселерометра между измерениями по осям X и Y. Измерьте сначала резонансы для оси X с помощью акселерометра, прикрепленного к печатной голове принтера. Затем перевесьте акселерометр на ось Y (которой обычно соответствует стол принтера) и измерьте резонансы выполнив команду:
SHAPER_CALIBRATE AXIS=Y
Внимание! При размещении дачика акселерометра соблюдайте его пространственную ориентацию, или внесите соответствующие настройки в файл конфигурации принтера.
Вы так же вы можете подключить и использовать два датчика акселерометра ADXL345 одновременно, и использовать их:
После этого командыTEST_RESONANCES AXIS=X
иTEST_RESONANCES AXIS=Y
будут получать данные с правильного акселерометра для каждой оси.
Имейте в виду, что input shaper может сглаживать модели. Автоматическая настройка input shaper'a, выполняемая скриптом calibrate_shaper.py
или командой SHAPER_CALIBRATE
, старается не усугубить сглаживание, но в то же время старается минимизировать возникающие резонансы. Иногда алгоритм может сделать неоптимальный выбор частоты шейпера, или, вы предпочтёте меньше сглаживаний на моделях за счет увеличения оставшихся резонансов. В этих случаях вы можете ограничить сглаживания в input shaper'е.
Рассмотрим следующие результаты автоматической настройки:
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
Обратите внимание, что указанные значения smoothing
являются абстрактными, прогнозируемыми значениями. Эти значения можно использовать только для сравнения различных конфигураций: чем выше значение, тем большее сглаживание создает шейпер. Однако эта оценка не представляет никакого реального состояния эффекта сглаживания, поскольку она фактически зависит от значений параметров max_accel
и square_corner_velocity
. Поэтому вам следует распечатать несколько пробных моделей, чтобы увидеть, насколько вам подходит та или иная конфигурация.
В приведенном выше примере предложенные параметры шейпера удовлетворительные, но что, если вам нужно уменьшить сглаживание по оси X? Тогда вы можете попытаться ограничить максимальное сглаживание, которое даёт шейпер используя следующую команду:
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png --max_smoothing=0.2
Которая ограничивает сглаживание до 0,2 балла. Теперь вы можете получить следующий результат:
Fitted shaper 'zv' frequency = 55.4 Hz (vibrations = 19.7%, smoothing ~= 0.057)
To avoid too much smoothing with 'zv', suggested max_accel <= 12000 mm/sec^2
Fitted shaper 'mzv' frequency = 34.6 Hz (vibrations = 3.6%, smoothing ~= 0.170)
To avoid too much smoothing with 'mzv', suggested max_accel <= 3500 mm/sec^2
Fitted shaper 'ei' frequency = 48.2 Hz (vibrations = 4.8%, smoothing ~= 0.139)
To avoid too much smoothing with 'ei', suggested max_accel <= 4300 mm/sec^2
Fitted shaper '2hump_ei' frequency = 52.0 Hz (vibrations = 2.7%, smoothing ~= 0.200)
To avoid too much smoothing with '2hump_ei', suggested max_accel <= 3000 mm/sec^2
Fitted shaper '3hump_ei' frequency = 72.6 Hz (vibrations = 1.4%, smoothing ~= 0.155)
To avoid too much smoothing with '3hump_ei', suggested max_accel <= 3900 mm/sec^2
Recommended shaper is 3hump_ei @ 72.6 Hz
Если вы сравните с ранее предложенными параметрами, резонансов несколько больше, но сглаживание значительно меньше, чем раньше, что позволяет увеличить максимальное ускорение.
Решая, какое значение параметра max_smoothing
выбрать, вы можете использовать метод проб и ошибок. Попробуйте несколько разных значений и посмотрите, какие результаты вы получите. Обратите внимание, что фактическое сглаживание, производимое input shaper'ом, зависит, в первую очередь, от самой низкой резонансной частоты принтера: чем выше частота самого низкого резонанса, тем меньше сглаживание. Следовательно, если вы попробуете через скрипт найти конфигурацию input shaper'а с нереалистично малым сглаживанием, то это будет происходить за счет увеличения эха на самых низких резонансных частотах (которые, также более заметны на отпечатках). Поэтому всегда перепроверяйте прогнозируемые оставшиеся вибрации, сообщаемые скриптом, и убедитесь, что они не слишком высоки.
Так же, если вы выбрали подходящее значение max_smoothing
для обеих осей, вы можете сохранить его в файле printer.cfg
так:
[resonance_tester]
accel_chip: ...
probe_points: ...
max_smoothing: 0.25 # an example
В будущем, если вы повторно запустите автонастройку input shaper'a с помощью команды SHAPER_CALIBRATE
, Klipper будет использовать сохраненное значение max_smoothing
в качестве ссылки.
Поскольку input shaper может создавать некоторое сглаживание на моделях, особенно при высоких ускорениях, вам все равно нужно будет найти значение max_accel
, которое не создает слишком большого сглаживания на отпечатках. Сценарий калибровки дает оценку параметра max_accel
, который не должен давать большого сглаживания. Обратите внимание, что значение, параметра max_accel
отображаемое скриптом калибровки, является только теоретическим максимумом, при котором соответствующий шейпер все еще может работать, не давая слишком большого сглаживания. Ни в коем случае не рекомендуется устанавливать это ускорение для фактической печати. Максимальное ускорение, которое может выдержать ваш принтер, зависит от его механических свойств и максимального крутящего момента используемых шаговых двигателей. Таким образом, предлагается установить значение параметра max_accel в разделе [printer]
так, чтобы не превышать расчетных значений для осей X и Y, и иметь некоторый запас прочности.
В качестве альтернативы, прочитайте эту часть статьи по настройке input shaper'а и распечатайте тестовую модель, чтобы экспериментально выбрать параметр max_accel
.
То же самое относится к автокалибровке input shaper'а с помощью команды SHAPER_CALIBRATE
: по-прежнему необходимо выбрать правильное значение параметра max_accel после автокалибровки, и предлагаемые пределы ускорений не будут применяться автоматически.
Если вы выполняете повторную калибровку шейпера и предполагаемое сглаживание для предлагаемой конфигурации шейпера почти такое же, как и во время предыдущей калибровки, этот шаг можно пропустить.
Команда TEST_RESONANCES
поддерживает нестандартные направления движений. Хотя это не очень полезно для калибровки input shaper'а, его можно использовать для более глубокого изучения резонансов принтера и, например, для проверки натяжения ремня.
Чтобы проверить натяжение ремня на принтерах CoreXY, выполните:
TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data
TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data
и используйте скрипт graph_accelerometer.py
для обработки сгенерированных файлов, например:
~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png
что сгенерирует график /tmp/resonances.png
для сравнение резонансов.
Для принтеров Delta со стандартным расположением тяг (тяга A ~ = 210 градусов, B ~ = 330 градусов и C ~ = 90 градусов) выполните
TEST_RESONANCES AXIS=0,1 OUTPUT=raw_data
TEST_RESONANCES AXIS=-0.866025404,-0.5 OUTPUT=raw_data
TEST_RESONANCES AXIS=0.866025404,-0.5 OUTPUT=raw_data
а затем используйте ту же команду
~/klipper/scripts/graph_accelerometer.py -c /tmp/raw_data_axis*.csv -o /tmp/resonances.png
для генерации графика /tmp/resonances.png
и сравнения резонансов.
Помимо ручного выбора соответствующих параметров для input shaper'а, также можно запустить автонастройку для input shaper'а непосредственно из Klipper. Выполните следующую команду через консоль управления принтера:
SHAPER_CALIBRATE
Это запустит полный цикл тестирования для обеих осей и сгенерирует вывод в файл csv (/tmp/calibration_data_*.csv
по умолчанию) для определения частотной характеристики и предлагаемых параметров Input shaper'а. Вы также получите рекомендуемые частоты для каждого шейпера, а также рекомендуемый шейпер для вашей настройки в консоли. Например:
Calculating the best input shaper parameters for y axis
Fitted shaper 'zv' frequency = 39.0 Hz (vibrations = 13.2%, smoothing ~= 0.105)
To avoid too much smoothing with 'zv', suggested max_accel <= 5900 mm/sec^2
Fitted shaper 'mzv' frequency = 36.8 Hz (vibrations = 1.7%, smoothing ~= 0.150)
To avoid too much smoothing with 'mzv', suggested max_accel <= 4000 mm/sec^2
Fitted shaper 'ei' frequency = 36.6 Hz (vibrations = 2.2%, smoothing ~= 0.240)
To avoid too much smoothing with 'ei', suggested max_accel <= 2500 mm/sec^2
Fitted shaper '2hump_ei' frequency = 48.0 Hz (vibrations = 0.0%, smoothing ~= 0.234)
To avoid too much smoothing with '2hump_ei', suggested max_accel <= 2500 mm/sec^2
Fitted shaper '3hump_ei' frequency = 59.0 Hz (vibrations = 0.0%, smoothing ~= 0.235)
To avoid too much smoothing with '3hump_ei', suggested max_accel <= 2500 mm/sec^2
Recommended shaper_type_y = mzv, shaper_freq_y = 36.8 Hz
Если вас устраивают предложенные параметры, вы можете сохранить их командой SAVE_CONFIG
и перезапустить Klipper. Обратите внимание, что значение параметра max_accel
в разделе [printer]
не обновится. Вы должны обновить его вручную, следуя рекомендациям в разделе Выбор max_accel
.
Если у вас принтер с прюша-кинематикой, вы можете указать, какую ось тестировать, чтобы вы могли изменить точку крепления акселерометра между тестами (по умолчанию тест выполняется для обеих осей):
SHAPER_CALIBRATE AXIS=Y
Вам нужно будет выполнять команду SAVE_CONFIG
и перезапустить Klipper после калибровки каждой оси.
Однако, если вы подключили два акселерометра одновременно, вы просто выполняете команду SHAPER_CALIBRATE
без указания оси и калибруете обе оси за один раз.
Команда SHAPER_CALIBRATE
также может использоваться для повторной калибровки input shapera в будущем, особенно если внесены некоторые изменения в принтер, которые могут повлиять на его кинематику. Можно либо повторно запустить полную калибровку с помощью команды SHAPER_CALIBRATE
, либо ограничить автокалибровку одной осью, указав параметр AXIS=
, например так:
SHAPER_CALIBRATE AXIS=X
Предупреждение! Не рекомендуется запускать автокалибровку шейпера очень часто (например, перед каждой печатью или каждый день). Для определения резонансных частот автокалибровка создает интенсивные вибрации по каждой из осей. Как правило, 3D-принтеры не рассчитаны на длительное воздействие вибраций вблизи резонансных частот. Это может увеличить износ компонентов принтера и сократить срок их службы. Также существует повышенный риск откручивания или ослабления некоторых деталей. После каждой автонастройки всегда проверяйте, что все части принтера (включая те, которые обычно не двигаются) надежно закреплены на месте.
Кроме того, из-за наличия шума в измерениях возможно, что результаты настройки будут немного отличаться от одного цикла калибровки к другому. Тем не менее, не стоит ожидать, что шум слишком сильно повлияет на качество печати. Тем не менее, рекомендуется дважды проверить предлагаемые параметры и распечатать несколько пробных отпечатков перед их использованием, чтобы убедиться в их правильности.
Можно генерировать необработанные данные акселерометра и обрабатывать их в автономном режиме (например, на хост-машине), например, для поиска резонансов. Для этого запустите через консоль управления принтером следующие команды:
SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0
TEST_RESONANCES AXIS=X OUTPUT=raw_data
Игнорируйте любые ошибки для команды SET_INPUT_SHAPER
. Для команды TEST_RESONANCES
укажите желаемую тестируемую ось. Необработанные данные будут записаны в каталог /tmp
каталог на RPi.
Необработанные данные также можно получить, выполнив команду ACCELEROMETER_MEASURE
дважды во время нормальной работы принтера - сначала для начала измерений, а затем для их остановки и записи выходного файла.
Данные могут быть обработаны позже с помощью следующих скриптов: scripts/graph_accelerometer.py
и scripts/calibrate_shaper.py
. Оба они принимают один или несколько необработанных файлов csv в качестве входных данных в зависимости от режима. Скрипт graph_accelerometer.py
поддерживает несколько режимов работы:
-r
), поддерживается только 1 направление движения;-c
)или вы можете дополнительно указать с какими осями акселерометра работать, указав параметр -a x
, -a y
или -a z
(если не указан, то будет использована сумма колебаний по всем осям);Обратите внимание, что скрипт graph_accelerometer.py поддерживает только файлы типа raw_data*.csv, но не файлы резонансов *.csv или калибровки *.csv.
Например, команда:
~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z
построит сравнение нескольких /tmp/raw_data_x_*.csv
файлов по оси Z с выводом файла графика /tmp/resonances_x.png
.
Скрипт shaper_calibrate.py
принимает 1 или несколько файлов входных данных, может запускать автоматическую настройку input shaper'а и предлагать лучшие параметры, которые наилучшим образом работают для всех предоставленных входных данных. Он выводит предлагаемые параметры в консоль и может дополнительно генерировать диаграмму, если указан параметр -o output.png
или передан файл *CSV через параметр -c output.csv
.
Предоставление нескольких входных данных для скрипта shaper_calibrate.py
может быть полезно при выполнении расширенной настройки input shaper'а, например:
TEST_RESONANCES AXIS=X OUTPUT=raw_data
(так же и для оси Y) для оси дважды на принтере с прюша-кинематикой, с акселерометром, прикрепленным к головке в первый раз, и акселерометром, прикрепленным к столу, во второй раз, чтобы обнаружить перекрестные резонансы осей и попытаться устранить их с помощью input shaper'а.TEST_RESONANCES AXIS=Y OUTPUT=raw_data
на принтере с прюша-кинематикой и использованием двух вариантов поверхности для печати (например зеркало и магнитный коврик, с которым стол легче), чтобы найти параметры input shaper'а, которые работают хорошо для любой конфигурации печатного стола.input_shaper
для оси X из резонансов по осям X и Y, чтобы гасить вибрации стола в случае, если сопло «ловит» резонанс при движении в направлении оси X).Базовая настройка требует измерения частоты резонанса принтера и добавления некоторых параметров в файл printer.cfg
.
Подготовьте тестовую модель, которую можно найти в установочной папке klipper по пути docs/prints/ringing_tower.stl
к печати, установив в слайсере следующие параметры:
Первое, что нужно найти - это частоту резонанса
max_accel
и max_accel_to_decel
в файле конфигурации printer.cfg
до 7000. Это необходимо только для измерения резонансов, после настройки input shaper'а установите рекомендуемые значения.square_corner_velocity
был изменён, установите его значение обратно в 5.0. Не рекомендуется увеличивать его при использовании input shaper'а, потому что это может привести к слишком большому сглаживанию углов модели. Лучше вместо этого повысить значение ускорения.RESTART
SET_PRESSURE_ADVANCE ADVANCE=0
[input_shaper]
в файле printer.cfg
, то выполните команду SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0
. Если вы получили ошибку "Unknown command
" (неизвестная команда), то вы можете проигнорировать её на данном этапе и продолжить измерения.TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5
. Наша задача - сделать эхо максимально выраженным, увеличивая ускорения перемещения. Эта команда будет увеличивать ускорение каждые 5мм высоты на 500мм/сек^2, начиная с 1500 мм/сек2: 1500 мм/сек2; 2000 мм/сек2; 2500 мм/сек2; 3000 мм/сек2; и так далее, до значения 7000 мм/сек2 на верхней секции тестовой детали. (Расчет можно увидеть в Google таблицеОбратите внимание, что эхо на отпечатке должно соответствовать изогнутым выемкам, которые вызывают резонанс. Если эхо не повторяет их форму, то в вашем случае дефект имеет другое происхождение, например механическое (перетянут ремень и эхо соответствует шагу зубьев ремня). Проверьте ещё раз механику принтера, прежде чем настраивать input shaper.
Если измерения недостоверны, потому что, например, между колебаниями расстояние не стабильно, это может означать, что принтер имеет несколько резонансных частот на одной оси. Вместо этого можно попытаться выполнить процесс настройки, описанный в разделе недостоверные измерения резонансных частот, и всё же получить что-то от input shaper'а.
Частота резонанса может зависеть от положения модели в пределах рабочей области и высоты по оси Z, особенно на дельта-принтерах. Вы можете проверить, есть ли разница в частотах в разных частях по бокам тестовой модели и на разной высоте. В таком случае вам следует рассчитывать среднюю частоту резонанса по осям X и Y.
Если найденная частота резонанса очень низкая (ниже, чем 20-25 Гц), то есть смысл вложиться в укрепление рамы принтера и снижение веса печатающей головки, в зависимости от того, что более применимо в вашем случае. Зачастую, для популярных моделей принтеров уже существуют готовые решения по улучшению конструкции устройства. После применения улучшений есть смысл повторить тест и продолжить настройку.
Обратите внимание, что частота резонанса может меняться, если в принтер внесены изменения, которые влияют на движущуюся массу или изменяют жесткость принтера, например:
Если такие изменения вносились, следует повторить тест чтобы убедиться, стоит ли вносить правки в конфигурацию или всё в порядке.
После измерения частот резонанса для осей X и Y вы можете добавить в файл printer.cfg
следующий раздел:
[input_shaper]
shaper_freq_x: ... # frequency for the X mark of the test model
shaper_freq_y: ... # frequency for the Y mark of the test model
В приведенном выше примере мы получаем shaper_freq_x / y = 49,4.
Klipper поддерживает несколько вариантов сглаживания резонансов. Они различаются своей чувствительностью к ошибкам определения резонансной частоты и степени сглаживания напечатанных деталей. Кроме того, некоторые шейперы, такие как 2HUMP_EI и 3HUMP_EI, обычно не должны использоваться с shaper_freq = резонансная частота - они настроены из разных соображений для уменьшения нескольких резонансов одновременно.
Для большинства принтеров можно рекомендовать шейперы MZV или EI. В этом разделе описывается процесс тестирования для выбора между ними и выясняются некоторые другие связанные параметры.
Распечатайте тестовую модель следующим образом (при условии, что у вас уже установлены частоты в параметре shaper_freq_x/y
, а max_accel / max_accel_to_decel
увеличен до 7000 в файле printer.cfg
):
RESTART
SET_PRESSURE_ADVANCE ADVANCE=0
SET_INPUT_SHAPER SHAPER_TYPE=MZV
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5
Если в результате резонанс пропал, то можно порекомендовать использовать шейпер MZV.
Если резонанс всё ещё остался, повторно измерьте частоты, используя шаги 8-10 из раздела частота резонанса. Если частоты значительно отличаются от значений, полученных вами ранее, то необходима более сложная настройка Input shaper'a. Вы можете посмотреть раздел техническте подробности.
Теперь попробуйте шейпер EI. Для того, чтобы запустить печать тестовой модели с ним, повторите шаги 1-5 из этого раздела, но на шаге 3 используйте команду SET_INPUT_SHAPER SHAPER_TYPE=EI.
Сравните два отпечатка с шейперами MZV и EI. Если EI показывает заметно лучший результат, чем MZV, то используйте его, в противном случае лучше использовать MZV. Обратите внимание, что шейпер EI приводит к большему сглаживанию печатных деталей. Добавьте параметр shaper_type: mzv
(или EI) в раздел [input_shaper]
, чтобы получилось так:
[input_shaper]
shaper_freq_x: ...
shaper_freq_y: ...
shaper_type: mzv
Несколько замечаний по выбору шейпера:
-> Шейпер EI может больше подходить для "дрыгостолов" (если позволяет резонансная частота и результат сглаживания): по мере того, как увеличивается масса детали на столе, резонансная частота уменьшается. Поскольку шейпер EI более устойчив к изменениям резонансной частоты, он может лучше работать при печати больших моделей.
-> Из-за природы дельта-кинематики резонансные частоты могут сильно отличаться в разных частях объёма. Следовательно, шейпер EI может лучше подходить для дельта-принтеров, чем MZV или ZV, и его следует рассмотреть в качестве основного. Если резонансная частота велика (более 50-60 Гц), то можно попытаться протестировать шейпер 2HUMP_EI (выполнив предложенный выше тест с помощью командыSET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI
). Но советуем прочитать раздел ниже, прежде чем включать его.
У вас должна быть распечатана тестовая модель шейпера, который выбрали в прошлом пункте. Если вы её не печатали, то распечатайте с параметрами из начала этой статьи. Обратите внимание, что при очень высоких ускорениях, в зависимоти от резонансной частоты и выбранного вами шейпера (например шейпер EI сильнее сгладит модель, чем MZV), Input shaper может вызвать слишком сильное сглаживание и закругление деталей. Поэтому следует выбрать значение параметра max_accel
так, чтобы этого не произошло. Другой параметр, который может повлиять на сглаживание - square_corner_velocity
. Его значение не рекомендуется поднимать выше 5 мм/сек, чтобы предотвратить слишком сильное сглаживание.
Чтобы выбрать подходящее значение для параметра max_accel
, проверьте напечатанную модель для настройки input shapera. Для начала, обратите внимание на то, что резонанс для вас находится в приемлемом значении.
Далее проверьте сглаживание. Для этого на тестовой модели есть зазор в стенке размером 0.15 мм. По мере увеличения ускорения увеличивается и сглаживание, и фактический зазор в отпечатке увеличивается. На снимке справа ускорение увеличивается слева направо, и зазор начинает расти начиная с 3500 мм/сек^2 (5-я полоса слева). Так что в этом случае оптимальным значением параметра max_accel
является 3000 мм/сек^2, чтобы избежать чрезмерного сглаживания.
Обратите внимание на ускорения, когда на тестовой распечатке зазор ещё очень мал. Если вы видите выпуклости, но не видите зазора в стенке модели даже при высоких ускорениях, это может быть связано с отключением Pressure Advance, особенно на экструдерах типа Боуден. В этом случае вам может потребоваться перепечатать модель с включенным Pressure Advance. Так же это может быть результатом неправильной калибровки потока, поэтому стоит проверить и откалибровать его.
Выберите минимальное из двух получившихся значений ускорений (от эха и сглаживания) и используйте это значение в параметре max_accel
в файле printer.cfg
. Значение max_accel_or_decel
можно вернуть к старому значению или удалить.
Может произойти такая ситуация, особенно на низких частотах резонанса, что шейпер EI вызовет слишком сильное сглаживание даже при более низких ускорениях. В этом случае лучше использовать шейпер MZV, так как он допускает работу с большими ускорениями.
На очень низких частотах резонанса (~25 Гц и ниже) даже шейпер MZV может давать слишком сильное сглаживание. Если такое случилось, вы можете так же попробовать повторить шаги из раздела выбор шейпера, использовав шейпер ZV. Этот шейпер даёт меньше сглаживания, но более чувствителен к ошибкам подбора частоты резонанса.
Ешё одним вариантом может быть то, что если резонансная частота слишком низкая (ниже 20-25 Гц), то будет хорошей идеей увеличить жесткость принтера и снизить массу печатающей головки. В противном случае скорость печати упрётся в слишком сильное сглаживание, вместо эха.
Если вы используете Pressure Advance, то вам возможно потребуется его перенастроить. В статье по ссылке описано, как это сделать. Обязательно установите исходные значения для параметров max_accel
и max_accel_to_decel
в файле printer.cfg
и перезапустите Klipper перед его настройкой.
Если вы не можете измерить резонансные частоты, например, если расстояние между колебаниями нестабильно, вы всё равно можете воспользоваться Input shaper'ом, но результаты могут быть не такими хорошими, как при правильном измерении частот, и потребуются дополнительные настройки и печати тестовой модели. Обратите внимание, что ещё один вариант - приобрести и установить акселерометр, с помощью которого можно измерить резонансы, но это вариант потребует немного обжимки и пайки.
Для настройки добавьте пустой раздел [input_shaper]
в файл конфигурации printer.cfg
. Если вы уже нарезали модель для печати с предложенными параметрами, увеличили значение параметра max_accel
и max_accel_to_decel
в файле printer.cfg
до 7000, то вы готовы к более тонкой настройке печати. Тестовую модель придётся напечатать трижды.
Перед первой печатью запустите следующие команды:
RESTART
SET_PRESSURE_ADVANCE ADVANCE=0
SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5
После чего запустите печать модели. Перед второй печатью выполните следующие команды:
SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5
Перед третьей печатью выполните следующие команды:
SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5
По сути мы печатаем тестовую модель в режиме TUNING_TOWER
, используя шейпер 2HUMP_EI
с параметром shaper_freq
= 60 Гц, 50 Гц и 40 Гц соответственно.
Если ни одна модель не демонстрирует улучшение качества печати, то к сожалению input shaper вам не поможет. В противном случае может произойти так, ни на одной модели нет резонанса, или что на одной модели он сильнее, чем на другой. В этом случае выберите модель с самой высокой частотой резонанса, которая всё ещё показывает его уменьшение. Например, если модели 40 Гц и 50 Гц почти не показывают эха, а модель 60 Гц уже показывает немного больше эха, придерживайтесь 50 Гц.
Теперь проверьте, подойдет ли вам шейпер EI в данном случае. Выберите частоту шейпера EI на основе выбранной вами частоты для шейпера 2HUMP_EI:
Теперь распечатайте тестовую модель ещё раз, перед печатью выполнив команды:
SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=...
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5
Подставив соответствующие значения, как в примере выше.
Если шейпер EI показывает очень сравнимые хорошие результаты с шейпером 2HUMP_EI, используйте шейпер EI и частоту, определенную ранее, в противном случае используйте шейпер 2HUMP_EI с соответствующей частотой. Добавьте результаты printer.cfg
:
[input_shaper]
shaper_freq_x: 50
shaper_freq_y: 50
shaper_type: 2hump_ei
Теперь вы можете продолжить настройку, перейдя в раздел настройка max_accel.
Шейперы, используемые в клиппере стандартны, и более подробный разбор их работы можно найти в интернете. В этом разделе расписан краткий обзор некоторых технических аспектов, которые поддерживаются используемыми шейперами. В таблице ниже приведены некоторые приблизительные параметры для каждого шейпера.
Input shaper | Продолжительность формирования | Снижение вибрации в 20 раз (устойчивость к вибрации 5%) | Снижение вибрации в 10 раз (устойчивость к вибрации 10%) |
---|---|---|---|
ZV | 0.5/shaper_fr1eq | Н/Д | ± 5% shaper_freq |
MZV | 0.75/shaper_freq | ± 4% shaper_freq | -10%...+15% shaper_freq |
ZVD | 1 /shaper_freq | ± 15% shaper_freq | ± 22% shaper_freq |
EI | 1 /shaper_freq | ± 20% shaper_freq | ± 25% shaper_freq |
2HUMP_EI | 1.5 /shaper_freq | ± 35% shaper_freq | ± 40% shaper_freq |
3HUMP_EI | 2 /shaper_freq | -45%...+50% shaper_freq | -50%...+55% shaper_freq |
Примечание: значения в таблице выше являются приблизительными. Если коэффициент демпфирования принтера известен заранее для каждой оси, шейпер можно настроить более точно, и тогда он уменьшит резонансы в немного более широком диапазоне частот. днако коэффициент демпфирования обычно неизвестен и его трудно оценить без специального оборудования, поэтому Klipper по умолчанию использует значение 0,1, что является подходящим универсальным значением. Частотные диапазоны в таблице охватывают ряд различных возможных коэффициентов демпфирования около этого значения (приблизительно от 0,05 до 0,2).
Также обратите внимание, что EI, 2HUMP_EI и 3HUMP_EI настроены на снижение вибрации до 5%, поэтому значения для 10% -ного отклонения от вибрации приведены только для справки.
Всегда старайтесь использовать как можно более высокое значение параметра shaper_freq для выбранного шейпера (возможно, с некоторым запасом по безопасности, поэтому в этом примере лучше всего подходит shaper_freq ≈ 50-52 Гц) и старайтесь использовать шейпер с как можно меньшей продолжительностью формирования.