You are on page 1of 11

UNIDAD 3: PASO 4 - DISEÑAR E IMPLEMENTAR UN CIRCUITO DE

CONTROL DIGITAL PID

Presentado por:

CRISTIAN DAVID OCAMPO

Tutor:

JOAN SEBASTIÁN BUSTOS

CONTROL DIGITAL
Grupo: 203041_17

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

Escuela de Ciencias Básicas, Tecnología e Ingeniería


ABRIL DE 2018
TABLA DE CONTENIDO
INTRODUCCIÓN .............................................................................................................3
OBJETIVOS ......................................................................................................................4
Objetivo general ............................................................................................................ 4
Objetivos específicos .................................................................................................... 4
DESARROLLO DE LA ACTIVIDAD .............................................................................5
Fase 3: Descripción del problema(Individual) .............................................................. 5
Actividades a desarrollar .............................................................................................. 5
Introducción teórica ...................................................................................................... 5
Control Digital PID ....................................................................................................... 6
Procedimiento ............................................................................................................... 7
Código propuesto .......................................................................................................... 7
CONCLUSIONES ...........................................................................................................10
REFERENCIAS ..............................................................................................................11
INTRODUCCIÓN

En este documento se expone el análisis realizado de forma individual para dar una
propuesta de solución que permite representar y analizar los sistemas de control en tiempo
discreto a través de diferentes controladores con herramientas de software especializado.
Para que esta propuesta sea viable se propone la siguiente estructura: implementación de
controladores digitales, diseño e implementación de hardware del sistema, simulación de
sistemas de control y la definición de los algoritmos de programación que serán
implementador o harán funcionar el microcontrolador.
OBJETIVOS

Objetivo general

Representar y analizar los sistemas de control en tiempo discreto a través de diferentes


controladores con herramientas de software especializado.

Objetivos específicos

1. Implementar controladores digitales.


2. Diseñar el hardware del sistema.
3. Implementar el hardware del sistema.
4. Simular sistemas de control.
5. Desarrollar los algoritmos de programación en microcontrolador.
DESARROLLO DE LA ACTIVIDAD

Fase 3: Descripción del problema(Individual)

Semana 5: Del 25 de abril al 1 de mayo

El estudiante extrae los elementos relevantes de la situación, ejercicio o propuesta,


recopila la información y hace una descripción con sus propias palabras del
problema planteado y lo plasma dentro del foro del Paso 4.

Actividades a desarrollar

Enunciado: 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

1. (LumpedModel) y se establecerán los siguientes valores:


2. Temperature Ambient (°C)= 30
3. Thermal Resistence to Ambient (°C/W)= 0.7
4. Oven Time Constant (sec)= 10
5. Heater Time Constant (sec)= 1
6. Temperature coefficient (V/°C)= 1
7. 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 20v. 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 20V, 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 20V.

Introducción teórica

Controlador PID: Analizando lo expuesto por (Ruge, 2007), se podría decir que los
controladores PID son muy utilizados en la industria, pueden ser de tipo analógico o
digital, utilizando microprocesadores o microcontroladores. La ecuación diferencial
característica de ellos es como la siguiente:
Donde e(t) es el error de la señal y u(t) es la entrada de control del proceso. Kp es la
ganancia proporcional, Ti es la constante de tiempo integral, y Td es la constante de
tiempo derivativa.

En el dominio de la frecuencia, la función de transferencia para un filtro PID puede


expresarse como:

Donde T es el tiempo de muestreo.

Control Digital PID

La función de transferencia para un controlador PID digital se puede expresar de la


siguiente manera:

Esta función de transferencia puede ser expresada de la siguiente manera: Donde:

Existen distintas posibilidades para realizar de forma práctica un controlador PID, la


siguiente figura muestra la realización en paralelo:

Figura 1. Controlador PID discreto.


Los valores para 𝐾𝑝 , 𝑇𝑑 , 𝑇𝑖 pueden obtenerse a partir de las características del sistema por el
método de Ziegler-Nichols de lazo abierto o lazo cerrado. x(k) Es la entrada de error al
controlador y y(k) es la salida controlada.

Procedimiento

Para un controlador PI y un tiempo de muestreo de 0.1s 𝐾𝑝 = 2.0, 𝑇𝑁 = 9.00𝑠, 𝑇𝑉 = 0

Se tiene el cálculo de los coeficientes de salida: 𝑎 = 𝐾𝑝 = 2.00

𝐾𝑝 ∗ 𝑇 2.00
𝑏= =( ) (0.1) = 0.02
𝑇𝑖 9.00

𝐾𝑝 ∗ 𝑇𝑑
𝑐= =0
𝑇
El algoritmo de realización del filtro PID paralelo de la Figura 1 tendría las siguientes
partes:

a) Declaración de variables
b) Configuración de los periféricos del PIC que serían el ADC y PWM
c) Toma de la muestra de salida
d) Escalado de la muestra
e) Cálculo del error x(k)
f) Cálculo de rama proporcional x(k)*Kp
g) Cálculo de rama integral
h) Cálculo de rama derivativa
i) Suma de respuestas proporcional, integral y derivativa para obtener salida de
control y(k)
j) Escalado de la salida de control
k) Modificación del Duty Cycle del PWM
l) l) Retardo de 100ms (la muestra se toma cada 100ms)
m) lazo hasta c)

Código propuesto

//Programa para Realizar el control PID


//para sistema Térmico con terminal analógica AN0
//Utilizando la salida PWM
#include <p18f4550.h> //Cabecera de Nucleo
#include <xc.h>
#include <plib/adc.h>
#include <plib/pwm.h>
//Directivas para activar los bits de configuracion
#pragma config FOSC = INTOSCIO_EC //Oscilador Interno, Puerto A RA6
activo,
#pragma config WDT = OFF //Watchdog timer apagado
#pragma config PBADEN = OFF //Parte baja del puerto B digitales
#pragma config MCLRE = ON //MCLRE Disponible
#pragma config DEBUG = ON //Modo de depuraciòn disponible
#pragma config LVP = OFF //Fuente de ISCP apagada
//Definición de variables globales
//Programa principal
void main()
{
// Declaración de variables locales
int valor;
int controlsignal;
float a= 2.0; //KP
float b =0.02;//KP*Tm/Ti = 2.0*100m/9s
float c=0.0; //KP*Td/Tm Td=0.0
float SETPOINT=750.0;
float eT=0.0;
float iT=0.0;
float dT;
float yT;
float uT;
float iT0;
float eT0;
float max=1000.0;
float min=0.0;
// Modificación de la preescala del clock principal a 1Mhz
IRCF2=1;
IRCF1=0;
IRCF0=0;
//Configurar el puerto C Bit 2 como salida del PWM
TRISC2 = 0;
// Configurar el ADC AN0 con el ADCON
ADCON1=0x0E;
ADCON0=0X01;
ADCON2=0x80;
//Configurar los parámetros del PWM
//_,T2OUTPS3,T2OUTPS2,T2OUTPS1,T2OUTPS0,TMR2ON,T2CKPS1,T2CKPS0
//0 0 0 0 0 1 0 1
PR2=0x7C;//Configurar periodo para 500Hz de PWM
TMR2=0; //Limpiar el Timer2
T2CON=0x05; //Preescala de 4 y activación del T2
//Configurar el registro CCP1CON, seleccion de modo PWM
//_,_,DCxB1,DCxB0,CCPxM3,CCPxM2,CCPxM1,CCPxM0
//0 0 0 0 1 1 0 0
CCP1CON=0x0C;//Bits 4 y 5 de CCP1CON en 0
while (1){
ConvertADC();
while (BusyADC()){}
valor = ReadADC();//leer el Canal analógico AN0
yT = 1000.0*valor/1024.0;//Escala para obtener la entrada de 0 a 1000
eT = SETPOINT-yT; //cálculo del error
iT = b*eT+iT0; //cálculo de la componente integral
dT = c*(eT-eT0); //cálculo de la componente derivativa
uT = iT+a*eT+dT; //cálculo de la señal de respuesta del controlador
if(uT>=max){
uT = max; //Estableciendo límite superior de la respuesta
}
else {
if(uT<=min){
uT = min; //Si está la respuesta por debajo de cero se ubica al mínimo
}
}
controlsignal=uT;
SetDCPWM1(controlsignal);
eT0=eT;
iT0=iT;//Programa para Realizar el control PID
_delay(100); //Retardo de 100ms para tomar siguiente muestra
}
}
CONCLUSIONES
REFERENCIAS

Ruge, I. A. R. (2007). Método básico para implementar un controlador digital pid en un


microcontrolador pic para desarrollo de aplicaciones a bajo costo. Aplicaciones en
Control de Pontecia y la Industrial.

Microchip, MPLAB X IDE User’s Guide. Disponible en:


http://ww1.microchip.com/downloads/en/DeviceDoc/52027B.pdf

Hoja Técnica Microcontrolador PIC18F4550. Disponible en:


http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf

Bolaños, Y. H. & Pineda, L. F. & Mosquera V. H (2012). Didactic system for the
implementation of digital controllers. Revista Colombiana de Tecnologías de
Avanzada, Volumen 2, (P. 131).Recuperado de http://hdl.handle.net/10596/4971

Ñeco García, Ramón P., Reinoso García, Oscar, and García Aracil, Nicolás. Apuntes de
sistemas de control. Alicante, ES: ECU, 2013. ProQuest ebrary. (pp. 203-211).
Recuperado de
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?ppg=226&doc
ID=

Barrera, C. E. & Soria, L. R. (2010) Congreso Anual de la Asociación de México de


Control Automático. Puerto Vallarta, Jalisco, México. Diseño e Implementación
de Controladores Digitales Basados en Procesadores Digitales De Señales.
Recuperado de http://hdl.handle.net/10596/4994

Ruge, I. A. (2015). Método básico para implementar un controlador digital pid en un


microcontroladorpic para desarrollo de aplicaciones a bajo costo. Editorial
Pearson Education. Prentice Hall. Tercera Edición. Capítulo I. (pp. 1-13). México,
1998. Recuperado de http://hdl.handle.net/10596/4993

García, J. & Rodríguez, J. & Vidal, J. (2005). Aprenda Matlab 7.0 como si estuviera en

Bustos, J. (2017). Simulación en Matlab de una rampa unitaria. [OVI]. Recuperado de


http://hdl.handle.net/10596/14140

Ávalos, A. G., Montúfar, N. M. A., & Ortiz, H. F. E. (2010). Teoría de control, ajuste de
controladores industriales. (P. 75). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=76&docI
D=3187638&tm=1513226129956