Está en la página 1de 15

PROGRAMACIN Y

SIMULACIN
Maestra en Elctrica - II Semestre rea: Instrumentacin
Catedrtico: Dr. Enrique Cuan D. Alumno: Annuar Lpez

ndice
Introduccin .........................................................................................................................................................2
Controlador PID ..................................................................................................................................................3
Simulacin en Proteus ......................................................................................................................................5
Simulacin LabVIEW MATLAB ....................................................................................................................9
Conclusin .........................................................................................................................................................12
Apndice 1 ..........................................................................................................................................................13

Introduccin
El presente documento tiene como objetivo poner en prctica los conocimientos de
programacin adquiridos a lo largo del curso a travs del software de programacin y
simulacin MATLAB.
El proyecto que se desarroll en simulacin fue un control de temperatura de un horno
industrial; el control automtico del horno tiene retroalimentacin (lazo cerrado) ya que se
implement en l un controlador PID el cul es ejecutado por un microcontrolador
PIC16F877A, dicho dispositivo fue programado en lenguaje C y posteriormente simulado en
el programa ISIS Proteus versin 7.9; para posteriormente a travs de la emulacin de un
puerto COM dentro de la misma computadora, enlazar el software antes mencionado para
transmitir sus datos a LabVIEW de National Instruments versin 2012 en donde el
comportamiento del aumento o disminucin de la temperatura es monitorizado junto con la
ejecucin de un Mathscritp de MATLAB dentro del mismo entorno de programacin de
LabVIEW.

Controlador PID
Uno de los controladores ms comunes que se utilizan en la industria es el controlador PID
(Controlador Proporcional-Integral-Derivativo). Sin entrar en teora de control, se puede indicar que un
controlador PID responde a la siguiente ecuacin:


()
() = () +
() +
0

Donde e(t) es el error de la seal 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 ecuacin del controlador PID se puede escribir de la
siguiente manera:

() = 1 +

1
+ ()

Un controlador PID tiene tres parmetros (Kp,Ti,Td) los cuales interactan uno con el
otro hasta obtener la respuesta de salida deseada.

La respuesta de un controlador PID con una entrada escaln, se muestra en la


siguiente figura:

Figura 1.1 Respuesta a una Entrada Escaln


3

Los parmetros se pueden obtener de esta respuesta:


0 = 1 0

0 = 2 1

0 =

1 0
1 0

Segn Ziggler y Nichols, las relaciones de estos coeficientes con los parmetros del
controlador son:
=

1.20

= 20

0 0

= 0.50

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


transformada z, de tal manera que la ecuacin se re-escribe como:

1 1
() = () [1 +
+
]
(1 1 )

Tambin:
()

=+
+ (1 1 )
1
()
1
Donde:

La figura que se muestra a continuacin, describe el proceso a bloques del


controlador PID discreto.

Figura 1.2 Diagrama a bloques del Controlador PID discreto.


4

Simulacin en Proteus
Para obtener los valores de las ganancias del controlador PID discreto, primero se
prob el comportamiento del sistema con una entrada escaln al 20% de su capacidad,
para posteriormente analizar la curva caracterstica de operacin.

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


los siguientes que se muestran en la ilustracin.
Componentes utilizados: CELL, SWITCH,OVEN, GROUND.

Figura 1.3 Curva caracterstica de operacin del Horno.

Posteriormente se realiz la simulacin del microcontrolador PIC16F877A dentro


del mismo software de Proteus para verificar la correcta operacin del control discreto
con el PID; el cul se encargar de generar un pulso PWM para controlar el
calentamiento del Horno conmutando un MOSFET de Potencia con una realimentacin
anloga en el sistema para leer la temperatura del horno.
Componentes utilizados: CELL, PIC16F877A, OVEN, GROUND, RES, IRL1004, POWER
TERMINAL.

Figura 1.4 Simulacin del Control PID en ISIS Proteus.

Una vez probado el sistema, se procede a enlazar la simulacin del software de


ISIS PROTEUS 7.9 con LabVIEW 2012 y MatLAB. Para hacer esto se hizo uso de la
comunicacin 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 travs 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 Emulacin de los Puertos COM en modo Puente (Bridge).

Al agregar los componetes necesarios, as como un potencimetro (POT HG) para


poder ajustar el SETPOINT de control PID, nuestro diagrama de simulacin en ISIS
PROTEUS 7.9 nos queda como se muestra en la figura inferior del prrafo.
Componentes utilizados: CELL, PIC16F877A, OVEN, GROUND, RES, IRL1004, POWER
TERMINAL, VIRTUAL TERMINAL, COMPIM, POT HG.

Figura 1.6 Simulacin completa en ISIS PROTEUS del Controlador PID


con enlace a LabVIEW 2012 de National Instruments.

Simulacin LabVIEW MATLAB


El software de LabVIEW de National Instruments es un lenguaje de programacin
visual. Cuenta con dos ventanas de desarrollo, la primera que permite el Diseo de la
Interfaz Grfica (Front Panel) que es donde estaremos monitoreando nuestro proceso y
una segunda ventana en la cual se hace la programacin a bloques (Block Diagrama) as
como el monitoreo de la ejecucin del cdigo paso a paso; esto en caso de tener un
error identificarlo a la brevedad o bien para optimizar el cdigo programado.

Figura 1.7 Cdigo a Bloques del Programa en LabVIEW (Block Diagram).

Figura 1.8 Interfaz Grfica del Programa en LabVIEW (Front Panel).


9

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.

10

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);)

11

Conclusin
Los Softwares de Programacin y Simulacin Virtual son una herramienta
poderosa a lo hora de disear y desarrollar proyectos ya que permiten prevenir y/
corregir fallas inclusive antes de llegar a la etapa de construccin de un prototipo ya sea
de algn proceso de control y automatizacin, monitoreo etc.

Con las herramientas ofrecidas por ISIS PROTEUS, LabVIEW y MATLAB, se pudo
desarrollar un proyecto integral tanto de la parte de instumentacin simulada en ISIS
PROTEUS como el monitoreo en LabVIEW, aunado a la parte matemtica implementada
con un MathScript de MATLAB para la conversin del valor numrico recibido a un valor
en grados Centgrados de tal manera que se pudiera visualizar la temperatura sensada.

12

Apndice 1
// Configuracin 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

// Declaracin de Variables en la funcin 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(;;){

13

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 operacin.


if(uT>max){
uT=max;
}
else{
if(uT<min){
uT=min;
}
}
control=uT;
set_pwm1_duty(control); //Carga del valor control para la generacin del PWM
iT0=iT;
eT0=eT;
delay_ms(1);
}
}

14

También podría gustarte