DISEÑO DE CONTROLADORES DIGITALES CONTROL DIGITAL
PRESENTADO POR MIGUEL ANGEL IBARGUEN CODIGO: WILMAR IBAN GONZALEZ CODIGO:1073506530
TUTOR: JOAN SEBASTIAN BUSTOS
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
Objetivo
Implementar un controlador PID en un microcontrolador PIC 16f877A para un sistema de calefacción. La simulación se debe desarrollar en Proteus utilizando el Heated Oven (LumpedModel) y se establecerán los siguientes valores: Temperature Ambient (°C)= 30 Thermal Resistence to Ambient (°C/W)= 0.7 Oven Time Constant (sec)= 10 Heater Time Constant (sec)= 1 Temperature coefficient (V/°C)= 1 Heating Power (W)= 120 Para el análisis de la curva de reacción, se analizará la respuesta del sistema en lazo abierto ante una entrada escalón, dicha entrada escalón es de 0v a 10v. Se debe definir el modelo del sistema y analizar el comportamiento del sistema ante perturbaciones de tipo escalón teniendo en cuenta que la temperatura límite o set point es de 100°C. Para ingresar las perturbaciones al sistema se debe hacer lo siguiente: Para el instante de tiempo t=0s se utiliza una de alimentación BAT1 de 10V, para el instante de tiempo t=50s se conmuta otra fuente de alimentación BAT 2 de 30V y para el instante de tiempo t=120s se conmuta nuevamente a la fuente de alimentación BAT1 de 10V. Configuración de valores de componente oven .
Ecuación del controlador PID
e(T)= es el error de la señal u(t)= es la entrada de control de proceso kp= es la ganancia proporcional Ti= es la constante de tiempo integral Td= es la constante de tiempo derivativa
Sintonización por la respuesta al escalón
Este método de sintonización se adapta bien a los sistemas que son estables en lazo abierto y que presentan un tiempo de retardo desde que reciben la señal de control hasta que comienzan a actuar.
Para poder determinar la respuesta al escalón de la planta o sistema controlado, se debe retirar el controlador PID y sustituirlo por una señal escalón aplicada al accionador.
Con los valores obtenidos en la gráfica luego de trazar la línea tangente al punto de inflexión de la respuesta se determinan To,Yo,Ko
To= T1 – To = 3 – 0 = 1 Yo= T2 – T1 = 16 – 3 = 13 −
Ko= −
G (s)=
+
−3 −
91,4
91,4
=3
Calculamos Kp, Ti, Td
Kp= 1.2 1.2
3 .∗
0.1422
Ti= 2=∗= Td= 0.5=.∗= De acuerdo al criterio T < To/4, se establece un periodo de muestreo de 0.1s
a= b=
Kp=
.∗.
0.0711
0.1422
c=
.∗. .
0.711
El código para el microcontrolador PIC 16f877A se realizó en el programa PIC C Compiler,
#INCLUDE <16F877A.H> #DEVICE ADC=10 #USE DELAY( CLOCK=4000000) #FUSES XT, NOWDT VOID MAIN (){ INT16 valor, control; FLOAT a,b,c; FLOAT TEMPERATURA_META; FLOAT rt,eT,iT,dT,yT,uT,iTO,eTO; FLOAT max,min;
min=0.0; max=1000.0; iTO=0.0; eTO=0.0; a=0.1422; b=0.0711; c=0.711; TEMPERATURA_META=1000.0; setup_timer_2(t2_div_by_4,249,1); setup_ccp1 (ccp_pwm); setup_adc_ports(all_analog); setup_adc(adc_clock_internal); set_adc_channel(0); while(true){ valor=read_adc(); yT=5000.0*valor/1024.0; rT=TEMPERATURA_META; eT=rT-yT; iT=b*eT+iTO; dT=c*(eT-eTO); uT=iT+a*eT+dT; if (uT>max){ uT=max; } else{ if (uT
} } control=uT; set_pwm1_duty(control); iTO=iT; eTO=eT; delay_ms(100); } } En esta imagen observamos la simulación en Proteus donde se ha iniciado el proceso de calefacción utilizando la batería de 10 v.
A los 12 segundos la resistencia del calentador ha alcanzado el 100 % de su capacidad, al observar el indicador de voltaje vemos que esta en 122 v. por lo que deducimos que la temperatura real es de 122 grados ya que el sensor (T) del oven entrega un voltio por cada grado de temperatura.
En esta otra imagen observamos que el controlador PID trata de estabilizar el sistema disminuyendo los pulsos del transistor mosfet lo cual ocaciona una caída de temperatura.
Transcurridos 30 segundos el calefactor ha alcanzado nuevamente el 100 de su capacidad
Como lo indica la guía a los 50 segundos hemos insertado una perturbación en el sistema cambiando la fuente de alimentación de 10v a 30 v .
El control PID detecta el cambio de voltaje y nuevamente disminuye los pulsos del transistor Mosfet para estabilizar el sistema.
Como se puede observar a los pocos segundos se ha estabilizado nuevamente el sistema
Al llegar a los 120 segundos se aplica la segunda perturbación esta vez cambiando la fuente de alimentación de 30v a los 10v iniciales.
El control PID recupera rápidamente la estabilidad del sistema.
Una vez terminada la simulación ejecutamos la gráfica para el análisis de la respuesta del sistema.
En esta imagen se observa más claramente como la curva de la temperatura inicia desde 30 grados y da un pico de casi 125 grados al iniciar la simulación luego el control PID trata de estabilizar el sistema y la curva de temperatura baja cerca de los 95 grados para luego subir nuevamente a los 104 grados para luego estabilizarse cerca de los 101 grados; también se puede apreciar que las perturbaciones que se ingresaron al sistema son prácticamente imperceptibles por lo que podemos decir que el sistema es bastante estable.
Caracteristicas del Pic 16F877A.
Se denomina microcontrolador a un dispositivo programable capaz de realizar diferentes actividades que requieran del procesamiento de datos digitales y del control y comunicación digital de diferentes dispositivos. Los microcontroladores poseen una memoria interna que almacena dos tipos de datos; las instrucciones, que corresponden al programa que se ejecuta, y los registros, es decir, los datos que el usuario maneja, así como registros especiales para el control de las diferentes funciones del microcontrolador.
Los micro controladores se programan en Assembler y cada microcontrolador varía su conjunto de instrucciones de acuerdo a su fabricante y modelo. De acuerdo al número de instrucciones que el microcontrolador maneja se le denomina de arquitectura RISC (reducido) o CISC (complejo). Los microcontroladores poseen principalmente una ALU (Unidad Lógico Aritmética), memoria del programa, memoria de registros, y pines I/O (entrada y/0 salida). La ALU es la encargada de procesar los datos dependiendo de las instrucciones que se ejecuten (ADD, OR, AND), mientras que los pines son los que se encargan de comunicar al microcontrolador con el medio externo; la función de los pines puede ser de transmisión de datos, alimentación de corriente para l funcionamiento de este o pines de control especifico.
En este proyecto se utilizó el PIC 16F877. Este microcontrolador es fabricado por MicroChip familia a la cual se le denomina PIC. El modelo 16F877 posee varias características que hacen a este microcontrolador un dispositivo muy versátil, eficiente y práctico para ser empleado en la aplicación que posteriormente será detallada. Algunas de estas características se muestran a continuación:
Soporta modo de comunicación serial, posee dos pines para ello. Amplia memoria para datos y programa. Memoria reprogramable: La memoria en este PIC es la que se denomina FLASH; este tipo de memoria se puede borrar electrónicamente (esto corresponde a la "F" en el modelo). Set de instrucciones reducidas (tipo RISC), pero con las instrucciones necesarias para facilitar su manejo. CARACTERÍSTICAS
16F877
Frecuencia máxima
DX-20MHz
Memoria de programa palabra de 14 bits
flash 8KB
Posiciones RAM de datos
368
Posiciones EEPROM de datos
256
Puertos E/S
A,B,C,D,E
Número de pines
40
Interrupciones
14
Timers
3
Módulos CCP
2
Comunicaciones Serie
MSSP, USART
Comunicaciones paralelo
PSP
Líneas de entrada de CAD de 10 8 bits Juego de instrucciones
35 Instrucciones
Longitud de la instrucción
14 bits
Arquitectura
Harvard
CPU
Risc
Canales Pwm
2
Pila Harware
-
Ejecución En 1 Ciclo Máquina
-
Osciladores que soporta. Oscilador interno de alta precisión
Calibrado de fábrica
Rango de frecuencia de 8MHz a 31KHz seleccionado por software
En el momento de programar o “quemar” el microcontrolador se debe especificar
qué tipo de oscilador se usa. Esto se hace a través de unos fusibles llamados “fusibles de configuración”.
Tipo de Memoria. Memoria ROM de 8K con tecnología FLASH El chip se puede re-programar hasta 100.000 veces Opción de programación serial en el circuito El chip se puede programar incluso incorporado en el dispositivo destino. 256 bytes de memoria EEPROM Los datos se pueden grabar más de 1.000.000 veces 368 bytes de memoria RAM
Convertidor A/D: 14 canales Resolución de 10 bits Numero de Puertos. El encapsulado más común para este microcontrolador es el DIP (Dual In-line Pin) de 40 pines, propio para usarlo en experimentación. La funcionalidad de los pines presentados anteriormente es muy útil puesto que permite un mejor aprovechamiento de los recursos del microcontrolador sin afectar a su funcionamiento. Estas funciones de los pines no se pueden utilizar simultáneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento. La mayoría de los pines del microcontrolador PIC16F887 son multipropósito. Convertidor ADC Los pines del puerto A y del puerto E pueden trabajar como entradas para el convertidor Análogo a Digital interno, es decir, allí se podría conectar una señal proveniente de un sensor o de un circuito analógico para que el microcontrolador la convierta en su equivalente digital y pueda realizar algún proceso de control o de instrumentación digital. El pin RB0/INT se puede configurar por software para que funcione como interrupción externa, para configurarlo se utilizan unos bits de los registros que controlan las interrupciones. El pin RA4/TOCKI del puerto A puede ser configurado como un pin de entrada/salida o como entrada del temporizador/contador. Cuando este pin se programa como entrada digital, funciona como un disparador de Schmitt (Schmitt trigger), puede reconocer señales un poco distorsionadas y llevarlas a niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como colector abierto (open collector), por lo tanto, se debe poner una resistencia de pull-up (resistencia externa conectada a un nivel de cinco voltios). Como salida, la lógica es inversa: un "0" escrito al pin del puerto entrega en el pin un "1" lógico. Además, como salida no puede manejar cargas como fuente, sólo en el modo sumidero.
Conclusiones
Se da solución al ejercicio planteado en la guía Se profundiza en el tema de programación de pic Se interactúa y se adquiere más conocimiento en el software proteus
Web grafía
https://www.youtube.com/watch?v=v4tPoolYCMw http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf