Sunteți pe pagina 1din 21

NDICE

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

Tarjeta de adquisicin de datos (Arduino)

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.

2.- MARCO TERICO 2.1.- Controlador proporcional integral derivativo


Un controlador PID (Proporcional Integral Derivativo) es un mecanismo de control por realimentacin que calcula la desviacin o error entre un valor medido y el valor que se quiere obtener, para aplicar una accin correctora que ajuste el proceso. La respuesta del controlador puede ser descrita en trminos de respuesta del control ante un error, el grado el cual el controlador llega al "set point", y el grado de oscilacin del sistema. Se puede indicar que un controlador PID responde a la siguiente ecuacin: ( ) ( ) ( ) ( )

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.

En el dominio de la frecuencia, el controlador PID se puede escribir como: ( ) [ ] ( )

2.2 Reglas de Ziegler-Nichols para sintonizar controladores PID.


Ziegler y Nichols propusieron unas reglas para determinar los valores de la ganancia proporcional Kp, del tiempo integral Ti y del tiempo derivativo Td, con base en las caractersticas de respuesta transitoria de una planta especifica. Tal determinacin de los parmetros de los controladores PID o de la sintonizacin de los controles PID la realizan los ingenieros en el sitio mediante experimentos sobre la planta. Existen dos mtodos denominados reglas de sintonizacin de Ziegler-Nichols. En ambos se pretende obtener un 25% de sobrepaso mximo en la respuesta escaln.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

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:

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

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.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 5

2.3.- Esquema de control digital


El esquema bsico del control digital es semejante al del control analgico salvo por el hecho de que el conjunto comparador-regulador se encuentra dentro de un computador. Dicho conjunto comparador-regulador forma parte de un programa dentro del computador. El comparador no es ms que una resta entre dos variables y el regulador es una serie de productos y sumas. Para unir este mbito de nmeros dentro de un programa al mbito fsico del sistema a controlar se necesita una interfaz. Esa es la labor que realizan precisamente los dos elementos nuevos que aparecen en el esquema del control digital respecto al del control analgico: el conversor digital/analgico (D/A) y el conversor analgico digital (A/D). El conversor D/A sirve para convertir el valor de la accin de control calculado dentro del programa en una seal elctrica fsica que acta sobre el proceso. A su vez el conversor A/D sirve para convertir la seal elctrica que proporciona el sensor en un nmero dentro del programa.

Esquema de control con regulador continuo (analgico)

Esquema de control con regulador discreto (digital)

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 6

2.4.- Seales digitales


En un sistema continuo (analgico) las seales vienen representadas por funciones continuas (g1-a). En un sistema discreto (digital) sin embargo, se representan como secuencias discretas (g1-b). En el caso que nos ocupa, esas secuencias discretas son una serie de nmeros que provienen de tomar los valores instantneos de seales analgicas en instantes de tiempo concretos. Es lo que se denomina muestreo. Esos instantes suelen estar equiespaciados por un tiempo T que se denomina periodo de muestreo. A cada uno de los valores se les denomina muestras y se identican por su nmero de muestra k. En fig1-b se observa una secuencia y = {y0, y1, y2, . . .}, que proviene de una seal analgica y(t) (g1-a), con la relacin entre muestra k e instante de tiempo kT . 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 (g1-c y d)..

2.5.- Modelos de sistemas discretos


Al igual que un modelo de un sistema continuo (lineal e invariante) est representado por una ecuacin diferencial: ( ) ( ) ( ) ( ) ( ) ( ) ( )

Un modelo de un sistema discreto viene dado por su ecuacin en diferencias:

Donde se observa que las muestras para distintos instantes de muestreo

Desempean en la ecuacin en diferencias el mismo papel que las derivadas en las ecuaciones diferenciales de los sistemas continuos.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

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: ( )

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 8

Con lo que obtenemos la funcin de transferencia: ( ) ( )

2.6.- Diseo de controladores digitales


Existen dos enfoques a la hora de realizar el diseo de un controlador discreto: 1. Disear directamente en z trabajar con sistemas discretos y metodologas aplicables a los mismos. 2. Disear en s y pasar a z : se pueden aplicar todos los conocimientos de sistemas continuos para obtener un regulador continuo y luego convertir ese regulador continuo en uno discreto (discretizar).

2.7.- Discretizacin de reguladores continuos


Para obtener la versin discreta de un sistema continuo se dispone, a grandes rasgos, de dos posibilidades: Mtodo exacto: tener en cuenta la relacin Mtodos aproximados: por ejemplo el de la derivada.

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:
( )

Que visto en sus correspondientes transformadas se convierte en:


( ) ( )

Por lo tanto, para obtener el regulador discreto a partir del continuo basta sustituir en la funcin de transferencia las s por

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 9

2.8.- Controlador PID discreto


De acuerdo a lo visto en el punto anterior, podemos obtener un PID discreto a partir de la versin continua, que es: ( ) ( ) [ ]

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: ( ) [ ( ( ) ) ] ( )

La funcin de transferencia discreta, tambin puede ser representada como:

( ) ( ) 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.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

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.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 11

3.- DESARROLLO DEL PROYECTO


En el presente proyecto se dise un controlador PID digital mediante el GUIDE (Graphical User Interface Development Enviroment) de MATLAB, dicho controlador trabaja con una frecuencia de muestreo de 1kHz que permite modificar desde el entorno grfico las ganancias del controlador y el valor de la referencia (set-point SP), y mostrar grficamente el valor ms reciente de la variable en proceso y de la accin de control, actualizados en cada instante de muestreo. Para la adquisicin de datos, se utiliz el microcontrolador AT-Mega 328 integrado en la tarjeta electrnica Arduino, el cual recibe el voltaje entregado por el sensor, le obtiene su equivalente digital y lo enva de manera serial a la PC, esperando como respuesta la accin de control calculada por el controlador para posteriormente ser enviado por un canal de salida en formato PWM.

3.1.- Adquisicin de datos


En esta etapa del proyecto se utiliz la tarjeta electrnica Arduino, ya que puede llegar a tener una frecuencia de trabajo elevada y as cumplir con el requerimiento de la frecuencia de 1 kHz sin problemas, as como tambin poder establecer la comunicacin va serial de manera eficiente. Se utiliz el entorno de programacin propio de Arduino para la elaboracin del programa, el cual se encarga de procesar mediante el convertidor A/D la seal recibida del sensor y enviarla va USB de manera serial y esperar como respuesta del controlador la accin calculada en base a los parmetros establecidos para despus procesar la respuesta recibida y convertirla para ser enviada por el canal de salida en formato PWM.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 12

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 13

3.2.- Implementacin del controlador en MATLAB


La interfaz grfica del controlador, es capaz de recibir del usuario (por medio de cuadros de texto editables) las ganancias, constantes de tiempo y referencia para realizar el clculo de la accin de control correspondiente a esos parmetros, permite tambin mostrar de manera grfica los valores actuales de la variable en proceso as como de la accin de control.

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)

Actualizacin de variables i(T0)=i(T) e(T0)=e(T)

Muestreo de la seal de salida y(T)

Transferencia de u(T) al actuador

Clculo de error e(T)= r(T)-y(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)

Clculo del termino integral i(T)=b*e(T)+i(T)

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

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

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.

3% de la capacidad del PWM

49% de la capacidad del PWM

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 18

82% de la capacidad del PWM.

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.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

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.

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

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/

CONTROLADOR PID DIGITAL IMPLEMENTADO EN UNA PC

Pgina 21

S-ar putea să vă placă și