You are on page 1of 19

1 UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA


ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL

UNIVERSIDAD NACIONAL DEL CALLAO

ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

INFORME 2
CURSO: SISTEMA DE CONTROL DIGITAL
PROFESOR: Ing. ZENÓN CUCHO M.
TEMA: CONTROL PID CON MICROCONTROLADOR
ALUMNOS:
APOLINARIO ROJAS LUIS ANGEL ………1513220232
MITCHELL OCHANTE GAMBOA ………….1513220268
GRUPO HORARIO: 01L -90G
AÑO 2018
CALLAO- PERU
PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL
2 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL

CONTROL PID CON MICROCONTROLADOR


1. INTRODUCCIÓN

En este laboratorio se propone el diseño de un controlador digital para un sistema


térmico, en el que como primer paso se realiza la identificación del mismo para
obtener un modelo matemático aproximado. Posteriormente se procede al diseño
del controlador digital aplicando una variedad de técnicas y comparando su
comportamiento. Entre las técnicas aplicadas están: reglas de Ziegler-Nichols,
reglas de Cohen-Coon y técnica del lugar de las raíces.

2. ESTRUCTURA DEL SISTEMA

La arquitectura del sistema es la típica de un servosistema de una entrada y una


salida, con el controlador en cascada con la planta.

TECLADO
(set point)

SENSOR ADC uC ETAPA DE


(T0ext) POTENCIA

VISUALIZACION

Figura 1. Diagrama de bloque del sistema

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


3 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
El sistema térmico está constituido por una resistencia calefactora de
10Ω/50W montada sobre una placa metálica. La etapa de potencia, que deberá
diseñar el alumno, está constituida por una fuente de corriente que tiene como
elemento de potencia un transistor, montado también

sobre la misma placa metálica. El sensor de temperatura (LM35DZ), en contacto


con la placa metálica, mide la magnitud a controlar, debiendo el alumno diseñar un
circuito acondicionador para conseguir la realimentación deseada.

Figura 2. Planta a controlar la temperatura

Las especificaciones que deberá satisfacer el sistema controlado final serán:

 La consigna será a razón de 100 mV/ºC.


 El rango de temperatura a controlar estará entre 35ºC y 45ºC.
 Error en régimen permanente igual a cero ante una entrada escalón.
 El sobreimpulso no deberá superar el 10%.
 El tiempo de establecimiento deberá ser el más pequeño posible
 La fuente de alimentación regulable dará un máximo de 30V/2A.
 La tarjeta de adquisición será la PCI1711 de Advantech. Ésta da una
tensión de salida analógica entre 0V-10V y dispone de entrada analógica
entre 0V-5V.

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


4 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
3. DESARROLLO

SENSOR LM35

El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC y un rango


que abarca desde -55º a +150ºC.

Con el LM35 sobre la mesa las patillas hacia nosotros y las letras del encapsulado
hacia arriba tenemos que de izquierda a derecha los pines son: VCC - Vout - GND.

La salida es lineal y equivale a 10mV/ºC por lo tanto:

 +1500mV = 150ºC
 +250mV = 25ºC
 -550mV = -55ºC

CONVERSIÓN A/D Y PROCESADO DE SEÑAL

Vref Vref Volts


RES  
2 1
8
255 bits

Temperatura
Voltaje de
en bits
entrada
CONVERSOR

A/D
0.01T

0.01T  0.01T
LUEGO: T  T  Vref  2.55 Volts
RESOLUCION Vref
255

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


5 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
RESPUESTA AL ESCALON

Respuesta ofrecida por la planta para un escalón de amplitud 0.7


MATLAB.2015.a

CONTROLADORES TIPO P

Figura 3. Función de transferencia de Kp =22.42, No tiene Ti (Tiempo integral)


Y Td (Tiempo derivativo

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


6 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
FUNCIÓN DE TRANSFERENCIA

𝑆𝑆𝑆𝑆𝑆𝑆𝑆: K1
G 
1 = 135.14  P 1 z1
𝑆
𝑆𝑆 = 𝑆1
𝑆−1
𝑆𝑆𝑆 𝑆𝑆 tan𝑆𝑆:
𝑆
𝑆𝑆 = 135.14 
𝑆–1
Escriba aquí la ecuación.
PROGRAMACION

#INCLUDE <16F887.h>

#DEVICE ADC=10

#USE DELAY(CLOCK=4000000)

#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP

#include <lcd420.c>

//Configura direccion de memoria de los puertos A,B,C,D

#BYTE PORTA= 5

#BYTE PORTB= 6

#BYTE PORTC= 7

#BYTE PORTD= 8

int VECES=39,seg=0;

int16 adc,control=0;

float yM=0,R=1500.0,e=0.0,e_1=0.0,e_2=0.0,u=0.0,u_1=0.0;

float kp,ti,td,q0,q1,q2,T=0.1;

float k=0.535,tao=10.0,theta=1.0;

float TsMA,Wn,P1,P2;

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


7 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
//Con esta rutina de desbordamiento del timer 0

//Hago el conteo del tiempo de muestreo

#INT_RTCC //Rutina de interrupción por RTCC

RELOJ()

VECES--; //Decremento variable veces

SET_RTCC(246); //Cargo el timer con 243

IF(VECES==0) //La variable veces se carga con 30 y el timer con 243

{ //para que entre a la interrupcion cada 100 milisegundos

VECES=39;

seg++; //y incremente el contador 'seg'

if(seg==1)

seg=0;

output_toggle(pin_d0);

//Comienzo la ley de controL

e=R-yM;

// Controle PID

u = u_1 + q0*e + q1*e_1 + q2*e_2; //Ley del controlador PID discreto

if (u >= 5000.0) //Saturo la accion de control 'uT' en un tope en mV maximo y


minimo

u = 5000.0

if (u <= 0.0)

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


8 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
u = 0.0;

//escalizo la u de mV a bits, en el caso del PWM ser a 1Khz con una resolucion
de 10

//el valor máximo del pwm es de 1000

control=u*1000/5000

//Retorno a los valores reales

e_2=e_1;

e_1=e;

u_1=u;

//La accion calculada la transformo en PWM

set_pwm1_duty(control);

void main()

set_tris_c(0);

set_tris_d(0);

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

set_pwm1_duty(0); //Dejo en cero la salida PWM

setup_adc_ports(sAN0); //Configurar ADC (Lectura de temperatura)

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


9 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
setup_adc(adc_clock_internal); //Reloj interno para la conversion
analoga digital)

set_adc_channel(0); //Seleccionar Canal 0 para sensor de


Temperatura

SET_RTCC(246); //Cargo el TIMER0 con 243

SETUP_COUNTERS(RTCC_INTERNAL, RTCC_DIV_256); //Configuro el


TIMER0 con prescaler 256

ENABLE_INTERRUPTS(INT_RTCC); //Habilito interrupcion por TIMER0

enable_interrupts(GLOBAL); //Habilito las interrupciones a nivel global

LCD_INIT(); //Inicializo el LCD

LCD_PUTC("\f"); //Limpio el LCD

//***************** SINTONIA POR ZIEGLER y NICHOLS *******************//


//*************************************************************************//

kp=(1.2*tao)/(k*theta);

ti=2*theta;

td=0.5*theta;

//*************************************************************************//

// Calculo do controle PID digital

q0=kp*(1+T/(2*ti)+td/T);

q1=-kp*(1-T/(2*ti)+(2*td)/T);

q2=(kp*td)/T;

while(1)

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


10 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
adc=read_adc(); //Leer ADC

yM=adc*5000.0/1024.0;

//Muestra mensajes en LCD

lcd_gotoxy(1,1);

printf(lcd_putc,"Temp: %f",yM/10);

lcd_gotoxy(1,2);

printf(lcd_putc,"SetPoint: %2.2f C ",R/10);

lcd_gotoxy(1,3);

printf(lcd_putc,"kd:%f",((Kp*td)/T));

}}

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


11 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
CONTROLADOR TIPO PID

Figura 4. Función de transferencia de Kp =22.42

Figura 5. Mostrando el tiempo integral de nuestro controlador Ti=2.00

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


12 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL

Figura 6. Mostrando el tiempo derivativo de nuestro controlador Td=0.5

FUNCIÓN DE TRANSFERENCIA

𝑆𝑆𝑆 𝑆𝑆𝑆𝑆𝑆𝑆
(𝑆) = 𝑆(𝑆 − 2) + 𝑆1 𝑆(𝑆) + 𝑆2 (𝑆) + 𝑆3 𝑆(𝑆 − 2)
𝑆1 = 𝑆𝑆 + 𝑆𝑆 ⁄𝑆 + 𝑆𝑆 𝑆 ; 𝑆 = 0.1𝑆𝑆𝑆
𝑆2 = 𝑆𝑆 𝑆 − 2 𝑆𝑆 ⁄𝑆
𝑆3 = 𝑆𝑆 ⁄𝑆 − 𝑆𝑆
𝑆1 + 𝑆2 𝑆 −1 + 𝑆3 𝑆 −2
𝑆𝑆 𝑆𝑆 𝑆𝑆𝑆𝑆 =
1 − 𝑆 −1
𝑆𝑆𝑆𝑆𝑆𝑆𝑆 𝑆𝑆𝑆 𝑆𝑆𝑆𝑆𝑆 :
𝑆1 = 135.14 ; 𝑆 = 0.1𝑆𝑆𝑆
𝑆2 = −246.16
𝑆3 = 112.14
𝑆𝑆𝑆𝑆𝑆𝑆𝑆𝑆:
135.14𝑆 2 − 246.16 + 112.14
𝑆𝑆𝑆𝑆 =
(𝑆 − 1)𝑆
𝑆𝑆𝑆 𝑆𝑆 tan𝑆𝑆:
(𝑆 − 0.9108 − 0.0179𝑆)(𝑆 − 0.9108 + 0.0179𝑆)
𝑆𝑆𝑆𝑆 =
(𝑆 − 1)𝑆
𝑆𝑆𝑆𝑆𝑆𝑆:
𝑆𝑆𝑆𝑆𝑆: 𝑆 = 1, 𝑆 = 0
𝑆𝑆𝑆𝑆𝑆: 𝑆 = 0.9108 + 0.0179𝑆
𝑆 = 0.9108 − 0.0179𝑆

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


13 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL

Figura 7.Hallando qo=K1

Figura 8.Hallando q1=K2

Figura 9.Hallando q2=K3

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


14 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
PROGRAMACION

#INCLUDE <16F887.h>

#DEVICE ADC=10

#USE DELAY(CLOCK=4000000)

#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP

#include <lcd420.c>

//Configura direccion de memoria de los puertos A,B,C,D

#BYTE PORTA= 5

#BYTE PORTB= 6

#BYTE PORTC= 7

#BYTE PORTD= 8

int VECES=39,seg=0;

int16 adc,control=0;

float yM=0,R=1500.0,e=0.0,e_1=0.0,e_2=0.0,u=0.0,u_1=0.0;

float kp,ti,td,q0,q1,q2,T=0.1;

float k=0.535,tao=10.0,theta=1.0;

float TsMA,Wn,P1,P2;

//Con esta rutina de desbordamiento del timer 0

//Hago el conteo del tiempo de muestreo

#INT_RTCC //Rutina de interrupción por RTCC

RELOJ()

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


15 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
VECES--; //Decremento variable veces

SET_RTCC(246); //Cargo el timer con 243

IF(VECES==0) //La variable veces se carga con 30 y el timer con 243

{ //para que entre a la interrupcion cada 100 milisegundos

VECES=39;

seg++; //y incremente el contador 'seg'

if(seg==1)

seg=0;

output_toggle(pin_d0);

//Comienzo la ley de controL

e=R-yM;

// Controle PID

u = u_1 + q0*e + q1*e_1 + q2*e_2; //Ley del controlador PID discreto

if (u >= 5000.0) //Saturo la accion de control 'uT' en un tope en mV maximo y


minimo

u = 5000.0

if (u <= 0.0)

u = 0.0;

//escalizo la u de mV a bits, en el caso del PWM ser a 1Khz con una resolucion
de 10

//el valor máximo del pwm es de 1000

control=u*1000/5000

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


16 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
//Retorno a los valores reales

e_2=e_1;

e_1=e;

u_1=u;

//La accion calculada la transformo en PWM

set_pwm1_duty(control);

void main()

set_tris_c(0);

set_tris_d(0);

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

set_pwm1_duty(0); //Dejo en cero la salida PWM

setup_adc_ports(sAN0); //Configurar ADC (Lectura de temperatura)

setup_adc(adc_clock_internal); //Reloj interno para la conversion analoga


digital)

set_adc_channel(0); //Seleccionar Canal 0 para sensor de


Temperatura

SET_RTCC(246); //Cargo el TIMER0 con 243

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


17 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
SETUP_COUNTERS(RTCC_INTERNAL, RTCC_DIV_256);
//Configuro el TIMER0 con prescaler 256

ENABLE_INTERRUPTS(INT_RTCC); //Habilito interrupcion por TIMER0

enable_interrupts(GLOBAL); //Habilito las interrupciones a nivel global

LCD_INIT(); //Inicializo el LCD

LCD_PUTC("\f"); //Limpio el LCD

//***************** SINTONIA POR ZIEGLER y NICHOLS *******************//


//*************************************************************************//

kp=(1.2*tao)/(k*theta);

ti=2*theta;

td=0.5*theta;

//*************************************************************************//

// Calculo do controle PID digital

q0=kp*(1+T/(2*ti)+td/T);

q1=-kp*(1-T/(2*ti)+(2*td)/T);

q2=(kp*td)/T;

while(1)

adc=read_adc(); //Leer ADC

yM=adc*5000.0/1024.0;

//Muestra mensajes en LCD

lcd_gotoxy(1,1);

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


18 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
printf(lcd_putc,"Temp: %f",yM/10);

lcd_gotoxy(1,2);

printf(lcd_putc,"SetPoint: %2.2f C ",R/10);

lcd_gotoxy(1,3);

printf(lcd_putc,"kd:%f",((Kp*td)/T));

lcd_gotoxy(11,3);

printf(lcd_putc,"ki:%f",((Kp*T)/ti));

lcd_gotoxy(1,4);

printf(lcd_putc,"kd:%f",((Kp*td)/T));

Figura 8.Hallando Kp,Ki Y Kd

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL


19 UNIVERSIDAD NACIONAL DEL CALLAO
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA
SISTEMA DE CONTROL DIGITAL
4.IMPLEMENTACION

Figura 9.Implementación del controlador de temperatura

5. CONCLUSIONES

 Es importante conocer el Ajuste de ziegler-Nichols para el controlador ya que


nos facilta parametros que nos seran de utilidad para el controlador de una
planta.
 Aplicamos la teoría de control a un problema concreto y que no se quede ahí,
en simple teoría de control, abstracta y sin practicidad.
 Aprendimos a programar en un lenguaje de microcontrolador el cual con
PWM modulamos la corriente y en partes con ello controlamos la planta que
es en simulacion es un horno pero en fisico es una resistencia calefactora

PROF: ING. ZENÓN CUCHO M. SISTEMA DE CONTROL DIGITAL

You might also like