ПИД тюнинг картридж мощностью 50 Вт в Марлине

Недавно я решил обновить свой Geeetech A10 (плата GT2560 v3.0) с помощью E3D Chimera, Marlin 2.0.3 и более мощного нагревательного картриджа мощностью 50 Вт. Я подключил все провода и попытался настроить ПИД на горячем конце, но у меня возникла проблема.

Когда настройка заканчивается и я использую значения с M301, они становятся слишком агрессивными, и hotend изначально превышает более 15 °C. После этого температура становится абсолютно постоянной.

Overshooting the temperature

Настроенные значения равны P=9,4 I=0,47 и D=46,4.

Я попытался изменить значения в соответствии с таблицей википедии, чтобы не было превышения (P=3,13 I=0,47 и D=123,7), но это просто сделало температуру нестабильной.

Я также попытался настроить значения вручную, но безуспешно. Я даже пытался использовать нули для всех трех коэффициентов усиления, но он просто колебался на ±10 °C и все равно промахивался.

Я предполагаю, что картридж слишком мощный для настройки ПИД-регулятора Marlin.

Есть ли настройка в прошивке, где я могу установить значение PWM для настройки PID? Чтобы замедлить нагрев? Я попытался использовать M301 E1 P0.25 S200 C10, но, похоже, он не использовал параметр P.

Или есть способ вручную настроить значения без принтера? У меня есть Arduin Uno и RPi Zero. Или мне придется купить еще один менее мощный картридж?

, 👍1

Обсуждение

Просто мысль, но если это нагреватель 12 В, то добавление лампы накаливания автомобиля мощностью 55 Вт последовательно с ним уменьшит напряжение вдвое, уменьшит мощность на четверть и даст визуальную индикацию включенного нагревателя. (Фактические значения будут немного отличаться из-за более низкой холодостойкости лампы.) Я действительно заметил настройку ограничения мощности в конфигурации*.h* при настройке моего недавно, но у меня мало опыта, и у меня не было необходимости его настраивать., @Transistor

Вся система работает на 24 В, поэтому я не могу добавить типичную автомобильную лампочку. Кстати, я также проверил нагреватель мультиметром, и он имеет соответствующее сопротивление (его нет для 12 В)., @Honza535

В прошивке Marlin мощность нагревательного картриджа может быть ограничена " PID_MAX и/или BANG_MAX`. Каково сопротивление нагревательного картриджа? Конечно, это не для 12 В, я недавно испытал точно такую же проблему., @0scar

Вы можете изменить классические значения PID, чтобы исключить превышение. См. Эту статью RepRap Wiki: https://reprap.org/wiki/PID_Tuning, @Mick

@oscar Я уверен, что картридж не 12В. Сопротивление его при холодном состоянии составляет 11,4 Ом, а при горячем-11,5 Ом. Я нашел настройку "PID_MAX", как вы и сказали, но я думаю, что она просто ограничивает общую производительность картриджа, не так ли? Я мог бы использовать его позже, но прямо сейчас я бы предпочел правильно настроить значения PID, чтобы использовать весь потенциал., @Honza535

@Mick Да, я пробовал это сделать. Я проверил RepRap wiki, и это та же самая модификация, что и я. Теперь я заметил, что после этого записал неправильный D gain в stack exchange. Правильные значения после этого были следующими: "P=3,13 I=0,47 D=123,7"., @Honza535

Вместо одной автомобильной лампы поставьте последовательно 2x21 Вт, которые легко найти, потому что именно их использует комбинированная позиционная+тормозная лампа, и обычно перегорает только позиционный фонарь., @FarO


1 ответ


Лучший ответ:

3

Помимо значений P, I и D, вам также может потребоваться настроить PID_FUNCTIONAL_RANGE и PID_INTEGRAL_DRIVE_MAX.

В принципе, функциональный диапазон отключает ПИД-контроль, когда он находится более чем на заданное число градусов от заданной температуры, и просто переводит нагреватель в нулевую/максимальную мощность. Параметр integral drive max ограничивает значение интегрального члена ПИД-регулятора.

Вики-заметки RepRap wiki: (обратите внимание, что эта вики-страница датирована! некоторые варианты могут быть недоступны)

В Marlin параметры, управляющие и ограничивающие ПИД-контроллер, могут иметь более значительные эффекты, чем популярные ПИД-параметры. Например, PID_MAX и PID_FUNCTIONAL_RANGE и PID_INTEGRAL_DRIVE_MAX могут иметь драматические, неожиданные эффекты на поведение PID. Например, слишком большой PID_MAX на мощном нагревателе может сделать автонастройку невозможной; слишком маленький PID_FUNCTIONAL_RANGE может вызвать нечетное поведение сброса; слишком большой PID_FUNCTIONAL_RANGE может гарантировать превышение; и слишком маленький PID_INTEGRAL_DRIVE_MAX может вызвать падение.

Мое предчувствие заключается в том, что функциональный диапазон может быть слишком мал; PID не срабатывает до тех пор, пока не приблизится к желаемой температуре, в которой вы уже перевыполните цель (из-за высокой мощности нагревателя и задержки в измерениях). Как только вы превысите заданную температуру, интегральный член начнет расти (отрицательный), что приведет к массовой недоэкструзии.


,

Да, в этом-то и была проблема. Я изменил функциональный диапазон с 10°C до 25°C (оригинал + то, что он пропустил), перенастроил хотенд, и он просто достиг желаемой температуры +-0,5°C., @Honza535

@Honza535, вы должны принять этот ответ, чтобы указать, что на ваш вопрос дан ответ. Вы тоже можете проголосовать., @Transistor

Я не могу найти PID_INTEGRAL_DRIVE_MAX; этот параметр изменил имя или он устарел? Похоже, что вики-страница reprap не обновлена., @0scar

Да, по-видимому, так. Текущая версия Marlin ограничивает Iterm таким образом, чтобы он никогда не становился больше, чем необходимо для достижения максимальной выходной мощности, но для настройки этого параметра нет опции конфигурации., @Tom van der Zanden