Vous êtes sur la page 1sur 52

Captulo Sistemas de Control

IEEE-UNAC

Diseo de un Controlador PID Difuso para una planta de Segundo Orden Subamortiguada usando LABVIEW

Cuya Solari, Omar Antonio oacs_198@hotmail.com Flores Bustinza, Edwing Irwing irwing_1988_@hotmail.com Torres Chavez, Jonathan Emmanuel jonathan260605@hotmail.com

Captulo Sistemas de Control

IEEE-UNAC

I.- Objetivos Realizar la simulacin y tiempo real de un sistema lineal con controlador PID difuso de nueve reglas, con Labview en cdigo Puro. Comparar las bondades de emplear lgica difusa a un controlador PID Anlogo con sintona Ziegler Nichols comn para sus parmetros Kp, Kd y Ki.

II.- Modelamiento de una Planta Prototipo de Segundo Orden 2.1.- Diseo Para este caso se utiliz una planta con TL082 en modo sub-amortiguado, y para el diseo de los componentes a utilizar plantearemos las ecuaciones elctricas para llegar a la expresin Gp(s) de una planta prototipo de segundo orden.

Fig 1.-Planta TL082 a disear De la planta prototipo obtenemos las siguientes ecuaciones:

Despejando

de las ecuaciones (1) y (2), e igualando obtenemos:

Captulo Sistemas de Control

IEEE-UNAC

Despejando

de la ecuacin (2) y reemplazndola en la ecuacin (4):

Ahora reemplazando la ecuacin (3):

Reemplazando las ecuaciones (3) y (6) en la ecuacin (5) se obtiene la siguiente ecuacin diferencial de segundo orden:

Aplicando la transformada de LAPLACE y hallando la funcin de transferencia obtenemos:

Sabemos que el sistema prototipo de segundo orden es:

Dndole la forma estndar de segundo orden a la ecuacin (7):

) ( )

Se puede observar las relaciones para los parmetros de la planta prototipo: coeficiente de amortiguamiento, frecuencia natural y sobrepaso mximo, que nos permitir disear en modo sub-amortiguado.

Captulo Sistemas de Control

IEEE-UNAC

Se disear para una respuesta transitoria sub-amortiguada por lo partiremos de un sobrepaso del 21%, de lo que se comienza calculando el sobrepaso mximo de la expresin:
(

Despejando

se obtiene:

) 21.5% obtenemos:

Reemplazando el valor del sobrepaso mximo

Reemplazando obtenemos:

en la ecuacin (9) y los valores de los componentes

Despejando y resolviendo la ecuacin cuadrtica se obtiene:

Por lo tanto la nuestra planta tomamos los siguientes valores de componentes:

Captulo Sistemas de Control

IEEE-UNAC

2.2.- Prueba en Software Simulando el momento transitorio de la planta en PROTEUS 7.7 obtenemos un sobrepaso de 17%:

Fig 2.- Simulacin Planta TL082 en Proteus 7.7 2.3.- Adquisicin de los datos Para adquirir los datos de nuestra planta diseada anteriormente, elaboramos un cdigo en Labview:

Fig 3.-Programacion Adquisicin de datos

Captulo Sistemas de Control

IEEE-UNAC

Siguiendo las siguientes configuraciones para los DAQ Assistant:


Adquisidor de Datos ai0 Continuous Samples 1KHz 1000 RSE: Referencia al GND del NIDAQ (0V). Generador de la entrada escaln (2V) a01 On Demand ----------------------------RSE

Pin Modo de Adquisicin Frecuencia Muestras por lectura Modo de Referencia

Como se observa nuestro datos sern almacenados en dos archivos con extensin .lvm, uno con cabecera (data_sub_cc.lvm) y otro sin cabecera (data_sub_sc.lvm), con ayuda del toolkit Write to Measurement File. Luego al realizar la adquisicin de los datos obtuvimos los siguientes resultados para las datas:

(a)

(b)

Fig 4.- (a) Data sin cabecera. (b) Data con cabecera 2.4.- Ploteo en Matlab Emplearemos el cdigo siguiente para plotear nuestra data sin cabecera en Matlab:
clear all; close all; clc load data_sub_sc.lvm data=data_sub_sc; t=data(:,1); y=data(:,2); u=data(:,4); figure(1) plot(t,y,'r',t,u,'b') title('\bf Ploteo de los datos Planta Subamortiguada') legend('Salida','Entrada') grid

Universidad Nacional Del Callao - Control Inteligente

2012-A

Y se obtiene el siguiente grafico:


Ploteo de los datos Planta Subamortiguada 2.5 Salida Entrada 2

1.5

0.5

-0.5

10

12

Fig 5.- Datos adquiridos

III.- Identificacin del Modelo Adquirido Los dos archivos de datos se adquirieron con dos fines: Visualizarla e identificarla en Matlab (herramienta ident , etc) e identificarla con Labview en la herramienta Signal Express. Para nuestro caso hemos usado la herramienta signal express para realizar la identificacin del modelo adquirido con ayuda del algoritmo ARMAX 2111 configurable en esta herramienta que mostraremos a continuacin: a) Abrimos el entorno del Workbench Signal Express de Labview:

Fig 6.- Entorno de inicio del tool Signal Express de Labview

M.Sc. Ricardo Rodriguez Bustinza

Universidad Nacional Del Callao - Control Inteligente

2012-A

b) Cargamos nuestra data LVM con cabecera con Add Step y la ruta especificada en la figura:

Fig 7.- Data LVM con cabecera y paquetes de datos segn configuracin en la NIDAQ (1000 datos por segundo) c) Seguidamente importamos los paquetes de datos de nuestro archivo de adquisicin con cabecera y seleccionamos los paquetes de entrada (Voltage_1) y salida (Voltage_0) del sistema:

Fig 8.- Seleccin de paquetes de datos para entrada y salida d) Ahora pasamos a identificar el modelo, para ello accedemos al System Identification y estimacin de parmetros, con la ruta especificada:

M.Sc. Ricardo Rodriguez Bustinza

Universidad Nacional Del Callao - Control Inteligente

2012-A

Fig 9.- Entorno para la Identificacin e) Luego configuramos el algoritmo de identificacin para nuestra planta, para ello ubicamos los paquetes de datos de entrada y salida seleccionados anteriormente siguiendo el diagrama de bloques que presenta el entorno para dicha accin. A su vez configuramos el algoritmo a trabajar para una planta de segundo orden subamortiguada, se elegir el ARMAX 2111 porque present mejor performance en la identificacin, es decir se acerca ms a los datos adquiridos.

Fig 9.- Configuracin ARMAX 2111 Fig 10.- Configuracin ARMAX 2111

M.Sc. Ricardo Rodriguez Bustinza

Universidad Nacional Del Callao - Control Inteligente

2012-A

f) Luego haremos un panel con la performance: Seal de error (celeste), Datos adquiridos (rojo) e identificacin con ARMAX 2111(verde), adems la ecuacin discreta de la identificacin con ARMAX 2111.

Fig 11.- Resultados de la identificacin

Como se observa la identificacin fue rpida y sencilla con esta herramienta, adems de eficiente ya que si se observa la identificacin con algoritmos de recursin como el ARMAX trabajan con la seal de error (nos da compatibilidad del modelo identificado con los datos adquiridos), y tiene como objetivo principal la convergencia de este error a cero lo ms rpido posible y arrojarnos el modelo matemtico que hace dicha accin.

M.Sc. Ricardo Rodriguez Bustinza

10

Universidad Nacional Del Callao - Control Inteligente

2012-A

g) Finalmente guardamos el archivo .sim con la informacin de la identificacin realizada en el signal express, para ello, realizamos la siguiente accin:

Fig 12.- Configuracin para guardar el archivo .sim

IV.- Obtencin de la Funcin de Transferencia Gp(s) Lo siguiente que hicimos fue tratar la ecuacin de identificacin por cdigo LABVIEW, y obtener la funcin de transferencia Gp(s), para luego pasar a disear el controlador, con esta idea presentamos el cdigo Labview para dicha accin:

Fig 13.- Tratamiento ARMAX Panel de Bloques

M.Sc. Ricardo Rodriguez Bustinza

11

Universidad Nacional Del Callao - Control Inteligente

2012-A

En este cdigo le agregamos herramientas que nos pueden servir de gua para un algn otro algoritmo de control a disear: Diagrama de Bode Magnitud, Sistema notacin variable Espacio Estado, polos y ceros del sistema, as como la matriz de controlabilidad para verificar si la planta identificada es controlable o no. Este aporte le da un anlisis ms exhaustivo al sistema y todo con el uso del archivo .sim que identificamos y guardamos en Signal Express. Ver Figura 14.

Fig 14.- Tratamiento ARMAX Panel Frontal Y lo ms importante que con este cdigo se obtuvo la funcin de transferencia en Laplace, importante para el diseo del controlador PID anlogo a emplear para luego migrar al PID difuso:

V.- Diseo del Controlador PID con Matlab Para disear un controlador PID para una planta sub-amortiguada, emplearemos la herramienta sisotool de Matlab, el cual segn la configuracin que hagamos para la sintonizacin del PID, nos arrojara la funcin de transferencia de ste, que luego nos servir para identificar las constantes Kp, Ki, Kd

M.Sc. Ricardo Rodriguez Bustinza

12

Universidad Nacional Del Callao - Control Inteligente

2012-A

5.1.- Diseo en Sisotool Para comenzar nuestro diseo PID, empezaremos ingresando la palabra sisotool en la ventana de comando de Matlab, nos aparecer nuestro entorno con un diagrama de bloques. Ver figura 15:

Fig 15.- Entorno Sisotool de Matlab El diagrama de bloques que nos presenta sisotool constituye el de un sistema de control en lazo cerrado donde el bloque amarillo G es la notacin de nuestra planta obtenida anteriormente, el bloque rojo C que viene a ser la funcin de transferencia de nuestro controlador a disear, adems de la realimentacin H que para nuestro caso ser unitaria. Este diagrama de bloques es configurable accediendo a la opcin Control Architecture, pero como es exactamente el sistema de control que deseamos implementar no cambiaremos dicho diagrama. Ahora importaremos la F.T de la planta, siguiendo la siguiente secuencia:

Fig 16.- Importando la F.T del Workspace al sisotool


M.Sc. Ricardo Rodriguez Bustinza 13

Universidad Nacional Del Callao - Control Inteligente

2012-A

5.2.- Sintonizacin PID El controlador proporcionalintegral-derivativo o PID, es un dispositivo de control genrico (limitado segn la planta a controlar) para procesos con tiempo de establecimiento no muy pequeo, donde el diseador slo tiene que dar valores adecuados, segn lo requiera la situacin, a los parmetros de sintona que contiene. La herramienta sisotool nos permite interactuar con una gama de sintonizaciones para nuestro PID, por practicidad y con fines de probar nuestro algoritmo fuzzy ms adelante realizamos dos sintonizaciones que se configuran siguiendo la secuencia de la figura 17: PID por Ziegler Nichols y PID con respuesta temporal robusta (Optimizado), una vez terminada la configuracin de la sintonizacin se le da click en Update Compensator:

Fig 17.- Configuracin para PID Tuning Zieger Nichols y Robusto

M.Sc. Ricardo Rodriguez Bustinza

14

Universidad Nacional Del Callao - Control Inteligente

2012-A

El tipo de algoritmo PID en que se basa nuestro trabajo es el tipo paralelo que tiene la estructura de la figura 18, donde la actuacin del controlador se puede separar en forma de tres sumandos diferentes. Cada uno de ellos contempla la accin proporcional, derivativa e integral:

Fig 18.- PID forma paralela

La ley de control usada para este tipo de controlador seria:

Donde las constantes dela accin proporcional, integral y derivativa: Kp: Hace que la respuesta de la planta sea ms rpida sin introducir retrasos o adelantos en la salida del sistema. Ki: Produce la reduccin del error en el estado estacionario insertando una accin de seguimiento para el control. Kd: Produce una accin de frenado en la respuesta del sistema y evita las fuertes oscilaciones, tiene una accin de anticipacin para el control. Adems la funcin de transferencia del controlador PID tiene la siguiente estructura:

M.Sc. Ricardo Rodriguez Bustinza

15

Universidad Nacional Del Callao - Control Inteligente

2012-A

Por lo tanto, se observa que los valores de las constantes Kp, Ki y Kd elegirn la posicin de los ceros y el valor de la ganancia para el control del sistema. Regresando a los resultados del diseo en sisotool, se tienen las ecuaciones arrojadas para las dos sintonizaciones en cuestin en el panel de PID TUNING:

( ) ( )

Finalmente configuramos los grficos de simulacin en lazo cerrado para el control PID diseado en sisotool:

Fig 19.- Configurando grficas de resultados

Luego de configurar le damos mostrar ploteos de diseo y anlisis en cada ventana, para obtener dos grficos: el primero nos indicara el diagrama de bode del sistema en lazo abierto y cerrado, lo cual nos permitir contrastar en el dominio de la frecuencia como se da la modificacin de los ceros de la planta por la accin del controlador diseado, el segundo grafico muestra una comparacin de las respuestas del sistema en lazo abierto y cerrado ante un escaln unitario. Se presentan dos graficas debido a las dos sintonizaciones que se realizaron, verificndose las bondades de la respuesta del diseo PID robusto:

M.Sc. Ricardo Rodriguez Bustinza

16

Universidad Nacional Del Callao - Control Inteligente

2012-A

Fig 20.- Resultados Finales del diseo de controlador PID Robusto

Luego corroboraremos los resultados por cdigo matlab usando las funciones de transferencia arrojadas en el sisotool para las dos sintonizaciones, a su vez le insertaremos un tren de pulsos al sistema para ver cmo responde en lazo cerrado. Finalmente se extraern los coeficientes Kp, Ki, Kd de cada sintonizacion. Para todo ello usaremos el siguiente cdigo:

M.Sc. Ricardo Rodriguez Bustinza

17

Universidad Nacional Del Callao - Control Inteligente

2012-A

%Planta en lazo abierto identificada clear all; close all; clc n=[0.0771137 154.535]; d=[1 12.0318 154.287]; Gp=tf(n,d) %Gpla=zpk(Gp); t=0:0.001:2; u1=2*ones(size(t)); u2=2*[ones(1,1000) zeros(1,1001)]; yla=lsim(Gp,u1,t); figure (1) plot(t,yla,'r',t,u1,'b','Linewidth', 2) title('\bf Planta Subamortiguada Lazo Abierto') xlabel('tiempo(seg)') ylabel('Amplitud') grid % PID en sisotool "RESULTADOS" %PID ROBUSTO nc1=[0.0669 2.058 15.83]; Gc=tf(nc1,[0 1 0]) Glc1=feedback((Gp*Gc),1) ylc1=lsim(Glc1,u2,t); ylc=lsim(Glc1,u1,t); Kp=nc1(2) Ki=nc1(3) Kd=nc1(1) figure(2) subplot(221) plot(t,yla,'r','Linewidth',2),hold plot(t,ylc,'m',t,u1,'b','Linewidth', 2) title('\bf PID (Optimizado)') xlabel('tiempo(seg)') ylabel('Amplitud') legend ('Gla','Glc','u') grid

subplot(222) plot(t,ylc1,'m',t,u2,'b','Linewidth' ,2),hold title('\bf PID (Optimizado)') legend ('Glc','u') xlabel('tiempo(seg)') ylabel('Amplitud') grid %PID ZIEGLER NICHOLS COMUN nc2=[0.0632 4.4384 30.4]; Gc2=tf(nc2,[0 1 0]) Glc2=feedback((Gp*Gc2),1) ylc2=lsim(Glc2,u2,t); ylc=lsim(Glc2,u1,t); Kpzn=nc2(2) Kizn=nc2(3) Kdzn=nc2(1)

subplot(223) plot(t,yla,'r','Linewidth',2),hold plot(t,ylc,'g',t,u1,'b','Linewidth', 2) title('\bf PID (Zieger - Nichols)') xlabel('tiempo(seg)') ylabel('Amplitud') legend ('Gla','Glc','u') grid subplot(224) plot(t,ylc2,'g',t,u2,'b','Linewidth' ,2) title('\bf PID (Zieger - Nichols)') legend ('Glc','u') xlabel('tiempo(seg)') ylabel('Amplitud') grid

Planta Subamortiguada Lazo Abierto 2.5


3

PID (Optimizado) 3 Gla Glc u 2

PID (Optimizado) Glc u

Amplitud

Amplitud
2

1 0 -1

1.5
Amplitud

1 1.5 tiempo(seg) PID (Zieger - Nichols) Gla Glc u

0.5

1 1.5 tiempo(seg) PID (Zieger - Nichols) Glc u

0.5

3 2

Amplitud

Amplitud
2

0.5

1 0 -1

0.2

0.4

0.6

0.8 1 1.2 tiempo(seg)

1.4

1.6

1.8

0.5

1 1.5 tiempo(seg)

0.5

1 1.5 tiempo(seg)

Fig 20.- Resultados para dos tipos de entradas.


M.Sc. Ricardo Rodriguez Bustinza 18

Universidad Nacional Del Callao - Control Inteligente

2012-A

De este cdigo se obtienen las constantes Kp, Ki y Kd: Para el PID Robusto:

Kp = 2.058 Kd = 0.0669 Ki = 15.83

Para el PID Z-N:

Kp (Z-N) = 4.4384 Kd (Z-N) = 0.0632 Ki (Z-N) = 30.4

M.Sc. Ricardo Rodriguez Bustinza

19

Universidad Nacional Del Callao - Control Inteligente

2012-A

VI.- Diseo de un controlador DPID (Parte 1) 6.1.- Control Difuso Proporcional La entrada a un controlador difuso proporcional (PD) es el error (e), y la salida es la seal (U).

GE

GU

Base de Reglas

Fig 21.- Controlador difuso proporcional (DP) Este es el controlador ms simple. Si comparamos con el controlador proporcional crisp, vemos que el control difuso proporcional tiene dos ganancias GE y GU. La ganancia sirve principalmente para sintonizar la repsuesta, hay dos ganancias que tambin pueden usarse para escalar la seal de entrada hacia el universo de entrada explotndolo mejor. La salida del controlador o seal de control Un es una funcin no lineal de en, entonces:

La funcin es el mapeo de entrada-salida del controlador difuso. Usando la aproximacin lineal , tenemos:

Podemos decir que el producto de los factores de ganancias es equivalente a la ganancia proporcional, es decir, . La exactitud de la aproximacin depende principalmente de las funciones de pertenencia y las reglas. Para una mejor aproximacin, es mejor escoger el mismo universo en ambos lado de la entrada y salida. Por ejemplo, asumimos que los universos de entrada son ambos [-100,100]. 6.2.- Control Difuso Proporcional-Derivativo La accin derivativa ayuda a predecir el error y el controlador proporcionalderivativo usa la accin derivativa para mejor la estabilidad en lazo cerrado. La estructura bsica de un controlador PD es: ( )

La seal de control es proporcional a una estimacin del error en segundos, dnde la estimacin se obtiene por la extrapolacin lineal. Para el control es completamente proporcional, y cuando se aumenta gradualmente, se tienen oscilaciones amortiguadas.

M.Sc. Ricardo Rodriguez Bustinza

20

Universidad Nacional Del Callao - Control Inteligente

2012-A

Si se pone demasiado el sistema se vuelve subamortiguado y empezar a oscilar de nuevo. La entrada al controlador DPD es el error y la derivada del error.

GE

f
CE

GU

ce

GCE

Base de Reglas Fig 22.- Controlador difuso PD (DPD) En el controlador difuso el ltimo trmino se llama normalmente el cambio en el error y es dado por:

Esta es una aproximacin discreta y usa una ecuacin de diferencias recursiva (barckward). La salida del controlador es una funcin no lineal del error( ) y cambio del error .

De nuevo la funcin es el mapeo de la entrada-salida del controlador difuso, slo en este tiempo es una superficie. Usando la aproximacin lineal , entonces: ( )

Por la comparacin, las ganancias estn relacionadas de la siguiente manera:

6.3.- Control Difuso Proporcional, Integral Y Derivativo La accin integral ayuda a que el error en estado estacionario se mantenga al valor cero, junto con el controlador proporcional-derivativo la performance del controlador incrementa. La estructura bsica de un controlador PID es: ( )

El ndice n est referido al instante de tiempo. Para sintonizar debemos activar y ajustar los parmetros , y .

M.Sc. Ricardo Rodriguez Bustinza

21

Universidad Nacional Del Callao - Control Inteligente

2012-A

El controlador difuso PID presenta tres trminos de entrada: error, error integral y error derivativo. Una base de la reglas con tres entradas llega a ser bastante grande y la accin ntegra resulta una molestia. Por consiguiente es comn separar la accin integral en el controlador difuso PD+I (DPD+I):

GE

f
CE

GU

ce

GCE

Base de Reglas ie IE GIE

Fig 23.- Controlador difuso PD+I (DPD+I) El error integral se computa como: funcin de las tres entradas: [ La aproximacin lineal es: . El controlador es una ]

Comparando esta ltima ecuacin con la ecuacin de la estructura bsica (ley de control PID), las ganancias son relacionadas de la siguiente forma:

Este controlador proporciona todos los beneficios del control PID, pero tambin las desventajas con respecto al windup del integrador.

M.Sc. Ricardo Rodriguez Bustinza

22

Universidad Nacional Del Callao - Control Inteligente

2012-A

6.4.- Algoritmo DPID en Labview a.- Declaracin de Reglas y funciones de pertenencia de 4 y 9 reglas en Labview Para declarar las funciones de pertenencia, las entradas crisps y las reglas del algoritmo difuso a emplear, usamos el Fuzzy System Designer:

Fig 24.- Uso del Fuzzy System Designer En el entorno del Fuzzy Controller se configurarn las entradas crisps E y CE que corresponden a las acciones Proporcional y Derivativa del Algoritmo DPID mencionado anteriormente, tambin los universo de discurso, funciones de pertenencia tipo Triangular por ser un proceso Lineal el que se va a controlar, a su vez se declararn las reglas a trabajar para las inferencias y la defuzzificacin por centroide y la salida U se configurar funciones singletons en N, Z y P.

Fig 25.- Configuracin para el algoritmo Fuzzy


M.Sc. Ricardo Rodriguez Bustinza 23

Universidad Nacional Del Callao - Control Inteligente

2012-A

b.- Simulacin y control tiempo real Ya con el algoritmo Fuzzy cargado en el Fuzzy Controller en el panel de bloques de Labview, pasamos a mostrar el algoritmo DPID programado:

Fig 26.- Diagrama de Bloques DPID

Fig 27.- Panel Frontal En este cdigo se ha incluido las ecuaciones para las ganancias GIE, GCE y GE del DPID, a partir de las constantes Kp, Kd y Ki de la sintona del PID anlogo comn, esto me va permitir insertar las constantes que comnmente diseamos y as probar la performance del algoritmo PID Difuso respecto al control PID Anlogo.

M.Sc. Ricardo Rodriguez Bustinza

24

Universidad Nacional Del Callao - Control Inteligente

2012-A

Adems se incluye el Fuzzy Controller, en el cual se cargar los archivos 4rules.fs y 9rules.fs con el algoritmo difuso y la tabla de nueve y cuatro reglas respectivamente. A su vez, la estructura case para eleccin entre la simulacin (Toolkit H(s)) y el tiempo real (Configuracin DAQ Assistant para TR). Finalmente se ha incluido un parmetro de escalamiento multiplicando a la accin derivativa y proporcional, y su reciproco multiplicando a la seal de control resultante del controlador DPID antes de ingresar a la planta. Este parmetro es experimental y de alguna u otra forma participa regulando la accin PD que ingresa al algoritmo Fuzzy, por lo tanto su valor afinara a la seal de control para realizar un mejor resultado en el control. Para nuestro caso se tendr en cuenta que: GE = 1 (Valor fijo) = 8.163 (PID Robusto) = 9.5 (PID Z-N)

Los dems parmetros sern calculados de forma automtica.

Resultados para 4 reglas Para algoritmo Fuzzy PID con 4 reglas en tiempo real se obtuvo:

Fig 28.- Prueba tiempo real para 4 reglas

M.Sc. Ricardo Rodriguez Bustinza

25

Universidad Nacional Del Callao - Control Inteligente

2012-A

Luego verificamos el comportamiento al cambiar de caso a Simulacin.

Fig 29.-Seleccin de caso Simulacin

Resultados para 9 reglas Para algoritmo Fuzzy PID con 9 reglas en tiempo real se obtuvo:

Fig 30.-Prueba Tiempo Real con Algoritmo de 9 reglas

M.Sc. Ricardo Rodriguez Bustinza

26

Universidad Nacional Del Callao - Control Inteligente

2012-A

Fig 31.- Cambio a simulacin VII.- Diseo de un controlador DPID (Parte 2) Para esta segunda parte se codificara el algoritmo DPID en cdigo puro, empleando la aproximacin trapezoidal para la accin integral, partiendo del algoritmo mencionado en el item 6.3 y su ecuacin 6.3 para la ley de control, con la diferencia que en este algoritmo no habr escalamiento ni parmetro de la prueba anterior: GIE, GCE y GE. Adems el proceso de Fuzzificacin y defuzzificacin se har en cdigo puro en un SubVi que interactuara con nuestra planta prototipo en tiempo real.

Fig 32.- Diagrama de Bloques DPID Cdigo Puro


M.Sc. Ricardo Rodriguez Bustinza 27

Universidad Nacional Del Callao - Control Inteligente

2012-A

7.1.- Discretizacin de la Planta Como el algoritmo a realizar es enteramente discreto, entonces para realizar las pruebas respectivas tendremos que discretizar nuestra planta, para ello se ha creado dos cdigos para dicho fin. En el primero se ha trabajado con los coeficientes de las F.T hallada de la notacin funcin de transferencia, luego este modelo pasa por un toolkit de conversin de continuo a discreto con un periodo de muestreo de ( T = 0.001 seg), dando como resultado una funcin de transferencia discreta, la cual ser insertada a un toolkit H(z) para ser estimulada con un escaln u(t) que pasara por mantenedor de orden cero (ZOH), obteniendo como resultado la respuesta de nuestra planta discretizada en lazo abierto, adems de ello se superpondr con la respuesta en continuo con ayuda del mismo estimulo u(t) pero insertado a un toolkit H(s) con la F.T cargada. Obsrvese que las respuestas coinciden con lo que se ha discretizado exitosamente el modelo (Ver figura 32).

Fig 33.- Diagrama de bloques Respuesta planta discreta vs Continua En el segundo programa se ha calculado la ecuacin de diferencias de nuestra planta teniendo en cuenta que su estructura F.T es de la forma:

Tomando la anti-transformada s, se tiene la ecuacin diferencial del modelo:

M.Sc. Ricardo Rodriguez Bustinza

28

Universidad Nacional Del Callao - Control Inteligente

2012-A

Con esta ecuacin pasamos al espacio k con las siguientes notaciones para la primera y segunda derivada: ,

Luego, reemplazando los trminos y despejando, se tiene la ecuacin de diferencias de nuestra planta en funcin a los coeficientes de la F.T y el periodo de muestreo:

La ecuacin de diferencias anterior se ha codificado en Labview usando los registros de desplazamiento para declarar los , , y , adems se ha codificado la condicin inicial 0 para los registros , , y , as al inicio no se cargarn con valores inesperados y errneos que afecten a los datos verdaderos que debe arrojar el programa.

Fig 34.- Diagrama de bloques ecuacin de diferencias de la Planta

M.Sc. Ricardo Rodriguez Bustinza

29

Universidad Nacional Del Callao - Control Inteligente

2012-A

El programa nos muestra los resultados de las dos formas de representar nuestra planta discretizada:

Fig 35.- Simulacin de respuesta de la planta discreta ante un escaln unitario 7.2.- Accin Proporcional Derivativa Siguiendo el algoritmo DPID explicado en tems anteriores se construy un SubVi llamado FUZZY PD, el cual recibe 4 entradas (Error, T, GCE y GE), y 5 salidas (E, CE, Grafico de U, Salida Defuzzy y Salida Final). Para fines didcticos para monitoreo en las pruebas de Tiempo Real.

Fig 38.- Algoritmo de para el DPD discreto en Labview


M.Sc. Ricardo Rodriguez Bustinza 30

Universidad Nacional Del Callao - Control Inteligente

2012-A

7.3.- Accin Integrativa El SubVi construdo para la accin integral contiene un algoritmo interesante, y es el de aproximacin trapezoidal, uno de los ms eficientes en cuanto a diseo de PID Discreto, ya que se basa en la sumatoria de reas de trapecios formados por el errores mostrados en dos posiciones consecutivas de muestreo (n y n-1), cuya base es el periodo de muestreo. Este valor multiplicado con el 1/Ti que se calcula con la divisin de GIE y GE, constituyen la accin integral, que se codifica como registro de desplazamiento ya que necesita sumar su valor actual con el valor anterior.

Fig 37.- Algoritmo de aproximacin Trapezoidal para la accin integral

7.4.- Diseo de un SubVI para Fuzzyficacin y Defuzzyficacin con 9 reglas en cdigo Puro con Matlab y Labview 1.- Fuzzy System Designer de 4 y 9 reglas en cdigo puro en matlab Para la implementacin en la plataforma Labview de un sistema fuzzyficador y defuzzificador en cdigo puro de 9 reglas, primero realizamos simulaciones en el software Matlab que servirn de base para la posterior programacin en Labview.

M.Sc. Ricardo Rodriguez Bustinza

31

Universidad Nacional Del Callao - Control Inteligente

2012-A

La primera de las programaciones en Matlab muestran un programa para poder elegir entre un sistema fuzzy de 4 reglas y 9 reglas y observar la respuesta defuzzificada del sistema. a) La parte inicial del cdigo presenta las 2 entradas del sistema, cada una de las cuales posee 3 MF (Member Shift Factor) que tienen formas triangulares con parmetros distintos, pero con el mismo universo de discurso.
clear all ; close all ; clc % -------------------------------------------------% ENTRADA 1 % -------------------------------------------------puntos_n = 201; x1=linspace(-100,100, puntos_n); param_in_1 = [ -100.00 -100.00 0.00 -100.00 0.00 100.00 0.00 100.00 100.00 ]; mf_in_1=zeros(3,puntos_n); mf_in_1(1,:)=trian_mf(x1,param_in_1(1,:)); mf_in_1(2,:)=trian_mf(x1,param_in_1(2,:)); mf_in_1(3,:)=trian_mf(x1,param_in_1(3,:)); % Universo de discurso IN 1

% E = N % E = Z % E = P

% -------------------------------------------------% ENTRADA 2 % -------------------------------------------------x2=linspace(-100,100, puntos_n); % Universo de discurso IN 2 param_in_2 = [ -100.00 -100.00 0.00 -100.00 0.00 100.00 0.00 100.00 100.00 ]; mf_in_2=zeros(3,puntos_n); mf_in_2(1,:)=trian_mf(x2,param_in_2(1,:)); mf_in_2(2,:)=trian_mf(x2,param_in_2(2,:)); mf_in_2(3,:)=trian_mf(x2,param_in_2(3,:)); % CE = N % CE = Z % CE = P

b) Para continuar se presenta la salida del fuzzyficador que tambin posee 3 Member Shift Factor pero con salidas de modo Singleton que toman nicamente 3 posibles valores: -200, 0, 200.
% -------------------------------------------------% SALIDA % -------------------------------------------------y=linspace(-200,200, puntos_n); param_out = [ -300.00 -200.00 -199.00 -1.00 0.00 1.00 199.00 200.00 300.00 ]; mf_out=zeros(3,puntos_n); mf_out(1,:)=trian_mf(y,param_out(1,:)); mf_out(2,:)=trian_mf(y,param_out(2,:)); mf_out(3,:)=trian_mf(y,param_out(3,:)); % Universo de discurso OUT

% U = N % U = Z % U = P

M.Sc. Ricardo Rodriguez Bustinza

32

Universidad Nacional Del Callao - Control Inteligente

2012-A

c) Ploteamos las entradas y salida del sistema, las cuales sern analizadas por el algoritmo Mandani descrito ms adelante en cdigo puro.
% -------------------------------------------------% PLOTEOS DE ENTRADA Y SALIDA % -------------------------------------------------figure(1) subplot(3,1,1) plot(x1,mf_in_1(1,:),'r','LineWidth',2),hold plot(x1,mf_in_1(2,:),'g','LineWidth',2) plot(x1,mf_in_1(3,:),'b','LineWidth',2) grid legend('N','Z','P') title('Error') axis([-100 100 0 1]) subplot(3,1,2) plot(x2,mf_in_2(1,:),'r','LineWidth',2),hold plot(x2,mf_in_2(2,:),'g','LineWidth',2) plot(x2,mf_in_2(3,:),'b','LineWidth',2) grid legend('N','Z','P') title('Derivada del Error') axis([-100 100 0 1]) subplot(3,1,3) plot(y,mf_out(1,:),'r','LineWidth',2),hold plot(y,mf_out(2,:),'g','LineWidth',2) plot(y,mf_out(3,:),'b','LineWidth',2) grid legend('N','Z','P') title('Salida') axis([-200 200 0 1])

Error 1 0.5 0 -100 1 0.5 0 -100 1 0.5 0 -200 N Z P -150 -100 -50 0 50 100 150 200 N Z P -80 -60 -40 -20 0 Salida 20 40 60 80 100 N Z P -80 -60 -40 -20 0 20 40 60 80 100

Derivada del Error

Fig 38.- Entradas y Salida del sistema fuzzyficador

M.Sc. Ricardo Rodriguez Bustinza

33

Universidad Nacional Del Callao - Control Inteligente

2012-A

Para iniciar el algoritmo debemos tener en claro las reglas que sern colocadas en nuestra base de reglas y que sern aplicadas en el controlador para obtener la seal de control en la salida, las reglas son las siguientes: Para 4 reglas: para este caso debemos aclarar que slo se tendrn en cuenta las entradas N y P del Error y de la Derivada del Error.
IF E IS N AND CE IS N THEN U IS N IF E IS N AND CE IS P THEN U IS Z IF E IS P AND CE IS N THEN U IS Z IF E IS P AND CE IS P THEN U IS P

Para 9 reglas: para este caso si empleamos los 3 MFs citados en las entradas (N, Z, P) para obtener la seal de control de salida.
IF E IS N AND CE IS N THEN U IS N IF E IS N AND CE IS Z THEN U IS N IF E IS N AND CE IS P THEN U IS Z IF E IS Z AND CE IS N THEN U IS N IF E IS Z AND CE IS Z THEN U IS Z IF E IS Z AND CE IS P THEN U IS P F E IS P AND CE IS N THEN U IS Z IF E IS P AND CE IS Z THEN U IS P IF E IS P AND CE IS P THEN U IS P

a) Una vez conocidas las reglas a aplicar en cada caso, podemos estructurar el programa de manera que ingresemos 2 entradas (x1 y x2) de valores cualesquiera y sean procesadas en la base de 4 o 9 reglas (dependiendo del gusto y/o necesidad del usuario), para que finalmente sean ploteada la seal de control defuzzyficada as como la salida final que debe ser -200, 0 +200.
i=input('Ingresa el valor de la entrada 1 : '); disp(['x1 = ',num2str(i)]) j=input('Ingresa el valor de la entrada 2 : '); disp(['x2 = ',num2str(j)]) disp(' ') var=input('Elegir la cantidad de reglas a considerar (4 Reglas), (9 Reglas) : '); disp(' ') disp(['Numero de reglas = ',num2str(var)])

M.Sc. Ricardo Rodriguez Bustinza

34

Universidad Nacional Del Callao - Control Inteligente

2012-A

b) De ser elegida la opcin de 4 reglas se proceder con implementar el algoritmo basado en su base de reglas, comparando los grados de pertenencia de ambas entradas (x1 y x2) y tomar el valor mnimo, para luego comparar (mnimo) este valor con la salida respectiva dependiendo de cada regla, y finalmente de las 4 reglas obtener la salida mxima (superposicin de grficas) y a este arreglo aplicarle la funcin de defuzzyficacin y obtener un valor que luego ser clasificado entre -200, 0, +200.
if var == 4 disp(' ') disp('HAS ELEGIDO LA FUZZYFICACION POR 4 REGLAS') disp(' ') mf_calificada = zeros(4,puntos_n); w1_1 = trian_mf(i, param_in_1(1,:)); w2_1 = trian_mf(i, param_in_1(3,:)); w1_2 = trian_mf(j, param_in_2(1,:)); w2_2 = trian_mf(j, param_in_2(3,:)); comp_1 = min(w1_1,w1_2); mf_calificada(1,:)=min(comp_1,mf_out(1,:)); comp_2 = min(w1_1,w2_2); mf_calificada(2,:)=min(comp_2,mf_out(2,:)); comp_3 = min(w2_1,w1_2); mf_calificada(3,:)=min(comp_3,mf_out(2,:)); comp_4 = min(w2_1,w2_2); mf_calificada(4,:)=min(comp_4,mf_out(3,:)); conjunto_out_mf = max (mf_calificada); salida=defuzzy(y,conjunto_out_mf,1); % E = N % E = P % CE = N % CE = P % % % % % % % % MIN MIN MIN MIN MIN MIN MIN MIN (E=N, CE=N) (ANTERIOR, U=N) (E=N, CE=P) (ANTERIOR, U=Z) (E=P, CE=N) (ANTERIOR, U=Z) (E=P, CE=P) (ANTERIOR, U=P)

% Superposicin de grficas % Defuzzificacin por C.M.

disp('Valor de salida defuzzy por 4 reglas:') disp(salida) if salida>=-200 && salida<-100 respuesta=-200; elseif salida>=-100 && salida<0 respuesta=0; elseif salida>=0 && salida<100 respuesta=0; elseif salida>=100 && salida<200 respuesta=200; else respuesta=200; end disp('Valor de salida final por 4 reglas:') disp(respuesta) % Limitador en salida

c) Una vez realizado este proceso resta obtener los resultados y mostrarlos en un plot. Supongamos que ingresamos las entradas de E = -89 y CE = 69 (estos valores estn siendo tomados al azar con el fin simplemente de mostrar algn resultado indiferente).

M.Sc. Ricardo Rodriguez Bustinza

35

Universidad Nacional Del Callao - Control Inteligente


figure(2) subplot(2,1,1) plot([salida salida],[0 1],'r','LineWidth',5),hold plot(y,conjunto_out_mf,'k','LineWidth',3) title('\fontsize{10} \color{blue} SALIDA DEFUZZY 4 REGLAS') grid axis([-200 200 0 1]) subplot(2,1,2) plot(y,conjunto_out_mf,'r','LineWidth',2),hold plot([respuesta respuesta],[0 1],'b','LineWidth',5) title(['\fontsize{10} \color{blue} SALIDA FINAL 4 REGLAS']) grid axis([-200 200 0 1])

2012-A

Ingresa el valor de la entrada 1 : -89 x1 = -89 Ingresa el valor de la entrada 2 : 69 x2 = 69 Elegir la cantidad de reglas a considerar (4 Reglas), (9 Reglas) : 4 Numero de reglas = 4 HAS ELEGIDO LA FUZZYFICACION POR 4 REGLAS Valor de salida defuzzy por 4 reglas: 0 Valor de salida final por 4 reglas: 0

SALIDA DEFUZZY 4 REGLAS 1

0.5

0 -200

-150

-100

-50

50

100

150

200

SALIDA FINAL 4 REGLAS 1

0.5

0 -200

-150

-100

-50

50

100

150

200

Fig 39.- Salida del fuzzyficador y defuzzificador de 4 Reglas

M.Sc. Ricardo Rodriguez Bustinza

36

Universidad Nacional Del Callao - Control Inteligente

2012-A

De ser elegida la opcin de 9 reglas se proceder tambin con implementar el algoritmo basado en su base de reglas siguiendo el mismo criterio que la opcin anterior en la toma de valores mnimos, mximos, defuzzificacin y limitador.
elseif var==9 disp(' ') disp('HAS ELEGIDO LA FUZZYFICACION POR 9 REGLAS') disp(' ') mf_calificada = zeros(9,puntos_n); w1_1 = trian_mf(i, param_in_1(1,:)); w2_1 = trian_mf(i, param_in_1(2,:)); w3_1 = trian_mf(i, param_in_1(3,:)); w1_2 = trian_mf(j, param_in_2(1,:)); w2_2 = trian_mf(j, param_in_2(2,:)); w3_2 = trian_mf(j, param_in_2(3,:)); comp_1 = min(w1_1,w1_2); mf_calificada(1,:)=min(comp_1,mf_out(1,:)); comp_2 = min(w1_1,w2_2); mf_calificada(2,:)=min(comp_2,mf_out(1,:)); comp_3 = min(w1_1,w3_2); mf_calificada(3,:)=min(comp_3,mf_out(2,:)); comp_4 = min(w2_1,w1_2); mf_calificada(4,:)=min(comp_4,mf_out(1,:)); comp_5 = min(w2_1,w2_2); mf_calificada(5,:)=min(comp_5,mf_out(2,:)); comp_6 = min(w2_1,w3_2); mf_calificada(6,:)=min(comp_6,mf_out(3,:)); comp_7 = min(w3_1,w1_2); mf_calificada(7,:)=min(comp_7,mf_out(2,:)); comp_8 = min(w3_1,w2_2); mf_calificada(8,:)=min(comp_8,mf_out(3,:)); comp_9 = min(w3_1,w3_2); mf_calificada(9,:)=min(comp_9,mf_out(3,:)); conjunto_out_mf = max (mf_calificada); salida=defuzzy(y,conjunto_out_mf,1); % E = N % E = Z % E = P % CE = N % CE = Z % CE = P % % % % % % % % % % % % % % % % % % MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN MIN (E=N, CE=N) (ANTERIOR, U (E=N, CE=Z) (ANTERIOR, U (E=N, CE=P) (ANTERIOR, U (E=Z, CE=N) (ANTERIOR, U (E=Z, CE=Z) (ANTERIOR, U (E=Z, CE=P) (ANTERIOR, U (E=P, CE=N) (ANTERIOR, U (E=P, CE=Z) (ANTERIOR, U (E=P, CE=P) (ANTERIOR, U = N) = N) = Z) = N) = Z) = P) = Z) = P) = P)

% Superposicin de grficas % Defuzzificacin por C.M.

disp('Valor de salida defuzzy por 9 reglas:') disp(salida) if salida>=-200 && salida<-100 respuesta=-200; elseif salida>=-100 && salida<0 respuesta=0; elseif salida>=0 && salida<100 respuesta=0; elseif salida>=100 && salida<200 respuesta=200; else respuesta=200; end disp('Valor de salida final por 9 reglas:') disp(respuesta) % Limitador en salida

Ingresa el valor de la entrada 1 : -89 x1 = -89 Ingresa el valor de la entrada 2 : 69

M.Sc. Ricardo Rodriguez Bustinza

37

Universidad Nacional Del Callao - Control Inteligente


x2 = 69 Elegir la cantidad de reglas a considerar (4 Reglas), (9 Reglas) : 9 Numero de reglas = 9 HAS ELEGIDO LA FUZZYFICACION POR 9 REGLAS Valor de salida defuzzy por 9 reglas: -36.0360 Valor de salida final por 9 reglas: 0 figure(2) subplot(2,1,1) plot([salida salida],[0 1],'r','LineWidth',5),hold plot(y,conjunto_out_mf,'k','LineWidth',3) title('\fontsize{10} \color{blue} SALIDA DEFUZZY 9 REGLAS') grid axis([-200 200 0 1]) subplot(2,1,2) plot(y,conjunto_out_mf,'r','LineWidth',2),hold plot([respuesta respuesta],[0 1],'b','LineWidth',8) title(['\fontsize{10} \color{blue} SALIDA FINAL 9 REGLAS']) grid axis([-200 200 0 1])

2012-A

SALIDA DEFUZZY 9 REGLAS 1

0.5

0 -200

-150

-100

-50

50

100

150

200

SALIDA FINAL 9 REGLAS 1

0.5

0 -200

-150

-100

-50

50

100

150

200

Fig 40.- Salida del fuzzyficador y defuzzificador de 9 Reglas Finalmente si alguna de las opciones es elegida errneamente el programa emitir un mensaje de error.
else disp(' ') disp(' NUMERO DE REGLAS INCORRECTO !!!') disp(' ') end

M.Sc. Ricardo Rodriguez Bustinza

38

Universidad Nacional Del Callao - Control Inteligente

2012-A

2.- Fuzzy System Designer de 9 reglas en cdigo puro en Labview Una vez realizados todas estas experiencias en Matlab empezamos a implementar el cdigo en Labview de 9 reglas, para lo cual realizamos los siguientes pasos: Paso 1.- Obtencin de un MF trapezoidal TRAPEZE: este sub-vi tendr el objetivo de FUZZIFICAR, esto quiere decir convertir las entradas exactas (nmeros reales) al dominio difuso (valores entre cero y uno). Esta funcin esta implementada en el programa LABVIEW tal y como sigue: Aviso.- este es un indicador que nos informa si los valores ingresados son ascendentes (a<b<c<d). Esto quiere decir que si a, b, c y d son ingresados ascendentemente el aviso mostrara parmetro legal en caso contrario mostrara parmetro ilegal.

Fig 41.- Diagrama de bloques del aviso Parmetros de entrada.- los parmetros de entrada est formado por un array unidimensional de cuatro elementos. Estos elementos son los lmites del trapecio que se forma al ingresarle una trama de datos (array).

Fig 42.- Diagrama de bloques del ingreso de parmetros


M.Sc. Ricardo Rodriguez Bustinza 39

Universidad Nacional Del Callao - Control Inteligente

2012-A

Entrada.- es el elemento o conjunto de elementos (array) que se quiere FUZZIFICAR. Fuzzificacin.- es el resultado de la FUZZIFICACION (convertirlo al dominio difuso, entre cero y uno).

Fig 43.- Diagrama de bloques del trapecio La programacin en conjunto es la siguiente:

Panel de control El sub-vi TRAPEZE es el siguiente:

Sub-vi TRAPEZE

M.Sc. Ricardo Rodriguez Bustinza

40

Universidad Nacional Del Callao - Control Inteligente

2012-A

Paso 2.- Sub-Vi de Entradas de 3 MFs Para realizar esta etapa se tomaron en cuenta MFs de forma trapezoidal que fueron agrupados en un SubVI, el cual se basa en la programacin del trapecio antes expuesta. Esta etapa muestra un Array de parmetros a ser ingresados en cada MF para especificar la forma exacta del trapecio, no obstante debemos indicar que convertiremos al trapecio en tringulo haciendo que 2 parmetros sean iguales, por ejemplo:

Adems se especifica un aviso para saber si estn siendo bien empleados los parmetros.

Debemos mencionar tambin que para cada MF se mostrarn las salidas respectivas y la entrada ser la misma, pues debe ser evaluada en los 3 Member Shift Factor para luego pasar a la base de reglas. El SubVI resultante es de la forma:

Fig 44.- SubVI de Entradas con 3 MFs Paso 3.- Obtencin de la Sub-vi Linspace Este sub-vi tiene el objetivo de generar una trama de datos (array) cuyas entradas, parmetros obtenidos y salidas son: N: es la cantidad de elementos que necesitemos generar entre los valores de ti y tf. ti: es el valor con el que queremos que empiece nuestra trama de datos. tf: es el valor con el que queremos que finalice nuestra trama de datos. n: es la cantidad de espacios entre dato y dato.

M.Sc. Ricardo Rodriguez Bustinza

41

Universidad Nacional Del Callao - Control Inteligente

2012-A

h: es el paso entre dato y dato que se obtiene con las variables N, ti y tf. tn: es el elemento n-ensimo de todo el array. x: es el array resultante de los parmetros obtenidos. Para crear este LINSPACE en LABVIEW seguimos las relaciones expuestas en la figura siguiente:

Fig 45.- Diagrama de bloques del LINSPACE Como podemos observar solo es necesario tener claro estas plasmarlas en el diagrama de bloques de LABVIEW. sucesiones y

Para la creacin del array x utilizamos el Reshape Array, el cual cambia la longitud del array x1 (array unidireccional de un el emento) a un array unidireccional de N elementos. A su vez ste ser el array de inicializacin del bloque de realimentacin de Replace Array Subset (generado automticamente al unir la entrada y salida del mismo).

M.Sc. Ricardo Rodriguez Bustinza

42

Universidad Nacional Del Callao - Control Inteligente

2012-A

Fig 46.- Panel de control del LINSPACE Paso 4.- Obtencin de la funcin Singleton Para la realizacin de esta etapa se empleo el SubVI linspace para poder as generar un universo de discurso cuyos valores de inicio, final y nmero de elementos pueden ser controlados. A la vez se genera un Array conformado por el valor del universo en el que se encontrar el singleton (por ejemplo: si el universo posee 1000 elementos de -200 a +200 y queremos que el singleton se ubique en la posicin ocupada por +10, pues creamos un Array de la misma dimensin que el universo pero con puros valores de +10 que son ingresados por el control de nombre Patrn). Una vez realizado ello se comparan ambos Arrays de tal forma que en el momento en que coincidan los +10 (siguiendo el ejemplo) de ambos Arrays se genere el valor de 1 (resultado de la igualdad) y en todos los otros instantes se generen 0s. Adems debemos in dicar que existe un generar de Array de puros elementos 0 para garantizar que el Array Final (Singleton) haya sido inicializado en valor por defecto. Finalmente se plotean los resultados de resultar conveniente por el usuario.

Fig 47.- SubVI de La Funcin Singleton

M.Sc. Ricardo Rodriguez Bustinza

43

Universidad Nacional Del Callao - Control Inteligente

2012-A

Paso 5.- Obtencin de la Salida con 3 MFs En esta etapa los MFs son los Singletons antes creados y ahora agrupados de modo que constituyan la salida. Los parmetros para el Linspace de los 3 MFs son el mismo (pues poseen el mismo universo de discurso: X1, X2 y X3 iguales), pero los valores en los cuales se harn presentes los Singletons (Patrn Y1, Y2 y Y3) son -200, 0 y +200. Debemos indicar adems que en el ploteo, el grfico debe ser configurado en modo Barras para poder visualizar el Singleton, de lo contrario solo se ver un punto en el grado de Pertenencia 1.

Fig 48.- SubVI de la Salida con 3 MFs

M.Sc. Ricardo Rodriguez Bustinza

44

Universidad Nacional Del Callao - Control Inteligente

2012-A

Paso 6.- Base de Reglas En este paso programamos el algoritmo de 9 reglas de acuerdo a lo conocido y teniendo como base la programacin antes realizada en Matlab. Cabe mencionar que en esta etapa estamos realizando nicamente las comparaciones por minimizacin.

Figura N.- Base de 9 Reglas

Fig 49.- Base de reglas en Labview

M.Sc. Ricardo Rodriguez Bustinza

45

Universidad Nacional Del Callao - Control Inteligente

2012-A

Paso 7.- Implementamos el SubVI Maximizacin Este SubVI permitir obtener la superposicin de grficas, es decir los valores mximos obtenidos luego de la aplicacin de cada regla, para constituir finalmente un arreglo final que pasar a la defuzzyficacin.

Fig 50.- Maximizacin en el Proceso de Mandani Paso 8.- Obtencin del SubVI Defuzzy Este SubVI est basado en el mtodo del centro de masa. Se obtendr un valor que luego ser limitado en el Paso 9.

Fig 51.- Defuzzy: Centro de Masa o Centroide

M.Sc. Ricardo Rodriguez Bustinza

46

Universidad Nacional Del Callao - Control Inteligente

2012-A

Paso 9.- Funcin Limitador Al estarse empleando en la salida nicamente 3 Singletons, el valor final de la salida debe ser: -200, 0 +200. Para ello creamos un limitador de la defuzzyficada de tal manera que el valor real de la salida y por ende de la seal de control tome esos tres valores antes definidos.

Fig 52.- Limitador para obtener Salida Final para la seal de control Paso 10.- Ploteos Este paso no requiere de mayores explicaciones, simplemente se trata de plotear los resultados obtenidos.

Fig 53.- Programacin de Ploteos

M.Sc. Ricardo Rodriguez Bustinza

47

Universidad Nacional Del Callao - Control Inteligente

2012-A

Paso 11.- Programacin completa Finalmente la programacin completa del SubVI denominado FIS_9_RULER es la siguiente:

Fig 54.- Programacin Final: FIS_9_RULER

M.Sc. Ricardo Rodriguez Bustinza

48

Universidad Nacional Del Callao - Control Inteligente

2012-A

M.Sc. Ricardo Rodriguez Bustinza

49

Universidad Nacional Del Callao - Control Inteligente

2012-A

3.- Simulacin y Tiempo Real Finalmente luego de haber concluido con la explicacin todos los SubVis construidos para lograr el diseo final de nuestro PID Difuso de la figura 32 en cdigo Puro, tenemos las siguientes pestaas para la prueba en Tiempo Real:

Fig 55.- Panel Frontal del Programa

Fig 56.- Panel Frontal de resultados del SubVI FIS_9_RULES Finalmente con los toolkits de la NIDAQ PCI 6221 configurados adecuadamente para la prueba final, y se obtuvieron buenos resultados como se puede constatar en la figura 57.

M.Sc. Ricardo Rodriguez Bustinza

50

Universidad Nacional Del Callao - Control Inteligente

2012-A

Fig 57.- Resultados en tiempo Real para nuestro control DPID con 9 reglas por cdigo puro VII.- Conclusiones 1. Acorde de la necesidad del usuario depende la recomendacin de emplear 4 o 9 reglas, sin embargo debemos observar que si los MFs de la salida fuesen cualquier otra figura excepto singleton, los valores defuzzificados no tendran que ser limitados y seran de un mayor rango los de 9 reglas. 2. Debemos observar que en todos los bucles While se ha cambiado el smbolo del Stop, por otro cuyo smbolo es una flecha circular que indican repeticin, esto debido a que al poseer varios SubVI con bucles del mismo tipo el programa no funciona adecuadamente pues el bucle del SubVI ms interno se ejecuta slo y los restantes no tienen efecto; por tal motivo se debe cambiar el smbolo del Stop por el de las flechas continuas. 3. Implementar un algoritmo de 25 reglas podra ser tomado en cuenta en futuras experiencias, sin embargo la planta empleada es de respuesta rpida, por tanto un nmero muy alto de reglas como lo es 25, en vez de mejorar la seal de control, la vuelve oscilatoria (inestable) por requerir mayor tiempo de procesamiento. Precisamente alta cantidad de reglas son empleadas para plantas que poseen respuestas lentas (Planta de Nivel o mejor an Planta de Temperatura).

M.Sc. Ricardo Rodriguez Bustinza

51

Universidad Nacional Del Callao - Control Inteligente

2012-A

4. Debemos recordar que las tarjetas de adquisicin de datos dan valores anlogos de salida de hasta +/-10 Voltios, por tanto la seal de control empleada para nuestra experiencia debe ser limitada para no tomar valores elevados como los menciona el algoritmo de control implementado de acuerdo a los universos de discurso del Fuzzy Controler. 5. Cuando se emplea un SubVI elaborado en cdigo puro por el estudiante, puede ser que se necesite variar alguno de los parmetros del PID del controlador, aunque de manera nfima. 6. Una base de la reglas con tres entradas llega a ser bastante grande y la accin ntegra resulta una molestia. Por consiguiente es comn separar la accin integral en el controlador difuso PD+I (DPD+I). 7. El empleo de la tarjeta PCI 6221 para las pruebas en tiempo real permite al controlador entregar seal de control negativa (+/- 10V), esto es importante ya que por limitaciones de hardware a veces dejamos de entregar este voltaje que puede tener accin de control para la planta, y se pierde, trayendo como resultado un control limitado. 8. El controlador DPID nos ofrece la ventaja de mejorar la performance de control de un PID anlogo con sintona comn que normalmente presenta fallas de oscilacin o de sobrepaso en lazo cerrado. Como se observ en las pruebas de tiempo real, el algoritmo DPID elimina el sobrepaso casi en su totalidad y tambin entrega una seal de control con comportamiento ms adecuado. 9. De las pruebas en tiempo real pudimos constatar la ventaja de emplear lgica difusa para el diseo de un controlador genrico como lo es el PID, que normalmente presenta fallas en procesos como los subamortiguados. La seal de control que se entrega tiene trayectoria suave y no tiene sobrepicos bruscos de tensin, lo que resultado beneficioso para la robustez del control, a diferencia de la seal de control que presenta un PID Ziegler Nichols comn.

M.Sc. Ricardo Rodriguez Bustinza

52

Vous aimerez peut-être aussi