Каковы переменные для PID-контроля? Как использовать M301? Как использовать эту команду для переключения с PID на bang-bang?

Я бы хотел, чтобы выход 12 В PID на старой печатной плате управлял реле, которое подключается к горшку на 120 В для чего-то, что я делаю. У меня все работает нормально с помощью реле, но поскольку нагреватель hotend использует PID-управление, реле щелкает примерно 3 раза в секунду каждый раз, когда ему нужно разогреть кастрюлю.

Этот звук не только раздражает, но и, вероятно, значительно сократит срок службы реле. Мне нужен контроль температуры горшка, поэтому программное управление термистором на старой плате 3D-принтера-огромная помощь и, вероятно, дешевле, чем альтернативные варианты. Тем более, что эта плата имеет встроенный слот SD и может запускать любой код при включении питания. В режиме "бац-бац" будет меньше щелчков, когда кастрюля нагревается, и реле не будет повреждено.

Я не могу обновить встроенное ПО на своей плате, чтобы использовать другой контакт, потому что это действительно старая плата для печатающего робота. Всему необходимому программному обеспечению почти 5 лет, и его действительно трудно найти. К счастью, печатная плата поддерживает M301. Итак, я должен быть в состоянии использовать эту команду для переключения с PID-управления на bang-bang.

В документации Марлинаописана команда под названием M301, а также множество переменных для использования этой команды. Проблема в том, что я не знаю, что означает любая из этих переменных.

M301 [C<value>] [D<value>] [E<index>] [I<value>] [L<value>] [P<value>] 

[C<value>]  

C term (requires PID_EXTRUSION_SCALING)

[D<value>]  

Derivative value

[E<index>]  

Extruder index to set. Default 0.

[I<value>]  

Integral value

[L<value>]  

Extrusion scaling queue length (requires PID_EXTRUSION_SCALING)

[P<value>]  

Proportional value

Единственное, что я знаю наверняка, это то, что индекс экструдера равен 0.

Какую команду я бы ввел, чтобы сделать этот ПИД-контроллер бах-бах, чтобы я не повредил свое реле в долгосрочной перспективе?

, 👍2

Обсуждение

У меня есть печатная плата. Обновление прошивки на самом деле довольно просто, даже в наши дни. За время, необходимое вам для адаптации M301, у вас уже будет новая прошивка., @FarO

Да, файл Marlin pins.h для печатной платы очень помог. Это была поисковая система, которая выплевывала ненужный материал, @K Mmmm


1 ответ


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

4

Какую команду я должен был бы ввести, чтобы сделать этот ПИД-контроллер бах-бах

Нет такой вещи, как "пиф-паф-ПИД-контроллер". "бах-бах" - это взаимоисключающее понятие ПИД. Команда M301 хороша только для точной настройки параметров PID-контроллера, но она не позволит вам переключиться на bang bang. К сожалению, вы должны обновить прошивку, если хотите использовать bang bang.

Вы можете попробовать установить все значения равными 0, кроме P, которое вы устанавливаете на максимально высокое значение. Это приведет к тому, что выход будет полностью включен, когда температура ниже заданного значения, и полностью выключен, когда она выше заданного значения. Однако это все еще может привести к быстрому щелчку реле, когда температура колеблется вокруг заданного значения. Bang bang имеет некоторый встроенный гистерезис (т. Е. Есть запас вокруг заданной точки, в которой реле никогда не будет переключаться); нет никакого способа эмулировать это с помощью PID.


,

Должен быть способ сделать это как можно ближе к бац-бац-бац, @K Mmmm

@steveantwan Нет, нет. Чтобы выпить красное вино из белого бокала, вы должны сначала опорожнить бокал., @Trish

@steveantwan Я добавил кое-что о подражании bang bang с PID., @Tom van der Zanden

Спасибо. Можно также эмулировать гистерезис, если вы только пытаетесь что-то нагреть. Например: `M109 S105; M109 S95; M109 S105; M109 S95 ... (повторяется) " будет поддерживать температуру примерно в центре около 100 градусов - это будет хорошо сочетаться с вашим предложением по изменению PID. Я думаю, что вы все равно будете щелкать в течение нескольких секунд каждый раз в течение периода "watch temp"............ Но я решил просто наклониться назад, чтобы прошить тайную прошивку, чтобы включить бац-бац, @K Mmmm

Если вы используете SSR, вы можете просто использовать PID как есть. Кроме этого, печатная плата также является просто платой на основе AVR и по-прежнему поддерживается в Marlin 2.0 как "ПЕЧАТНАЯ плата" или "ПЕЧАТНАЯ ПЛАТА_REVF"., @towe

Хотя RevF использует Teensy2.0++, и мне было трудно найти правильный способ заставить все работать. Оказывается, в файле Marlin pins.h для печатной платы есть довольно хорошие инструкции, а также вики-копия для перепрошивки из Linux, @K Mmmm