De Arossini

Introducción sobre Control PID

PID es el "CUCO" de los electrónicos que trabajan controlando procesos. El "CUCO" en Argentina, es un ser que asusta a los niños cuando crean problemas.

Básicamente se debe usar PID cuando deseamos por ejemplo controlar la temperatura de un horno y queremos que se mantenga lo más constante posible, sin altibajos. Es un problema complicado, muy complicado, pero con Arduino lo haremos bastante fácil y económicamente una vez que entendamos lo que debemos hacer.

1) Introducción a PID

PID (Controlador Proporcional-Integral-Derivativo) es un algoritmo de control que trata de compensar las características de un sistema. Un sistema es por ejemplo una resistencia alimentada con una fuente. Con un sensor medimos la temperatura y controlando la alimentación apagamos y prendemos para que la temperatura se mantenga constante. Pero ello no ocurre porque en el sistema hay inercias térmicas y la temperatura será como un diente de sierra. Cuanto mayor la inercia serán mayores los altibajos. El método de control PID sirve para que la temperatura se mantenga bastante constante, tanto como lo deseemos.

El sistema se basa en tres componentes principales (Valores de tres constantes) en un lazo de control PID. Cada componente se prefija con una ganancia constante, y cuando se suman, le dan el valor de control instantánea que utiliza para controlar el sistema. Continuamente se controla la temperatura comparándola con el valor deseado para también continuamente corregir la tensión de alimentación de manera que nuestra temperatura se mantenga lo más constante posible.

Por lo general, se está generando una tensión para controlar el sistema, por lo que cada componente puede ser pensado como una contribución con un voltaje determinado a su salida final.

Va a haber una tensión correspondiente al estado actual del sistema (posición, temperatura, etc) que se llama Variable de proceso o PV. El PV es el valor que se pasa al lazo de control PID para decirle el estado del sistema.

Tenemos una (SP) Tensión de consigna, correspondiente al estado que desea PV para llegar. Básicamente, queremos el lazo PID para impulsar el sistema a que SP y PV sean iguales.

En tercer lugar, tenemos una tensión de control, u, que corresponde al valor de la tensión instantánea que utiliza para conducir el sistema hacia el voltaje SP. La tensión de control u puede ser pensada como lo que se envía realmente al sistema para dirigirlo hacia donde se quiere que vaya. Es análogo a un acelerador de automóvil.

Serie de trabajos con PID

Esta es una serie de ocho trabajos, encadenados entre sí, donde aprenderemos y usaremos distintos controles con PID. Para que no haya confusiones, mantengo el número y el nombre de los trabajos que ya están presentados en www.arossini.com.ar Ellos serán:

1) 128 - Graficador de 3 canales para PC y Visual Basic 6.0

Es un graficador para PC, Windows, de tres canales, en el que veremos las curvas de las tres variables y el Setpoint (Temperatura deseada) para poder ajustarlas con cierta facilidad. Se puede bajar el ejecutable y todos los archivos para poder editar y modificar a voluntad esta aplicación.

2) 146 - Arduino - Sensor de temperatura LM35

Conectamos el Sensor de Temperatura LM35 al Arduino y registramos las temperaturas en el Serial, en valores en Grados Centígrados. En el archivo Zipeado está la información necesaria y los archivos.INO. Podrán bajar un DOC, con el procedimiento y un ZIP con la información y los archivos INO.

3) 147 - Arduino + LM35 - Control de temperatura Proporcional

Es un avance sobre el trabajo 146. Le agregamos al Arduino un módulo de potencia con un transistor TIP122 de 5 Amper y 50 Volt. Controlaremos la temperatura con un algoritmo Proporcional. Para ajustar el valor de la constante Kp, usaremos el programa Ardu Graficador (Trabajo Número 128) que nos permite ver las curvas de Setpoint, Input y Output. Es una introducción para el próximo trabajo que será sobre un Control PIC. En el archivo Zipeado está la información necesaria y los archivos.INO. Podrán bajar un DOC, con el procedimiento y un ZIP con la información y los archivos INO.

4) 148 - Arduino + LM35 - Control de temperatura PID

Es un avance sobre el trabajo 147. Seguimos con el módulo de potencia con transistor TIP122 de 5 Amper y 50 Volt. Controlaremos la temperatura con un algoritmo Proporcional Integrativo Diferencial o PID. Para ajustar los valores de las constantes que ahora son tres, Kp, Kd y Ki, usaremos el programa Ardu Graficador (Trabajo Número 128) que nos permite ver las curvas de Setpoint, Input y Output. Lo interesante es que puedan analizar las diferencias con el trabajo anterior. Como siempre, en el archivo Zipeado está la información necesaria y los archivos.INO. Podrán bajar un DOC, con el procedimiento y un ZIP con la información y los archivos INO.

5) 149 - Arduino + LM35 + Potenciómetro Setpoint - Control de temperatura PID

Es un avance sobre el trabajo 147. Seguimos con el módulo de potencia con transistor TIP122 de 5 Amper y 50 Volt. Este trabajo usa la Librería PID_v1 de Arduino y agregamos un potenciómetro para variar manualmente el Setpoint. Controlaremos la temperatura con la Librería Arduino PID. Para ajustar los valores de las constantes que ahora son tres, Kp, Kd y Ki, usaremos el programa Ardu Graficador (Trabajo Número 128) que nos permite ver las curvas de Setpoint, Input y Output. Lo interesante es que puedan analizar las diferencias con el trabajo anterior. Como siempre, en el archivo Zipeado está la información necesaria y los archivos.INO. Podrán bajar un DOC, con el procedimiento y un ZIP con la información y los archivos INO.

6) 150 - Arduino + LM35 + Setpoint por programa - Control de temperatura PID

Es un avance sobre el trabajo 147. Seguimos con el módulo de potencia con transistor TIP122 de 5 Amper y 50 Volt. Este trabajo usa la Librería PID_v1 de Arduino. Controlaremos la temperatura con la Librería Arduino PID. Para ajustar los valores de las constantes que ahora son tres, Kp, Kd y Ki, usaremos el programa Ardu Graficador (Trabajo Número 128) que nos permite ver las curvas de Setpoint, Input y Output. Lo interesante es que puedan analizar las diferencias con el trabajo anterior. Como siempre, en el archivo Zipeado está la información necesaria y los archivos.INO. Pueden bajar un DOC, con el procedimiento y un ZIP con la información y los archivos INO.

7) 151 - Arduino + LM35 + Setpoint por programa - Control de temperatura PID Salida Relay

Seguimos con el módulo de potencia con transistor TIP122 de 5 Amper y 50 Volt. Este trabajo usa la Librería PID_v1 de Arduino. Controlaremos la temperatura con la Librería Arduino PID. Para ajustar los valores de las constantes que ahora son tres, Kp, Kd y Ki, usaremos el programa Ardu Graficador (Trabajo Número 128) que nos permite ver las curvas de Setpoint, Input y Output. Lo nuevo es que la salida en lugar de ser PWM, será on/off controlando un Relay.. Como siempre, en el archivo Zipeado está la información necesaria y los archivos.INO

8) 152 - Arduino + LDR + Setpoint por programa + Lámpara 12 V, 10 W

Seguimos con el módulo de potencia con transistor TIP122 de 5 Amper y 50 Volt. Este trabajo usa la Librería PID_v1 de Arduino. Controlaremos el encendido de la Lámpara con la Librería Arduino PID. Para ajustar los valores de las constantes que ahora son tres, Kp, Kd y Ki, usaremos el programa Ardu Graficador (Trabajo Número 128) que nos permite ver las curvas de Setpoint, Input y Output. La salida es PWM. Como siempre, en el archivo Zipeado está la información necesaria y los archivos.INO. Podrán bajar un DOC, con el procedimiento y un ZIP con la información y los archivos INO.

El algoritmo PID es mostrado en la siguiente Ecuación.

Está la parte proporcional, integral y diferencial en la ecuación, que son cada uno de los sumandos.

Las constantes  

son usadas para “setear” el signo y la ganancia de cada parte de esta ecuación.

 

es el “error” proporcional que es

La variable t corresponde al tiempo que corre en el sistema, y es simplemente una variable de integración.

La parte proporcional de la ecuación tiene en cuenta la separación entre PV y SP.

La parte diferencial tiene en cuenta lo rápido que nos estamos moviendo ( si se acerca al SP muy rápido puede pasarse de largo) , y se puede utilizar para reducir la parte proporcional si nos estamos acercando , o nos acelerará si no llegamos a pesar de nuestra contribución proporcional.

La parte integral de la ecuación tiene en cuenta el tiempo que hemos estado fuera del punto de ajuste , lo que contribuye más a nuestra salida cuanto más tiempo nos falta el PS . Esto es importante porque nuestras contribuciones P y D se suele llevar a nuestro PV a ceder ligeramente por encima o por debajo de nuestra variable SP . ( Controlador PID , 2013 )

A no asustarse con esto, pues un Arduino, el que tengamos a mano, hará todos los cálculos y nos dará como salida la tensión de alimentación.

2) Controlando un Elemento Calefactor con PID

2.1) Instalar Librerías de Arduino

No escribiremos nuestro loop PID de control porque es muy difícil. Usaremos una librería que ya existe.

Primero bajamos la librería desde https://github.com/br3ttb/Arduino-PID-Library/archive/master.zip o de otro lado. La librería está en los archivos ZIP de este trabajo. Solo hay que descomprimir.

Luego instalamos la librería en el Arduino IDE según explicaremos en cada caso.

Para usar la librería la cargamos mediante Toolbar -> Sketch -> Import Library -> PID_v1. Estará cargada si vemos esta línea de programa:

#include <PID_v1.h>

2.2) Programa o Código

El código está también en el archivo.ZIP.

La línea del código que nos da la librería es:

PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);

Esta línea hace todos los cálculos y se llama con:

myPID.Compute();

dándole los valores de las variables: Input, Setpoint, Kp, Ki, y Kd, las que se usan en los cálculos.

En los trabajos siguientes aparecerán nuevas informaciones para entender todo, en distintas aplicaciones.

3) ¿Como seguimos?

Seguiremos con el trabajo 128 - Graficador de 3 canales para PC y Visual Basic 6.0

Es solo una herramienta para graficar las variables que manejaremos y que nos servirá de guía.

Si ustedes tienen otro tipo de graficador, lo pueden usar. Este que les presento es gratis y a mí me sirve.

0
0
0
s2smodern

SONIDO AMBIENTAL

SONIDO AMBIENTAL

Ladelec instala el sonido ambiental a Centros Comerciales, Aeropuertos, Iglesias, escuelas, Colegios, Universidades, academias, oficinas, salas de espera, Clínicas...

leer mas

ASESORIA EN TESIS DE GRADO

MADRID1

Ladelec ofrece a estudiantes de ingeniería electrónica y afines, asi como a técnicos, tecnólogos y aficionados los servicios personalizados de ayuda para todo nivel de aprendizaje de la ciencia electrónica.

leer mas

ALQUILER AMPLIFICACIÓNES

ALQUILER AMPLIFICACIONES

Servicio de Alquiler de equipos amplificadores de potencia de audio para toda ocasión, que incuyen las cabinas de refuerzo de Sonido y los Amplificadores en potencias de hasta 20.000 W RMS.

leer mas