Control Digital

20
Página 1 de 20 FUNDACION UNIVERSITARIA LOS LIBERTADORES INGENIERIA ELECTRÓNICA CONTROL DIGITAL Control PID de Temperatura de un Bombillo de 12Vdc, 21W, 80°C, implementado en Arduino Leonardo. Gamalier González G Abstract With Arduino Leonardo is implement a PID digital control of a temperature system (plant) comprises a bulb of 12V and a temperature sensor. The temperature system comprising a bulb of 12V and a temperature sensor. This control acts on the plant based on the combination of three input switches, and depending on the feedback voltage from the sensor to the controller input. System output should ideally be set to the reference value given by the combination of the switches and in the shortest possible time. Resumen Con el Arduino Leonardo se implementa un control PID digital de un sistema de temperatura (planta) compuesto por un bombillo de 12VDC y un sensor de temperatura. Dicho control actúa sobre la planta en función de la combinación de tres interruptores de entrada y la realimentación del voltaje del sensor a la entrada del controlador. La salida del sistema se debe establecer idealmente al valor de referencia dado por la combinación de los interruptores y en el tiempo mínimo posible. 1. OBJETIVOS 1.1. Objetivo General Diseñar e implementar un control PID digital de temperatura sobre un bombillo de 12VDC que genera hasta 80°C de acuerdo a una referencia de temperatura dada por la combinación de tres interruptores a la entrada del controlador. Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

description

Sistema de control temperatura PID

Transcript of Control Digital

Page 1: Control Digital

Página 1 de 16

FUNDACION UNIVERSITARIA LOS LIBERTADORESINGENIERIA ELECTRÓNICA

CONTROL DIGITAL

Control PID de Temperatura de un Bombillo de 12Vdc, 21W, 80°C, implementado en Arduino

Leonardo.Gamalier González G

AbstractWith Arduino Leonardo is implement a PID digital control of a temperature system (plant) comprises a bulb of 12V and a temperature sensor. The temperature system comprising a bulb of 12V and a temperature sensor. This control acts on the plant based on the combination of three input switches, and depending on the feedback voltage from the sensor to the controller input. System output should ideally be set to the reference value given by the combination of the switches and in the shortest possible time.

ResumenCon el Arduino Leonardo se implementa un control PID digital de un sistema de temperatura (planta) compuesto por un bombillo de 12VDC y un sensor de temperatura. Dicho control actúa sobre la planta en función de la combinación de tres interruptores de entrada y la realimentación del voltaje del sensor a la entrada del controlador. La salida del sistema se debe establecer idealmente al valor de referencia dado por la combinación de los interruptores y en el tiempo mínimo posible.

1. OBJETIVOS

1.1. Objetivo GeneralDiseñar e implementar un control PID digital de temperatura sobre un bombillo de 12VDC que genera hasta 80°C de acuerdo a una referencia de temperatura dada por la combinación de tres interruptores a la entrada del controlador.

1.2. Objetivos Específicos- Caracterizar el sistema de temperatura a implementar.- Montar el circuito electrónico necesario para el funcionamiento del sistema.- Diseñar el algoritmo necesario para controlar dicho sistema de temperatura

sobre la plataforma Arduino.- Análisis de resultados. - Conclusiones.

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 2: Control Digital

Página 2 de 16

2. Equipos e instrumentos usados en la práctica- Fuente de volatje de 5VDC y 12VDC.- Bombillo de 12VDC, 21W.- Circuito integrado LM35 (sensor de temperatura).- Transistor MOSFET, Canal N, IRFZ44.- Circuito Integrado LM324 (Ampl. Op).- Arduino Leonardo.- PC con el software de Arduino instalado.- Multímetro digital.- Ventilador de 12VDC.- Resistencia de 0.39Ω (5W).- Resistencias de 470 Ω, 3,3k Ω ,10k Ω,27k Ω y 100k Ω.

3. Procedimiento desarrollado en la práctica

3.1. Caracterización del sistema de Temperatura

A continuación se presenta un diagrama de bloques del sistema de temperatura:

fig.1 (diagrama del sistema de temperatura a implementar)

3.1.1. ReferenciaLa referencia se logra combinando los tres interruptores del dipswitch para dar ocho posibles valores. Se implementa la configuración de resistencias desde Vcc hasta cada entrada del respectivo interruptor y la otra terminal del interruptor se conecta a tierra (comúnmente le llaman a esta configuración pull-up). La configuración es la siguiente:

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 3: Control Digital

Página 3 de 16

fig.2 (Configuración del dipswitch para poder asignar un valor de referencia)Las ocho diferentes combinaciones y los valores de temperatura que se quieren asignar como referencia se muestra en la siguiente tabla:

Tabla 1

S1 S2 S3T °C

S1 S2 S3T °C

0LOW

0LOW

0LOW

25,0 1HIGH

0LOW

0LOW

56,3

0LOW

0LOW

1HIGH

32,8 1HIGH

0LOW

1HIGH

64,2

0LOW

1HIGH

0LOW

40,6 1HIGH

1HIGH

0LOW

72,0

0LOW

1HIGH

1HIGH

48,5 1HIGH

1HIGH

1HIGH

80,0

Como se puede ver en la tabla 1, se asignó la referencia de 25 °C a la combinación (0 0 0) ya que pertenece a la temperatura ambiente y se asignó 80 °C a la combinación (1 1 1) ya que el bombillo utilizado se mantiene a esa temperatura en un buen periodo de tiempo cuando se conecta directamente a una fuente de 12VDC que entregue una corriente mayor o igual a 2A (ver fig.3).

A continuación se muestra la gráfica del resultado de muestrear la señal de temperatura del bombillo al conectarlo directamente a 12VDC:

fig.3 (temperatura del bombillo en un periodo de 0 hasta 11 minutos aproximadamente)

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 4: Control Digital

Página 4 de 16

3.1.2. Descople y AmplificaciónLa salida del controlador PID digital llega a una etapa de desacople y amplificación, desacople debido a que la salida del microcontrolador se encuentra en un estado de baja impedancia y puede estar expuesta a riesgos de corto circuito o sobrecarga, y el amplificador operacional tiene una impedancia de entrada muy grande, lo cual protege dicha salida. Y amplificación debido a que el bombillo consume 21W a plena carga, es decir, exige una corriente de 1.75A cuando se alimenta a 12V, para ello se utiliza un transistor MOSFET.

NOTA: Se puede implementar también un opto-acoplador, el cual cumple la misma función.

3.1.2.1. Circuito Integrado LM324

fig.4 (diagrama interno del LM324)

El circuito implementado con uno de los amplificadores del integrado es el siguiente configurado como amplificador no inversor:

fig.5 (circuito implementado para amplificar la señal de salida del microcontrolador)

La ganancia debe ser lo suficientemente grande para asegurar que a la compuerta del transistor MOSFET siempre se aplique una diferencia de potencial de por lo menos 4V y menos de 12V que es la alimentación aplicada al Amplificador Operacional.

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 5: Control Digital

Página 5 de 16

Se logró medir la salida del controlador digital en el osciloscopio y en ciertos momentos la amplitud de tensión de salida disminuyó hasta 500mV en estado alto y su amplitud máxima alcanzó los 4 voltios, ello debido a la frecuencia de trabajo en ese instante, por esta razón, se calculó una ganancia para el amplificador de:

A=R2R1

+1= 27k3.3k

+1=9.18

La resistencia R3 agregada a la entrada asegura también que cuando la salida del amplificador operacional sea cero, la compuerta del MOSFET no intente establecer un estado flotante de tensión.

3.1.2.2. Transistor MOSFET IRFZ44El transistor es el que va a suministrar la corriente requerida por la fuente de temperatura, es decir, por el bombillo de 12V, el cual consumirá a plena carga una intensidad de corriente igual a 1.75 Amperios.El transistor es canal N y tiene las siguientes características máximas:

fig.6 (valores máximos del transistor IRFZ44)

El transistor tiene un tiempo típico de retardo de encendido (td(on)) de 20 ns y un tiempo de retardo típico de apagado (td(off)) de 68 ns. Si tomamos un criterio de 10 veces la suma de dichos retardos, se tiene un tiempo de 880 ns, es decir, una frecuencia de 1.136 MHz, una frecuencia de trabajo sobrada para esta práctica ya que el PWM del Arduino, que es la señal de salida del controlador del sistema, trabaja a 500Hz aproximadamente.

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 6: Control Digital

Página 6 de 16

El circuito implementado con el MOSFET es el siguiente:

Fig.7 (montaje realizado con el transistor MOSFET IRFZ44)

El valor de RG se escogió de 10k para no dejar que el terminal de compuerta del transistor llegase a tener estados de voltajes flotantes y evitar una salida no deseada. La resistencia Rs se colocó con el fin de estabilizar el punto de trabajo del mosfet y evitar tensiones negativas al sustrato de fuente, su valor debe ser pequeño para no requerir un voltaje relevante de la fuente y debe ser de potencia para soportar la corriente requerida.

3.1.3. Sensor de Temperatura LM35El circuito integrado LM35 utilizado tiene un encapsulado TO-92 y puede llegar a sensar temperaturas de hasta 150°C.

Su voltaje de alimentación va desde 4 hasta los 30V, sin embargo para esta práctica se alimentó a 5VDC.

Su relación voltaje-grados Celsius es de 10mV/°C.

El montaje realizado fue el siguiente:

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 7: Control Digital

Página 7 de 16

fig.8 (circuito implementado con el LM35)3.1.4. Controlador PID discreto

De acuerdo al diagrama del sistema de temperatura (fig.1), se obtiene una nueva representación gráfica del sistema en función de sus variables discretas:

fig.9 (Diagrama de control discreto)

Donde:

x(k) = entrada de referencia (combinación del dipswitch)e(k) = error entre la entrada y la salidau(k) = acción de Control (PID)y(k) = salida o respuesta de la planta.

Debido a que se está trabajando con variables discretas, se requiere de un periodo de muestreo de las señales, el cual llamaremos h.

Por tanto, se tienen las siguientes ecuaciones:

[1] e (k )=x (k )− y ( k )

[2] u (k )=kp∗e (k )+kp∗Td ( e ( k )−e (k−h)h )+ kp∗hTi ∑

k=1

n

e (k )

Donde:

kp = constante proporcionalkp*Td = kd = constante derivativakp/Ti = ki = constante integral

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 8: Control Digital

Página 8 de 16

e(k-h) = error anterior

3.1.5. Plano y montaje del circuito

El plano del circuito implementado es el siguiente:

fig.10 (Plano del circuito del sistema de temperatura)

Y el circuito electrónico montado es el siguiente:

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 9: Control Digital

Página 9 de 16

fig.11 (montaje del circuito implementado en la práctica)3.2. Algoritmo desarrollado sobre el Arduino Leonardo

El algoritmo desarrollado es el siguiente:

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 10: Control Digital

Página 10 de 16

fig.11 (código programado en el Arduino)Se deben conectar los respectivos pines de entrada y salida mediante unos jumpers:

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 11: Control Digital

Página 11 de 16

- El pin 5 del Arduino, que pertenece a una salida PWM, se conecta a la entrada del amplificador operacional, y la salida del Amplificador operacional se conecta al terminal de compuerta del MOSFET.

- El pin A4, que es una entrada analógica, debe conectarse a la salida del sensor de temperatura LM35.

- Los pines 2,3 y 4 que pertenecen a entradas digitales, se conectan respectivamente a su correspondiente interruptor en el dipswitch.

- El pin GND del Arduino se conecta al negativo de la fuente de alimentación.

3.2.1. Explicación de las diferentes variablespwmout: el PWM en el Arduino trabaja a una frecuencia de 500Hz aproximadamente y su ancho de pulso varía dependiendo de su escala, que va desde 0 hasta 255, siendo 255 para un ancho de pulso del 100% e idealmente con una amplitud de 5V. Este ancho de pulso es el que varía de acuerdo al control requerido. Esta variable es la que declara el número del puerto de salida para el pwm.

sw1, sw2 Y sw3: Estas son las lecturas digitales en los pines 2,3 y 4 que van conectadas a sus respectivos interruptores. Al subir o bajar un interruptor, se está generando un valor digital a dicho pin de entrada, ya sea alto (HIGH) o bajo (LOW), para así después dependiendo de dicha combinación, declarar el valor de referencia respectivo.

ref: Esta variable es diferente por cada combinación de los interruptores ya que nos da la temperatura de referencia y al vez es un valor necesario para calcular el error del sistema y accionar el control respectivo aumentando o disminuyendo el ancho de pulso del PWM a la salida. Su valor se genera de la siguiente manera:Cuando la temperatura es máxima (80°C), la variable ref debe valer 255, que corresponde al máximo ancho de pulso del PWM. La temperatura ambiente es la referencia mínima del sistema que es de 25°, por lo ref valdría 69 cuando la combinación es (LOW LOW LOW). La siguiente tabla muestra la relación entre la combinación de los interruptores y la variable referencia:

Tabla 2

S1 S2 S3 ref S1 S2 S3 refLOW LOW LOW 69 HIGH LOW LOW 177

LOW LOW HIGH 97 HIGH LOW HIGH 204

LOW HIGH LOW 121 HIGH HIGH LOW 229

LOW HIGH HIGH 150 HIGH HIGH HIGH 255

Salida: Esta variable es la acción de control, la que da el valor del pwm, entre 0 y 255, es la que controla el ancho de pulso aplicado al bombillo y está dada por la ecuación [2].

Muestra: Es la variable correspondiente al valor leído del sensor de temperatura y es la que se realimenta al sistema para calcular el error con la variable ref y dependiendo de esa diferencia, ejecutar el control respectivo.

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 12: Control Digital

Página 12 de 16

4. Análisis de Resultados

4.1. Modelamiento del bombilloSe muestreó la temperatura del bombillo alimentado a 12VDC con el Arduino con un periodo de 100ms por un tiempo de 11 minutos aproximadamente, obteniendo la gráfica de la figura fig1.Se importaron los datos a Matlab para ser utilizados con la herramienta ident y estimar la función de transferencia.

La gráfica importada vs el escalón que se desea aplicar es la siguiente:

fig.12 (temperatura bombillo vs escalón de 80)

La función de transferencia estimada es:

4.2. Simulación en SimulinkSe simuló la función de transferencia en Simulink y se obtuvo la siguiente respuesta:

fig.13 (diagrama de simulación de la función de transferencia)

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 13: Control Digital

Página 13 de 16

fig.14 (respuesta de la función de transferencia)

Al adicionar el controlador PID se tiene lo siguiente:

fig.15 (diagrama de simulación con PID)

La respuesta obtenida variando los parámetros del PID y al final llegar a P=12, I=7 y D=1.7 para obtener la respuesta más óptima del sistema fue:

fig.16 (respuesta del sistema con el controlador PID)

La sintonización del PID se realizó de tal manera que no existiera sobrepicos, que el tiempo transitorio fuera lo más pequeño posible, y que los valores de las variables P, I y D no fueran tan exageradas, se aplica también el método de ziegler nichols de mantener la variable derivita igual a la cuarta parte de la integral.

Como se observa en la figura fig.16, el tiempo de subida se redujo en una tercera parte aproximadamente del tiempo inicial mostrado en la figura fig.15, es decir, que de 7.5 minutos requeridos para llegar a 80°C, se redujo a 2.25 minutos.

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 14: Control Digital

Página 14 de 16

4.3. Control P, PI y PIDSe quiere comparar las diferencias en implementar un control solamente proporcional (P), solamente proporcional-integral (PI) y el control completo proporcional-integral-derivativo (PID), y para ello se asignará la misma referencia de temperatura de 48.5°C y se compararán las diferentes respuestas.Para el control sólo proporcional se declaran las variables Integral y Derivativa igual a cero, por lo que la respuesta del sistema se muestra en la siguiente figura:

0.128 11.996 23.864 35.732 47.600 59.468 71.336 83.204 95.072 106.940118.80820.00

24.00

28.00

32.00

36.00

40.00

44.00

48.00

Temperatura con sólo control P

Tiempo (seg)

Tem

pera

tura

fig.17 (Respuesta del sistema con sólo control Proporcional)

Se puede observar que la temperatura se estabiliza a los 72 segundos a un temperatura promedio de 44°C.

Ahora, para el control PI se tiene la siguiente respuesta:

0.148 15.836 31.524 47.212 62.9 78.588 94.276 109.964125.652 141.3420.00

24.00

28.00

32.00

36.00

40.00

44.00

48.00

Temperatura con controlador PI

Tiempo (seg)

Tem

pera

tura

fig.18 (Respuesta del sistema con sólo control P-I)

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 15: Control Digital

Página 15 de 16

Como se observa en la figura fig.18, el sistema alcanza uno de sus valores estables (46°C) en 67 segundos aproximadamente, y presenta un pico en 73,6 segundos igual a 48,5°C, y baja nuevamente a 46 y vuelve a subir, pero esta vez hasta 48°C promedio, por lo que tiene un error de estado estacionario igual a 2°C.

Finalmente se tiene la respuesta del sistema con el controlador PID completo:

0.1 5.7 11.316.922.528.133.739.344.950.556.161.767.372.978.584.189.795.320.00

24.00

28.00

32.00

36.00

40.00

44.00

48.00

Temperatura con control PID

Tiempo (seg)

Tem

pera

tura

fig.19 (Respuesta del sistema con el control completo PID)

Para el sistema controlado por el controlador PID se observa que la temperatura empieza a estabilizarse igualmente en 67 segundos, pero no tiene un sobrepico tan alto antes de llegar al estado permanente y su error en estado estacionario es menor variando de 47 a 48 °C.

5. Conclusiones La gráfica generada por la herramienta ident de Matlab en comparación con

la gráfica de la temperatura muestreada del bombillo tiene una similitud del 93.66% tal como se muestra a continuación:

fig.20 (Similitud entre la gráfica real de temperatura y la gráfica modelada por el ident)

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014

Page 16: Control Digital

Página 16 de 16

Fue necesario adicionar al algoritmo condicionales if para evitar que tanto la variable integral como la diferencial tuvieran valores negativos, ya que éstos alteraban de manera relevante la salida del sistema, del mismo modo, se condicionó la variable integral para darle un límite máximo de 255 para que no existiera desbordamiento de dicha variable.

La respuesta del sistema presentó ciertos sobrepicos pequeños en las primeras tres temperaturas (25, 32.8 y 40.7)°C, esto pudo deberse a que el sistema se modeló con un escalón igual a 80°C y no con estos escalones significativamente menores.

Se pudo comprobar que efectivamente el sistema tardó 2 minutos y 15 segundos aproximadamente en estabilizar la temperatura desde 25 hasta 80 °C, pero para temperaturas menores lo logra estabilizar en menos tiempo, por obvias razones.

La sintonización del PID se realiza considerando el método de Ziegler Nichols de asignar el valor de la constante derivativa igual a la cuarta de la constante integral, sin embargo el valor de la constante proporcional se elige de acuerdo a la simulación en Simulink, teniendo en cuenta de no tomar valores muy grandes, e ir observando la salida hasta obtener la mejor respuesta posible.

La diferencia del control sólo proporcional con los controles PI y PID son muy relevantes, pero la diferencia entre el control PI y PID es muy poca debido a que la temperatura por naturaleza es muy lenta y la parte derivativa no pudo realizar un mayor aporte, se tendría que alimentar más de 12V al bombillo para que la temperatura aumentara más rápido, pero posiblemente el filamento del bombillo se destruiría.

Para observar el funcionamiento del sistema de temperatura se subió un video a YouTube el cual se encuentra en el siguiente link: https://www.youtube.com/watch?v=ZWWP38dGB4kEl video explica desde cómo se eligió el valor de referencia para cada temperatura, el funcionamiento del control PID discreto sobre el circuito físico y la respuesta de la temperatura a los diferentes controles P, PI y PID.

Fundación Universitaria Los Libertadores – Ingeniería Electrónica – Control Digital Gamalier González – Bogotá DC – Abril 2014