Ir al contenido principal

AUTOAJUSTE PID: CASO PRÁCTICO DE SINTONIZACIÓN EN IMPRESORA 3D

CONTROLADOR PID


Un controlador  PID es permite controlar un sistema en lazo cerrado para que alcance el estado de salida deseado. El controlador PID está compuesto de tres elementos para una acción Proporcional, Integral y Derivativa. Estas tres acciones son las que dan nombre al controlador PID.

Recordemos un poco que es un controlador PID y que parámetros debemos ajustar



Existe gran interés en realizar la sintonización de controladores PID en diferentes software, a continuación se presenta un ejemplo en el que se simula un control PID usando software libre SCILAB, a través de Xcos



AUTOTUNIG


AUTOAJUSTE DE CONTROLADORES PID



El controlador PID es la solución más común a los problemas prácticos de control. Aunque controladores con acción proporcional e integral han sido utilizados desde la época en que los molinos de viento y las máquinas de vapor eran las tecnologías dominantes, la forma actual del controlador PID emergió con los controladores neumáticos en los años 30 del siglo pasado. Una razón fue que las realizaciones con computadores hicieron posible añadir características tales como capacidad de autosintonía y diagnóstico, que son muy beneficiosas para los usuarios. Gradualmente, las capacidades potenciales del computador digital fueron explotadas al incorporar características tales como, autosintonía, adaptación y diagnóstico en los sistemas.


Si al momento de realizar la supervisión del proceso se observa un deterioro en el ajuste de controlador, se recomienda realizar un proceso de autoajuste, denominado también ajuste automático o autosintonía.

Existe un gran interés en la creación de herramientas para autoajuste a continuación se presenta algunos fabricantes en el área industrial.

 

Existen software como LabVIEW, Matlab, Scilab que también ofrecen esta herramienta.

DEFINICIÓN DE AUTOAJUSTE

 

Un procedimiento de sintonía automática consiste en tres pasos:

  1. ·         Generación de la perturbación del proceso.

  2. ·         Evaluación de la respuesta de la perturbación.

  3. ·         Cálculo de los parámetros del controlador.

Éste es el mismo procedimiento que utiliza un ingeniero experimentado cuando sintoniza un controlador manualmente. El proceso debe ser perturbado de alguna manera para determinar su dinámica. Esto se puede hacer de múltiples maneras, por ejemplo, aplicando escalones, pulsos o sinusoides a la entrada del proceso.

La evaluación de la respuesta a la perturbación puede incluir una determinación del modelo del proceso o una simple caracterización de la respuesta. La experiencia industrial ha mostrado claramente que la sintonía automática es algo altamente útil y deseable.

FÓRMULACIÓN AUTOAJUSTE 

La formulación de autoajuste bajo el método de oscilación y de respuesta a un escalón se presentan aquí...


EJEMPLO DE AUTOAJUSTE APLICADO A CONTROLADOR PID DE TEMPERATURA EN MICROCONTROLADOR

 

El presente ejemplo describe el proceso de autoajuste de temperatura llevado a cabo en una impresora 3D de deposición de hilo fundido, donde es importante regular la temperatura con la que se va a extruir el material. Esta impresora tiene una Arduino mega donde se ha implementado el control PID.

Es importante realizar el proceso de autoajuste, para así obtener los parámetros que se ingresarán en el firmare Marlin o similares, la gráfica siguiente presenta los efectos de la temperatura en el proceso de impresión, si el autoajuste presenta variaciones en la temperatura con una histéresis elevada se afectaría la impresión.


A continuación se presenta una captura de parte del algoritmo de autoajuste.

 

En el proceso se calienta la primera boquilla (E0), y circulará alrededor de la temperatura objetivo 8 veces (C8) a la temperatura dada (S200)


Se devolverá los valores para P, I y D, como se presenta a continuación.

sesgo: 92 d: 92 min: 196.56 max: 203.75
Ku: 32.59 Tu: 54.92
PID clasico
Kp: 19.56
Ki: 0.71
Kd: 134.26
PID Autotune terminado! Coloque las constantes Kp, Ki y Kd en la configuración.h
 

Para Marlin, estos valores indican los conteos del control de potencia soft-PWM (0 a PID_MAX) para cada elemento de la ecuación de control. El valor de softPWM regula el ciclo de trabajo de la señal de control f = (FCPU / 16/64/256/2) para el calentador asociado. 

·         La constante proporcional (P) Kp, que representa el cambio en la salida de softPWM por cada grado de error. 

·         La constante integral (I) Ki representa el cambio por cada unidad de error integrado en el tiempo. 

·         La derivada (D) constante Kd representa el cambio en la salida esperado debido a la tasa actual de cambio de la temperatura. 

En el ejemplo anterior, la rutina de autoajuste ha determinado que, para controlar una temperatura de 200 ° C, la PWM suave debe tener un sesgo de:

Salida= 92 + 19.56 * error + 0.71 * (suma de errores * tiempo) -134.26 * dError / dT.  

El valor de la 'suma de errores * tiempo' está limitado al rango +/- PID_INTEGRAL_DRIVE_MAX según lo establecido en Configuration.h. Controladores PID comerciales normalmente se usan parámetros basados ​​en el tiempo:

Ti = Kp / Ki

Td = Kd / Kp

Para especificar los parámetros integrales y derivados. En el ejemplo anterior:

Ti = 19.56 / 0.71 = 27.54s

Lo que significa un ajuste para compensar el error integrado durante aproximadamente 28 segundos; 

Td = 134.26 / 19.56 = 6.86s

Lo que significa un ajuste para compensar la temperatura proyectada de aproximadamente 7 segundos en el futuro.

A continuación se presentan las gráficas obtenidas del proceso de autosintonización del PID de temperatura del extrusor.

 

La figura siguiente presenta una sintonización con apenas 2 ciclos, se evidencia que el sistema no logra mantener una oscilación uniforme. El algoritmo sin embargo entrega resultados que en la práctica son poco satisfactorios.

 

Se puede observar el número de ciclos que se ha realizado para la sintonización que en la figura mostrada corresponde a 5. Al finalizar el proceso se obtienen los parámetros de sintonización del PID. El tiempo estimado es de 5 min para realizar el proceso de

 

Es posible realizar una prueba y verificar la salida de controlador a la temperatura deseada. En la figura se observa que el sistema logra estabilizarse alrededor de 200°C que es la consigna dada. Los datos obtenidos presentan un intervalo de 199.9 a 200.1 °C.

 

 

Amplia el tema revisa los siguientes links.



 





Entradas populares de este blog

CONTROL DIFUSO

LÓGICA DIFUSA El concepto de lógica difusa es muy común, está asociado con la manera en que las personas perciben el medio, por ejemplo ideas relacionadas con la altura de una persona, velocidad con la que se mueve un objeto, la temperatura dominante en una habitación, cotidianamente se formulan de manera ambigua y depende de quien percibe el efecto físico o químico, será su enunciado acerca de tal fenómeno.  Una persona puede ser alta o baja, algo puede moverse rápido o lento, una temperatura puede ser baja o moderada o alta, se dice que estas afirmaciones acerca de una variable son ambiguas por que rápido, bajo, alto son afirmaciones del observador, y estas pueden variar de un observador a otro.  Entonces podemos afirmar que la información puede ser valiosa, aún cuando no sea cuantificada. Podemos entender información como: Hace mucho frío en la habitación Corte el pan en rebanadas Agregue azúcar al gusto El carro se desplaza muy rápido Prepare el horno a una temperatura alta La comp

RNA

Transparencias de la clase Ejercicio de entrenamiento de perceptron: Pedro Ponce Cruz. Inteligencia Artificial con aplicaciones a la Ingeniería Comandos Básicos para RNA en Matlab PERCEPTRÓN %perceptrón para compuerta or entrada = [0 0 1 1; 0 1 0 1]; objetivo = [0 1 1 1]; net= perceptron; net = train(net,entrada,objetivo); view(net) salida = net(entrada) pesos=net.IW{1,1} bias=net.b{1,1} salida = 0 1 1 1 pesos = 1 1 bias = -1 %perceptrón para compuerta and entrada = [0 0 1 1; 0 1 0 1]; objetivo = [0 0 0 1]; net= perceptron; net = train(net,entrada,objetivo); view(net) salida = net(entrada) pesos=net.IW{1,1} bias=net.b{1,1} salida = 0 0 0 1 pesos = 2 1 bias = -3 A continuación se presenta el código en Matlab para entrenamiento de RNA para identificación de las vocales: clc; clear all format long %cada letra ha sido formada de 5x5 p1=[1;1;1;1;1; 1;0;0;0;1; 1;1;1;1;1;