48

Marlin PID Калибровка

PID (ПИД, Пропорционально-интегрально-дифференцирующий регулятор) - регулятор, использующий сумму трех значения входного сигнала (Kp, Ki, Kd) для задания и поддержки температуры стола\хотенда в установленных пределах. Данные значения будут разными в зависимости от используемого железа, наличия обдува, силиконового носка и множества других факторов, поэтому калибровку необходимо производить как после первого запуска принтера, так и после изменения конфигурации хотенда\стола. Так же данную процедуру необходимо проводить при скачкообразных изменениях температуры и большом разбросе при удержании заданного значения.

Калибровка

В прошивку Marlin встроены инструменты для автоматической калибровки PID как для хотенда, так и для стола. Для управления нагревом стола с помощью PID необходимо предварительно активировать в прошивке параметр "PIDTEMPBED" (подробнее в разделе Прошивка -> Стол, данную процедуру необходимо провести перед калибровкой стола и прошить принтер, по умолчанию параметр выключен). Процедуру калибровки желательно проводить на максимально приближенных к печатным условиям, если у вас закрытый корпус - необходимо закрыть дверцу и надеть кожух\колпак, при калибровке хотенда стол должен находиться в непосредственной близости к соплу и обдув должен быть включен на максимум (либо значение, которое вы используете чаще всего). Внимание, во время проведения калибровки вам может показаться, что принтер завис, но это не так - тест довольно длительный и время его проведения зависит от количества установленных повторений.

Для ввода команд и получения результатов можно использовать, к примеру, ПО PrintRun (www.pronterface.com/) или любой другой софт, который может общаться с принтером посредством последовательного порта (OctoPrint, Repetier-Host и т.п.)


Экструдер

Переместите хотэнд к центру стола, подведите стол как можно ближе к соплу и включите обдув хотенда. Калибровка проводится для конкретной температуры; это не значит, что если вы провели ее на температуре 230°, то на 250°\210° работать она не будет, это лишь значит, что чем больше разница рабочей температуры от заданной при калибровке - тем больше будет погрешность, поэтому необходимо устанавливать ту величину, что чаще всего используется.

Терминал принтера:
M303 E<hotend_num> S<temp> C<count> ;Запуск автоматической калибровки хотэнда
E<hotend_num> - Порядковый номер хотенда (если у вас один хотэнд - 0)
S<temp> - Температура проведения теста
C<count> - Количество повторений теста, чем их больше - тем точнее (минимум 3, по  умолчанию 5)
Пример: M303 E0 S240 C7
Результаты выполнения команды:
>>> M303 E0 S240 C7
<<< PID Autotune start
*тестирование*
<<< PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
<<< #define DEFAULT_Kp 10.71
<<< #define DEFAULT_Ki 0.61
<<< #define DEFAULT_Kd 47.22
Полученные значения можно внести в прошивку или сохранить в EEPROM, данная процедура описана в разделе "Прошивка". Также для калибровки хотенда можно воспользоваться готовым GCod'ом который проведет калибровку за вас и сохранит значения в EEPROM. Для этого необходимо скопировать код, описанный ниже (установив в нем свои значения номера экструдера, температуры, а также количество повторений) в текстовый файл, сохранить его с расширением ".gcode" и запустить на исполнение на вашем принтере; результаты тестирования будут автоматически сохранены. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для экструдера находятся в строке с командой "M301".

;HotEnd_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E0 S240 C7 U ;E0<номер экструдера> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки

Стол

(необходимо активировать параметр PIDTEMPBED в прошивке)

Процедура калибровки PID для стола практически не отличается от калибровки хотенда. При наличии корпуса закройте дверцу и установите крышку принтера, чтобы создать закрытый объем внутри принтера. Обратите внимание, что команды для калибровки стола и хотенда совпадают, отличается лишь параметр номера экструдера, для стола это всегда будет "-1"

Терминал принтера:
M303 E-1 S<temp> C<count> ;Запуск автоматической калибровки стола
E-1 - Калибровка стола
S<temp> - Температура проведения теста
C<count> - Количество повторений теста, чем их больше - тем точнее (минимум 3, по  умолчанию 5)
Пример: M303 E-1 S80 C7
Результаты выполнения команды:
>>> M303 E-1 S80 C7
<<< PID Autotune start
*тестирование*
<<< PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h
<<< #define DEFAULT_bedKp 52.60
<<< #define DEFAULT_bedKi 6.63
<<< #define DEFAULT_bedKd 277.98

Полученные значения также вносятся в прошивку или сохраняются в EEPROM. Для тестирования стола также можно использовать GCode, указанный ниже, сохранив его в файл с расширением ".gcode" и запустив на принтере; он проведет тестирование и автоматически сохранит значения в EEPROM. После завершения в терминал будут выведены текущие значения EEPROM для проверки, значения PID для стола находятся в строке с командой "M304".

;Bed_PID_calibration.gcode
G28 ;Вернуться в начало координат
G1 Y100.0 X100.0 Z5.00 F1500 ;Переместить хотэнд на координаты X100 Y100 Z5
M106 S255 ; включить обдув модели на 100%
;
M303 E-1 S80 C7 U ;E-1<стол> S<температура> C<циклы> U<применить полученные значения>
M106 S0 ; выключить обдув модели
M500 ;Сохранить полученные значения в EEPROM
;
M503 ;Вывести текущие значения EEPROM для проверки

Прошивка

Экструдер

Значения, полученные после PID калибровки, записываются в разделе "PID Settings" в файле "Configuration.h" по порядку (без кавычек):

\Marlin\Configuration.h
//===========================================================================
//============================= PID Settings ================================
//===========================================================================
***
***
***
#define DEFAULT_Kp <Kp value>
#define DEFAULT_Ki <Ki value>
#define DEFAULT_Kd <Kd value>

Стол

Для управления нагревом стола через PID необходимо раскомментировать параметр "PIDTEMPBED" (убрать "//"), после чего можно по порядку ввести значения Kp, Ki, Kd в разделе "PID > Bed Temperature Control" в файле "Configuration.h":

\Marlin\Configuration.h
//===========================================================================
//====================== PID > Bed Temperature Control ======================
//===========================================================================
***
#define PIDTEMPBED
***
#define DEFAULT_bedKp <Kp bed value>
#define DEFAULT_bedKi <Ki bed value>
#define DEFAULT_bedKd <Kd bed value>

После прошивки принтера необходимо стереть EEPROM и загрузить в него значения, установленные нами в прошивке, для этого в терминале принтера нужно ввести две команды по порядку (до точки с запятой):

Терминал принтера
M502 ; Загрузить значения указанные в прошивке
M500 ; Сохранить значения в EEPROM

EEPROM

Не стоит забывать, что значения PID хранятся в энергонезависимой памяти контроллера и после перепрошивки вам необходимо либо восстановить в EEPROM значения, указанные нами в прошивке, либо, если вы не хотите перепрошивать свой принтер, вы можете сохранить значения напрямую в EEPROM, но не забывайте, что при использовании команды "M502" (записать значения из прошивки в EEPROM) придется повторно записать PID значения в EEPROM, так как они будут заменены теми, что указаны в прошивке. Для хранения данных значений предпочтительнее указывать их в прошивке - это убережет вас от множества проблем.

Терминал принтера:
M301 P<Kp value> I<Ki value> D<Kd value> ;Установить значения PID для хотенда
M304 P<Kp bed value> I<Ki bed value> D<Kd bed value> ;Установить значения PID для стола
M500 ; Сохранить значения в EEPROM

Глоссарий

Хотэнд (HotEnd) - блок из нагревателя, термодатчика, сопла и корпуса, который отвечает за нагрев пластика

Стол (Bed, HeatBed) - Рабочая поверхность принтера, на которой располагается модель

EEPROM (ПЗУ) - Память контроллера для хранения настроек, которые сохраняются после отключения электроэнерги


GCode's

M500 - Cохранить текущие значения в EEPROM

*https://marlinfw.org/docs/gcode/M500.html

M502 - Загрузить значения из прошивки

*https://marlinfw.org/docs/gcode/M502.html

M503 - Вывести текущие значения EEPROM

*https://marlinfw.org/docs/gcode/M503.html

M106 S<speed> - Включение обдува модели (0 - выключить)

*https://marlinfw.org/docs/gcode/M106.html

M301 P<Kp value> I<Ki value> D<Kd value> - Установить значения PID для хотенда

*https://marlinfw.org/docs/gcode/M301.html

M303 E<номер экструдера(стол -1)> S<температура> C<циклы> U<применить полученные значения> - Автокалибровка PID

*https://marlinfw.org/docs/gcode/M303.html

M304 P<Kp bed value> I<Ki bed value> D<Kd bed value>- Установить значения PID для стола

*https://marlinfw.org/docs/gcode/M304.html


Надеюсь данный гайд был полезен, так же прошу прощения за упрощения\упущения и тавтологию данный текст в основном направлен на новичков в 3D печати посему упрощенно по максимуму. Если мой вариант изложения информации будет доступным и понравиться людям продолжу публиковать минигайды относительно 3D печати.


Данный гайд так же опубликован на канале @LiS92Live в telegram в виде PDF документа с нормальным форматированием текста.

Лига 3D-принтеров

3.4K поста14.1K подписчика

Правила сообщества

Запрещено хамство и оскорбления, уважайте чужой опыт и труд

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества