Instrumentación Aquino Alvarado Miguel
Balbi González Michele Ramón Jaramillo Cajica Ismael
Pacheco Zepeda Juan Rafael Pineda Torres Julio Adolfo
Control PID de un sensor de temperatura
INTRODUCCIÓN
Hoy en día el control PID es el más utilizado para sistemas industriales que necesiten exactitud en sus mediciones. El control consiste como sus siglas lo indican en tres tipos de acción: Proporcional, Integral y Derivativa. El control se debe aplicar con base en la función de transferencia G(s) para obtener un sistema estable.
RESUMEN
En esta práctica se implementó mediante un microcontrolador PIC16F877A un control digital de tipo PID para un sistema de resistencias de potencia cuya temperatura fue censada con un integrado LM35, con el fin de tener una temperatura igual a la programada en el código como punto de referencia.
PLANTEAMIENTO DEL PROBLEMA
Observar, comprender y construir un circuito que sea capaz de mantener el valor censado de temperatura al margen de un rango especificado mediante un control de tipo PID (proporcional, integral y derivativo).
MARCO TEÓRICO Material
Protoboard: Tablero con orificios conectados eléctricamente en una configuración estándar. Se utiliza para conectar y probar conexiones de circuitos electrónicos sin tener que soldar o montar de manera permanente los componentes.
Cables
Potenciómetro: El potenciómetro es un dispositivo de resistencia variable mediante una perilla.
Fuente
de alimentación Lab-Volt
Microcontrolador: Circuito integrado programable. Es capaz de ejecutar las instrucciones que se le guardan en memoria, transferidas a él mediante un programador de PIC’s (se explica más adelante). Las instrucciones para el microcontrolador se
programan en lenguaje C y se compilan para generar el código .hex que se guarda en el PIC. PIC 16F877A: Es un microcontrolador de la familia 16FXXXX de Microchip. Su arquitectura es de 8 bits, tiene una RAM de 368 bytes.
El encapsulado PDIP, que fue el utilizado, le proporciona 40 pines de conexión. Tiene un conversor analógico/digital de 8 canales. Su voltaje de operación es de 2V a 5.5 V (siempre se trabajó muy cercano a 5V).
Resistencias
Cristal
Sensor de temperatura (LM35)
MOSFET de potencia
Capacitor: Es un componente que sirve para almacenar energía. El uso práctico en los circuitos eléctricos es el filtrado del voltaje de alimentación que entra al circuito. Existe en presentaciones diferentes: de “lenteja” (el de la izq.
de los que se muestran) y el electrolítico. Sus diferencias radican en que el primero no está polarizado y en los valores comerciales de capacitancia que se venden (los de lenteja se venden de menor capacitancia pero a voltajes más altos).
Desarrollo
Para llevar a cabo el control PID de la temperatura se tomó como modelo un circuito observado en internet para un heater o una especie de horno. La adaptación en físico se hizo con resistencias de alta potencia que se calientan cuando circula por ellas una corriente alta. Para alimentar el circuito de potencia se utilizó el módulo de LabVolt, para poder alcanzar voltajes altos y corrientes altas para conseguir temperaturas considerables para poder ser censadas. Cuando la corriente aumenta, la temperatura también lo hace y el sensor de temperatura LM35 se encarga de censar la magnitud de la temperatura adquirida por las resistencias.
La conexión del circuito funcionó por un momento en el que tras superar el rango establecido, controló y cortó la alimentación de corriente que recibían las resistencias mediante abrir y cerrar el interruptor interno del MOSFET. Lo siguiente que ocurrió fue que se dañó éste dispositivo de potencia y no se pudo confirmar la práctica de manera satisfactoria.
Conclusiones
El control PID es un factor fundamental para obtener un circuito y un sensado exacto. Hoy en día es de los sistemas más utilizados en la industria por su estabilidad y precisión.
El funcionamiento general es que al acercarse al punto de referencia, el microcontrolador toma la decisión y aplica cambios para cortar la corriente que circula por las resistencias, dejando que se enfríen.
Si sensa un temperatura muy baja, eniende la alimentación y deja que la corriente fluya y caliente las resistencias de nuevo.
El control realiza esta acción varias veces, cada vez acercándose más y más a lareferencia, hasta que si alcance el punto exacto y el error entre la salida y la entrada sea igual a 0.
Anexos Código para el microcontrolador 16F877A
#INCLUDE <16F877A.H>
#DEVICE ADC=10
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOWDT
#include <lcd.c>
VOID MAIN(){
INT16 valor, control; //Variables para lectura de ADC y señal de Control a modulo CCP
FLOAT a,b,c; //Constantes para parámetros de controlador PID FLOAT TEMPERATURA_LIMITE; //Referencia de Temperatura
FLOAT rt,eT,iT,dT,yT,uT,iT0,eT0; //Variables de controlador PID FLOAT max,min; //Variables para anti-windup
min=0.0;
max=1000.0;
iT0=0.0;
eT0=0.0;
a=0.1243;
b=0.0062;
c=0.6215;
TEMPERATURA_LIMITE=120.0; //Set Point r(kT)= 120°C
setup_timer_2(t2_div_by_4,249,1); //Configuracion de Timer 2 para establecer frec.
PWM a 1kHz
setup_ccp1(ccp_pwm); //Configurar modulo CCP1 en modo PWM setup_adc_ports(all_analog); //Configurar ADC
setup_adc(adc_clock_internal);
set_adc_channel(0); //Seleccionar Canal 0 para sensor de Temperatura delay_us(20);
lcd_init();
while(true){
valor=read_adc(); //Leer ADC
//yT=5000.0*valor/1024.0; //Escalizar señal de salida y(kT) yT=500.0*valor/1024.0; //Escalizar señal de salida y(kT)
//yT=(valor/2)-6; //conversion de ADC a grados centigrados printf(lcd_putc, "\f %01.2F grados ",yT);
rT=TEMPERATURA_LIMITE;
eT=rT-yT; //Calcular senal de error e(kT) iT=b*eT+iT0; //Calcular termino integrativo i(kT) //0.0062*eT+0
dT=c*(eT-eT0); //Calcular termino derivativo d(kT) //0.6215(eT-eT0)
uT=iT+a*eT+dT; //Calcular senal de control u(kT) //iT+0.1243*eT+dT
if (uT>max){ //Anti-windup uT=max;
} else {
if (uT<min){
uT=min;
} }
control=uT;
set_pwm1_duty(control); //Transferencia de senal de control al actuador iT0=iT;
eT0=eT;
delay_ms(1000); //Periodo de muestreo T=0.1s }
}
Simulación en PROTEUS
Fotos de circuito físico