Klipper Input Shaping (Частота Шейпера) улучшает качество печати, изгоняя из принтера призраков, вызванных вибрациями и резонансами. Читайте дальше, чтобы узнать все об этом!
Klipper — это относительно новый тип прошивки для 3D-принтеров. Вместо того чтобы обрабатывать G-код на материнской плате принтера, Klipper передаёт его на отдельный компьютер (Raspberry Pi). Это не только дает Klipper больше возможностей для выполнения вычислений, но и позволяет контроллеру принтера сосредоточить все свое внимание на управлении собственным оборудованием.
Теоретически это позволяет Klipper печатать быстрее и качественнее, чем при традиционном подходе, поскольку он может быстрее выполнять вычисления и сильнее управлять принтером. Однако скорость приносит свои проблемы. Например, части печатающей головки могут резонировать, подобно звону колокола. Хотя вы можете этого не слышать или не видеть, это может проявляться в странных отраженных узорах на поверхности отпечатка, что снижает качество печати. Среди производителей этот эффект называется по-разному, включая «призраки», «эхо», «рябь» и «звон».
В этой статье мы рассмотрим функцию, которую компания Klipper внедрила для борьбы с «призраками». Она называется «Input Shaping» или частота шейпера и для ее настройки требуется немного усилий. Давайте проверим, как она работает!
- Почему принтеры вибрируют и резонируют
- Input Shaping это…
- Принцип работы
- Формула Input Shaping
- Настройка в Klipper
- Основные методы конфигурации
- Ручная настройка
- Ручная конфигурация: Как выполнить
- Определение «призрачной» частоты
- Советы
- Автоконфигурация: Первоначальная настройка
- Совместимые акселерометры
- Установка акселерометра(ов)
- Автоматическая настройка: Как выполнить
- Запуск скрипта калибровки
- Анализ данных
- Результат
- Настройка конфигурационного файла
- Шаг №1
- Шаг №2
- Настройка результатов
- Выводы
Почему принтеры вибрируют и резонируют

Прежде чем перейти к деталям функции Klipper Input Shaping, давайте сначала обсудим, почему 3D-принтеры вибрируют. На самом деле все вибрирует под воздействием повторяющихся внешних сил. На определенных частотах объекты могут «резонировать», то есть амплитуда колебаний становится особенно интенсивной.
Скрипка или гитара используют это преимущество для усиления музыкальных нот, стиральная машина на отжиме может вибрировать достаточно сильно, чтобы перемещаться по полу, а «поющий» винный бокал может вибрировать с достаточной интенсивностью, чтобы разбиться.
Печатающая головка принтера не закреплена в жестком основании, и при резких движениях она тоже вибрирует и может иметь ярко выраженную резонансную частоту там, где это движение или вибрация наиболее значительны. Иногда таких частот может быть несколько.
Хотя этот эффект может быть непосредственно не виден, он приводит к тому, что сопло не находится точно в том месте, где предполагается. По сути, оно находится немного не в том месте, где должен быть G-код, и это проявляется в виде артефактов на поверхности отпечатка.
Эта проблема всегда стояла перед разработчиками 3D-принтеров, а недостаточная жесткость конструкции или колебания приводных ремней могут усугубить ситуацию. Особенно подвержены этому большие принтеры и принтеры с тяжелыми печатающими головками. Как указано в нашей статье о призраках, существуют механические меры, которые можно предпринять для уменьшения эффекта, но они не всегда полностью эффективны.
После устранения механических проблем, насколько это возможно, единственным другим шагом, который можно предпринять, является снижение скорости печати — или, по крайней мере, уменьшение ускорения, приводящего в движение печатающую головку. Если снижение скорости не представляется возможным и все местные механические способы устранения проблемы испробованы, то здесь особую роль играет система Input Shaping от Klipper.
Input Shaping это…

Input Shaping, также известная как компенсация резонанса, уменьшает или устраняет «призраки» путем подавления резонанса — примерно как наушники с шумоподавлением, которые отфильтровывают фоновые звуки. Для настройки этой функции требуется немного усилий, поэтому когда ее стоит применять?
В конечном счете, это зависит от решения. Призраки возникают из-за физических проблем с принтером и становятся все хуже по мере увеличения скорости печати. Это особенно актуально, если печатающая головка или другие движущиеся части тяжелые.
Определенное количество призраков может быть приемлемым, но если достижение высокого качества печати является приоритетом или требуется максимально возможная скорость печати, пройти процесс калибровки почти наверняка стоит. Input Shaping может значительно уменьшить или полностью устранить призрачность, что приведет к более быстрым и качественным отпечаткам, а также к меньшему износу принтера.
Принцип работы

Концепция Input Shaping хорошо известна в инженерной теории управления, но ее реализация может быть математически сложной. Поэтому спасибо Дмитрию Бутюгину, который придумал, как включить ее в Клиппер.
Отправной точкой Input Shaping является понимание того, на каких частотах и насколько значительны резонансные колебания. (Вооружившись этой информацией, можно использовать ряд математических моделей для точной компенсации вибраций путем упреждающего изменения движения шаговых двигателей принтера, фактически тормозя нежелательные движения. Если вам нужно техническое объяснение, то это делается путем свертки последовательности импульсов, подаваемых на драйверы шаговых двигателей!
Формула Input Shaping
Различные типы моделей частоты шейпера (Input Shaping), которые выполняют фактическую компенсацию, имеют эзотерические названия, такие как «MZV» (нулевая вибрация) и «3Hump-EI» (где «EI» означает сверхчувствительность). К счастью, вам не нужно понимать, что происходит под капотом, поскольку существуют простые в исполнении руководства, которые помогут определить, какая модель лучше всего подходит для измеренных результатов.
Выбор подходящей модели будет зависеть от кинематики вашего принтера (Cartesian, CoreXY, Delta) и множества других факторов. Также вероятно, что наилучшее решение для осей X и Y может быть разным.
Настройка в Klipper
Соответствующие типы Input Shaping вместе с соответствующими резонансными частотами вводятся в стандартный конфигурационный файл Klipper, который считывается при каждом запуске Klipper. Например, следующая запись в файле конфигурации выберет тип MZV на 49,18 Гц для оси X и тип EI на 34,6 Гц для оси Y:
shaper_freq_x: 49.18 shaper_type_x: mzv shaper_freq_y: 34,6 shaper_type_y: ei На данный момент достаточно знать, что после перезапуска Klipper эти изменения вступят в силу и Input Shaping будет включен. Также важно помнить, что эти настройки, возможно, придется пересмотреть, если в принтере будут сделаны какие-либо значительные физические изменения, включая изменение натяжения ремня.
Основные методы конфигурации
Очевидно, что нам нужен соответствующий метод для определения резонансных частот по осям X и Y и выбора подходящего типа Input Shaping из нескольких доступных моделей. Существует два способа сделать это. Первый — это ручная настройка, которая включает в себя печать калибровочной модели и проведение измерений по ней. Преимущество этого способа в том, что он достаточно прост в реализации, но недостаток в том, что он менее точен и не справляется с более сложными резонансами.
Другой способ, автоматическая конфигурация, имеет преимущество в точности, но более сложен в реализации. Помимо серии автоматизированных тестовых сценариев, автоматическая настройка опирается на акселерометр который физически прикрепляется к печатающей головке или к рабочему столу принтера.
Рассмотрим эти два метода более подробно.
Ручная настройка

Наиболее распространенным, хотя и менее точным способом настройки Input Shaping является печать калибровочного образца, известного как калибровочная башня (ссылка автоматически загружает STL-файл). Она состоит из двух перпендикулярных стенок: одной для оси X (которая обозначена буквой «X» на задней стороне) и другой для оси Y (которая также обозначена на задней стороне стенки). Стенки имеют повторяющиеся зубчатые формы, которые используются для облегчения процесса калибровки. Они увеличивают любые призраки в направлениях X и Y.
Когда дело доходит до печати башни, особых требований к материалам нет. Однако лучше всего печатать обычным материалом.
Настройки слайсера и клиппера
Башня должна быть нарезана определенным образом: высота слоя 0,2 мм или 0,25 мм, скорость печати от 80 мм/с до 100 мм/с для внешней стенки, минимальное время слоя не более 3 секунд, с отключенными функциями акселератора.
Сам клиппер также должен быть настроен особым образом, с отключением таких функций, как Pressure Advance, Square Corner Velocity, установленных на значения по умолчанию, и, что важно, Max Acceleration, установленный на 10 000.
Калибровка

В ходе процесса мы напечатаем несколько башен, используя различные настройки. Первоначально она печатается с помощью команды Klipper, которая увеличивает ускорение вверх после каждых вертикальных 5 мм тестовой печати:
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Это ускорение начнется с 1 500 мм/с2 и будет увеличиваться с прибавлением 500 вплоть до 7 500 мм/с2. Это может быть слишком много для вашего принтера, поэтому будьте готовы остановить тест раньше, если это необходимо. Кроме того, если звон уже хорошо заметен (см. рисунок ниже), необязательно доводить тестовую печать до конца.
Когда башня отпечатана, ее можно визуально осмотреть и измерить, чтобы получить первые необходимые данные. Давайте рассмотрим, что с этим связано, а также как настроить любую полученную конфигурацию Input Shaping.
Ручная конфигурация: Как выполнить

Как отмечалось выше, настроечная башня предназначена для выделения частот звона по осям X и Y, и это нормально, если они отличаются. Она также выступает в качестве базовой линии для последующего сравнения и помогает определить, не слишком ли велико естественное сглаживание, применяемое Input Shaping.
Для настройки Input Shaping вручную вы будете использовать настроечную башню, и этот процесс включает в себя определение частот призраков, выбор типа Input Shaping, повторную печать настроечной башни, а затем подтверждение значений ускорения. Вот как это сделать!
Определение «призрачной» частоты
Шаг №1
Наша первая калибровачная башня позволяет рассчитать преобладающую частоту звона или призрака. Начните с тщательного измерения (в мм) расстояния между заданным количеством повторяющихся колебаний. Выберите столько пульсаций, сколько вы можете точно измерить линейкой или штангенциркулем.
Например, желтая стрелка на изображении выше охватывает шесть колебаний — обычно первые одно или два игнорируются. Обратите внимание, что схема и процесс абсолютно одинаковы как для оси X, так и для оси Y, просто убедитесь, что вы снимаете показания с правильной стенки настроечной башни.
Шаг №2
Частота определяется скоростью печати, умноженной на количество колебаний, деленное на измеренное расстояние. В случае с нашим изображением выше мы определили шесть колебаний. Предположим, что скорость печати составляет 100 мм/с, а расстояние — 12,2 мм. Это соответствует частоте 49,18 Гц.
Шаг №3
После определения частота может быть введена в соответствующий раздел конфигурационного файла Klipper. В нашем примере мы рассчитали частоту для оси X, поэтому запись будет выглядеть следующим образом:
shaper_freq_x: 49.18 Затем процесс повторяется для стенки настроечной башни по оси Y. Обратите внимание, что если на одной из осей нет видимого призрака, то его можно просто опустить в файле конфигурации Klipper.

Выбор типа Input Shaping
Далее мы выберем лучший тип Input Shaping и введем его в конфигурационный файл. Общее руководство в документации Klipper гласит, что EI является лучшим типом для принтеров, у которых стол перемещается по оси Y (в документации Klipper такие принтеры называются «bed slinger»), а также для многих установок Delta. MVZ часто является лучшим для других типов принтеров.
Вы можете посмотреть на форумах в Интернете, что выбрали другие, но поскольку каждый принтер отличается от другого, возможно, потребуется элемент проб и ошибок. Для нашего примера воспользуемся MVZ. Мы сделаем следующую запись:
shaper_freq_x: 49.18 shaper_type: mzv Кроме того, несмотря на то, что в документации типы Input Shaping указаны в верхнем регистре, в конфигурационном файле они должны быть указаны в нижнем регистре!
Повторить печать калибровочной башни
Теперь вы почти у цели! Перезапустите Klipper и выполните ту же команду выполнения теста, что и раньше:
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5 Вы должны увидеть заметное улучшение призрачности (ниже мы рассмотрим, что делать в противном случае). Для сравнения вы можете повторить этот процесс с альтернативным типом Input Shaper.
Подтверждение значений ускорения
Далее мы определим значения ускорения, изучив второй тестовый отпечаток. Внимательно посмотрите на часть башни настройки с небольшим 0,15-мм зубчатым зазором. Input Shaping вносит определенное сглаживание и этот зазор является мерой того, насколько сильно оно происходит. Чем больше ускорение, тем больше сглаживание и тем шире зазор.
Точка, в которой зазор заметно увеличивается более чем на 0,15 мм, определяет максимальное рекомендуемое ускорение. Помните, что по умолчанию ускорение вышки начинается с 1 500 мм/с2 и увеличивается на 500 мм/с2 через каждые 5 мм.

Например, если зазор увеличивается более чем на 20 мм (в этот момент ускорение составляет 3 500 мм/с2), рекомендуемым максимальным ускорением будет меньшее значение 3 000 мм/с2. Максимальное ускорение определяется в конфигурационном файле Klipper как «max_accel». Таким образом, в конфигурационном файле можно ввести следующее:
max_accel: 3000 Обратите внимание, что здесь действует несколько факторов, которые могут потребовать тонкой настройки или компромисса между качеством печати и абсолютной скоростью и ускорением. Мы рассмотрим это более подробно в разделах автоматической настройки ниже. Но пока, если все идет по плану, все готово!
Советы
Бывают случаи, когда вам может быть трудно интерпретировать калибровочную башню. Например, расстояния между призраками могут быть неравномерными, что может означать наличие нескольких резонансных частот или что-то еще. В документации Klipper есть раздел о ненадежных измерениях, который может помочь в таких случаях. Однако, возможно, вам придется обратиться к более продвинутому способу определения резонанса с помощью дополнительного оборудования, как описано в следующих разделах.
Кроме того, вы можете вообще не увидеть зазор в вашей башне при задании максимального ускорения. Это может произойти в случае реализации Боудена, где вы можете даже получить пятна на гребенчатом шаблоне. В этом случае вы можете повторить описанный выше процесс, но уже с включенным Pressure Advance.
Автоконфигурация: Первоначальная настройка

Более точным методом настройки Input Shaping является подключение акселерометра к печатающей головке вашего принтера. Акселерометр обеспечивает прямой и детальный анализ вибраций, что позволяет быстрее и лучше настроить выбор модели, а также лучше понять управление ускорением. Klipper также имеет скрипт автоматической калибровки, который проанализирует результаты акселерометра и предложит наилучшее решение.
Совместимые акселерометры
Klipper поддерживает относительно недорогой и доступный акселерометр ADXL345, 343 тоже подойдет, но есть другие варианты — MPU-9250 или MPU-6050. Они должны быть прочно прикреплены к печатающей головке и для различных монтажных адаптеров имеются STL-файлы.
Обратите внимание, что принтеры, которые перемещают свой стол в направлении оси Y, также нуждаются в установке акселерометра на рабочий стол. К сожалению, большинство недорогих принтеров для любителей, таких как Ender 3, относятся к этой категории. Один акселерометр можно поменять местами между печатающей головкой и столом для тестов по осям X и Y соответственно, либо использовать два отдельных акселерометра.
Установка акселерометра(ов)

Акселерометры подключаются через интерфейс SPI, поэтому их можно подключить непосредственно к Raspberry Pi. Они также могут подключаться через контроллер принтера, если он достаточно быстрый, что может быть преимуществом при использовании нескольких принтеров. Если вы пойдете по пути Raspberry Pi, то потребуется внести несколько изменений в конфигурацию, не предусмотренных по умолчанию, которые четко описаны в документации Klipper по измерению резонанса. Вам также нужно будет указать, какой акселерометр используется в конфигурационном файле Klipper. И снова вам нужно обратиться к соответствующему руководству по установке программного обеспечения.
Обратите внимание, что соединение SPI исключает этот подход для реализаций Klipper, работающих на устройствах без такого интерфейса. Кроме того, в подробной документации Klipper несколько раз упоминается использование OctoPrint, но подойдет любой пользовательский интерфейс Klipper.
Тестирование акселерометра
После установки стоит протестировать акселерометр и убедиться, что с ним все в порядке. Опять же, Klipper частично автоматизировал этот процесс. Так, вы можете просто запустить следующий скрипт:
ACCELEROMETER_QUERY Существует вариант этого сценария для принтеров, которым требуется более одного акселерометра, чтобы можно было проводить отдельные тесты X и Y. Сценарий требует, чтобы вы определили, какой акселерометр запрашивать. Загляните в раздел «Проверка настройки» в документации Klipper для получения более подробной информации.
Дополнительный тест MEASURE_AXES_NOISE проверяет наличие лишнего шума, который может быть вызван проблемами с блоком питания или некачественными вентиляторами, создающими помехи непосредственно акселерометру. Попробуйте отключить вентиляторы, если это происходит.
Автоматическая настройка: Как выполнить

После настройки акселерометра мы готовы к автоматической настройки. Мы начнем с получения данных с акселерометра(ов), анализа их с помощью скрипта, а затем добавим рекомендуемую конфигурацию в стандартный конфигурационный файл Klipper. Давайте начнем!
Запуск скрипта калибровки
Если акселерометр работает правильно, вы готовы запустить скрипт калибровки и определить частоты, на которых ваш принтер вибрирует сильнее всего. Вы будете делать это по очереди для каждой оси, выполняя сначала сценарий для одной оси, затем для другой:
TEST_RESONANCES AXIS=X TEST_RESONANCES AXIS=Y Предупреждаем, что этот скрипт предназначен для встряхивания принтера и вызывания вибраций. Стоит быть наготове, чтобы выполнить команду аварийной остановки M112, если возникнут сильные вибрации или другие аппаратные проблемы. Если вибрации слишком сильны на ранних этапах теста, существует опция конфигурации, позволяющая это исправить: Найдите «accel_per_hz» в документации Klipper по измерению резонансов.
После выполнения этих сценариев Klipper сохранит результаты в двух файлах CSV: «/tmp/resonances_x_*.csv» и «/tmp/resonances_y_*.csv».
Анализ данных
Следующим шагом будет анализ данных в этих файлах и внедрение наиболее подходящей конфигурации Input Shaping. Здесь в игру вступает еще немного магии Klipper. Запустите следующий скрипт calibrate_shaper.py на вашем Raspberry Pi следующим образом для каждой оси:
~/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
Эти скрипты обрабатывают результаты измерений акселерометра в файлах .CSV, запускают моделирование для определения поведения каждого типа Input Shaping, а также создают графическое изображение результатов (как показано выше).
Результат
Для каждой возможной модели сценарий также сообщит о своих выводах и подытожит их в верхней правой части графического изображения. Например, вы увидите примерно следующее:
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.
Скрипт также выдает рекомендацию о том, что, скорее всего, лучше всего подходит. В данном примере резюме предлагает следующее:
Recommended shaper is 2hump_ei @ 45.2 Hz.
Стоит также отметить, что этот пример подчеркивает ключевое преимущество использования акселерометра. Имеются два пика резонансной частоты, около 55 Гц и 120 Гц, которые крайне сложно определить ручными методами.
Настройка конфигурационного файла

С этого момента процесс аналогичен ручной настройке.
Шаг №1
В файле конфигурации Klipper установите соответствующие частоты X и Y, а также выбранные типы моделей. Значения будут взяты непосредственно из вывода скрипта.
В приведенном выше примере (предполагается, что результаты получены для оси X) файл конфигурации будет выглядеть следующим образом:
shaper_freq_x: 45.2 shaper_type_x: 2hump_ei
max_accel: 2200 Шаг №2
Перезапустите Klipper и Input Shaping будет включен.
Настройка результатов
В большинстве случаев это приведет к заметному улучшению печати. Вы можете распечатать настроечную башню, использованную для ручной калибровки, чтобы подтвердить улучшение. Однако, как и при ручной настройке, здесь все еще есть возможность для суждений и тонкой настройки.
В частности, вы могли заметить, что в приведенном выше скрипте также отмечен параметр сглаживания:
(vibrations = 0.1%, smoothing ~= 0.264)
Это показатель того, насколько сильно сглаживается тип шейпера и его тоже можно изменить в конфигурационном файле Klipper следующим образом:
max_smoothing: 0.25 # an example
Более низкое сглаживание может позволить установить более высокие ускорения, но здесь в игру вступают несколько факторов, таких как Pressure Advance, настройка Max Smoothing и Square Corner Velocity. Стоит просмотреть раздел «Максимальное сглаживание» в документации Klipper, если вы хотите узнать больше.
Выводы

Функция Input Shaping в Klipper хорошо реализована и подкреплена многочисленными примерами и положительными отзывами. Если вы хотите получить наилучшее качество печати при высокой скорости печати — особенно на больших принтерах — эта функция играет важную роль и стоит того, чтобы ее настроить. Выбор между ручной и автоматической конфигурацией — это вопрос, над которым бьются большинство потенциальных пользователей.
Преимущество ручной конфигурации в том, что она не требует дополнительного оборудования — особенно в случае принтеров с подвижным столом — и достаточно проста в реализации. Его недостатком является меньшая точность, а также сложность в обработке нетипичных ситуаций — например, случаев с более чем одной резонансной частотой.
Автоматическая настройка имеет значительное преимущество, когда речь идет о точности. Установка дополнительного оборудования может показаться сложной задачей, но на интернет-форумах можно найти множество примеров, ориентированных на конкретные принтеры. Акселерометр также можно использовать для других испытаний, связанных с настройкой ускорения или натяжения ремня в машинах CoreXY, что некоторые могут счесть полезным.
Оба подхода оставляют возможности для дальнейшей настройки ускорения, сглаживания и других связанных параметров, но в целом это не требуется. По общему мнению тех, кто пробовал оба подхода, если вы готовы к дополнительной работе и (не слишком значительным) дополнительным расходам, стоит использовать автоматический подход, но оба подхода дадут очевидные преимущества.







