Está en la página 1de 13

Fase 4 -Implementar controlador en un microcontrolador

Presentado por:
Juan Carlos Huertas

Grupo 203041_4

Presentado a:
Johan Sebastián Bustos
Tutor

Universidad nacional abierta y a distancia. Unad


Ingeniería electrónica
Control Digital
Mayo de 2021
Introducción

Con este trabajo buscamos implementar un controlador, teniendo como base el desarrollo
las constantes Kp, Ti y Td de esta manera podemos realizar el montaje en el software
especializado Proteus. Configuraremos valores de temperatura ambiente, resistencia
térmica al ambiente, constante de tiempo para el horno, constante de tiempo para el
calentador, coeficiente de temperatura y poder de calefacción. También usaremos el
pic16f8777a usando el software PIC C Compiler donde introducimos la programación para
que nos funcione en Proteus y analizar el comportamiento de la temperatura en el tiempo.
A partir del diseño del controlador PID de la fase 3 y el cálculo de las constantes Kp, Ti y
Td, realizar la implementación del controlador en un microcontrolador y analizar su
comportamiento ante diferentes perturbaciones.

Se sugiere el montaje de la figura 1 para la implementación del controlador

La simulación se debe desarrollar en Proteus utilizando el modelo Heated Oven


(LumpedModel) con la siguiente configuración en parámetros:
• Temperature Ambient (°C) = 27
• Thermal Resistence to Ambient (°C/W) = 0.5

• Oven Time Constant (sec)= 10


• Heater Time Constant (sec)= 1

Temperature coefficient (V/°C) = 1


• Heating Power (W)= 150

Usamos los valores encontrados en la fase anterior:


Resultados obtenidos:

K p =2.3863

T i=2 L=2∗0.5=1

T d=0.5 L=0.5∗0.5=0.250

Utilizamos el método 1 de Ziegler y Nichols:

Hallamos a
a=k p
a=2.3863
Hallamos b
k p∗t
b=
ti

2.3863∗0.1
b=
1

b=0.238
Hallamos c
k p∗t d
c=
t

2.3863∗0.250
c=
0.1

c=5.965
Realizando el análisis de la gráfica observamos que nuestro controlador inicia en los 27°C
como lo teníamos configurado y cuando llegamos a 18.3 segundos su temperatura
máxima de 223°C empezando a descender a 155°C sobre los 29.3 segundos y realizando
una fluctuación hasta los 140 segundos que va desde 184 °C hasta los 118 °C. En este
periodo de tiempo observamos como la gráfica esta ondulando por los valores que
relacionamos buscando una estabilidad que no se logra en el tiempo estipulado.

Para ingresar las perturbaciones al sistema se debe hacer lo siguiente:

En el instante de tiempo t=0s se utiliza una de alimentación BAT1 de 20V, para el instante
de tiempo t=50s se conmuta otra fuente de alimentación BAT 2 de 15V y para el instante
de tiempo t=120s se conmuta nuevamente a la fuente de alimentación BAT1 de 20V.

Podemos observar que el controlador inicia con 27°C alimentado por 20V logrando su
pico a los 18.2 segundos con una temperatura de 223 °C, busca su estabilidad sobre los
150°C hasta los 50 segundos donde realizamos la conmutación con una fuente de 15V
hasta los 120 segundos donde la temperatura baja hasta los 33.3 °C a los 80 segundos,
en este punto se eleva nuevamente ahora hasta los 244 °C a los 97 segundos y
comenzando su descenso nuevamente para cuando se realiza la nueva conmutación
volviendo a la fuente de 20V en los 120 segundos posea una temperatura de 167°C.
Realizamos el uso del software PIC C Compiler para el programa del pic16f877a lo que
genera un archivo de extensión HEX file para que sea reconocido por Proteus y realizar la
simulación, de esta forma analizaremos el comportamiento de la temperatura.

El código fuente utilizado es:


#INCLUDE <16F877A.H>
#DEVICE ADC=10
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOWDT
VOID MAIN(){
INT16 valor, control; //son las variables para lectura de la señal de Control hacia el módulo CCP y
ADC
FLOAT a,b,c; //Constantes de los parámetros del controlador PID
FLOAT TEMPERATURA_LIMITE; //es la referencia para la temperatura
FLOAT rt,eT,iT,dT,yT,uT,iT0,eT0; //Variables usadas para el controlador PID
FLOAT max,min; //Variables usadas para el anti-windup
min=0.0;
max=1000.0;
iT0=0.0;
eT0=0.0;
a=5.358; // es el valor de kp
b=0.081; // se obtiene multiplicando kp por t sobre ti
c=87.71; // se obtiene multiplicando kp por td sobre t
TEMPERATURA_LIMITE=1400.0; //es el set Point con una temperatura de 140°C
setup_timer_2(t2_div_by_4,249,1); //Configuracion para el Timer 2 que establece una frecuencia de
1KHZ (PWM)
setup_ccp1(ccp_pwm); //Configuracion del modulo CCP1 para la freceencia (PWM)
setup_adc_ports(all_analog); //Configuracion para el ADC
setup_adc(adc_clock_internal);
set_adc_channel(0); //Selecciona el Canal 0 para el sensor
while(true){
valor=read_adc(); //Realiza la lectura del ADC
yT=5000.0*valor/1024.0; //Encuentra el valor para la señal de salida y(kT)
rT=TEMPERATURA_LIMITE;
eT=rT-yT; //Calcula la senal del error e(kT)
iT=b*eT+iT0; //Calcula el termino integrativo i(kT)
dT=c*(eT-eT0); //Calcula el termino derivativo d(kT)
uT=iT+a*eT+dT; //Calcula la senal de control u(kT)
if (uT>max){ //es el anti-windup
uT=max;
}
else {
if (uT<min){
uT=min;
}
}
control=uT;
set_pwm1_duty(control); //transfiere la señal que va del control hacia el actuador
iT0=iT;
eT0=eT;
delay_ms(100); //Configura el periodo para el muestreo de 0.1 segundos
}
}
Conclusiones

Del anterior trabajo pudimos entender el comportamiento del controlador PID en un

microcontrolador de la temperatura en el tiempo conmutando su alimentación, aprendimos

a usar correctamente softwares especializados como Proteus y PIC C Compiler para

realizar simulaciones y analizar las gráficas arrojadas de la temperatura en el tiempo.


Referencias bibliográficas

 Costa, C. y Fossas, C. (2014). Sistemas de control en tiempo discreto. Universidad


Politécnica de Catalunya, Análisis de estabilidad en el campo frecuencial. (pp.
201-222). Recuperado de  https://elibro-
net.bibliotecavirtual.unad.edu.co/es/ereader/unad/61470?page=201

 Costa, C. y Fossas, C. (2014). Sistemas de control en tiempo discreto. Universidad


Politécnica de Catalunya, Controlador PID. (pp. 241-247). Recuperado de
https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/61470?page=241

 Quinter, C. (2014). Control automático aplicado: prácticas de laboratorio.


Universidad del Norte.  Diseño de controladores. (pp. 27-30). Recuperado
de https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/70057?page=27

 Quinter, C. (2014). Control automático aplicado: prácticas de laboratorio.


Universidad del Norte.  Diseño de controladores. (pp. 91-98). Recuperado
de https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/70057?page=91

 Bertran, A. E. (2006). Procesado digital de señales: fundamentos para


comunicaciones y control I. Diseño sistemas de control. (pp. 270-282).
Recuperado de https://elibro-
net.bibliotecavirtual.unad.edu.co/es/ereader/unad/122308?page=270

También podría gustarte