Você está na página 1de 6

Laboratorio Automatizacin Industrial Mecatrnica

2013

Control PID de un Sistema de Temperatura

Luigui Mauricio Albn Fernndez
Juan Esteban Ordoez Bonilla
Escuela Politcnica del Ejrcito
Carrera de Ingeniera Mecatrnica
Correo-e: lmalban@espe.edu.ec
jeordonez@espe.edu.ec

Abstract I n this paper, a fractional order PID controller is investigated for a position
servomechanism control system considering actuator saturation and the shaft torsional flexi-
bility. For actually implementation, we introduced a modified approximation method to realize
the designed fractional order PI D controller. Numerous simulation comparisons presented in
this paper indicate that, the fractional order PI D controller, if properly designed and
implemented, will outperform the conventional integer order PI D controller.


1. Introduccin
El PID, es sus distintas versiones constituye la solucin ms
aceptada en los problemas de control en la industria. Se
calcula que el 95% de controladores industriales analgicos o
digitales, constituyen el algoritmo del PID.
Se puede decir que el PID es el regulador natural por
excelencia. Comportndose como un ser racional ante una
toma de decisin: tomando en cuenta el estado actual
(proporcional), la historia pasada (integral) y un pronstico del
futuro (derivada) del error o desviacin del comportamiento
deseado.
El PID discreto tiene dos formas principales conocidas como
posicional y de velocidad.
La ecuacin 1. ofrece la forma posicional del algoritmo PID
discreto:
| | ) 0 ( ) 1 ( ) ( ) ( ) ( ) (
1
u t e t e
Tc
Td
i e
Ti
Tc
t e Kp t u
t
i
+
(

+ + =

=

Ecuacin 1.1

Dnde:
u(t)-variable de control, generalmente posicin de una vlvula.
u(0) es la posicin inicial.
Kp, Ti y Td-Ganancia, tiempo integral y tiempo derivativo.
Tc-periodo de control.
La forma de velocidad del PID discreto se obtiene fcilmente a
partir de (1), calculando u(t) menos u(t-1), con lo que se llega
a:
(

+ + + = A )) 2 ( ) 1 ( 2 ) ( ( ) ( )) 1 ( ) ( ( ) ( t e t e t e
Tc
Td
t e
Ti
Tc
t e t e Kp t u
Ecuacin 1.2
Donde
) 1 ( ) ( ) ( = A t u t u t u 1.3
O
) ( ) 1 ( ) ( t u t u t u A + = 1.4



2. Controlador PID


Figura 1. Esquema controlador PID
Un algoritmo PID verdaderamente profesional es el que puede
trabajar de forma confiable ante las condiciones reales, incluye
una serie de detalles que son obviados en ocasiones y que
pueden marcar la diferencia entre un buen y un mal
comportamiento. Se presenta a continuacin una versin que
ha sido probada exhaustivamente en la prctica con buenos
resultados:
) (
) (
) ( ) ( t Int
R Tc
t y Td
t e
Bp
Ru
t u
y
n
+
(
(

A
= 1.5
Donde:
Ru = umax umin Rango del actuador. A menudo 1-100%.
Ry = ymax y min Rango del transmisor con que se mide la
variable en unidades fisicas. Por ejemplo: 0 100 grad. C, 4.2
20 Kgs./cm
2
, etc.

y
f rf
n
R
t y t y
t e
) ( ) (
) (

= 1.6
Es el error normalizado
y
rf
(t) Valor de referencia, eventualmente filtrado mediante
un filtro exponencial de primer orden.
y
f
(t) Valor de la salida filtrada.
Bp Banda proporcional. Se relaciona con la ganancia
mediante Kp = Ru/Bp. En muchas ocasiones Kp=100/Bp.
) ( ) 1 ( ) ( t e
TiBp
TcRu
t Int t Int
n
+ = 1.7
) 0 ( ) 0 ( u Int = 1.8
Int(t) representa al modo integral en el algoritmo PID. Su
clculo separado mediante la expresin (1.7) permite, por una
parte, inicializar este trmino con la posicin del actuador, de
manera que el modo integral es el que garantiza el nivel de la
seal de control, pudiendo considerarse los modos P y D como
desviaciones de este nivel. Por otra parte, el clculo separado
del modo integral, permite chequear en cada periodo que su
valor este dentro del rango de control, evitndose los
problemas asociados a la saturacin del modo integral
(integral wind up).
Ntese que en la expresin (1.5) del algoritmo se utiliza el
incremento de la salida ) (t y A en lugar del incremento del
error. Este es un recurso conocido para evitar el llamado golpe
de la derivada cuando se realiza un cambio brusco del valor de
referencia y
rf
que puede provocar oscilaciones innecesarias.
Considrese, por ejemplo:
) ( ) ( ) ( t y t y t e
rf
= 1.9
) 1 ( ) 1 ( ) 1 ( = t y t y t e
rf
1.10
Si la referencia permanece constante, es decir y
rf
(t) = y
rf
(t-1),
entonces:
) ( ) ( t y t e A = A 1.11
Sea en este caso el uso del negativo del incremento de la salida
es perfectamente equivalente al del incremento del error para
conformar el modo derivativo del PID. No obstante, si se
produce un cambio de la referencia, tendremos que:
) ( ) ( ) ( t y t y t e
rf
A + A = A 1.12
A diferencia del cambio en la salida, que por naturaleza es
lento dada la dinmica del proceso, el cambio de la referencia
es inmediato y bresco, lo cual significa que el incremento del
error y por ende la componente derivativa del regulador
tambin cambia bruscamente. Este es precisamente el efecto
desestabilizador que se pretende evitar cuando se sustituye al
incremento del error por el incremento de la salida en el modo
derivativo.
La variable u(t) generalmente se encuentra en un rango
normalizado en la computadora (10-100) (0-1). Despus, en
el convertidor D/A se transforma en una seal normalizada,
p.ej. de 4 a 20 ma.
3. Inicializacin y modo de regulador
digital PID.
Deben tomarse unas previsiones en la inicializacin y cambio
del modo de un regulador digital PID si se requiere un
comportamiento suave y libre de saltos bruscos, a
continuacin detallamos las ms importantes:

- Cuando se pasa del modo respaldo al modo manual,
debe hacerse el valor Int(0) = u(0). Esto puede
hacerse automticamente si se mide la variable de
control u(t) o manualmente, leyendo el valor de u(t)
que tiene el equipo de respaldo e insertndolo en la
computadora.

- El paso de modo manual a automtico puede lograrse
en una forma suave, si se hace y
rf
(0) = y(0) en el
momento de trnsito. De esta forma el regulador ve
inicialmente un error igual a cero y no se producen
saltos. Posteriormente la referencia puede ser llevada
suavemente al valor deseado.

- Si estando en el modo automtico se pasa a manual y
se hacen algunas operaciones de apertura o cierre de
vlvula, estos cambios deben reflejarse en el trmino
Int(t) del regulador PID, de manera que cuando se
regrese al modo automtico, el valor de la integral
coincida con la posicin de la vlvula en ese
momento.

4. Modelado de la planta.
La planta que se dise para el uso en el laboratorio es una
caja de madera, (el motivo porque la madera conserva mejor el
calor) de dimensiones 20x15x15 cm aproximadamente ya que
nosotros reciclamos una caja que tenamos, con unos agujeros
tanto en su parte lateral como en la parte superior para el
ingreso y enfriamiento de la misma dependiendo de cmo se
vaya realizando el control.
El actuador a utilizar es una resistencia elctrica de
aproximadamente 9 Ohm la cual con la ayuda de una seal de
control que activa a un transistor logra activarlo y funcionar
segn la misma.
El sensor usado es un sensor de temperatura LM35 que es muy
comn en las acciones de censado y con una sensibilidad de
10 mv/C.
El modelamiento se lo realizo a travs del siguiente algoritmo
de envi-recepcin de datos a travs de la comunicacin
RS232, se consider tomar 2 vectores que representaran
entrada vs. Salida. Por medio de la herramienta ident de
MATLAB.
#include <16f877a.h>
#device ADC=10
#fuses NOWDT, HS, PUT, NOPROTECT
#use delay(crystal=4000000)
#use rs232(baud=9600, parity=N, xmit=PIN_C6,
rcv=PIN_C7, bits=8)
#include <lcd.c>

int16 dc_set=0;
int contador=0;
int16 valor,var1=0,var2=0,var3=0,var4=0;
char b;

#INT_rda
void rda_isr()
{
disable_interrupts(GLOBAL);

contador=contador+1;
b=getch();
if(b>=48 && b<=57)
{
if(contador==1)
{
var1=(int16)b-48;
}
if(contador==2)
{
var1=var1*10;
var2=(int16)b-48;
}
if(contador==3)
{
var1=var1*10;
var2=var2*10;
var3=(int16)b-48;
}
if(contador==4)
{
var1=var1*10;
var2=var2*10;
var3=var3*10;
var4=(int16)b-48;
}
}
else
{

valor=read_adc();
delay_ms(10);
printf("%lu\n",valor);

dc_set=var1+var2+var3+var4;

var1=0;
var2=0;
var3=0;
var4=0;
contador=0;

//printf("%lu\n",dc_set);
}
enable_interrupts(GLOBAL);
}

void main ()
{
setup_timer_1( T1_INTERNAL | T1_DIV_BY_1 );
set_timer1(15536);//45536

setup_adc_ports(RA0_RA1_RA3_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );

setup_timer_2(T2_DIV_BY_4,249,1);
setup_ccp1(CCP_PWM);
set_pwm1_duty(0);

set_adc_channel(0);
delay_ms(10);
lcd_init();
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);

while (true)
{
set_pwm1_duty(dc_set);
}
}

Fig 1. Algoritmo de programacin envio-recepcion
modelamiento de planta

Fig2. Toolbox IDENT, para obtener modelamiento
matemtico en forma de funcin de transferencia, la planta a
controlar.

5. Planta en TF.

()




6. Consideraciones de Potencia y modelado
Si, bien el sistema se dedujo de la ayuda de MATLAB, es
prudente analizar fsicamente en que se ve afectado y
como en teora se desarrollara la planta, mediante
transferencia de calor y correlaciones de Potencia
elctrica con el calor suministrado por el mismo.


Volumen aproximado planta.


Densidad del aire a 75 C


Calor especifico aire a 75 C





Como potencia mxima elctrica de entrega hacia el
sistema se obtiene.

Fig3. Simulacion de parte de potencia, implementado
para realizar los diaparos del PWM de salida del uC.
Potencia elctrica







1.

2. (
)

Relacin, temperatura final versus tiempo
necesario.



Considerando y


7. Implementacin del controlador.
Una vez modelado el sistema, y haber obtenido respuesta
a una entrada escaln.


Fig4. Respuesta a escaln del sistema sin controlador.

Como podemos observar si bien el sistema se mantiene
estable, es necesario aumentar la velocidad de respuesta de la
misma, tiene un proceso bastante lento, por lo que por
mtodos de sintonizacin se realizaron los clculos de las
constantes: kp=2.94 ki=0.01 kd=2.83.
Se procedi a realizar el algoritmo ed control por medio de
MATLAB
%Controlador PID MATLAB
%Automatizacion industril Mecatronica
clear all
clc
%Configuracion de puerto
cIO=arduino('COM3');
cIO.pinMode(9,'output');
PWM=10;%Arranque del PWM en 10
cIO.analogWrite(9,PWM);
%Constantes controlador
kp=2.94;
kd=0.01;
ki=2.83;

%Tiempo de muestreo
temp_muest=0.5;

%Inicializacin de variables
errorin=0;
tempin=0;
contador=0;
i=0;
time=[];
tempgraf=[];

%Setpoint (25C-100C)
setpoint=input('Setpoint C: ');

while(
true)
%Valor de temperatura, lectura ADC y
transformacin
ADC=cIO.analogRead(1);
Temperatura=(ADC*500/1024)
%temperatura=((6*10^(-6))*temp1)-
(0.0033*(temp1^2))+(0.7745*temp1)+20.66;

%ecuacin del error
Error=setpoint-Temperatura

%Ecuaciones del control

temperatura=0.5*(Error+errorin)*temp_muest
+tempin;

A=kp+0.5*ki*temp_muest+(kd/temp_muest);
B=0.5*ki*temp_muest-
(kd/temp_muest);
C=ki;

control=A*Error+B*errorin+C*tempin;
PWM=ceil(control*2.53);

if PWM>255
PWM=255
else if PWM<0
PWM=0
else
PWM
end
end

%Escritura del valor de PWM
cIO.analogWrite(9,PWM);
errorin=Error;
tempin=Temperatura;
i=i+1;

pause(1)
end

8. Resultados
Los resultados obtenidos fueron muy satisfactorios,
considerando la poca complejidad de la planta y alta eficiencia
que presenta los tiempos de disparo del PWM que arroja el
uC, en nuestro caso particular ArduinoONE
El tiempo de establecimiento es considerablemente alto,
tomando en cuenta que las plantas de temperatura cuentan con
un principio de conduccin, y el mismo se realiza en nuestro
caso a travs del aire, por lo que el calor transferido tendr un
tiempo prudente de transferencia y esto hace que el tiempo de
establecimiento de por si ser algo prolongado.
9. Conclusiones
Se determin un control bastante aceptable, considerando el
sistema a controlar y la simplicidad del mismo.
Los resultados reales fueron un ess=3% y un tiempo de
estableciente de ts=350s.
Bibliografa

[1]http://academiajournals.com/downloads/Lorandi
2011IE.pdf
[2]http://repositorio.espe.edu.ec/bitstream/21000/4945/1
/T-ESPE-033010.pdf

Você também pode gostar