Documente Academic
Documente Profesional
Documente Cultură
1.- INTRODUCCIN 2.- MARCO TERICO 2.1 CONTROLADOR PROPORCIONAL INTEGRAL DERIVATIVO
2.2 REGLAS DE ZIEGLER-NICHOLS PARA SINTONIZAR CONTROLADORES PID 3 4 4 4 7 8 8 10 10 11 11 13 13 15 19 21 22
2.3 ESQUEMA DE CONTROL DIGITAL 2.4 SEALES DIGITALES 2.5 MODELOS DE SISTEMAS DISCRETOS 2.6 DISEO DE CONTROLADORES DIGITALES 2.7 DISCRETIZACIN DE REGULADORES CONTINUOS 2.8 CONTROLADOR PID DISCRETO 2.9 PWM 3.- DESARROLLO DEL PROYECTO 3.1 ADQUISICIN DE DATOS 3.2 IMPLEMENTACIN DEL CONTROLADOR EN MATLAB 4.- CONCLUSIONES Y RESULTADOS 5.- ANEXOS 6.- BIBLIOGRAFIA
1.- INTRODUCCIN En el presente proyecto se dise e implement un controlador PID digital genrico en una PC, que es capaz de controlar una variable cualquiera dependiendo del sensor conectado a la tarjeta de adquisicin de datos, esta a su vez, esta comunicada con la PC va USB e intercambian informacin de forma serial, calcula una accin de control e interpreta dicha accin para ser enviada al actuador mediante una salida tipo PWM. A continuacin se presenta un diagrama a bloques del controlador.
Sensor
Comunicacin Serial
USB PWM
Actuador
El controlador PID (Proporcional, Integral y Derivativo) es un controlador realimentado cuyo propsito es hacer que el error en estado estacionario, entre la seal de referencia y la seal de salida de la planta, sea cero de manera asinttica en el tiempo, lo que se logra mediante el uso de la accin integral. Adems el controlador tiene la capacidad de anticipar el futuro a travs de la accin derivativa que tiene un efecto predictivo sobre la salida del proceso. El algoritmo de clculo del control PID se da en tres parmetros distintos: el proporcional, el integral, y el derivativo. El valor Proporcional determina la reaccin del error actual. El Integral genera una correccin proporcional a la integral del error, esto nos asegura que aplicando un esfuerzo de control suficiente, el error de seguimiento se reduce a cero. El Derivativo determina la reaccin del tiempo en el que el error se produce. La suma de estas tres acciones es usada para ajustar al proceso va un elemento de control como la posicin de una vlvula de control o la energa suministrada a un calentador, por ejemplo.
CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC Pgina 2
Ajustando estas tres variables en el algoritmo de control del PID, el controlador puede proveer un control diseado para lo que requiera el proceso a realizar.
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.
Pgina 3
En el primer mtodo, la respuesta de la planta a una entrada escaln unitario se obtiene de manera experimental. Si la planta no contiene integradores ni polos dominantes complejos conjugados, la curva de respuesta escaln unitario puede tener forma de S, como se observa en la figura 2. Si la respuesta no exhibe una curva con forma de S, este mtodo no es pertinente. Tales curvas de respuesta escaln se generan experimentalmente o a partir de una simulacin dinmica de la planta. La curva con forma de S se caracteriza por dos parmetros: el tiempo de retardo L y la constante de tiempo T. El tiempo de retardo y la constante de tiempo se determinan dibujando una recta tangente en el punto de inflexin de la curva con forma de S y determinando las intersecciones de esta tangente con el eje del tiempo y la lnea ( )=K, como se aprecia en la figura 2. En este caso, la funcin de transferencia del modo siguiente:
Pgina 4
Figura 2.
Ziegler y Nichols sugirieron establecer los valores de Kp, Ti y Td de acuerdo con la frmula que aparece en la siguiente tabla.
Tipo de controlador
P PI PID
Kp
Ti
Td 0 0
Observe que el controlador PID sintonizado mediante el primer mtodo de las reglas de Ziegler-Nichols produce:
( )
[ [
] ]
( )
Por lo tanto, el controlador PID tiene un polo en el origen y un cero doble en s=-1/L.
Pgina 5
Pgina 6
Desempean en la ecuacin en diferencias el mismo papel que las derivadas en las ecuaciones diferenciales de los sistemas continuos.
Pgina 7
Fig1. (a)Seal analgica representada por funcin continua, (b) seal digital representada por secuencia discreta, (c) efecto aliasing, (d) Disminucin de periodo de muestreo para evitar efecto aliasing
Al igual que en los sistemas continuos podemos obtener la funcin de transferencia a partir de la ecuacin diferencial por medio de la Transformada de Laplace teniendo en cuenta que: ( ) ( ) Para obtener: ( ) ( ) En los sistemas discretos podemos obtener su funcin de transferencia a partir de la ecuacin en diferencias y por medio de la Transformada en Z, sin ms que tener en cuenta: ( )
Pgina 8
El ms sencillo es el mtodo de la derivada, que consiste en aproximar la derivada por la pendiente de la recta que pasa por dos muestras consecutivas, con lo cual tenemos:
( )
Por lo tanto, para obtener el regulador discreto a partir del continuo basta sustituir en la funcin de transferencia las s por
Pgina 9
Realizando la sustitucin de las s por y operando, finalmente obtenemos la funcin de transferencia del PID discreto obtenido por la aproximacin de la derivada: ( ) [ ( ( ) ) ] ( )
( ) ( ) Donde:
2.9.- PWM.
La Modulacin por Ancho de Pulso (PWM = Pulse Width Modulation) es una tcnica para simular una salida analgica con una salida digital. El control digital se usa para crear una onda cuadrada, una seal que conmuta constantemente entre encendido y apagado. Este patrn de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios (siempre encendido) simplemente variando la proporcin de tiempo entre encendido y apagado. A la duracin del tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analgico cambiamos, o modulamos, ese ancho de pulso.
Pgina 10
El ciclo de trabajo de una seal peridica es el ancho relativo de su parte positiva en relacin con el perodo. Expresado matemticamente:
D es el ciclo de trabajo es el tiempo en que la funcin es positiva (ancho del pulso) T es el perodo de la funcin
La construccin tpica de un circuito PWM se lleva a cabo mediante un comparador con dos entradas y una salida. Una de las entradas se conecta a un oscilador de onda dientes de sierra, mientras que la otra queda disponible para la seal moduladora. En la salida la frecuencia es generalmente igual a la de la seal dientes de sierra, y el ciclo de trabajo est en funcin de la portadora. La principal desventaja que presentan los circuitos PWM es la posibilidad de que haya interferencias generadas por radiofrecuencia. stas pueden minimizarse ubicando el controlador cerca de la carga y realizando un filtrado de la fuente de alimentacin.
Pgina 11
Pgina 12
Pgina 13
Para poder ver el correcto funcionamiento del controlador se utiliz un sensor de temperatura LM35 y una bombilla de 5W para controlar la temperatura de una caja. La lnea verde representa la referencia, la azul el valor ms reciente de la variable en proceso y la roja es la accin de control calculada y ajustada en un rango de 0 % a 100 % de su capacidad. El programa responde instantneamente despus de haber recibido un dato vlido, ejecutando la funcin captura_callback configurada en la propiedad BytesAvailableFcn del objeto serial (s=serial(COMX)), de este modo la velocidad de procesamiento del controlador estar dada directamente por la rapidez en la que son transmitidos los datos desde el Arduino. El programa reconocer como dato vlido hasta que llegue un terminador, en este caso es un salto de lnea, estas caractersticas fueron configuradas en las propiedades BytesAvailableFcn y Terminator del objeto serial.
set(s,'BytesAvailableFcnMode','terminator') set(s,'Terminator','LF')
La funcin captura_callback, es la que realiza el clculo de la accin de control; el siguiente esquema representa la serie de acciones que realiza.
CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC Pgina 14
SetPoint r(T)
Clculo de la salida PID u(T)=a*e(T)+i(T)+ d(T) Clculo del termino derivativo d(T)=c*e(T)c*e(T0)
Antes de que sea ejecutado el programa, se deben de inicializar las variables e(T0) e i(T0) en ceros, eso se hizo desde la funcin OpeningFcn, tambin desde la misma funcin se declararon las variables que se ocuparan en la funcin principal as como las variables globales.
function visual2_OpeningFcn(hObject, eventdata, handles, varargin) global hand s iT0 n y global eT0 v_ent y = []; y1=[]; r=[]; n = 0; iT0=0; eT0=0; v_ent=[]; s=0; handles.output = hObject; % Update handles structure guidata(hObject, handles); hand = handles; delete(instrfind); CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC Pgina 15
CODIGO DE LA FUNCIN CAPTURA_CALLBACK ------------------------------------------------------------function capturar_callback(varargin) global s hand v_ent n global iT0 n y global eT0 y1 r v_ent = fgetl(s); v_ent = str2num(v_ent); set(hand.text4,'string',v_ent); temp1=v_ent*500/1024; %equivalente del voltaje en C set(hand.text20,'string',temp1); a=get(hand.edit_kp,'string'); a=str2num(a); temp=get(hand.edit_ti,'string'); temp=str2num(temp); b=(a*(0.001))/temp; temp=get(hand.edit_td,'string'); temp=str2num(temp); c=((a*temp)/(.001))/1000;
%los valores de a,b y c son calculados segn:
ent=v_ent; rf=get(hand.referencia,'value'); temp2=rf*500/1024; set(hand.text21,'string',temp2); error=rf-ent; set(hand.s_error,'string',error); iT=(b*error+iT0); dT=c*(error-eT0); uT=iT+a*error+dT; porc=(uT*255)/((b*1023+iT0)+(c*(1023-eT0))+(a*1023)); porc=fix(porc); iT0=iT; eT0=error; if porc<=0, porc=0; end set(hand.porc,'string',porc); if uT>10000, uT=10000; end; if uT<0, uT=0; set(hand.text13,'visible','on'); end; CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC Pgina 16
if uT>0, set(hand.text13,'visible','off'); end; set(hand.s_ctrl,'string',uT); n = n + 1; y = [y,ent]; r=[r,rf]; axes(hand.axes1) if n <= 10 plot(y); ylim([0,1024]) xlabel('tiempo') ylabel('Voltaje') hold on; plot(r,'g'); hold off; else plot(y(end-10:end)); ylim([0,1024]); xlabel('tiempo') ylabel('Voltaje') hold on; plot(r(end-10:end),'g'); hold off; end y1=[y1,porc]; axes(hand.axes2) if n <= 10 plot(y1,'r'); ylim([0,100]) xlabel('Accion de Control') ylabel('Porcentaje') else plot(y1(end-10:end),'r'); ylim([0,100]); xlabel('Accion de Control') ylabel('Porcentaje') end salida = fix(porc); salida = num2str(salida); set(hand.salida,'string',salida); fprintf(s,'%s', salida);
Pgina 17
4.- CONCLUSIONES Y RESULTADOS Para poder observar el funcionamiento del controlador PID de manera fsica se utiliz una caja pequea de acrlico, de la cual sus paredes internas fueron recubiertas con una capa de unicel para poder conservar la temperatura de la misma, como calentador se utiliz una bombilla de 5W que trabaja con un voltaje de 12 volts controlado por el canal de salida PWM del Arduino y como sensor de temperatura se emple el LM35. A continuacin se presentan algunas imgenes del funcionamiento del controlador, en ellas se muestran capturas del programa en la que se pueden ver los niveles de referencia y los actuales, tambin se muestran imgenes de la intensidad luminosa que corresponde a cada caso.
Pgina 18
CONCLUSIN
Los controladores PID son muy tiles para el control automtico, ya que presentan una muy buena precisin si son bien ajustados. Las reglas de ajuste propuestas presentan una forma de obtener los parmetros del controlador PID, siempre y cuando se tenga un modelo matemtico del sistema. Los valores obtenidos a partir de las reglas de ajuste no siempre nos permiten obtener una deseada por lo que los valores deben ser modificados conforme a lo que se desea. Un controlador PID permite que la respuesta de un sistema pueda llegar a tener un error nulo, ya que realiza una constante comparacin entre el valor de referencia y el valor actual de la variable, y utiliza este valor para calcular su accin de control. Aunque la eleccin del periodo de muestreo es muy importante puesto que un valor demasiado grande hace que se pierda informacin cuando se muestrean seales rpidas, en general la estructura del PID tiene la suciente exibilidad como para alcanzar excelentes resultados en muchas aplicaciones. La implementacin de controladores PID por medio se software en una PC, ofrece mltiples ventajas, ya que permite la modificacin de sus parmetros en cualquier momento, ofreciendo al usuario facilidades de operacin y ajuste, dependiendo de sus necesidades y el tipo de variable a controlar. Otra ventaja muy importante es que el tiempo de respuesta y procesamiento del controlador en la PC es instantnea, ofreciendo eficiencia en procesos en los que se requiere gran velocidad de respuesta.
Pgina 19
5.- ANEXOS
Arduino Arduino es una plataforma de electrnica abierta para la creacin de prototipos basada en software y hardware flexibles y fciles de usar. Arduino puede tomar informacin del entorno a travs de sus pines de entrada de toda una gama de sensores y puede afectar aquello que le rodea controlando luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes tipos de software (p.ej. Flash, Processing, MaxMSP). El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos.
Pgina 20
6.- BIBLIOGRAFIA
Teora PID. Autor: Virginia Mazzone http://www.eng.newcastle.edu.au/~jhb519/teaching/caut1/Apuntes/PID.pdf Esquema de control digital, seales digitales, modelos de sistemas discretos. Autor: Abel Alberto Cuadrado Vega http://isa.uniovi.es/~cuadrado/archivos/cdigitalbase.pdf Reglas de sintonizacin para controladores PID. Autor: John A. Gutirrez, Jorge A. Herrera, Carlos A. Orozco. http://www.angelfire.com/electronic/jagp/sem7/pidcont1.html Gua de usuario de la tarjeta electrnica Arduino. http://arduino.cc/en/Guide/HomePage Caractersticas Arduino. http://es.wikipedia.org/wiki/Arduino Funciones de lectura y escritura para la comunicacin serial. http://www.mathworks.com/help/techdoc/
Pgina 21