PID vs Bang Bang

Si queremos controlar la temperatura de un elemento de nuestra impresora 3D a través de un calentador y un interruptor, lo primero que podría uno idear es:

  • Seleccionar una temperatura de consigna.
  • Calentar cuando la temperatura real esté debajo del valor de consigna.
  • No calentar cuando la temperatura sea igual o superior a este valor.

Este método sencillo es el sistema "Bang Bang", funciona como lo haría un termostato. Y funciona bien en los siguientes supuestos:

  • La inercia térmica del elemento es muy alta.
  • La velocidad de calentamiento es muy baja.
  • Unos pocos grados de diferencia y una pequeña oscilación de temperatura no causarán problemas.

Esta configuración es conocida como "Bang bang" y tiene una ventaja sobre la configuración por PID, el poco uso de CPU.

Es perfectamente válida para camas calientes no muy potentes, con gran inercia térmica y poca dilatación térmica, como por ejemplo, cuando usamos un cristal templado de borosilicato.

Bang bang, no es un método apropiado para fusores ni camas calientes ligeras y que usen flejes metálicos, ya que las oscilaciones térmicas pueden provocar:

  • Dilataciones térmicas en la cama que provoca marcas en Z visibles.
  • Cambios de color en el filamento.
  • Atascos en el extrusor.

Estos tres problemas se soluciona habilitando y configurando correctamente el PID. Para el fusor, o para el fusor y la cama, según sea necesario.


En la imagen anterior se puede apreciar un ejemplo y calibración del PID, la temperatura oscila bruscamente en intervalos, este sería el comportamiento del extrusor configurado como "Bang Bang", el software de la impresora 3D extrae de estas curvas los valores del PID.


¿Cómo funciona el PID?




El PID regula la potencia de calentamiento según sea necesario, cuando estemos cerca de la temperatura objetivo calentaremos con poca potencia, mientras que cuando estemos lejos calentaremos con mayor intensidad, además tiene en cuenta otros factores como la velocidad de calentamiento actual y los cambios en esta. 


En la imagen anterior a la derecha podemos observar la estabilidad de la temperatura tras una breve oscilación inicial, esto nos proporcionará un acabado preciso en nuestras piezas, ya que la temperatura tiene relación con la extrusión, la contracción térmica de los elementos (extrusor y cama), la unión entre capas, el color y brillo de las piezas, etc. Mantener esto constante nos asegura mejores resultados.


¿Qué significan las siglas P.I.D.?


P: Proporcional.

I: Integral.

D: Derivada

  • El término P es el más sencillo de entender, ya que ofrece regular la potencia suministrada proporcionalmente a la diferencia entre la temperatura objetivo y la real. Si hay 2 grados de diferencia, calentará el doble que si hay 1 grado.
  • El término I es el encargado de "amortiguar" el término "P", toma como referencia la velocidad de calentamiento y entre otras cosas evita que "nos pasemos".
  • El término D evita que la temperatura quede fija (I no actúa) cerca de la temperatura objetivo (P no actuaría tampoco). 

Precauciones a tener en cuenta:

El PID se calibra en determinadas condiciones, alterar esto puede hacer que necesitemos volver a calibrar el PID, o incluso puede generar ciertos problemas:

  • Ventilador de capa.
    Generalmente este es el elemento que causa mayores conflictos:
    • Puede bajar drásticamente la temperatura de la cama, provocando que la pieza pueda llegar a despegarse o haciendo que salten las protección de Marlin por enfriamiento excesivo de la cama.
      Para evitar esto recomendamos desactivar el ventilador de capa en las primeras capas.
    • Puede provocar lo mismo en el hotend, además si lo usamos para soportes y se usa de forma intermitente puede provocar que la temperatura fluctúe en exceso. Para esto habilitamos en nuestro Marlin:
      #define ADAPTIVE_FAN_SLOWING
      Con esta opción activa, si la temperatura del extrusor cae en exceso la velocidad del ventilador se reducirá el tiempo necesario para que la temperatura del fusor se recupere.
  • Calcetín para el fusor. Recomendamos ponerlo siempre para ayudar a que la temperatura sea lo más estable posible, quitarlo puede provocar que tengamos que recalibrar el PID.
  • Diferencias entre bases de impresión, ya que si por ejemplo colocamos un cristal, este tiene mayor inercia térmica, y podría llegar a ser recomendable calibrar el PID para este elemento.


En este vídeo realizado por "Estudio Roble" se muestra de una forma mecánica, muy visual, las diferentes variables involucradas y como estas influyen en nuestro sistema. 


Gcode para ajustar el PID:

Si queremos afinar mucho el PID para cada impresión, podemos calcular los valores para cada temperatura e introducirlos en el perfil del material de forma que se actualicen con cada impresión y tener valores distintos por ejemplo para PLA (190 y 60) y ABS (240 y 100)

Igualmente podemos crear ciertos Gcode que hagan una auto calibración del PID, esto no es recomendable hacerlo con excesiva frecuencia:


En esta imagen podemos ver el ejemplo de una impresión con el PID correctamente ajustado, se aprecia como, el extrusor tiene muy pequeñas oscilaciones debido al arranque y cambios de flujo o ventilador de capa, y como la cama se muestra aún más estable.


¿Te parece interesante este artículo?  Te invitamos a comentar cualquier duda al respecto, así como compartirlos en las redes sociales para que pueda ayudar a más personas.