proyecto proteus labview matlab (programación y simulación)

15
PROGRAMACIÓN Y SIMULACIÓN Maestría en Eléctrica - II Semestre – Área: Instrumentación Catedrático: Dr. Enrique Cuan D. – Alumno: Annuar López

Upload: annuar-brnal

Post on 08-Apr-2016

368 views

Category:

Documents


25 download

DESCRIPTION

Control PID con PIC16F877A MATLAB PROTEUS LABVIEW

TRANSCRIPT

PROGRAMACIÓN Y SIMULACIÓN Maestría en Eléctrica - II Semestre – Área: Instrumentación Catedrático: Dr. Enrique Cuan D. – Alumno: Annuar López

1

Índice Introducción ......................................................................................................................................................... 2

Controlador PID .................................................................................................................................................. 3

Simulación en Proteus ...................................................................................................................................... 5

Simulación LabVIEW – MATLAB .................................................................................................................... 9

Conclusión ......................................................................................................................................................... 12

Apéndice 1 .......................................................................................................................................................... 13

2

Introducción

El presente documento tiene como objetivo poner en práctica los conocimientos de

programación adquiridos a lo largo del curso a través del software de programación y

simulación MATLAB™.

El proyecto que se desarrolló en simulación fue un control de temperatura de un horno

industrial; el control automático del horno tiene retroalimentación (lazo cerrado) ya que se

implementó en él un controlador PID el cuál es ejecutado por un microcontrolador

PIC16F877A, dicho dispositivo fue programado en lenguaje C y posteriormente simulado en

el programa ISIS Proteus versión 7.9; para posteriormente a través de la emulación de un

puerto COM dentro de la misma computadora, enlazar el software antes mencionado para

transmitir sus datos a LabVIEW™ de National Instruments versión 2012 en donde el

comportamiento del aumento o disminución de la temperatura es monitorizado junto con la

ejecución de un Mathscritp de MATLAB™ dentro del mismo entorno de programación de

LabVIEW™.

3

Controlador PID

Uno de los controladores más comunes que se utilizan en la industria es el controlador PID

(Controlador Proporcional-Integral-Derivativo). Sin entrar en teoría de control, se puede indicar que un

controlador PID responde a la siguiente ecuación:

𝑢(𝑡) = 𝐾𝑝𝑒(𝑡) +𝐾𝑝𝑇𝑖

∫ 𝑒𝑡

0

(𝑡)𝑑𝑡 + 𝐾𝑝𝑇𝑑𝑑𝑒(𝑡)

𝑑𝑡

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.

Por lo tanto en el dominio de s, la ecuación del controlador PID se puede escribir de la

siguiente manera:

𝑈(𝑠) = 𝐾𝑝 ⌈1 +1

𝑇𝑖𝑠+ 𝑇𝑑𝑠⌉ 𝐸(𝑠)

Un controlador PID tiene tres parámetros (Kp,Ti,Td) los cuales interactúan uno con el

otro hasta obtener la respuesta de salida deseada.

La respuesta de un controlador PID con una entrada escalón, se muestra en la

siguiente figura:

Figura 1.1 Respuesta a una Entrada Escalón

4

Los parámetros se pueden obtener de esta respuesta:

𝜏0 = 𝑡1 − 𝑡0 γ0 = 𝑡2 − 𝑡1 𝐾0 =𝑦1−𝑦0

𝑢1−𝑢0

Según Ziggler y Nichols, las relaciones de estos coeficientes con los parámetros del

controlador son:

𝐾𝑝 =1.2𝛾0

𝐾0𝑇0 𝑇𝑖 = 2𝑇0 𝑇𝑑 = 0.5𝜏0

Si cambiamos el controlador PID por un controlador PID discreto, empleamos la

transformada z, de tal manera que la ecuación se re-escribe como:

𝑈(𝑧) = 𝐸(𝑧)𝐾𝑝 [1 +𝑇

𝑇𝑖(1 − 𝑧−1)+ 𝑇𝑑

1 − 𝑧−1

𝑇]

También:

𝑈(𝑧)

𝐸(𝑧)= 𝑎 +

𝑏

1 − 𝑧−1+ 𝑐(1 − 𝑧−1)

Donde:

𝑎 = 𝐾𝑝 𝑏 =𝐾𝑝𝑇

𝑇𝑖 𝑐 =

𝐾𝑝𝑇𝑑

𝑇

La figura que se muestra a continuación, describe el proceso a bloques del

controlador PID discreto.

Figura 1.2 Diagrama a bloques del Controlador PID discreto.

5

Simulación en Proteus

Para obtener los valores de las ganancias del controlador PID discreto, primero se

probó el comportamiento del sistema con una entrada escalón al 20% de su capacidad,

para posteriormente analizar la curva característica de operación.

El software implementado es ISIS PROTEUS 7.9, y los elementos necesarios fueron

los siguientes que se muestran en la ilustración.

Componentes utilizados: CELL, SWITCH,OVEN, GROUND.

Figura 1.3 Curva característica de operación del Horno.

6

Posteriormente se realizó la simulación del microcontrolador PIC16F877A dentro

del mismo software de Proteus para verificar la correcta operación del control discreto

con el PID; el cuál se encargará de generar un pulso PWM para controlar el

calentamiento del Horno conmutando un MOSFET de Potencia con una realimentación

análoga en el sistema para leer la temperatura del horno.

Componentes utilizados: CELL, PIC16F877A, OVEN, GROUND, RES, IRL1004, POWER

TERMINAL.

Figura 1.4 Simulación del Control PID en ISIS Proteus.

7

Una vez probado el sistema, se procede a enlazar la simulación del software de

ISIS PROTEUS 7.9 con LabVIEW 2012 y MatLAB™. Para hacer esto se hizo uso de la

comunicación serial del microcontrolador PIC16F877A para conectar los pines TX y RX

del dispositivo a un puerto COM configurado en ISIS PROTEUS (COM1) y monitoreado

dentro del mismo a través de una terminal serial virtual, posteriormente se dio de alta

en la computadora dos COM en modo de puente para poder hacer el enlace con

LabVIEW de National Instruments (COM2).

El dispositivo COM (o puerto serial) dado de alta dentro de la computadora, se

emulo con el software HDD Virtual Serial Ports el cual se encarga de crear un dispositvo

serial virtual dentro de la computadora y reconocido como un dispositivo de entrada y

salida al configurarlo como tipo puente.

Figura 1.5 Emulación de los Puertos COM en modo Puente (Bridge).

8

Al agregar los componetes necesarios, así como un potenciómetro (POT HG) para

poder ajustar el SETPOINT de control PID, nuestro diagrama de simulación en ISIS

PROTEUS 7.9 nos queda como se muestra en la figura inferior del párrafo.

Componentes utilizados: CELL, PIC16F877A, OVEN, GROUND, RES, IRL1004, POWER

TERMINAL, VIRTUAL TERMINAL, COMPIM, POT HG.

Figura 1.6 Simulación completa en ISIS PROTEUS del Controlador PID

con enlace a LabVIEW 2012 de National Instruments.

9

Simulación LabVIEW – MATLAB

El software de LabVIEW de National Instruments es un lenguaje de programación

visual. Cuenta con dos ventanas de desarrollo, la primera que permite el Diseño de la

Interfaz Gráfica (Front Panel) que es donde estaremos monitoreando nuestro proceso y

una segunda ventana en la cual se hace la programación a bloques (Block Diagrama) así

como el monitoreo de la ejecución del código paso a paso; esto en caso de tener un

error identificarlo a la brevedad o bien para optimizar el código programado.

Figura 1.7 Código a Bloques del Programa en LabVIEW (Block Diagram).

Figura 1.8 Interfaz Gráfica del Programa en LabVIEW (Front Panel).

10

Por último en el diagrama de bloques de LabVIEW se encuentra un MathSript,

una herramienta que permite ejecutar instrucciones en lenguaje de MATLAB dentro

del entorno de desarrollo de LabVIEW de National Instruments.

En la siguiente figura se muestra el comportamiento del controlador PID

implementando las siguientes ganancias del sistema:

a=0.1243;

b=0.00621;

c=.621514;

T= 100 milisegundos (En el microcontrolador representa un retardo “delay_ms (100);”)

Figura 1.9 Comportamiento del Controlador PID con Sobre Impulso.

11

Para amortiguar el sobre impulso se utilizaron las siguientes ganancias con un

tiempo de 1 ms.

a=0.1243;

b=0.000062;

c=62.1514;

T= 1 milisegundos (En el microcontrolador representa un retardo “delay_ms (1);”)

12

Conclusión

Los Softwares de Programación y Simulación Virtual son una herramienta

poderosa a lo hora de diseñar y desarrollar proyectos ya que permiten prevenir y/

corregir fallas inclusive antes de llegar a la etapa de construcción de un prototipo ya sea

de algún proceso de control y automatización, monitoreo etc.

Con las herramientas ofrecidas por ISIS PROTEUS, LabVIEW y MATLAB, se pudo

desarrollar un proyecto integral tanto de la parte de instumentación simulada en ISIS

PROTEUS como el monitoreo en LabVIEW, aunado a la parte matemática implementada

con un MathScript de MATLAB para la conversión del valor numérico recibido a un valor

en grados Centígrados de tal manera que se pudiera visualizar la temperatura sensada.

13

Apéndice 1 // Configuración Inicial del Microcontrolador PIC de Microchip™

#INCLUDE <16F877A.h>

#DEVICE adc=8

#USE delay(clock=4000000)

#USE RS232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)

#fuses XT, NOWDT

#BYTE TRISC= 0X87

// Declaración de Variables en la función principal o void main

void main(){

int set_Point;

int16 valor;

int16 control;

float a,b,c;

float temp_limit;

float rT,eT,iT,dT,yT,uT,iT0,eT0;

float max,min;

min=0.0;

max=1500.0;

a=0.1243;

b=0.000062;

c=62.1514;

temp_limit=0.0;

TRISC=0;

setup_timer_2(t2_div_by_4,249,1);

setup_ccp1(ccp_pwm);

SETUP_ADC_PORTS(ALL_ANALOG);

SETUP_ADC(ADC_CLOCK_INTERNAL);

//Ciclo a repetir (aquí se aloja el programa del PID discreto)

for(;;){

14

set_adc_channel(1);

delay_us(20);

set_Point=read_adc();

temp_limit=set_Point*19.53125;

set_adc_channel(0);

delay_us(20);

valor=read_adc();

PUTC(valor);

yT=valor*20000.0/1024.0;

rT=temp_limit;

eT=rT-yT;

iT=b*eT+iT0;

dT=c*(eT-eT0);

//Respuesta PID

uT=iT+a*eT+dT;

//Condiciones de Control en caso de sobrepasar positivamente o negativamente el rango de operación.

if(uT>max){

uT=max;

}

else{

if(uT<min){

uT=min;

}

}

control=uT;

set_pwm1_duty(control); //Carga del valor “control” para la generación del PWM

iT0=iT;

eT0=eT;

delay_ms(1);

}

}