DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO
DISEÑO E IMPLEMENTACIÓN DE CONTROLADORES PID, FUZZY Y PIDFUZZY PARA UNA PLANTA DE LUZ ESCUELA POLITÉCNICA DEL EJÉRCITO FACULTAD DE INGENIERÍA MECATRÓNICA AUTOMATIZACIÓN INDUSTRIAL MECATRÓNICA ABRIL 2013
Abstract.- En este documento se realiza un análisis completo de lo que es el diseño e implementación de dos tipos de controladores existentes y muy utilizados a nivel industrial como son el PID y el control con lógica Difusa. Aplicándolos al control del porcentaje de iluminación, por lo que también se ha incluido una breve descripción de la construcción de una planta de luz didáctica en la cual se ha implementado los dos tipos de controladores anteriormente mencionados. En el documento se realiza una breve explicación de las características y parámetros que se deben tomar en cuenta para el desarrollo de cada uno de los controladores, relacionándolos con los aspectos propios del tipo de planta, para después describir el procedimiento realizado en la implementación de los mismos. Por último se ha proporcionado una lista de consideraciones y recomendaciones que se han redactado por efecto de la experiencia que se ha obtenido después del desarrollo de este trabajo mediante el análisis de los resultados obtenidos. I.
Si bien existen muchos tipos de control basados en este principio, el control proporcional, derivativo e integral (PID), es el que mayor implantación tiene en la industria de procesos. Dicho control consiste esencialmente en obtener la acción de control como la suma de tres términos: término proporcional, término derivativo y término integral.
INTRODUCCION
Controlador PID.- El control automático asienta
sus bases esencialmente en el concepto de realimentación. Este concepto se concreta en una estructura de control en la cual el controlador se puede entender como un operador, que en función de la salida deseada de la planta, y la salida real medida, proporciona la acción de control a aplicar sobre el sistema.
Se pueden obtener variaciones a este esquema consistentes en la no introducción de los
1
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO
términos derivativo e integral; en dicho caso el control coincide con el llamado control proporcional. Si solamente se prescinde de la acción integral, el control se denomina control proporcional derivativo (PD). Si, por el contrario, el único término que desaparece es el derivativo, el control se denomina proporcional integral (PI).
agricultura y la ganadería hasta la inferencia en procesos industriales en el aspecto de realizar un eficiente consumo de energía y de esta manera optimizar recursos. Es por esto que el estudio de esta rama de la automatización es tan importante, ya que con los conocimientos necesarios en el comportamiento que tienen este tipo de plantas mediante la implementación de los diferentes controladores, se podrá adquirir la experiencia necesaria para en un futuro tomar en cuenta consideraciones fundamentales y así obtener los resultados deseados en la manipulación de estos sistemas, reflejándose este hecho en el correcto desarrollo de cualquier proceso industrial.
Según estudios realizados en 95% de los bucles de control en la industria son del tipo PID, y fundamentalmente PI. Controlador FUZZY.- El desarrollo del control
Fuzzy tiene, su origen en los sistemas basados en reglas para la toma de decisiones y en la lógica difusa para evaluación de aquellas. II.
Los controladores fuzzy, al igual que otros, toman los valores de las variables de entrada, realizan algún procedimiento con ellas, deciden como modificar las variables de salida y lo realizan, afectando estas últimas en la planta. La diferencia esencial es que no procesan ecuaciones ni tablas, procesan reglas para decidir cómo cambiar las salidas. Esto lo hace una tecnología muy accesible, ya que las reglas están más cerca del sentido común que las ecuaciones y los modelos.
CONSTRUCCIÓN DE LA PLANTA DE LUZ Para la construcción de la planta didáctica de luz se utilizó un diseño simple y conciso que fue una caja cubica de madera (tabla triplex) a la cual se le fue confeccionando para adherir los diferentes accesorios y dispositivos electrónicos y así obtener los resultados que se muestran en la figura 1.
Este método de procesamiento de reglas está vinculado con los sistemas expertos, uno de los frutos tangibles de la Inteligencia Artificial (IA). Estos sistemas nacieron como consecuencia natural del desarrollo de esta disciplina, ya que era necesario agregar a los programas ese conocimiento y experiencia, que el experto humano tiene para resolver un determinado problema. Figura 1. Planta de Luz didáctica
el control de iluminación es un tema que tiene un sin fin de aplicaciones que van desde el campo de la Control
de
Iluminación.-
Materiales y acondicionamientos:
2
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO
Dentro de los materiales electrónicos que se utilizaron para la conformación de la planta están los siguientes:
Foco de 12V / 3A
2 LDR’s de 1 MΩ
Microprocesador utilizado:
Para la transmisión y recepción de datos desde la PC a la planta y viceversa se optó por el uso de un microprocesador que ha tenido mucha acogida en los últimos tiempos, este es el ARDUINO. Para nuestro proyecto específicamente se utilizó la versión MEGA 2560. Básicamente esta tecnología se basa en el uso de AVR’ que consta también de una placa de circuitería que se puede tomar a manera de
2 potenciómetros de precisión de 1 M Ω 1 conversor DC-DC 1 transistor TIP 41 1 transistor 2N3904 Una regleta de espadines Baquelita
un “entrenador” como se puede observar en la
figura 3.
Estos dispositivos fueron utilizados para la implementación de una placa de circuito impreso (figura 2), la cual consta de las siguientes aplicaciones:
Un circuito de potencia en el que se realiza la amplificación respectiva de corriente para alimentar al foco de 12V/3A. Dos divisores de voltaje con potenciómetros de precisión para regular
Figura 3. Microprocesador ARDUINO MEGA 2560
las lecturas de las LDR’s.
Se consideró este micro debido a su facilidad tanto en la programación como al momento de transferir dicho programa al dispositivo, puesto que no necesita de un implemento extra como
Un circuito regulador de voltaje DC para alimentar toda la placa que consta de un conversor DC-DC para evitar el uso de fuentes externas y así acreditar a la presentación del proyecto.
lo es el quemador en el caso de los PIC’s.
III.
TRATAMIENTO DE LA MICROPROCESADOR
SEÑAL
EN
EL
En este paso del proyecto se realizó la configuración del micro, es decir la programación del mismo la cual debe considerar los siguientes aspectos:
Configuración de la comunicación serial e inicialización del pin análogo 2 como salida, para lo cual se utiliza las siguientes líneas de código en el void setup: void setup() {
Figura 2. Placa de circuito para planta de luz
3
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO
Serial.begin(9600);
set(s,'StopBits',1); set(s,'Parity','none'); set(s,'FlowControl','none'); set(s,'Terminator','LF')
analogWrite(2,255); } Para la lectura e impresión de los LDR’s se configura el pin A0 del arduino como entrada con su respectiva comunicación con las siguientes líneas de código:
Sin embargo el software nos da la ventaja de realizar la comunicación automáticamente digitando únicamente las siguientes líneas de código:
canal0 = analogRead(0); Serial.println(canal0);
arduino=serial('COM3','Baud Rate', 9600); set(arduino,'Timeout',1);
Es importante recalcar que en este tipo de procesador no es necesario configurar el TIMER 2 para la salida PWM. IV.
Pero de todas formas es muy importante tener el conocimiento del procedimiento real.
CONFIGURACIÓN DE LA COMUNICACIÓN SERIAL EN MATLAB Y LABVIEW
Una vez que se ha realizado dicha configuración es importante conocer algunas de las instrucciones que Matlab posee para realizar la transmisión y recepción de datos entre la PC y el micro, las cuales se incluirán en las líneas de código del programa total.
Uno de los pasos fundamentales para la implementación de un control mediante cualquier software es la correcta configuración de su comunicación serial.
fopen(comluz) fclose(comluz)
Comunicación Serial en Matlab:
Para realizar la configuración de la comunicación en Matlab se deben considerar los siguientes parámetros:
Este par de instrucciones son las que abren y cierran el puerto respectivamente para de esta manera poder iniciar o finalizar la comunicación serial.
Velocidad de transmisión de datos Longitud del frame Bit de parada Bit de paridad Control de flujo Terminador (\n o ”enter”)
fprintf(comluz,'%s\n',pwm);
Mediante el uso de la línea anterior realizamos el envío de datos al microprocesador, en esta instrucción se toman en cuenta 3 parámetros que son:
Para la configuración de dichos parámetros existen las respectivas líneas de código, que son las siguientes:
comluz=serial('COM3'); set(s,'BaudRate',9600); set(s,'DataBits',8);
4
Nombre de la comunicación. Tipo de dato de envío (en este caso es un string) con su respectivo terminador, previamente configurado. Y el nombre de la variable que contiene el valor que se desea enviar al micro.
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO intervienen en la transmisión y recepción de datos. Para realizar la escritura desde la PC al micro se utiliza el bloque “VISA Write” , el cual considera los parámetros que se indican en la figura 5:
fscanf(comluz,'%d');
Para la lectura de información del micro se utiliza la anterior instrucción, la cual considera los siguientes parámetros:
El nombre de la comunicación. El tipo de dato a ser leído
Comunicación Serial en LABVIEW:
Figura 5. Configuración de envío de datos en Labview
Mientras que para la lectura de datos que proporciona el micro se utiliza el bloque
Para la configuración de la comunicación serial en este software los pasos son mucho más sencillos debido que se trata de una programación gráfica. Por lo tanto especificaremos el procedimiento mediante el uso de imágenes.
llamado “VISA Read”, el cual se configura
tomando en cuenta parámetros que se muestran en la figura 6.
Básicamente la configuración del puerto se realiza mediante el uso de un solo bloque llamado VISA SERIAL, en el cual constan todos y cada uno de los parámetros mencionados anteriormente como se indica en la figura 4. Figura 6. Configuración de lectura de datos en Labview
A diferencia de Matlab en este software solo se realiza la instrucción de cerrado del puerto serial ya que la apertura del mismo se genera en el bloque “VISA SERIAL”. Para esto el software se basa en el uso del bloque “VISA Close”
considerando los aspectos que se muestran en la figura 7.
Figura 4. Configuración del puerto serial en Labview
Sin embargo es prudente recalcar que el único paso que se debe realizar estrictamente, es el de designar el puerto COM que se va ha utilizar ya que el resto de parámetros el software los designa por default como se muestra en la figura 4. Al igual que en el software Matlab, existen instrucciones o en este caso bloques que
Figura 7. Cierre del puerto serial en Labview
5
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ V.
EDGAR SALAS CARLOS ALOMOTO
OBTENCIÓN DEL MODELO MATEMÁTICO DE LA PLANTA
Para la obtención del modelo matemático de la planta se ha utilizado el software Matlab, ya que este posee una herramienta muy amplia y
útil que se llama “ident”. Previo a esto se debe
realizar primero un análisis de un parámetro muy importante dentro de éste tema que es el TIEMPO DE MUESTREO. Pese a que el comportamiento de la planta de luz es de carácter análogo, para poder realizar los respectivos controladores la PC digitaliza la señal proveniente del micro para lo cual se debe hacer una consideración muy importante basada en el teorema de Nyquist, que dice “si
un vector de 4 muestras de las cuales se saca un promedio, del cual su respuesta es el dato que se tomará en cuenta para los cálculos del modelo matemático. Una vez hecho esto y tomando en cuenta el retardo que genera cada línea de código y las pausas que se impusieron para cada bucle tanto del micro como de la PC, se llegó a la conclusión que el tiempo de muestreo óptimo para el modelado de la planta es de 0.07 segundos.
Como ya se dijo anteriormente se realizó una toma de datos tanto de los valores de cambio en las resistencias (LDR’s / Entrada) como los
del PWM (Salida) generando de esta manera un comportamiento de la planta mostrado en la figura 8.
se realiza un número mínimo de 8 muestras en la primera oscilación del sistema, este se encuentra
muestreado
correctamente
y
evitaremos aliasing, y que si el tiempo de muestreo de los datos es mucho menor a 8 muestras en la primera oscilación se podrá trabajar al controlador de manera análoga. ”
Tomando en cuenta esta afirmación se realizó e siguiente procedimiento:
Primero se realizó un análisis de la capacidad de envío y recepción de datos del microprocesador (ARDUINO), mediante la creación de un bucle que aumente la salida de pwm gradualmente desde el mínimo hasta el máximo y realizando una lectura mediante los LDR’s al mismo tiempo, se cronometró dicho proceso para de esta manera poder calcular casi exactamente la velocidad de muestreo máxima del micro. Se obtuvo como resultado 0.015 seg. Posteriormente y a manera de un filtro mediante software (Matlab) se realizó un bucle que envía y recibe datos generando
Figura 8. Comportamiento de la Planta de Luz (PWM vs LDR)
Ahora si se realizará entonces el modelado de la planta mediante el uso de la herramienta “ident”.
6
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO acciones que comprende este tipo de controlador. Controlador PID:
El controlador PID básico combina las acciones proporcional, derivativa e integral mediante el siguiente algoritmo de control:
() () ∫ () ()
Figura 9. Panel de la herramienta IDENT de Matlab
Ec. [1.1]
En esta herramienta, se especifican aspectos como:
Por lo que tenemos que:
Entradas Salidas Tipo de función de transferencia Número de polos Número de ceros
A partir de la ecuación [1.1] se realizara el algoritmo para la programación de cada una de las acciones de control, tomando en cuenta que el controlador es simplemente la acumulación de error. Por tal razón existirán dos variables para manipular el error y realizar la comparación por realimentación. Después de esta consideración se puede crear el siguiente código para las acciones de control proporcional, integral y derivativo:
y observando que modelo se adapta al comportamiento de la planta se genera el modelo matemático de la misma.
() ()( ) VI.
e1 = setpoint-porcentaje(2) %Proporcional P=Kp*e1 %Integral I=Ki*((e1+e0)/2*Ts + Intprev) Intprev = Intprev + Ki*((e1+e0)/2*Ts); %Derivativo D=Kd*(e1-e0)/Ts;
DISEÑO DEL CONTROLADOR PID MEDIANTE EL SOFTWARE MATLAB
Para el diseño del controlador PID mediante el uso de Matlab comprende o depende básicamente de la habilidad para programar del diseñador, ya que los aspectos más importantes que rigen la correcta implementación de dicho controlador son:
Ec. [1.2]
u = P + I + D + u e0 = e1;
Esta parte del código se encontrará dentro del bucle que realiza la transmisión y recepción de datos al y desde el microprocesador. Por esta razón con la línea “ e0 = e1;” se podrá
El óptimo manejo de la señal que proviene del microcontrolador. La correcta aplicación de los algoritmos correspondientes a cada una de las
7
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO
acumular la variación de error y así poder realizar el control respectivo de la señal.
En ciertos tipos de procesos es posible trabajar con una ganancia elevada sin tener ningún problema de estabilidad en el controlador. Una alta ganancia en un controlador P significa que el error en estado estacionario será pequeño y no se necesitará incluir la acción integral.
Como se puede observar en el código que se adjuntó, la variable de control “u” es la que
contiene la información o el valor que se desea enviar al microprocesador a manera de PWM.
Controlador PD:
Posterior a esto se debe limitar la señal de control, ya que el micro utilizado tiene una resolución de 0 a 255 (8 bits) mientras que Matlab posee una resolución de 1024, pero que al momento del modelado de esta planta en particular se pudo observar que el rango de iluminación de fue de 0 a 900. Es decir que a partir de 900, ya no existía variación en la LDR. Para esto se genera las siguientes líneas de código:
Este tipo de control puede ser apropiado cuando el proceso a controlar incorpore ya un integrador. Por ejemplo un proceso térmico con un buen aislamiento opera de forma análoga a un integrador. La acción derivada es sensible al ruido ya que a altas frecuencias tiene una ganancia relativamente elevada, por lo tanto, en presencia de altos niveles de ruido se debe limitar dicha ganancia, o prescindir de la acción derivativa.
%Para controlar la saturación de u if(u>=255) u=255; end
Controlador PI:
Esta es la estructura más usual del controlador. La introducción de la acción integral es la forma más simple de eliminar el error en régimen permanente. Otro caso en el que es común utilizar la estructura PI es cuando el desfase que introduce el proceso es moderado (procesos con una constante de tiempo dominante o incluso integradores puros).
if(u<=0) u=0; end
Al realizar esta limitación en la señal de control de la planta, se regula que no exista saturación de ningún tipo (negativa/positiva). Una vez hecho esto se realiza entonces el envío de la señal al microprocesador mediante las siguientes líneas de código:
Controlador PID:
Se emplea para mejorar el comportamiento de procesos que no poseen grandes retardos pero que si presentan grandes desfases. Este es el
pwm = uint16(u) pwmenvio = num2str(pwm);
Anteriormente se explicó el programa que servirá para un controlador PID, pero sin embargo existen plantas en las que no es necesario implementar este controlador como tal, sino solamente una de sus variaciones P, PI o PD. Tomando en cuenta las siguientes consideraciones:
caso típico de procesos constantes de tiempo.
con
múltiples
Una vez que se ha determinado el tipo de controlador que se va a implementar, se debe efectuar el ajuste de los parámetros (sintonía) para que la respuesta del sistema en lazo cerrado tenga unas características determinadas.
Controlador P:
8
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO
Para esto primero hemos realizado un análisis básico mediante el Matlab, tomando el modelo matemático de la planta, analizándolo en lazo cerrado y probándolo con un escalón. Hecho esto observamos sus gráficas de Bode para de esta manera saber si el sistema es estable.
para de esta manera poder determinar un correcto tiempo de muestreo. Es prudente recalcar que el correcto dimensionamiento de dispositivos electrónicos dentro de los circuitos utilizados para la implementación de la planta, influye de sobremanera en la obtención de una planta estable y sin mucho ruido, la cual generará una respuesta muy satisfactoria al momento de realizar su control. Un controlador PID genera una muy buena respuesta en la planta y su implementación resulta de un proceso que, si se tienen los conocimientos adecuados acerca de los comportamientos que genera cada acción de control, no conlleva mayor dificultad puesto que se basa en cálculos matemáticos y simplemente se tomará tiempo al momento de sintonizar los parámetros que lo rigen. Por otro lado un controlador fuzzy se puede considerar que se da a partir de un análisis de las entradas y salidas que se desea obtener, para de esta manera generar reglas que rigen el comportamiento de la planta lo que lo vuelve un procedimiento un poco más engorroso. Pero sin duda con una mayor utilidad ya que dichas estas reglas se encuentran más relacionadas con el sentido común que cualquier cálculo matemático. Es por ésta razón que los controladores que se realizaron bajo esta lógica resultaron más precisos y con un plus que es el de generar una entrada extra que nos permita incluir parámetros ambientales.
Análisis de Resultados:
Figura 10. Respuesta de la planta de luz mediante un control PID con un setpoint del 50%
Para nuestra planta se ha elegido un control PID, puesto que es el controlador que mejor respuesta del sistema proporcionaba. Es importante recalcar que el controlador suficiente para una planta de luz es el PI, que genera una buena respuesta del sistema, pero sin embargo al aumentarle la acción derivativa se consiguió un tiempo de estabilización muy bajo y un error entre el -0.15 y 0.3 por ciento. VII.
CONCLUSIONES Uno de los aspectos que influyen mucho para la implementación de un controlador es sin duda la elección correcta del microprocesador, ya que éste es el que realiza la transmisión y recepción de datos (interfaz) entre el computador y la planta. Dentro de éste aspecto hay que prestar mucha atención a la resolución del mismo,
VIII.
BIBLIOGRAFÍA
[1] Teodoro Álamo Cantarero. Diseño del Controlador PID. Departamento de Ingeniería
9
DISEÑO CONTROLADORES PID/FUZZY/PID-FUZZY PARA UNA PLANTA DE LUZ
EDGAR SALAS CARLOS ALOMOTO
de Sistemas y Automática Universidad de Sevilla. [2] Juan Carlos Gómez. FUZZY CONTROL. Grupo de inteligencia Artificial y Robótica. Secretaría de Ciencia y Tecnología. Universidad Tecnológica Nacional – FRBA. [3] Virginia Mazzone. Controladores PID. Automatización y Control Industrial. Universidad Nacional de Quilmes. Marzo 2002.
10