Anda di halaman 1dari 124

S.E.P. S.E.S. D.G.E.S.T.

INSTITUTO TECNOLGICO DE AGUASCALIENTES









Acoplamiento y Desacoplamiento Difuso de Sistemas Regulares


T E S I S


Para Obtener el Grado de:
Maestro en Ciencias en Ingeniera Elctrica


PRESENTA:



Ing. Jorge Alejandro Delgado Aguiaga


Asesores:



Dr. Jorge Luis Orozco Mora
Dra. Elvia Ruiz Beltrn



Aguascalientes, Ags., Julio de 2012.







































































Oficio de autorizacin de impresin de la
Divisin de Estudios de Posgrado e Investigacin




i
S.E.P. S.E.S. D.G.E.S.T.


INSTITUTO TECNOLGICO DE AGUASCALIENTES







Acoplamiento y Desacoplamiento Difuso de Sistemas Regulares


T E S I S


Para Obtener el Grado de:
Maestro en Ciencias en Ingeniera Elctrica


PRESENTA:



Ing. Jorge Alejandro Delgado Aguiaga


Asesores:



Dr. Jorge Luis Orozco Mora
Dra. Elvia Ruiz Beltrn



Aguascalientes, Ags., Julio de 2012.
ii
RESUMEN: En esta tesis se estudian, la interaccin de los sistemas multivariables
(mltiples entradas y salidas), como una de sus caractersticas ms importantes, conocido
como el problema de acoplamiento, estudiado desde los aos 60s y que actualmente est
resuelto en forma general, el caso particular del desacoplamiento regular (mismo nmero
de entradas que salidas) y que an no existe solucin general para el caso no regular (mayor
nmero de entradas que salidas), solo algunos casos particulares por la dificultad
matemtica que presenta, lo que hace importante su anlisis, ya que en este trabajo el
enfoque de estudio del problema de acoplamiento se hace con los conceptos de la lgica
difusa. Con tal enfoque, se propone una solucin al problema de acoplamiento para el caso
regular, el cual presenta una ventaja sobre el anlisis matemtico de las soluciones
existentes, pues la lgica difusa se basa en la utilizacin del conocimiento experto sobre el
sistema sin conocer el modelo matemtico, y as es posible establecer un conjunto adecuado
de reglas heursticas que consigan un objetivo de control que para esta tesis es el
desacoplamiento. Tambin, se extienden los resultados para modificar el factor de
acoplamiento en forma deseada.

ABSTRACT: In this thesis is studied, the interaction of multivariable systems (multiple
inputs and outputs), as one of its most important features, known as the coupling problem,
studied since the 60s and now is solved in general, the decoupling case law (same number
of inputs than outputs) and there is still no general solution for the case is not regular (more
inputs than outputs), only some particular cases the mathematical difficulty it presents,
making it important their analysis, since in this work study approach to the problem of
coupling is done with the concepts of fuzzy logic. With this approach, we propose a
solution to the problem of coupling to the regular case, which presents an advantage over
the mathematical analysis of existing solutions, since fuzzy logic is based on the use of
expert knowledge about the system without knowing the model mathematician, and so you
can set an appropriate set of heuristic rules that achieve a control objective for this thesis is
the decoupling. Also extend the results to modify the coupling factor desired shape.



iii
Agradecimientos

o A Dios por darme la oportunidad de realizar este proyecto.
o A mis padres Ma. Teresa y Ramiro, porque con sus enseanzas he aprendido a ser
una persona de bien.
o A muy en especial mi madre Ma. Teresa, ya que siempre se ha esforzado por que yo
sea una persona de bien y siempre me ha apoyado para superarme.
o A mis hermanas, Blanca y Laura por que siempre me han apoyado.
o A toda mi familia, en especial a mis abuelos, J. Guadalupe, Ma. Del Refugio, Juan y
Mara por sus buenos consejos de vida.
o A todos mis maestros, sobre todo a mi asesor el Dr. Jorge Luis Orozco Mora, por su
paciencia y dedicacin, ya que mucho de lo aprendido en este proyecto se lo debo a
l.
o A la Dra. Elvia Ruz Beltrn por su valiosa colaboracin en el desarrollo de esta
investigacin.
o A todos mis compaeros, en especial a Jos Alfredo Juregui, Efran Ramrez, y
Sergio Eduardo Luna, pues ellos me ayudaron siempre en mi aprendizaje diario.
o Al Instituto Tecnolgico de Aguascalientes, porque me ha abri sus puertas para
superarme.
o Al CONACYT, por la beca que me brindo durante este proyecto de maestra.
o A todos ustedes, muchas gracias













Jorge Alejandro Delgado Aguiaga
iv
N D I C E G E N E R A L

Resumen.

Captulo 1. Introduccin .................................................. Error! Marcador no definido.
1.1 Descripcin del problema ....................................................................................... 2
1.2 Objetivos ................................................................................................................. 2
1.2.1 Objetivo general ............................................................................................. 2
1.2.2 Objetivos particulares ..................................................................................... 2
1.3 Hiptesis ................................................................................................................. 3
1.4 Justificacin ............................................................................................................ 3
1.5 Estado del arte ........................................................................................................ 4
1.6 Publicaciones obtenidas y sometidas ...................................................................... 7
Captulo 2. Acoplamiento de sistemas multivariables ...................................................... 9
2.1 Desacoplamiento por retroalimentacin de estados. ............................................ 10
2.1.1 Teorema de Falb y Wolovich, sin asignacin de modos. ............................. 10
2.1.2 Teorema de Falb y Wolovich, con asignacin de modos. ............................ 16
2.2 Factor de acoplamiento. ........................................................................................ 19
2.2.1 Ganancia relativa. ......................................................................................... 21
Captulo 3. Lgica difusa ................................................................................................ 24
3.1 Conjuntos difusos ................................................................................................. 24
3.1.1 Propiedades de los conjuntos difusos ........................................................... 30
3.1.2 Operaciones entre conjuntos difusos ............................................................ 32
3.2 Principios de la lgica difusa ................................................................................ 34
3.2.1 Reglas de implicacin ................................................................................... 36
3.3 Reglas de mapeo funcional ................................................................................... 37
3.3.1 Mapeando una subregin difusa a un modelo local ..................................... 38
3.4 Defuzificacin ...................................................................................................... 39
3.4.1 Mtodos de defuzificacin............................................................................ 40
3.5 Mtodo difuso basado en reglas para aproximacin de funciones ....................... 42
3.5.1 El modelo Mamdani ..................................................................................... 40
Captulo 4. Resultados sobre el desacoplamiento y cambio en el factor de acoplamiento
difuso del sistema de tuberas en paralelo ............................................................................ 44
4.1 Inters y utilizacin de la lgica difusa para el control ........................................ 44
4.1.1 Inters. .......................................................................................................... 44
4.1.2 Utilizacin para el control. ........................................................................... 45
4.1.3 La capitalizacin del saber hacer. ................................................................. 45
4.2 Caso de estudio ..................................................................................................... 46
4.3 Sistema de control difuso tipo Mamdani para el sistema de riego ....................... 51
4.3.1 Conjuntos difusos del CPD del sistema de riego. ......................................... 51
4.3.2 Mecanismo de inferencia del CPD. .............................................................. 54
4.3.3 Mtodo de defuzificacin del CPD. ............................................................. 57
4.4 Resultados obtenidos del CPD ............................................................................. 57
4.5 Factor de acoplamiento ......................................................................................... 62
4.5.1 Informe experto para el cambio del factor de acoplamiento. ....................... 62
4.6 Desacoplamiento de un sistema de riego por aspersin mediante un CPD .......... 66
v
Captulo 5. Conclusiones y trabajo a futuro .................................................................... 68
5.1 Conclusiones ......................................................................................................... 68
5.2 Trabajo a futuro .................................................................................................... 68

Referencias: 69

Anexo 1: Programa en MATLAB para el desacoplamiento y cambio del factor de
acoplamiento del sistema de tuberas, 73



vi
NDICE DE FIGURAS

Figura 2.1 Sistema de riego con 3 vlvulas. ........................................................................... 9
Figura 2.2 Diagrama de bloques del sistema acoplado .......................................................... 9
Figura 2.3 Diagrama simplificado de un sistema lineal (MIMO) cuadrado desacoplado 10
Figura 2.4 Diagrama del circuito RC. ................................................................................... 12
Figura 2.5 Representacin en espacio de estados del sistema en MATLAB. ...................... 15
Figura 2.6 Entrada u
1
al sistema ....................................................................................... 15
Figura 2.7 Entrada u
2
al sistema con una amplitud de 20 V y 1 rad/seg en frecuencia. ....... 16
Figura 2.8 Respuesta del sistema ante u
1
y u
2
. ..................................................................... 16
Figura 2.9 Entrada u
1
aplicada al sistema ............................................................................. 18
Figura 2.10 Entrada u
2
aplicada al sistema ........................................................................... 18
Figura 2.11 Respuesta del sistema ante las entradas u
1
y u
2
con asignacin de modos en -10
y -15. ............................................................................................................................. 18
Figura 2.12 Sistema multivariable de flujo de fluidos en tuberas en paralelo. ................... 19
Figura 2.13 Representacin esquemtica del sistema de tuberas en paralelo. .................... 20
Figura 2.14 Esquema de un proceso (MIMO) nxn. .............................................................. 20
Figura 2.15 Interaccin de un sistema de 2X2. .................................................................... 21
Figura 3.1 Especificacin del conjunto difuso en forma enumerativa en forma discreta. ... 27
Figura 3.2 Representacin en forma intencional de un conjunto difuso. ............................. 28
Figura 3.3 Funciones de pertenencia del ejemplo 2. ............................................................ 29
Figura 3.4 Representacin alternativa del ejemplo 2. .......................................................... 29
Figura 3.5 Representacin alternativa del ejemplo 2. .......................................................... 30
Figura 3.6 Operacin interseccin de los conjuntos BAJO y MEDIANO de la Figura 3.3
empleando el mnimo. .................................................................................................. 32
Figura 3.7 Operacin interseccin de los conjuntos BAJO y MEDIANO de la Figura 3.3
empleando el producto.................................................................................................. 33
Figura 3.8 Operacin unin de los conjuntos BAJO y MEDIANO de la Figura 3.3
empleando el mximo. .................................................................................................. 33
Figura 3.9 Operacin complemento del conjunto BAJO de la Figura 3.3. .......................... 34
Figura 3.10 Operacin AND. ............................................................................................... 35
Figura 3.11 Esquema para el mapeo funcional de las reglas, particin cartesiana............... 37
Figura 3.12 Esquema para el mapeo funcional de las reglas, particin difusa. .................... 37
Figura 3.13 Mtodos de defuzificacin LOM, MOM y SOM. ............................................ 40
Figura 3.14 Defuzificacin por el mtodo centroide. ........................................................... 41
Figura 3.15 Defuzificacin por el mtodo bisector. ............................................................. 41
Figura 3.16 Sistema difuso tipo Mamdani ........................................................................... 43
Figura 3.17 Variables de salida y defuzificacin ................................................................. 43
Figura 4.1 Esquema del sistema de riego de tuberas en paralelo ........................................ 46
Figura 4.2 Circuito elctrico anlogo al sistema de referencia............................................. 47
Figura 4.3 Simulacin del sistema de tuberas en paralelo en lazo cerrado con MATLAB 50
Figura 4.4 Sistema difuso tipo Mamdani ............................................................................. 51
Figura 4.5 Universo de discurso y conjuntos difusos para la demanda de gasto del sistema
...................................................................................................................................... 52
Figura 4.6 Universos de discurso y conjuntos difusos para la demanda de presin requerida
por el sistema ................................................................................................................ 53
vii
Figura 4.7 Universos de discurso y conjuntos difusos para la demanda de gasto 1 ............. 53
Figura 4.8 Universos de discurso y conjuntos difusos para la apertura de la vlvula 1 ....... 54
Figura 4.9 Grfica generada por la base de las reglas de CPD, Gasto-Presin.55
Figura 4.10 Grfica generada por la base de las reglas del CPD para el control de la
apertura de las vlvulas................................................................................................. 56
Figura 4.11 Entradas variables de referencia para el gasto de las ramas paralelas .............. 57
Figura 4.12 Respuesta del experto ante la entrada de referencia.......................................... 58
Figura 4.13 Error de gasto para la tubera 1 ......................................................................... 58
Figura 4.14 Error de gasto para la tubera 2 ......................................................................... 59
Figura 4.15 Error de gasto para la tubera 3 ......................................................................... 59
Figura 4.16 Resultados del controlador CPD ....................................................................... 60
Figura 4.17 Demanda Gasto-Presin, determinados por el CPD ......................................... 60
Figura 4.18 Respuesta del experto y CPD ante las entradas de referencia ........................... 61
Figura 4.19 Entradas propuestas de referencia para los gastos en cada rama paralela, la cual
muestra un cambio en la entrada de referencia 1.......................................................... 62
Figura 4.20 Respuesta del experto ante los factores de acoplamiento propuestos ............... 63
Figura 4.21 Error de gasto para la tubera 1 ......................................................................... 63
Figura 4.22 Error de gasto para la tubera 2 ......................................................................... 64
Figura 4.23 Error de gasto para la tubera 3 ......................................................................... 64
Figura 4.24 Respuesta del Controlador Proporcional Difuso ante el factor de acoplamiento
...................................................................................................................................... 65
Figura 4.25 Demanda Gasto-Presin del sistema ................................................................. 65
Figura 4.26 Superficie de varios cultivos con diferentes necesidades de agua .................... 66























viii
NDICE DE TABLAS

Tabla 3.1 Correspondencia entre operadores de la Teora de Conjuntos, el lgebra Boleana
y la Lgica Tradicional ................................................................................................. 34
Tabla 4.1 Base de las reglas del CPD gasto-presin. ........................................................... 55
Tabla 4.2 Base de las reglas del CPD para la apertura de las vlvulas ................................ 56






- - 1
Captulo 1. Introduccin
El comportamiento de un sistema dinmico se encuentra condicionado por las acciones que
se ejerzan sobre l. Esas acciones pueden ser ejercidas como acciones deseadas, a travs de
variables manipuladas (vlvulas, interruptores, relevadores, potencimetros, calefactores,
ventiladores, etc.). Los efectos de esas acciones se pueden ver reflejados en una o ms
variables del sistema (temperaturas, niveles, presiones, velocidades, concentraciones,
posiciones, entre otras) que bajo ciertas condiciones se desean mantener en un valor
determinado (variables controladas). Cuando en el sistema intervienen ms de una variable
de entrada y una variable de salida, se trata de un sistema MIMO (Multiple Input Multiple
Output). En los sistemas MIMO est presente el problema de interaccin o acoplamiento
entre las variables, ya que una entrada afecta a ms de una salida, lo que hace difcil
controlar al sistema. Esta afectacin quiere decir que las variables controladas se alejan de
su valor de referencia en virtud de cambios en las variables de entrada.

En general, para el problema de acoplamiento, el objetivo de la teora de control es disear
estrategias que permitan manipular un conjunto de variables, de manera que se puedan
mantener las variables controladas en valores deseados a pesar de las perturbaciones
(acoplamiento en este caso) que puedan afectar al sistema, el caso en el cual una variable
manipulada afecta una sola variable controlada se le conoce como desacoplamiento.

El problema de desacoplamiento ha sido abordado desde diversos enfoques, pero en esta
tesis solo se profundizar sobre el enfoque lineal y difuso. El desacoplamiento de sistemas
lineales multivariables ha constituido uno de los problemas clsicos en la teora de control.
De una manera sencilla, el desacoplamiento consiste en modificar un sistema dado, dotado
con un cierto nmero de variables de entrada y de salida tal que la accin de cada entrada
en lazo cerrado afecte una y slo una salida, funcionando el sistema como mltiples
sistemas de una entrada una salida, para simplificar el control del sistema. Esta estructura es
deseable en un gran nmero de aplicaciones donde la interaccin entre las variables
controladas y manipuladas hace complicado lograr algn objetivo de control.

- - 2
1.1 Descripcin del problema
Se ha definido a un sistema MIMO, as como el problema de acoplamiento que presenta.
Varias soluciones al problema de desacoplamiento ya han sido presentadas para el caso
regular (mismo nmero de entradas que salidas), basadas en el modelo matemtico, [2, 4, 8,
13, 17, 19, 23, 24], y an sin resolverse est el caso no regular (diferente nmero de
entradas que salidas), en forma general basadas en el modelo matemtico, solo algunas
soluciones particulares, [6, 7, 12]. Todos los enfoques que han abordado el problema de
desacoplamiento estn basados en el modelo matemtico, lo cual, para un sistema que
involucra gran cantidad de variables obtener el modelo resulta una tarea compleja. As
mismo, el factor de acoplamiento es la forma en que una entrada afecta a las salidas del
sistema basado en el modelo matemtico, y no existe una metodologa para modificarlo en
forma preestablecida. Entonces, el problema que se busca resolver en esta tesis se expresa
de la siguiente forma: De qu manera se puede proponer una solucin al problema de
desacoplamiento mediante la Lgica Difusa sin contar con el modelo matemtico?, as
mismo Cmo se puede modificar el factor de acoplamiento de forma deseada sin el
modelo matemtico?
1.2 Objetivos
1.2.1 Objetivo general
Analizar el acoplamiento de un sistema de tuberas en paralelo para un sistema de riego
proponiendo una forma de modificar el factor de acoplamiento, adems se analizar bajo
qu condiciones el sistema se puede desacoplar con un controlador difuso.
1.2.2 Objetivos particulares
o Conocer la teora bsica para entender el acoplamiento de sistemas lineales.
o Caracterizar el factor de acoplamiento en el sistema considerado.
o Estudiar el desacoplamiento de sistemas regulares.
o Entender y aplicar la lgica difusa.
o Disear un controlador difuso para modificar el grado de acoplamiento del sistema.

- - 3
1.3 Hiptesis
Tomando en cuenta las ventajas de la teora de la Lgica Difusa, sta se aplicar al sistema
de tuberas en paralelo, considerado como multivariable acoplado y caso regular, para
lograr el desacoplamiento mediante un Controlador Difuso (CD), que a travs del
conocimiento experto del sistema, se formularn un conjunto de reglas difusas para
desacoplarlo, prescindiendo de un modelo matemtico.
Una vez propuesta una solucin al desacoplamiento, se propondr la forma de modificar el
factor de acoplamiento del sistema en forma deseada.
1.4 Justificacin
El anlisis y control de un sistema MIMO es complicado, ya que no es tan sencillo obtener
un modelo matemtico preciso del sistema y se vuelve an ms difcil cuando la cantidad
de variables aumenta, adems de que est presente el problema de acoplamiento lo cual
hace difcil lograr algn objetivo de control. Por tal razn, la principal ventaja de utilizar la
Lgica Difusa en el control del sistema, es que no es necesario obtener un modelo
matemtico, slo se requiere saber cmo funciona el sistema para conseguir el objetivo de
control que en este caso sera modificar el factor de acoplamiento o lograr el
desacoplamiento. Si es posible conseguir estos objetivos, se puede obtener un conocimiento
experto sobre el funcionamiento del sistema, lo cual permitir disear un conjunto
adecuado de reglas difusas que puedan controlarlo y llevarlo a cumplir con los objetivos.
Es importante resaltar que an no existe una metodologa para modificar el factor de
acoplamiento de manera deseada.

As mismo, al tratarse de un sistema real, se asume que se est tratando el problema de
desacoplamiento considerando al sistema como variante en el tiempo y no lineal, ya que
para este tipo de sistemas no estn contemplados en la solucin general dada en [2], pues
est condicionado para Sistemas Lineales Invariantes en el Tiempo. Y es importante
mencionar que de poco sirven las soluciones que restringen en gran medida las condiciones
reales de los sistemas.

- - 4
1.5 Estado del arte
En un sistema MIMO acoplado, las variables de entrada-salida interactan entre s hasta
cierto punto, lo que es conocido como el grado de interaccin o factor de acoplamiento, el
cual se puede calcular para establecer la magnitud en que una entrada afecta a ms de una
salida. Resultados sobre este tema son, [20, 33, 34], siendo el ms significativo el propuesto
por Bristol, [34], el cual desarrolla un procedimiento para determinar la respuesta relativa
de cada variable controlada en un proceso, a cada variable manipulada. En mtodo
caracteriza la magnitud y tipo de interaccin que debe esperarse y su efecto sobre el
comportamiento del sistema, sin embargo no dice como modificar el grado de interaccin a
una forma deseada.

Un caso particular del acoplamiento es cuando una variable de entrada afecta solo una
variable de salida y se le conoce como desacoplamiento, es decir, el factor de interaccin
entre las variables se hace nulo. Publicaciones dedicadas al tema de desacoplamiento
abundan en la literatura, por ejemplo, [1-9, 12-14, 15, 17-19, 23, 24], por slo citar algunas.
El problema de desacoplamiento est totalmente resuelto para el caso especial de sistemas
regulares invariantes en el tiempo, [2, 4, 8, 13, 17, 19, 24], pero no para el caso general de
desacoplamiento no regular, [6, 7, 12, 23], debido a la complejidad de las modificaciones
estructurales que se producen cuando se utiliza retroalimentacin no regular.

El primer resultado importante concerniente al desacoplamiento regular mediante
retroalimentacin esttica de estado lo propuso P. L. Falb et al., [2]. Explicaron su resultado
en trminos de la no singularidad de una matriz construida a partir de las matrices del
sistema, y de esta manera dieron las condiciones necesarias y suficientes para que exista
una retroalimentacin esttica de estado que desacople al sistema. Estos autores tambin
caracterizaron las clases de retroalimentaciones que desacoplan a un sistema y el nmero de
polos en lazo cerrado que pueden ser asignados. Sin embargo, las condiciones para
caracterizar estos polos, son difciles de aplicar y no existe conexin entre estas condiciones
con la estructura del sistema.


- - 5
Morse et al.,[3], dieron otra aportacin importante, estos autores generalizaron el problema
de desacoplamiento plantendolo en trminos geomtricos y obteniendo condiciones para la
solucin de dos casos particulares: = y =, donde C y B son la matrices de
salida y de entrada respectivamente, k es el nmero de bloques en la funcin de
transferencia en lazo cerrado y rank indica el rango de la matriz bajo anlisis. Sus
soluciones estn dadas en trminos de la propiedades de R*, que es el mximo subespacio
de controlabilidad contenido en el Kernel de la matriz C.

Descusse et al., [5], interpretaron el resultado de Falb et al., [2], en trminos de la estructura
del sistema, mostrando que la condicin de desacoplamiento se reduce a una igualdad entre
la sumatoria de los rdenes de los ceros al infinito del sistema, y la sumatoria de los
rdenes de los ceros al infinito por filas.

Descusse et al., [6], creyeron dar la solucin general al problema de desacoplamiento no
regular, pero luego A. N. Herrera et al., [14], demostraron que las condiciones presentadas
no eran suficientes.

Zagalak et al.,[13], propusieron la solucin general para el problema de desacoplamiento no
regular utilizando un enfoque polinomial, sin embargo las condiciones que se propusieron
son implcitas y no son directamente comprobables, adems dependen de la existencia de
una matriz bipropia que no se dice cmo encontrarla.

A. N. Herrera et al., [12], presentaron la solucin general para el caso de desacoplamiento
no regular de sistemas con dos salidas, expresando su resultado en trminos de la lista I2 de
Morse, y la informacin al infinito del sistema.

J.L. Orozco M., [23], propuso la solucin de desacoplamiento no regular en el caso
particular de los sistemas decalados, es decir, los sistemas que tienen rdenes esenciales
iguales.

- - 6
El problema de desacoplamiento no regular sigue siendo un problema abierto, debido a que
tiene algunos otros problemas implcitos, como lo es la modificacin de la estructura al
infinito, con retroalimentacin de estado esttica.

Para dar una solucin al problema de desacoplamiento, con alguna de las tcnicas
mostradas anteriormente, siempre es necesario obtener una representacin matemtica del
sistema, es decir, se tienen que conocer las ecuaciones dinmicas que aproximen en medida
de lo posible el comportamiento real del sistema. Sin embargo, esta tarea no siempre resulta
fcil para el diseador, pues cuando en el sistema intervienen una gran cantidad de
variables, obtener una representacin ser una tarea difcil. Adems deben considerarse las
caractersticas del sistema, es decir, si el sistema es no lineal o lineal, variante o invariante
en el tiempo.

Es importante mencionar que en los sistemas reales, la gran mayora, presentan
comportamientos no lineales y tambin est siempre presente la variacin en el tiempo.
Entonces, ante estas dificultades, se dice que las soluciones al problema de
desacoplamiento basadas en sistemas lineales invariantes en el tiempo, no muestran
totalmente una solucin al problema de desacoplamiento para los sistemas reales. Por esta
razn, la lgica difusa, presenta una alternativa de solucin al problema de
desacoplamiento, ya que esta teora acerca ms la forma de hacer diseo de control con la
forma de pensar humana a pesar de no contar con un modelo matemtico y de no saber si el
sistema es no lineal, variante en el tiempo, etc. As, si en un sistema real, existe un experto
en el manejo del mismo sin tener una representacin matemtica y adems el experto sabe
cmo conseguir un comportamiento desacoplado, entonces, pueden plantearse un conjunto
de reglas heursticas que logren este objetivo de desacoplamiento.

Hasta ahora, algunos trabajos de desacoplamiento con tcnicas difusas ya han sido
presentados. El primer trabajo que abord el problema de desacoplamiento con tcnicas
difusas fue propuesto por Chen Wei Xu et al., [10], presentaron una solucin al problema
de desacoplamiento a partir de una descripcin de un sistema lineal en tiempo discreto, para
el cual es indispensable un modelado matemtico del sistema. Trabajos posteriores,

- - 7
presentan soluciones al problema de desacoplamiento basado en lgica difusa como, [11,
16, 21, 26-29, 32], pero todos estos se basan en el modelado matemtico del sistema y
adems algunos se apoyan en tcnicas del rea de inteligencia artificial.

Por lo que en esta tesis se propone una solucin al problema de desacoplamiento
prescindiendo del modelo matemtico como tal, ya que aqu lo que se utiliza son los
principios bsicos de continuidad y de prdidas de carga para el sistema de referencia, que
son informacin bsica que el experto debe conocer.

1.6 Publicaciones obtenidas y sometidas

Como resultado del trabajo desarrollado en esta tesis, se tiene hasta el momento las
siguientes publicaciones.

J. A. DelgadoA., J. L. Orozco M., E. Ruiz-Beltrn Regular coupling and
decoupling fuzzy systems, Poster, en CIIIEE 2010, 10 al 12 de Noviembre,
Aguascalientes, Ags. Mexico.

J. A. Delgado A., J. L. Orozco M., E. Ruiz-Beltrn and J. A. Caldern-Martnez,
Desacoplamiento mediante un PD difuso aplicado a un sistema de tanques, en 25
th Reunin de Verano de Potencia y Aplicaciones Industriales (2011). RVP-AI,
Acapulco, Guerrero, Mxico, IEEE, Power Engineering Society and Industry
Aplications Conf., AI-25.

J. A. Delgado A., J. A. Juregui A.,E. Ramrez V., S. E. Luna C., J. L. Orozco M.,
Aplicacin del desacoplamiento regular a un circuito elctrico, en 13 th Reunin
de Otoo de Potencia, Electrnica y Computacin, (2011). ROPEC, Morelia,
Michoacn, Mxico, IEEE.





- - 8
Artculos sometidos a revisin:

J. A. Delgado A., J. L. Orozco M. and E. Ruiz-Beltrn, Solucin al problema de
desacoplamiento mediante un Controlador Proporcional Difuso de un sistema
regular de riego con tuberas en paralelo, (2012), Revista: Ingeniera,
Investigacin y Tecnologa UNAM.

J. A. Delgado A., J. L. Orozco M. and E. Ruiz-Beltrn, Partial decoupling using a
Fuzzy Proportional Controller FPC of a regular system: case parallel pipelines,
(2012).























- - 9
Captulo 2. Acoplamiento de sistemas multivariables
Como se ha mencionado, la caracterstica ms importante de un sistema MIMO son
acoplamientos o interacciones entre sus variables, es decir, una variable de entrada puede
afectar a todas las variables de salida. Por ejemplo, en un sistema de tuberas en paralelo
est presente el acoplamiento ya que al modificar la apertura de una vlvula, los flujos en
cada rama paralela se ven afectados de forma no determinada, pues este tipo de sistemas
cumplen con el principio de continuidad, ver Figura 2.1

Figura 2.1 Sistema de riego con 3 vlvulas.

Un sistema acoplado con 2 entradas y 2 salidas, se puede representar con el diagrama de
bloques que se muestra en la Figura 2.2.








Figura 2.2 Diagrama de bloques del sistema acoplado.

- - 10
Cualquier entrada aplicada a un elemento tiene efectos en la salida de varios elementos. El
problema de desacoplamiento es clsico en la teora del control, ste ha sido resuelto en su
totalidad en trminos matemticos para el caso regular [2, 4, 8, 13, 17, 19, 23, 24] y algunos
casos particulares del caso no regular, [6, 7, 12]. En trminos sencillos el desacoplamiento
de un sistema lineal MIMO consiste en hacer que dicho sistema se comporte como muchos
sistemas SISO, ver figura 2.3

Figura 2.3 Diagrama simplificado de un sistema lineal (MIMO) cuadrado desacoplado.

Esto es ideal en sistemas muy grandes puesto que el estudio del mismo se realizara en
bloques simples de una salida una entrada.
2.1 Desacoplamiento por retroalimentacin de estados
2.1.1 Teorema de Falb y Wolovich, sin asignacin de modos
Una de las soluciones al problema de desacoplamiento fue introducida en 1967 por Falb y
Wolovich [2] el cual formula una retroalimentacin de estado y un cambio en las entradas
que permite alcanzar el desacoplamiento en forma de integradores mediante la siguiente ley
de control, mostrada en la Ec. 2.1:
) ( ) ( ) ( t Gv t Fx t u + = Ec. 2.1
Considere la siguiente representacin del sistema.


) ( ) (
) ( ) ( ) (
t Cx t y
t Bu t Ax t x
=
+ =
Ec. 2.2

- - 11
Donde x es un n vector llamado de estado, u un m vector de entrada, y un m vector de
salida, y A, B y C, son nxn, nxm, y mxn matrices respectivamente. Se asume que mn Si F
es una matriz mxn y G una matriz no singular mxm entonces la sustitucin de Ec. 2.1 donde
v representa el nuevo m vector de control se conocer como retroalimentacin de estado.
Por simplicidad el sistema descrito en la Ec. 2.2, se citar como (A, B, C).

La metodologa para el diseo de la retroalimentacin de estado para desacoplar (A, B, C)
es encontrar la ley de control descrita en Ec. 2.1, tal que la matriz de transferencia sea una
diagonal de integradores. En el teorema 1 se establecen las condiciones para obtener el
desacoplamiento del sistema (A, B, C), [2].

Teorema 1.- El problema de desacoplamiento esttico por retroalimentacin de estado
tiene solucin si y slo si:

a) El par [A, B] es estabilizable
b) El rango [A B;C D] = n + m

Supngase que las condiciones (a) y (b) en Teorema 1 se cumplen, por tanto el problema
tiene solucin. Se parte de la siguiente manera: Si (A, B) es inestable, disese un K tal que
el sistema de retroalimentacin de estado sea estable, es decir, el determinante de (sI - A +
BK) tenga todas sus races en el semiplano izquierdo.

Una vez estabilizado el sistema (A, B, C), disese la retroalimentacin de estado tal que el
sistema en lazo cerrado tenga una funcin de transferencia de la forma:
BG BF) A C(sI T
1
FG

= Ec. 2.3
Tal que T
FG
est desacoplada. Donde F se construye como:
* *
1
A B F

= Ec. 2.4
Y G como:
1
*

= B G Ec. 2.5

Donde B* es:

- - 12
(
(
(
(
(

=
-
B
B
B
A
A
A
C
C
C
B
dm
d
d
m

2
1
2
1
Ec. 2.6
Y A* como:

(
(
(
(
(

= -
+
+
+
1
1 2
1 1
2
1
dm
d
d
m
A
A
A
C
C
C
A

Ec. 2.7
Si, det B* 0, el sistema es desacoplable
Con los ndices:
{ } 0 min = e = B A C N j d
j
d
j i
Ec. 2.8
Entonces existe un par de matrices F y G las cuales desacoplan el sistema (A, B, C). Y el
nuevo vector de entradas esta dado como
) ( ) ( ) ( t Fv t Kx t u + = Ec. 2.9
Tal que el sistema sea

) ( ) (
) ( ) ( ) ( ) ( ) (
t Cx t y
t v BG t x BF A t x
=
+ + =
Ec. 2.10
Est desacoplado en integradores, es decir el sistema es crticamente estable.
Ejemplo de desacoplamiento mediante retroalimentacin de estados sin asignacin de
modos. Considere el siguiente sistema mostrado en la Figura 2.4, [31].

Figura 2.4 Diagrama del circuito RC.
Para ilustrar la metodologa mostrada en [2] se utiliza el sistema mostrado en Figura 2.4,
cuya representacin en espacio de estado (A, B, C) se muestra a continuacin:

- - 13
(

=
(

(
(
(
(

+
(

(
(
(
(

=
(

2
1
2
1
2
1
3 2
1 1
2
1
3 2 2 2 2
2 1 2 1 1
2
1
1 0
0 1
1
0
0
1
)
1 1
(
1 1
1
)
1 1
(
1
x
x
y
y
u
u
R C
R C
x
x
R R C R C
R C R R C
x
x


Las variables de estado son los voltajes en los capacitores C
1
y C
2
, as como las entradas u
1

y u
2
, son los voltajes deseados en los capacitores, y la salida son los voltajes en C
1
y C
2

Para simplificar los clculos, se sustituyen los siguientes valores:

R
1
=R
2
=R
3
=100 (Omhs)
C
1
=C
2
=0.001 (Faradios)

Sustituyendo los valores en las ecuaciones de estado descritas anteriormente, el sistema (A,
B, C) queda de la siguiente manera:
(

=
(

(
(
(
(

+
(

(
(
(
(

=
(

2
1
2
1
2
1
2
1
2
1
1 0
0 1
11
100
0
0
11
100
100
200
11
100
11
100
100
200
x
x
y
y
u
u
x
x
x
x


Para encontrar F y G que desacoplan el sistema se parte de un sistema estable, es decir, el
determinante de (sI - A + BK) tiene todas sus races en el semiplano izquierdo, entonces F
ser:
(
(
(
(
(

(
(
(
(

=
+
+
+

1
1 2
1 1
2
1
1
1
1
2
1
dm
d
d
m
dm
d
d
m A
A
A
C
C
C
B
B
B
A
A
A
C
C
C
F

Ec. 2.11
Entonces, obteniendo los ndices d
i
, se calcula B* tal como sigue:
A=nxn= 2X2, 0n-1=02-1=01. Los ndices a usar son 0 y 1. Ahora la primera fila con
d
1
=0 de B* es:
| |
(

=
(
(
(

(
(
(

11
100
0
11
100
0
0
11
100
11
200
11
100
11
100
11
200
1 0
0


- - 14
Como el resultado es distinto de cero, d
1
ser el siguiente ndice a utilizar, entonces la
segunda fila de B* es:
| |
(

=
(
(
(

(
(
(

0
11
100
11
100
0
0
11
100
11
200
11
100
11
100
11
200
0 1
0

Entonces B* es:
(
(
(

=
11
100
0
0
11
100
* B
Si B* tiene inversa, es decir det B* 0, el sistema es desacoplable, [2]. Como el det B* 0,
entonces el sistema es desacoplable. Ahora para encontrar A*; la primera fila es:
| |
(


=
(
(
(

11
100
11
200
11
200
11
100
11
100
11
200
0 1
La segunda fila de A* es:
| |
(


=
(
(
(

11
200
11
100
11
200
11
100
11
100
11
200
1 0
Entonces A* es:
(
(
(

=
11
200
11
100
11
100
11
200
* A
Finalmente la retroalimentacin de estado es:

(


=
(
(
(

(
(
(

2 1
1 2
11
200
11
100
11
100
11
200
11
100
0
0
11
100
1
F
(
(
(

=
(
(
(

100
11
0
0
100
11
11
100
0
0
11
100
1
G
La matriz de transferencia retroalimentada, resulta:

- - 15
0 1 2 3 4 5 6 7 8 9 10
-10
-5
0
5
10
15
20
u1
Time (sec)
desacoplamiento_space_state/v2 : Group 1
(
(
(
(

=
|
|
|
|
.
|

\
|
(
(
(
(

(
(
(

|
|
|
|
.
|

\
|
(


(
(
(

(
(
(

s
s
s
s
T
FG
1
0
0
1
100
11
0
0
100
11
11
100
0
0
11
100
2 1
1 2
11
100
0
0
11
100
11
200
11
100
11
100
11
200
0
0
1 0
0 1
1

Quedando la funcin de transferencia T
FG
desacoplada en integradores.
Para ver grficamente los resultados se desarrollo la simulacin en MATLAB eligindose
arbitrariamente las entradas sin perder generalidad, las cuales se muestran en Figura 2.5.









Fig. 2.5 Representacin en espacio de estados del sistema en MATLAB.

La entrada u
1
aplicada al sistema mostrado en la Figura 2.5 es de tipo escaln, la cual se
muestra en Figura 2.6.







Figura 2.6 Entrada u
1
al sistema.


- - 16
0 1 2 3 4 5 6 7 8 9 10
-20
-15
-10
-5
0
5
10
15
20
25
u2
Time (sec)
desacoplamiento_space_state/u2 : Group 1
Y la entrada u
2
considerada para el sistema es de forma sinusoidal tal como se muestra en
la Figura. 2.7.








Figura 2.7 Entrada u
2
al sistema con una amplitud de 20V y 1 rad/seg en frecuencia.

La salida del sistema representada en la Figura 2.8, muestra un comportamiento
desacoplado del sistema, ya que una entrada solo afecta una salida.









Figura 2.8 Respuesta del sistema ante u
1
y u
2
.
2.1.2 Teorema de Falb y Wolovich, con asignacin de modos

La metodologa para el diseo de la retroalimentacin de estado para desacoplar el sistema
(A, B, C), tal que la matriz de transferencia sea una diagonal
{ }
1
1
1
1
1
) (


+ + + + =
n n
n n
i
s s s s o o o | [14], es decir con estabilidad, asignando los polos en
un lugar deseado, se consigue eligiendo a F como:

- - 17
* * *
1
A B F

= Ec. 2.12
Donde
(
(
(
(

+
(
(
(
(
(

= - -
+
+
+
m m
dm
d
d
m
C
C
C
A
A
A
C
C
C
A

2
1
2
1
1
1 2
1 1
1
1
o
o
o
Ec. 2.13
F es:
(
(
(
(

+
(
(
(
(
(

(
(
(
(

=
+
+
+

m m
dm
d
d
m
dm
d
d
m C
C
C
A
A
A
C
C
C
B
B
B
A
A
A
C
C
C
F

2
1
2
1
1
1 2
1 1
2
1
1
1
1
2
1
o
o
o
Ec. 2.14

Y G permanece igual, quedando la matriz de transferencia en lazo cerrado como:

(
(
(
(
(

=
) (
1
0
0
) (
1
1
s
s
T
m
FG
|
|

Ec. 2.15

Donde el sistema est desacoplado y tiene modos determinados por los polinomios
i
(s).
Ahora al utilizar la metodologa para asignar modos al sistema (A, B, C) la
retroalimentacin de estado que asigna modos en -10 y -15 es:
(
(
(

=
(
(
(

+
(
(
(

(
(
(

20
7
1
1
10
9
15
11
200
11
100
11
100
10
11
200
11
200
11
100
11
100
11
200
11
100
0
0
11
100
1
F
Teniendo una matriz de transferencia:
(
(
(

+
+
=
15
1
0
0
10
1
s
s
T
FG






- - 18
0 1 2 3 4 5 6 7 8 9 10
0
2
4
6
8
10
12
14
16
18
20
u1
Time (sec)
desacoplamiento_space_state/u1 : Group 1
0 1 2 3 4 5 6 7 8 9 10
-20
-15
-10
-5
0
5
10
15
20
25
u2
Time (sec)
desacoplamiento_space_state/u2 : Group 1
Aplicando la entrada u
1
al sistema retroalimentado (A+BF, BG, C) la cual se describe en la
Figura 2.9.






Figura 2.9 Entrada u
1
aplicada al sistema.

Y una entrada u
2
mostrada en Figura 2.10.








Figura 2.10 Entrada u
2
aplicada al sistema.

Se tiene una respuesta del sistema que se muestra grficamente en Figura 2.11, donde se
puede apreciar que ante cambios drsticos en u
1
, la salida y
2
, no se ve afectada.








Figura 2.11 Respuesta del sistema ante las entradas u
1
y u
2
con asignacin de modos en -10 y -15.

- - 19
Se puede ver en la Figura 2.11 la respuesta del sistema se estabiliza en comparacin en la
Figura 2.8, en la cual la salida aumentaba debido al efecto de los integradores puros.
2.2 Factor de acoplamiento

Como se mencion en el captulo anterior, en un sistema multivariable acoplado, las
variables de entrada-salida interactan entre s hasta cierto punto, lo que es conocido como
el grado de interaccin o factor de acoplamiento (vase [20,34]), el cual se puede calcular
para establecer la magnitud en que una entrada afecta a ms de una salida, existe un
procedimiento para determinar la respuesta relativa de cada variable controlada en un
proceso, a cada variable manipulada. En mtodo caracteriza la magnitud y tipo de
interaccin que debe esperarse y su efecto sobre el comportamiento del sistema. A
continuacin se presenta la metodologa propuesta en [20], para determinar el grado de
interaccin del sistema.

Se propone un caso sencillo de un sistema de tuberas en paralelo para el control de flujos
el cual por su dinmica natural se considera mutivariable acoplado, que se muestra en la
Figura 2.12:

Figura 2.12 Sistema multivariable de flujo de fluidos en tuberas en paralelo.
Primeramente, para el sistema mostrado en Figura 2.12, se analiza el problema de control
en lazo cerrado, vase Figura 2.13.

- - 20

Figura 2.13 Representacin esquemtica del sistema de tuberas en paralelo.
Como el sistema est acoplado, son necesarias cuatro funciones de transferencia debido a
que existen 2 interacciones, las cuales definen la dinmica del sistema:
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
22
2
2
12
2
1
21
1
2
11
1
1
s G
s M
s C
s G
s M
s C
s G
s M
s C
s G
s M
s C
p
p
p
p
=
=
=
=
Ec. 2.16
Reescribiendo las ecuaciones anteriores se tiene que:
) ( ) ( ) ( ) ( ) (
) ( ) ( ) ( ) ( ) (
2 22 1 21 2
2 12 1 11 1
s M s G s M s G s C
s M s G s M s G s C
p p
p p
+ =
+ =
Ec. 2.17
O en forma matricial
) ( ) ( ) ( s M s G s C
p
= Ec 2.18
En forma general, en la Figura 2.14, se muestra el esquema para un sistema multivariable
de nxn.

Figura 2.14 Esquema de un proceso (MIMO) nxn.

- - 21
Para un problema con n variables podran plantearse en principio n! interacciones.
Regresando al sistema de 2x2 de la Figura 2.5, la interaccin se muestra en la Figura 2.15.

Figura 2.15 Interaccin de un sistema de 2X2.
La cual muestra la interconexin de los lazos. Ahora, supongamos que el controlador 2 se
desconecta o se pone de modo que M2(s) = 0. Entonces:
) (
) (
) (
11
1
1
s G
s M
s C
p
= Ec. 2.19
Pero en general, se tiene:

22 2
21 12
11
1
1
1
) (
) (
) (
p c
c p p
p
G G
G G G
s G
s M
s C
+
= Ec. 2.20
El segundo trmino, es el trmino de interaccin entre los dos lazos. Obsrvese que ambos
lazos no pueden ser ajustados independientemente. Y pueden realizarse las mismas
consideraciones que antes. Un sistema algo ms complejo ya incrementa notoriamente el
nmero de variables a controlar y manipular.
2.2.1 Ganancia relativa
La ganancia relativa es una medida de la influencia que una variable manipulada
seleccionada tiene sobre una variable controlada en particular, con relacin a las otras
variables manipuladas que actan en el sistema. No basta con calcular su ganancia de lazo
abierto con todas las dems variables manipuladas fijas. Si existe interaccin en el sistema,
cada variable manipulada influir sobre ms de una de las variables controladas. Entonces

- - 22
la respuesta de una variable controlada en particular a una variable manipulada
seleccionada, depender de lo que estn haciendo las otras variables manipuladas.

En [20], se sugiri que en primer lugar debe evaluarse la ganancia de cada lazo abierto, con
todos los dems lazos abiertos, es decir, con todas las dems variables manipuladas
constantes y, a continuacin, volver a realizar la evaluacin con todos los dems lazos
cerrados, es decir, con todas las dems variables controladas constantes. Si una ganancia en
particular de lazo abierto no cambia entre estas dos condiciones, dicho lazo no influye
sobre otros lazos, o bien, stos no influyen sobre l y, por lo tanto, no interacta con ellos.
En este caso, su ganancia relativa sera la unidad. Por esta razn, la ganancia relativa de una
variable controlada i a una variable manipulada j se define como:
) cerrado lazo de Ganancia (
) abierto lazo de Ganancia (
c
j
i
m
j
i
ij
m
c
m
c
|
.
|

\
|
c
c
|
.
|

\
|
c
c
= Ec. 2.21
Si c
i
no responde a m
j
cuando todas las dems variables manipuladas son constantes,
ij
es
cero. Si existe alguna interaccin, el cambio de m
j
alterar las otras variables controladas
as como a c
i
. Entonces, si deben mantenerse constantes, las otras variables manipuladas
tendrn que cambiar durante la segunda evaluacin de la ganancia de lazo abierto. El
resultado ser una diferencia entre las dos ganancias de lazo abierto, lo que hace que
ij
no
sea ni 0 ni 1.
La matriz de ganancias relativas se construye como:
(
(
(
(

= A
nn n n
n
n
n
n
C
C
C
M M M


2 1
2 22 21
1 12 11
2
1
2 1
Ec. 2.22
Si se considera el caso ms simple de 2X2, las ganancias relativas se proponen enseguida.
2 22 1 21 2
2 12 1 11 1
M K M K C
M K M K C
+ =
+ =
Ec. 2.23
11
1
1
2
K
M
C
M
=
|
|
.
|

\
|
c
c
Ec. 2.24

- - 23
Para calcular
2
1
1
C
M
C
|
|
.
|

\
|
c
c
Ec. 2.25
Como C
2
=0,
1
22
21
2
M
K
K
M = Ec. 2.26
Entonces
1
22 11
21 12
11 1
1 M
K K
K K
K C
|
|
.
|

\
|
= Ec. 2.27
|
|
.
|

\
|
=
|
|
.
|

\
|
c
c
22 11
21 12
11
1
1
1
2
K K
K K
K
M
C
C
Ec. 2.28
Por lo tanto
22 11
21 12
11
1
1
K K
K K

= Ec. 2.29
11 22
11 21 12
1


=
= =
Ec. 2.30
Entonces la matriz de ganancias relativas para un sistema de 2x2 es:
(


= A


1
1
Ec. 2.31
Donde, se observa que si es prximo a 1 la interaccin entre C
1
y M
1
es muy fuerte,
mientras que el segundo lazo no ejerce gran influencia. Si es prximo a cero seria lo
contrario. Las mayores interacciones entre los lazos se dan cuando = 0.5.






- - 24
Captulo 3. Lgica difusa
Desde su aparicin en la dcada de los aos 60's hasta nuestros das, las aplicaciones de la
Lgica Difusa, se han ido consolidando, paulatinamente al comienzo, y con un desbordado
crecimiento en los ltimos cinco aos. Se encuentran en soluciones a problemas de control
industrial, en prediccin de series de tiempo, como metodologas de archivo y bsqueda de
bases de datos, en estrategias de mantenimiento predictivo y en otros campos ms.

Las principales razones para tal proliferacin de aplicaciones quizs sean la sencillez
conceptual de los sistemas basados en Lgica Difusa, su facilidad para adaptarse a casos
particulares con pocas variaciones de parmetros, su habilidad para combinar en forma
unificada expresiones lingsticas con datos numricos, y el no requerir de algoritmos muy
sofisticados para su implementacin.

La lgica difusa es una extensin de la lgica tradicional (Booleana) que utiliza conceptos
de pertenencia de conjuntos ms parecidos a la manera de pensar humana. El concepto de
un subconjunto difuso fue introducido por L.A. Zadeh en 1965 como una generalizacin de
un subconjunto exacto tradicional. Los subconjuntos exactos usan lgica Booleana con
valores exactos como por ejemplo la lgica binaria que usa valores de 1 0 para sus
operaciones.

Lotfi A. Zadeh public su trabaj acerca de los conjuntos difusos, el cual propone que los
valores falso o verdadero operen sobre el rango de nmeros reales. Las matemticas
generadas por estas teoras son consistentes y la lgica difusa puede ser una generalizacin
de la lgica clsica. La estadstica mide la probabilidad que un evento futuro ocurra, cuando
la lgica difusa mide la ambigedad de eventos que ya han ocurrido.
3.1 Conjuntos difusos
Una estrategia para presentar la teora de Conjuntos Difusos (vase [22, 35-38]), consiste
en recordar algunos aspectos de la teora de conjuntos convencionales, y a partir de ah
hacer una extensin a los conjuntos difusos:
Qu es un conjunto?

- - 25
Es una coleccin de elementos, por ejemplo:
Das _de_ la_ semana = {lunes, martes, mircoles, jueves, viernes, sbado, domingo}.
Nmeros _naturales = {0, 1, 2, 3, 4, 5, 6 ,7 8, 9}.
En la teora clsica de conjuntos, un elemento puede o no pertenecer a un conjunto.
semana la de Das viernes _ _ _ e
semana la de Das _ _ _ 5e
naturales Nmeros _ 1e
naturales Nmeros Sbado _ e
Lo anterior define un conjunto rgido o duro. Esta clase de conjuntos tienen el problema de
que no pueden lidiar con informacin parcial, y por lo tanto, la lgica basada en ellos puede
fallar estrepitosamente al enfrentarse a ciertos problemas de la vida real y, peor an, en
muchas ocasiones ciertas circunstancias de la vida real no pueden representarse con esta
clase de conjuntos.

Por ejemplo, consideremos el siguiente conjunto descrito en forma no enumerativa:
Familias ricas = {ingreso > $1Milln anual}. Cmo se clasifica a una familia cuyo
ingreso es $0.999999 de Milln anual? Diferir su estilo de vida de la que gana apenas
$1.00 ms?
En el contexto de la teora clsica de conjuntos la familia cuyo ingreso es de $0.999999 de
Milln anual no sera rica, sin embargo, este resultado formalmente correcto es
intuitivamente contradictorio.

Estas reflexiones originaron en L. Zadeh una rebelda en contra de las teoras imperantes en
su poca para modelar el mundo real, hacindole proponer que una nueva matemtica deba
surgir. Esto dio lugar a la nocin de conjuntos difusos y las teoras y metodologas de
aplicacin asociadas a ellos. Se puede desendurecer un conjunto si se considera la vaguedad
difusa que implica la declaracin del mismo. Por ejemplo:
C1 = {parejas casadas}
Una persona puede ser o no casada, por lo tanto este es un conjunto duro. En lo sucesivo,
llamado solamente conjunto. Ahora, considrese el siguiente conjunto:
C1f = {parejas felizmente casadas}

- - 26
El calificador felizmente, introduce un elemento subjetivo, por lo tanto los lmites o
fronteras del conjunto no estn plenamente definidas, se vuelve entonces, un conjunto
difuso. Veamos ahora otro par de conjuntos:
C2 = {todos los gatos}
C2f = {todos los gatos bonitos}
Ahora la palabra bonitos es la que introduce el grado de aspecto indefinido en el conjunto
C2f. Cuando se trata de saber si un gato es bonito o si una pareja est felizmente casada, los
conceptos que validan la pertenencia o no a los respectivos conjuntos han de evaluarse en
trminos no duros, es decir, no se puede decir solamente que un gato sea totalmente bonito,
ya que tambin puede ser regularmente bonito o medio bonito.

Para el caso de una pareja cualquiera, pertenecer tambin en un grado variable al conjunto
de las parejas felizmente casadas; inclusive esta nocin depender de si se le pregunta al
marido o a la esposa posibles respuestas involucran:
Soy casi felizmente casado(a)
Soy muy felizmente casado(a)
Se pueden representar numricamente estas respuestas?, cmo se describen conjuntos de
esta naturaleza? Un conjunto difuso se representa por medio de un conjunto de pares que
indican el grado de pertenencia de un elemento a dicho conjunto y el elemento mismo. En
general un conjunto difuso se representa de la siguiente manera:

Ec. 3.1
En donde

Es el grado de membreca del i-simo elemento x
i
al conjunto Cf. El par
Cf
(x
i
)/x
i

Se conoce como singleton. / es un marcador, no el smbolo de divisin.
En forma breve, el conjunto de pares ordenados de la Ec. 3.1, se representa como:
Ec. 3.2
} / ) (
/ ) ( / ) ( / ) ( / ) ( { Cf
1 1 Cf
3 3 Cf 2 2 Cf 1 1 Cf 0 0 Cf

=
N N
x x
x x x x x x x x


) (
Cf i
x
=
eX x
i i A
i
x x / ) ( A

- - 27
La expresin Cf es la especificacin del conjunto difuso en forma enumerativa o
extensional y se puede graficar en un par de ejes coordenados (x
i
,m
Cf
(x
i
)) en forma
discreta.

Figura 3.1 Especificacin del conjunto difuso en forma enumerativa en forma discreta.

Otra forma de representar un conjunto difuso es la intencional, en la cual se describe el
conjunto en funcin de las propiedades comunes a los elementos que lo componen.
Ejemplo:
C1f = {parejas felizmente casadas}
Cuando un conjunto difuso se describe en la forma intencional, dicha representacin
conlleva en la mayora de los casos un continuo en los valores de los elementos x
i
del
conjunto difuso, por lo que se habla de una funcin de membreca o pertenencia continua:

Ec. 3.3
En este caso, es importante que la funcin pueda ser derivable para que sea
matemticamente tratable una o hasta dos veces, lo que implica la existencia de:

Ec. 3.4

}
=
X
A
x x / ) ( A

2 1
(

c
c
c
c
c
c
= A
p
A
p
A
p
A
dp
d
N


- - 28
Que adems es fundamental para la aplicacin de los mtodos de optimizacin implcitos
en las versiones de sistemas difusos que cuentan con aprendizaje. As, la forma intencional
se representa grficamente como:

Figura 3.2 Representacin en forma intencional de un conjunto difuso.
Qu sentido puede tener el pertenecer parcialmente a un conjunto? En muchos casos
puede tener ms sentido que pertenecer totalmente a un conjunto; veamos algunos
ejemplos:

Ejemplo 1: Supngase que se desea definir el conjunto de los estudiantes de la carrera de
Ingeniera Elctrica del Tecnolgico de Aguascalientes que estn cursando el quinto
semestre de la carrera. Cmo clasificar a un estudiante que cursa dos materias de cuarto
semestre, tres de quinto y una de sexto? y a otro que toma una materia de quinto semestre,
y cinco de sexto? Evidentemente ambos son en parte miembros del conjunto Estudiantes de
quinto semestre, pero slo lo son parcialmente.

Ejemplo 2: Supngase que se desea clasificar a los miembros de un equipo de ftbol segn
su estatura en tres conjuntos, Bajos, Medianos y Altos. Podra plantearse que se es Bajo si
se tiene una estatura inferior a, por ejemplo, 160 cm, que se es Mediano si la estatura es
superior o igual a 160 cm e inferior a 180 cm, y se es alto si la estatura es superior o igual a
180 cm, con lo que se lograra una clasificacin en conjuntos concretos.

- - 29
Sin embargo, qu tan grande es la diferencia que existe entre dos jugadores del equipo,
uno con estatura de 179.9 cm y otro de 180.0 cm? Ese milmetro de diferencia quizs no
represente en la prctica algo significativo, y sin embargo los dos jugadores han quedado
rotulados con etiquetas distintas: uno es Mediano y el otro es Alto. Si se optase por efectuar
la misma clasificacin con conjuntos difusos estos cambios abruptos se evitaran, debidos a
que las fronteras entre los conjuntos permitiran cambios graduales en la clasificacin.
Como se muestra en la siguiente Figura.

Figura 3.3 Funciones de pertenencia del ejemplo 2.
La Figura 3.3 muestra cmo podra hacerse tal clasificacin: El universo de discurso sera
el conjunto continuo de todas las posibles estaturas (el intervalo [130cm, 210cm] por
ejemplo). Las funciones de pertenencia de cada uno de los tres conjuntos Bajo, Mediano y
Alto se han graficado. La forma de estas funciones de pertenencia no debe ser
necesariamente la de la Figura 3.3, pues depende de lo que se entienda por "Bajo",
"Mediano" y "Alto". Las Figuras 3.4 y 3.5 muestran otras alternativas para definir dichas
funciones.

Figura 3.4 Representacin alternativa del ejemplo 2.

- - 30

Figura 3.5 Representacin alternativa del ejemplo 2.
3.1.1 Propiedades de los conjuntos difusos
Al igual que los conjuntos convencionales, los conjuntos difusos poseen una serie de
propiedades, [22]:
1. Cardinalidad (Card(A)).
2. Altura (Heigth(A)). Normal y Subnormal.
3. Soporte. Spt(A) = {x en U | m
A
(x) > 0}
4. Corte de nivel alfa (a-cut).
A
a0
= {x en U | m
A
(x) >= a
0
}
5. Resolucin identidad.
6. Convexidad.

A continuacin se definen cada una de las propiedades.
1. Cardinalidad:
Ec. 3.5
til para contestar preguntas como cuntas grandes universidades hay en Mxico?, lo cual
encuentra aplicaciones importantes en bases de datos difusas y sistemas de informacin.
2. Altura:
Ec. 3.6
La mayor membreca presente en el conjunto difuso. Un conjunto se llama normal si su
altura es 1, y subnormal si su altura es menor que uno. Un conjunto subnormal es el de: el
conjunto de las personas perfectas.

) ( ) (
i
x
A
x A Card
i
=
) ( max ) (
i A
x
x A Height
i
=

- - 31
3. Soporte:
{ } 0 ) ( _ _ ) ( > = x m U en x A Spt
A
Ec. 3.7
El soporte de A, Es el conjunto de elementos cuyo grado de membreca en A es mayor que
cero. El soporte de un conjunto difuso es un conjunto clsico (o duro, es o no es parte del
soporte).
4. Corte-alfa a-cut:
{ }
0 0
) ( _ _ a x m U en x A
A a
> =
Ec. 3.8
Tambin llamado nivel alfa; a se define en el rango {0,1}.

5. Resolucin identidad:
Se basa en el concepto de corte-alfa; un conjunto difuso puede descomponerse en mltiples
conjunto duros usando diferentes valores de a. Intuitivamente, cada corte-alfa especifica
una porcin de las funciones de membreca; por lo tanto, es razonable suponer que la
funcin de membreca puede reconstruirse apilando las porciones una sobre otra. Esta
propiedad establece que:
an n a a
xA a xA a xA a A + + + =
1 1 0 0
Ec. 3.9
En donde a
i
xA
ai
representa un conjunto difuso como el siguiente:

Ec. 3.10

La funcin de membreca original puede verse como la unin de todos los conjuntos
construidos a partir de una lista ordenada de cortes-alfa. El operado max (ver ms adelante,
operaciones entre conjuntos difusos) se aplica a los varios cortes-alfa para reconstruir A.
6. Convexidad:
Un conjunto difuso es convexo si su funcin de membreca no tiene un valle. Formalmente:
Sea U un universo de discurso de la variable x. Sea A un subconjunto de U. El conjunto A
es convexo si y slo si:

Ec. 3.11

>
=
caso otro cualquier En 0
) ( si
i A i
x
xA
i i
o o

o o
1 0 y , todo para
)} ( ), ( min{ ) ) 1 ( (
s s e
> +


U b a
b a b a
A A A

- - 32
Establece que el valor de membreca de cualquier elemento en el intervalo [A, B] debe ser
mayor que el valor de membreca de cualquiera de sus extremos. Como ocurre con los
conjuntos tradicionales, los conjuntos difusos soportan una serie de operaciones entre ellos.
3.1.2 Operaciones entre conjuntos difusos
Las tres operaciones bsicas entre conjuntos concretos, Unin, Interseccin y
Complemento, se definen tambin para los conjuntos difusos, intentando mantener el
significado de tales operaciones. La definicin de estas operaciones se hace empleando el
concepto de funcin de pertenencia de los conjuntos.
Interseccin: el resultado de efectuar la operacin de Interseccin entre dos conjuntos
difusos A y B definidos sobre el mismo Universo, y con funciones de pertenencia u
A
(x) y
u
B
(x) respectivamente es un nuevo conjunto difuso AB definido sobre el mismo universo,
y con funcin de pertenencia u
AB
(x), dada por:
) ( ) ( ) ( x u x u x u
B A B A
- =

Ec. 3.12
En donde el operador (*) debe satisfacer las siguientes propiedades:
x x
w y z x entonces w z y y x si
z y x z y x
x y y x
=
< < <
=
=
1 (*)
(*) (*) _ _ _ _ _
) (*) (*)( )(*) (*)
(*) (*)

Todo operador que satisfaga las propiedades anteriores se conoce como una T-Norma, y
representa la Interseccin de dos conjuntos difusos. Dos de los operadores ms sencillos
son el mnimo y el producto clsico (se denotarn por min y * respectivamente). Las figuras
3.6 y 3.7 muestran la interseccin de los conjuntos Bajo y Mediano de la Figura 3.3, cuando
se emplean los operadores mnimo y producto.

Figura 3.6 Operacin interseccin de los conjuntos BAJO y MEDIANO de la Figura 3.3 empleando el
mnimo.

- - 33

Figura 3.7 Operacin interseccin de los conjuntos BAJO y MEDIANO de la Figura 3.3 empleando el
producto.
Unin: el resultado de efectuar la operacin de Unin entre dos conjuntos difusos A y B
definidos sobre el mismo Universo, y con funciones de pertenencia u
A
(x) y u
B
(x)
respectivamente es un nuevo conjunto difuso AUB definido sobre el mismo universo, y con
funcin de pertenencia u
AUB
(x), dada por:
) ( ) ( ) ( x u x u x u
B A B A
+ =

Ec. 3.13
En donde el operador (+) debe satisfacer las siguientes propiedades:
x x
w y z x entonces w z y y x si
z y x z y x
x y y x
= +
+ < + < <
+ + = + +
+ = +
0 ) (
) ( ) ( _ _ _ _ _
) ) ( )( ( ) )( ) ( (
) ( ) (

Todo operador que satisfaga las propiedades anteriores se conoce como una S-Norma, y
representa la Unin de dos conjuntos difusos. Uno de los operadores ms sencillo es el
mximo (en adelante se denotar por max). La Figura 3.8 muestra la unin de los conjuntos
Bajo y Mediano de la Figura 3.3, cuando se emplea el operador mximo.

Figura 3.8 Operacin unin de los conjuntos BAJO y MEDIANO de la Figura 3.3 empleando el
mximo.

- - 34
Complemento: el resultado de efectuar la operacin de Complemento sobre un conjunto
difuso A definido sobre un Universo, y con funcin de pertenencia u
A
(x) es un nuevo
conjunto difuso A' definido sobre el mismo universo, y con funcin de pertenencia u
A
'(x),
dada por:
) ( 1 ) ( x u x sA
A
=
Ec. 3.14
La Figura 3.9 muestra el complemento del conjunto Bajo de la figura 3.3.


Figura 3.9 Operacin complemento del conjunto BAJO de la Figura 3.3.
Otras operaciones como las relaciones entre conjuntos difusos, la composicin de
relaciones y el principio de extensin no se incluyen en este captulo.
3.2 Principios de la lgica difusa
Es bien conocido que la teora de conjuntos, el lgebra booleana y la lgica tradicional son
isomorfas, bajo transformaciones adecuadas. Esto significa que tienen una estructura
subyacente similar, y que por tanto las definiciones que se hagan en una cualquiera de las
tres teoras se puede llevar a las otras dos, mediante transformaciones adecuadas. La Tabla
3.1 muestra la correspondencia de algunos operadores.
Tabla 3.1 Correspondencia entre operadores de la Teora de Conjuntos, el lgebra Booleana y la
Lgica Tradicional.
Teora de conjuntos lgebra booleana Lgica tradicional
Interseccin Conjuncin AND
Unin Disyuncin OR
Complemento Negacin NOT


- - 35
Ahora bien, el razonamiento lgico consiste en la combinacin de proposiciones para
producir nuevas proposiciones; as, la combinacin de las proposiciones "X es A" y "Y es
B" mediante el operador AND da como resultado la proposicin "X es A AND Y es B". La
tabla 3.1 sugiere que puede representarse esta combinacin mediante un operador anlogo a
la Interseccin de Conjuntos.

Lo anterior es posible porque en la lgica tradicional toda proposicin puede tener uno de
dos valores: verdadero o falso, lo que corresponde en la teora de conjuntos duros a los
nicos dos valores que puede tomar la funcin de pertenencia para cualquier conjunto: 1
0.
Ahora bien, en lgica difusa una proposicin puede representarse por un conjunto difuso:
"X es A" corresponde a un conjunto A con funcin de pertenencia u
A
(x), mientras que "Y es
B" corresponde a un conjunto B con funcin de pertenencia u
B
(y), y la combinacin de estas
dos proposiciones con el operador AND, es decir la proposicin "X es A AND Y es B"
corresponde a un nuevo conjunto difuso A
and
B con funcin de pertenencia
)) ( ), ( min( ) , ( y u x u y x u
B A AandB
=
Ec. 3.15
En donde se ha utilizado el operador min para efectuar la interseccin de los dos conjuntos,
pero en general podra haberse utilizado cualquier T-Norma. Ntese que los universos de
discurso sobre los cuales estn definidos los conjuntos A y B no son necesariamente el
mismo, son, por ejemplo U y V respectivamente, mientras que el conjunto A
and
B est
definido sobre el universo U y V, ver Figura 3.10.

Figura 3.10 Operacin AND.

- - 36
En forma anloga, al operador lgico OR puede hacerse corresponder a una S-Norma,
mientras que al operador lgico NOT puede hacerse corresponder al complemento.
3.2.1 Reglas de implicacin
Las reglas de implicacin se utilizan para obtener conclusiones en base al conocimiento
expresado como reglas y hechos; cuentan con la parte antecedente y consecuente. En
general, se expresan de la siguiente manera:

Regla: Si una persona tiene IQ alto, entonces la persona es listo.
Hecho: Jack tiene IQ alto
Inferencia: Jack es listo.

Modus-Ponens: Inferencia en sentido directo. Se tiene informacin del antecedente y se
infiere sobre el consecuente. Caso de arriba.

Modus-Tollens: Inferencia en sentido inverso. Se tiene informacin del consecuente y se
infiere sobre el antecedente. Ej.: Jack no es listo es un hecho relacionado con el
consecuente, y se infiere en base a la regla y el antecedente es El IQ de Jack no es alto.

En la lgica clsica, dada una regla, el hecho debe coincidir totalmente con la parte
antecedente o consecuente de la regla. En este caso, si el IQ de Jack es medianamente alto
no se puede inferir si Jack es listo o no. La implicacin difusa permite que una regla se
cumpla parcialmente, membreca parcial. Tampoco puede la lgica clsica resolver cuando
existe incertidumbre en el hecho (qu tan seguro es el hecho). Zadeh realiz una extensin
a la lgica clsica para manejar el razonamiento de sentido comn bajo cumplimiento
parcial de la regla, razonar acerca del grado de certidumbre de una declaracin.
Dado:
El IQ de Jack es alto Jack es inteligente
El IQ de Jack es un poco alto Jack es un poco inteligente.

- - 37
3.3 Reglas de mapeo funcional
El primer concepto alrededor del mapeo funcional que se ver es el de particin. La Figura
3.11 es una particin cartesiana; donde el espacio que relaciona dos variables se parte con
fronteras duras.

Figura 3.11 Esquema para el mapeo funcional de las reglas, particin cartesiana.
En contraparte, una particin difusa mostrada en Figura 3.12, genera fronteras que crecen y
caen suavemente en funcin de los conjuntos difusos que componen las variables que se
relacionan con la regla.

Figura 3.12 Esquema para el mapeo funcional de la reglas, particin difusa.

- - 38
Aqu se relacionan las variables distancia entre TV y observador (d) y brillo de la
habitacin (b). La distancia a la TV tiene 3 conjuntos difusos: Cerca, medio, lejos. Y el
brillo de la habitacin tiene 2 conjuntos difusos: Brillante, Obscuro. Se generan 6
subregiones difusas. Cada subregin difusa se describe por una declaracin (que
posteriormente sera una regla).

d es MEDIO Y b es OBSCURO
d es LEJOS Y b es OBSCURO

En general, se da una aproximacin combinacional.
Una particin difusa de un espacio es una coleccin de subregiones difusas cuyos lmites se
traslapan. Una particin difusa de un espacio S es una coleccin de subregiones A
i
que
satisface la condicin:
Ec. 3.16
Para cada elemento del espacio, su grado de membreca a todas las subregiones siempre
suma 1. La expresin anterior es equivalente a:

Ec. 3.17
Una condicin relajada de la particin difusa reemplaza la suma a 1 por la condicin de que
la suma en todas las subregiones sea mayor que cero pero menor que uno, y se llama una
particin difusa dbil. Lo anterior se expresa matemticamente como:
Ec. 3.18

3.3.1 Mapeando una subregin difusa a un modelo local.

Un modelo local para una subregin del espacio de entrada describe una relacin de mapeo
de entrada-salida en la pequea subregin. Un modelo global describe una relacin de
entrada-salida para todo el espacio. Es ms fcil ajustar los modelos locales que el global.
Por lo tanto, se aconsejan dos pasos para expresar la relacin entrada-salida o mapeo:

e =
i
A
S x x
i
1 ) (
S A
i
i
=
e s <
i
A
S x x
i
1 ) ( 0

- - 39
1.- Particionar
2.- Mapear localmente.

Generalmente, el mapeo de una subregin difusa a un modelo local es a travs de una regla
difusa SI-ENTONCES de la forma:
) (x LM y ENTONCES FS x SI
i i i i i
= e Ec. 3.19
En donde:
x
i
, y
j
, son los vectores de variables de entrada y salida respectivamente,
FS
i
, LM
i
son la subregin y el modelo local respectivo.

Las reglas que asocian la misma subregin difusa a dos modelos locales diferentes no son
vlidas son contradictorias. Ejemplo:

SI x es pequeo ENTONCES y es largo.
SI x es pequeo ENTONCES y es pequeo.

El modelo local asociado a una subregin difusa puede ser una de cuatro formas:
1.- Constante dura. SI x es pequeo ENTONCES y = 4.5
2.- Constante difusa: SI x es pequeo ENTONCES y es mediana
3.- Modelo Lineal: SI x
1
es pequeo Y x
2
es largo ENTONCES y=2x
1
+5x
2
+3
4.- Modelo No Lineal: Tericamente se puede realizar, pero en la prctica raramente es
necesario.
3.4 Defuzificacin
Una distribucin de posibilidad puede interpretarse mediante una aproximacin lingstica,
o mediante la desfuzificacin. La primera da una interpretacin cualitativa, mientras que la
segunda es un resumen cuantitativo y es ms usada en aplicaciones de control.


- - 40
3.4.1 Mtodos de desfuzificacin
La desfuzificacin aplica a una distribucin de posibilidad y sirve, entonces, para obtener
una interpretacin cuantitativa de dicha distribucin. No existe una manera nica de pasar
de desfuzificar una distribucin de posibilidad, sino varias. Se enlistan a continuacin.

MOM (Mean of maximum). Calcula el valor promedio de aquellos valores de salida que
tienen los mximos grados de posibilidad. Ejemplo: Supngase que y es A es una
conclusin difusa que desea desfuzificarse; para eso, puede usarse la frmula:

Ec. 3.20

En donde P es el conjunto de valores de y que tiene el mayor grado de posibilidad en A, es
decir:

Ec.3.21

Una desventaja de este mtodo es que no toma en cuenta la forma global de la distribucin
de posibilidad. Dos P con diferente forma pero iguales valores pico pueden desfuzificarse a
la misma cantidad, lo cual es anti-intuitivo. La Figura 3.13 muestra el mtodo MOM
(Medium of maximum), junto con sus derivados SOM (Smallest of maximum) y LOM
(Largest of maximum).

Figura 3.13 Mtodos de defuzificacin LOM, MOM y SOM.
P
y
A MOM
P y

=
e *
*
) (

= =
y
A A
y y y P ) ( sup *) ( *

- - 41
COA (Center of Area). Conocido tambin como Centro de gravedad o Centroide.
Considera la forma de la P a desfuzificar. Se calcula de forma similar al centro de
gravedad en la fsica. Si P es discreta, la siguiente frmula aplica:

Ec. 3.22


Figura 3.14 Defuzificacin por el mtodo centroide.

La principal desventaja de este mtodo es su alto costo computacional, aunque es la que
ms se usa en la prctica.

Bisector. Parte la P en dos regiones de igual rea. En ocasiones puede coincidir con el
mtodo del centroide. Ejemplo:

Figura 3.15 Defuzificacin por el mtodo bisector.


=
x
A
x
A
x
x x
A COA
) (
) (
) (


- - 42
Mtodo de altura (Height). Se realiza en dos pasos:

1.- Se calcula el centro de gravedad (c
i
) de la P del consecuente (C
i
) y,
2.- Se asigna como un valor duro a la salida y (y=c
i
).

Entonces se aplica desfuzificacin por centroide a las reglas con consecuentes duros, con la
ecuacin:

Ec. 3.23

En donde w
i
es el grado en que la i-sima regla es disparada con el dato de entrada. Los
valores de c
i
pueden calcularse durante la fase de diseo, por lo que en tiempo de ejecucin
slo se requiere el clculo de productos acumulados y divisiones, que es mucho ms rpido
que el mtodo del centroide.
3.5 Modelo difuso basado en reglas para aproximacin de funciones
3.5.1 El modelo de Mamdani
Este modelo utiliza reglas para hacer el mapeo U
1
xU
2
xxU
r
W, de mediante reglas:

R
i
: SI x
1
es A
i1
y x
2
es A
i2
y y x
r
es A
ir
ENTONCES y es C
i


En donde x
j
, j = 1,2,,r son las variables de entrada
y es la variable de salida
A
ij
y C
i
son los conjuntos difusos de las entradas y la salida



Dadas las entradas de la forma
x
1
es A
1
, x
2
es A
2
x
r
es A
r

donde A
1
, A
2
, A
r
, son subconjuntos difusos de U
1
, U
2
, U
r
(lo cual implica que son
nmeros difusos), la contribucin de la i-sima regla R
i
a la salida y del modelo de
=
= =
M
i
i
M
i
i i
w c w y
1 1

- - 43
mamdani es un conjutno difuso cuya funcin de membreca es calculada mediante, la
siguiente ecuacin:
Ec. 3.24
En donde a
i
es el grado de cumplimiento (o fuerza de disparo) de la regla R
i
, y a
ij
es el
grado de cumplimiento entre x
j
y R
i
respecto a la condicin x
j
.
Ec. 3.25
La salida del modelo es la agregacin de las salidas de todas las reglas utilizando el
operador max:
Ec. 3.26
Esta salida, que es un conjunto difuso debe an ser desfuzificada para encontrar el valor
numrico inferido por el sistema. En la Figura 3.16 se muestra el proceso de un sistema
difuso

Figura 3.16 Sistema difuso tipo Mamdani.
En una primera etapa, las variables duras son fuzificadas, esto es, se determina el valor de
membreca (grado de cumplimiento) de la entrada en cada uno de los subespacios difusos.
La fuerza de disparo de la regla depende de estos valores (operacin min). En base a las
reglas de inferencia, se crea un conjunto difuso en cada regla. Las reglas de inferencia
deben agregarse para formar un nico conjunto de salida, mostrada en la Figura 3.17

Figura 3.17 Variables de salida y defuzificacin.
El objetivo es obtener un nmero duro mediante desfuzificacin.
min" " operador el como con )), ( ) ( ( sup
'
. . =
j A j A
x
ij
x x
ij j
j
o
{ } ) ( , ), ( ), ( max ) (
' ' '
2 1
y y y y
L
C C C C
=
) ( ) ( ) (
2 1 '
y y
i i
C in i i C
o o o . . . . =

- - 44
Captulo 4. Resultados sobre desacoplamiento y
cambio en el factor de acoplamiento difuso del
sistema de tuberas en paralelo.
En este captulo se presentan los resultados obtenidos sobre el desacoplamiento difuso del
sistema de tuberas en paralelo para un sistema de riego agrcola basado en el error entre la
informacin del gasto deseado y el real. As mismo, se extiende el resultado del
desacoplamiento a la modificacin del factor de acoplamiento en el mismo sistema de
tuberas.
4.1 Inters y utilizacin de la lgica difusa para el control
4.1.1 Inters
El ser humano resuelve a menudo problemas complejos con la ayuda de datos
aproximados: la precisin de los datos es a menudo intil; por ejemplo para escoger un
apartamento se podr tener en cuenta la superficie, la proximidad de los comercios, la
distancia del lugar de trabajo, el alquiler, sin tener necesidad de un valor muy preciso de
cada uno de estos datos. Los conocimientos que el ser humano tiene de una situacin
cualquiera es generalmente imperfecta, ello puede ser incierto (duda de su validez), o
impreciso (l tiene dificultad para expresarse claramente).

En la industria donde los tcnicos y los operadores resuelven a menudo los problemas
complejos de manera relativamente simple y sin tener necesidad de retocar el sistema. De la
misma manera se sabe que un modelo matemtico no es necesario para conducir un
vehculo a pesar de ser un sistema muy complejo, por todas las variables que interactuan.

Cuando la complejidad de un sistema aumenta, hacer afirmaciones precisas sobre su
comportamiento resulta difcil. Antes de conformar el sistema, es a menudo interesante
amoldar el comportamiento de un operador humano cara al sistema, antes de los valores
numricos precisos, el funcionamiento debe estar descrito por unos calificativos globales
traduciendo el estado aproximado de las variables.

- - 45
4.1.2 Utilizacin para el control
La lgica difusa es bien conocida en la automatizacin para aplicaciones en el control de
procesos, conocida como control difuso. El controlador difuso se inserta al sistema y
calcula la ley de control a aplicar al proceso en base a un conjunto de reglas difusas, que
permiten lo siguiente:
o tener en cuenta un conocimiento lingstico existente de naturaleza cualitativa,
o tener en cuenta las variables que difcilmente se integran en el sistema,
o mejorar el funcionamiento de controladores clsicos, para: control fuera de lnea o
en lnea de las ganancias de estos controladores, modificacin de su salida en
funcin de sucesos que no pueden ser tenidos en cuenta por una tcnica clsica.
4.1.3 La capitalizacin del saber hacer
Para considerar la utilizacin de las reglas difusas, se hace necesario que exista un
conocimiento lingstico, un saber hacer humano. Las bases de las reglas difusas no
aportan solucin cuando nadie sabe cmo funciona el sistema o no puede controlarlo
manualmente. Cuando este saber-hacer existe y es transcriptible bajo forma de reglas
difusas, se permite emplear la lgica difusa y el funcionamiento es fcilmente
comprensible para el usuario. Entonces en la coleccin del conocimiento lingstico experto
sobre el sistema, el olvido inconsciente de informaciones, la dificultad de explicar, el temor
de divulgar su saber son obstculos, a menudo, encontrados. Esta etapa debe, entonces,
estar preparada y manejada con cuidado, particularmente en el terreno humano.

En el caso donde un conocimiento lingstico humano existe, la utilizacin de las reglas
difusas est considerada, con mayor razn cuando las imperfecciones afecten el
conocimiento del sistema, cuando es muy complejo y su ajuste es difcil o cuando el modo
de abordar pasa por una visin global de ciertos aspectos. Las reglas difusas no sustituyen a
los mtodos clsicos de la automatizacin pero los complementan.

Para aplicar la teora de control difuso, ver [22], al problema de desacoplamiento es
necesario que exista conocimiento experto sobre el funcionamiento del sistema. En general
si no existe este conocimiento la lgica difusa no puede aportar una solucin. Cuando el

- - 46
conocimiento experto existe y es transcriptible en reglas difusas, se permite emplear la
lgica difusa prescindiendo de un modelo matemtico del sistema. Cabe mencionar que el
problema de desacoplamiento, como se mostr en el captulo 1, en todos los casos est
basado en un modelo matemtico y la metodologa que se utiliza para la solucin al
problema de desacoplamiento resulta compleja y en el caso no regular no se ha encontrado
una solucin general. Por lo tanto, aplicar la lgica difusa al problema de desacoplamiento
es considerada como una alternativa viable. En este trabajo se considera como caso de
estudio un sistema de riego en paralelo el cual se describe en la siguiente seccin.
4.2 Caso de estudio
El sistema de riego en paralelo a considerar, es un sistema MIMO cuadrado, consta de una
tubera principal de la cual se desprenden 3 tuberas secundarias en forma paralela a la
tubera principal, y cada una de estas tuberas secundarias constan de una vlvula
proporcional de comportamiento lineal, la cual regula el flujo de agua, ver Figura 4.1.

Figura 4.1 Esquema del sistema de riego de tuberas en paralelo.
El sistema de la Figura 4.1 se aproxima a los sistemas de riego por aspersin y distribucin
ampliamente utilizados a nivel agrcola. En este tipo de sistemas de riego la distribucin de
agua cumple con el principio bsico de continuidad, ver [25], que se representa en la Ec.
4.1.
=
=
n
i
i T
Q Q
1
Ec. 4.1


- - 47
Donde:
Q
T
=Caudal total
Q
i
=Caudal a travs de la i-sima rama paralela
i= 1,2, , n, nmero de ramas en paralelo.

As mismo, las prdidas de carga total son igual a la prdida de carga en cada una de las
tuberas del sistema, lo cual se representa en la Ec. 4.2, ver [25].
n ..., 2, 1, i para = A + A = A = A
mi fi i T
h h h h
Ec. 4.2
Donde:
i= Es la i-sima rama paralela
h
ji
= Prdidas por friccin en el tramo j de la rama i
h
mi
= Prdidas menores en el accesorio m de la rama i

Para entender mejor el sistema de referencia y poderlo simular en MATLAB se estableci
una analoga de este sistema a travs de un circuito elctrico, donde la corriente del circuito
se comporta como el flujo de la tubera, y las vlvulas proporcionales lineales, son
potencimetros lineales. Entonces el circuito que representa el sistema hidrulico se
muestra en Figura 4.2.

Figura 4.2 Circuito elctrico anlogo al sistema de referencia.

- - 48
El comportamiento del sistema real se representa por el circuito elctrico mostrado en la
Figura 4.2, pues la divisin de corrientes en circuitos elctricos se comporta de forma
similar a la ecuacin de continuidad, Ec. 4.1 y la divisin de voltajes a las prdidas de
carga, Ec. 4.2. Para establecer la analoga del sistema de tuberas y el circuito elctrico se
considera que las ecuaciones de equilibrio que gobiernan el comportamiento de los sistemas
elctricos son las leyes de Kirchhoff de voltaje y corriente las cuales establecen lo siguiente:
Ley de Voltaje de Kirchhoff: La suma algebraica de las cadas de tensin a lo largo de una
trayectoria cerrada es cero.
= 0 V Ec. 4.3
Ley de corrientes de Kirchhoff: La suma algebraica de las corrientes en un nodo es igual a
cero, en otras palabras, la suma de las corrientes que entran a un nodo debe ser igual a la
suma de las corrientes que salen del mismo nodo.
=
sale entra
I I Ec. 4.4
Ambas leyes pueden ser comparadas con las prdidas de carga, Ec. 4.3 y la ecuacin de
continuidad, Ec. 4.4 en el sistema de tuberas en paralelo, respectivamente.

La regla divisora de voltaje determina como se dividir la corriente que entra entre los
elementos en grupo de ramificaciones en paralelo. Para dos elementos en paralelo de igual
valor, la corriente se dividir equitativamente, en el sistema de tuberas en paralelo significa
que si dos vlvulas de las tuberas se abren de igual forma el flujo ser el mismo en ambas.

Para los elementos en paralelo con valores distintos, entre ms pequea sea la resistencia,
mayor ser la corriente de entrada, para el sistema de tuberas, si una vlvula ofrece muy
poca resistencia fludica entonces el flujo ser mayor. En la Ec. 4.5 se representa el valor de
la corriente para un elemento en paralelo del circuito elctrico
I
R
R
I
i
T
i
=
Ec. 4.5


- - 49
Donde:
I
i
=Corriente en la i-sima rama paralela
R
T
=Resistencia total en paralelo del circuito
I=Corriente total
R
i
=Resistencia en la i-sima rama paralela

Ambos sistemas se caracterizan por comportarse de manera anloga, pues por ser sistemas
de energa hidrulica y elctrica respectivamente, cumplen con el principio de conservacin
de la energa, la cual es una ley fundamental de la fsica.

En este trabajo se considera que en el sistema de tuberas la bomba es la fuente de potencial
fludico ya que impulsa al fluido a travs de la tubera, y en el circuito elctrico esta energa
la proporciona la fuente de voltaje. Una vez que en el sistema de tuberas est fluyendo
agua se establece un gasto deseado para cada rama paralela que depende directamente de la
presin del fluido, la cual es igual para cada rama paralela y de la apertura de la vlvula,
sta ltima gobernante del paso del lquido. En el circuito elctrico esta energa de presin
se representa como el voltaje presente en la rama paralela y el potencimetro es el
gobernante del paso de la corriente. Por lo tanto, se considera que la bomba proporciona un
caudal constante, es decir el voltaje del circuito es constante tambin, si se desea disminuir
el gasto en alguna de las ramas, es obvio que se tendr que cerrar la vlvula
correspondiente para lograr el objetivo, pero por el principio de continuidad (ver Ec 4.1), el
fluido que deja de circular por la rama que tuvo una disminucin, tendr que ser absorbido
por las dems ramas de cierta forma, afectando el gasto en stas ltimas, lo que es visto
como acoplamiento.

Si el objetivo de control es el desacoplamiento, es necesario determinar de qu manera se
puede conseguir una dinmica del funcionamiento tanto de la bomba como de las vlvulas,
de tal manera que se modifiquen los gastos en las ramas paralelas sin afectarse entre s. La
propuesta de desacoplamiento mediante la lgica difusa, basa su metodologa a partir de un
conocimiento experto sobre cmo manipular el sistema de tuberas y conseguir el objetivo
de control. Intuitivamente, se determin que regulando adecuadamente tanto la presin

- - 50
como a las vlvulas, se puede hacer que el sistema tenga cambios en los flujos de cada una
de las ramas paralelas sin afectarse entre s.
Por ejemplo, s se disminuye el gasto en alguna rama y se desea no afectar a las dems, la
accin sobre el sistema ser disminuir el gasto para que solo satisfaga la demanda necesaria
del sistema, de igual forma si la demanda aumenta, entonces el gasto debe aumentar para
satisfacer lo necesario. Esta forma de control se asemeja a un controlador proporcional.

Para verificar que este comportamiento desacoplado se poda lograr, se simul en
MATLAB el sistema mostrado en la Figura 4.2, el cual se representa en el bloque llamado
sistema de tuberas en paralelo de la figura 4.3. En esta esquema se consider un bloque
de ganancia unitaria que representa un controlador proporcional y las entradas son seales
de demanda de flujo aleatorias, es decir, existe variacin en la demanda de flujo para
ciertos lapsos de tiempo, el bloque que ingresa el valor de la presin es constante para cada
rama paralela, que como ya se coment en un sistema paralelo, la presin es igual para cada
rama.

El controlador proporcional (P) determina el valor para cada vlvula y la informacin del
error entre el gasto deseado y el real es el conocimiento experto. Entonces, con esta
informacin, es posible traducir este error en un Controlador Proporcional Difuso (CPD) el
cual puede conseguir el mismo objetivo de control.

Figura 4.3 Simulacin del sistema de tuberas en paralelo en lazo cerrado con MATLAB.

- - 51
En la siguiente seccin, se propone el CPD diseado a partir de la informacin
proporcionada por el experto.
4.3 Sistema de control difuso tipo Mamdani para el sistema de riego

El diagrama de bloques del controlador difuso que utilizado es del tipo Mamdani, que se
muestra en la Figura 4.4, y est compuesto por el fuzzificador, el mecanismo de inferencia,
la base de las reglas y el defuzzificador.

Figura 4.4 Sistema difuso tipo Mamdani.
La entrada de un sistema de lgica difusa tipo Mamdani normalmente es un valor numrico
proveniente, por ejemplo de un sensor, en este caso ese valor proviene del valor real del
gasto en alguna de las 3 tuberas paralelas. Para que este valor pueda ser procesado por el
sistema difuso se hace necesario convertirlo a un lenguaje que el mecanismo de inferencia
pueda procesar. Estos valores difusos son los niveles de pertenencia de los valores de
entrada a los diferentes conjuntos difusos en los cuales se ha dividido el universo de
discurso.
4.3.1 Conjuntos difusos del CPD del sistema de riego

Para definir un conjunto difuso, se puede utilizar cualquier funcin de membreca, sin
embargo, existen funciones que son ms utilizadas debido a su simplicidad matemtica,
entre ellas podemos mencionar las funciones de tipo triangular, trapezoidal, gaussiana,

- - 52
entre otras. En este sistema se eligi la forma triangular por mayor flexibilidad de
programacin. Es importante mencionar que dependiendo de la eleccin de la forma de la
funcin de membreca los resultados del controlador pueden variar considerablemente.

Consideremos como universo de discurso de la variable de entrada para el control del gasto
de la bomba el flujo total demandado por el sistema. Para clasificar los conjuntos difusos
del universo de discurso de esta variable de entrada, se proponen 7 conjuntos los cuales se
denotan como: demanda del gasto de 0 al 15%, demanda del gasto de 15 al 30%, demanda
del gasto de 30 al 45%, demanda del gasto de 45 al 60%, demanda del gasto de 60 al 75%,
demanda del gasto de 75 al 90% y demanda del gasto al 100%, los cuales se muestran en la
Figura 4.5.

Figura 4.5 Universo de discurso y conjuntos difusos para la demanda del gasto en el sistema.

El universo de discurso de la variable de salida es la demanda de presin de la bomba. Para
esta salida se proponen 7 conjuntos difusos los cuales son: demanda de presin del 0 al
15%, demanda de presin del 15 al 30 %, demanda de presin del 30 al 45%, demanda de
presin del 45 al 60%, demanda de presin del 60 al 75%, demanda de presin del 75 al
90%, demanda de presin del 90 al 100%. En la Figura 4.6 se aprecian las funciones de
membreca propuestas.

- - 53

Figura 4.6 Universos de discurso y conjuntos difusos para la demanda de presin requerida por el
sistema.
Ahora, consideremos el universo de discurso del flujo demandado por la tubera gobernada
por la vlvula 1. Consideremos tambin una variable lingstica para clasificar los
conjuntos difusos del universo de discurso de esta variable, la cual se divide en 7 conjuntos
difusos: error negativo alto gasto 1, error negativo medio gasto 1, error negativo pequeo
gasto 1, gasto 1 ideal, error positivo pequeo gasto 1, error positivo medio gasto 1 y error
positivo alto gasto 1, ver Figura 4.7.

Figura 4.7 Universos de discurso y conjuntos difusos para la demanda del gasto 1.

- - 54
El universo de discurso de las variables lingsticas de apertura de la vlvula 1 proporcional
son: Abrir la vlvula 1 totalmente, abrir la vlvula 1 medianamente, abrir la vlvula 1 un
poco, mantener la vlvula 1 igual, cerrar la vlvula 1 un poco, cerrar la vlvula 1
medianamente, cerrar la vlvula 1 totalmente. En la Figura 4.8 se aprecia est definicin de
variables lingsticas.

Figura 4.8 Universos de discurso y conjuntos difusos para la apertura de la vlvula 1.
Para obtener los universos de discurso para las vlvulas 2 y 3 se hace de manera anloga a
lo mostrado para la vlvula 1.
4.3.2 Mecanismo de inferencia del CPD

As, teniendo los diferentes niveles de pertenencia arrojados por el fuzzificador, estos deben
ser procesados para generar una salida difusa. La tarea del sistema de inferencia es tomar
los niveles de pertenencia y apoyado en la base de reglas, generar la salida del sistema
difuso. La base de las reglas es la manera que tiene el sistema difuso de guardar el
conocimiento lingstico que le permiten resolver el problema para el cual ha sido
diseado, estas reglas son del tipo SI-ENTONCES (IF-THEN).

Para el CPD que controla la Presin de la bomba, la base de las reglas estn dadas en la
Tabla 4.1, la cual contiene siete conjuntos de entrada difusos y siete conjuntos de salida
difusos.


- - 55
Tabla 4.1 Base de las reglas del CPD gasto-presin.
If Q
T
is Smallest then P is Smallest
If Q
T
is Small then P is Small
If Q
T
is Medium then P is Medium
If Q
T
is High then P is High
If Q
T
is High Medium then P is High Medium
If Q
T
is Very High then P is Very High
If Q
T
is highest then P is Highest

Donde Q
T
, es el gasto que demanda el sistema y P, es la presin requerida, la grfica
generada por esta base de las reglas se muestra en la Figura 4.9.


Figura 4.9 Grfica generada por la base de las reglas del CPD, Gasto-Presin.

Se puede apreciar, que la demanda de gasto del sistema requiere de una presin en forma
proporcional. Los rangos mostrados en la Figura 4.9, se eligieron arbitrariamente, siendo la
demanda mxima de gasto igual a 1000 lts/min y la demanda mxima de presin igual a
1000kg/cm
2
.


- - 56
Para el CPD que controla el gasto en cada una de las ramas paralelas de la tubera, se tiene
que la base de las reglas est dada en la Tabla 4.2, la cual contiene siete conjuntos de
entrada difusos y siete conjuntos de salida difusos.
Tabla 4.2 Base de las reglas del CPD para la apertura de las vlvulas
If e is NB then O is PB
If e is NM then O is PM
If e is NS then O is PS
If e is ZE then O is ZE
If e is PS then O is NS
If e is PM then O is NM
If e is PB then O is NB

Donde e, es el error de gasto que demanda la rama paralela y O, es la apertura de la
vlvula. La grfica generada por la base de estas reglas se muestra en la Figura 4.10.

Figura 4.10 Grfica generada por la base de las reglas del CPD para el control de la apertura de las
vlvulas.
Como se puede ver en la Figura 4.10, si la demanda de gasto aumenta con respecto a un
valor actual, entonces es necesario reducir el valor de la resistencia hidrulica, es decir, es
necesario abrir la vlvula de forma adecuada. Los rangos de la Figura 4.10, corresponden al
comportamiento ante la entrada para el gasto 1, mostrado en la Figura 4.11 (seal en color
rojo).

- - 57
4.3.3 Mtodo de defuzificacin del CPD

La defuzzificacin es resultado del tipo de funciones de pertenencia y de la base de las
reglas que estn dadas en la Tabla 4.1 y 4.2 respectivamente. En este trabajo se utiliz el
mtodo del centroide para la defuzzificacin.
4.4 Resultados obtenidos del CPD
Para mostrar los resultados obtenidos en este trabajo, en la Figura 4.11 se muestran las
entradas de referencia para cada rama paralela, las cuales muestran variaciones en
diferentes lapsos de tiempo.

Figura 4.11 Entradas variables de referencia para el gasto de las ramas paralelas.
En la Figura 4.11, se muestra la especificacin de gasto propuesta para cada rama paralela.
Se eligieron esas entradas para que el sistema se comporte como desacoplado, esto es, que
ante variaciones de gasto en alguna rama paralela, las dems ramas paralelas no se vean
afectadas en su gasto. La tarea del experto es definir como es el comportamiento del
sistema para cumplir con estas especificaciones. En la Figura 4.12 se muestran los
resultados en la salida por el experto.

- - 58

Figura 4.12 Respuesta del experto ante la entrada de referencia.
Claramente, se aprecia que el experto responde satisfactoriamente, y es posible obtener
informacin sobre cmo se comportan las vlvulas y la bomba del sistema real, teniendo
como objetivo de control el desacoplamiento, basndose en el error. As mismo es posible
traducir este conocimiento lingstico a un CPD, utilizando la informacin del error como
entrada y obteniendo como salida la posicin de la vlvula adecuada, as como la presin de
la bomba. A continuacin se muestra el conocimiento experto o error.

Figura 4.13. Error de gasto para la tubera 1.

- - 59
Figura 4.14 Error de gasto para la tubera 2.

Figura 4.15 Error de gasto para la tubera 3.
Con este conocimiento experto del comportamiento de cada tubera mostrado en las Figuras
4.13, 4.14 y 4.15, es posible disear un controlador proporcional que consiga desacoplar el
sistema. A continuacin se muestra el resultado del CPD, en donde se aprecia claramente
que el sistema est desacoplado, ver Figura 4.16.

- - 60

Figura 4.16 Resultados del controlador CPD.

Las entradas de referencia muestran cambios de demanda de gasto en cada rama paralela
mostrados en la Figura 4.11, de esta manera, el experto P, determina el comportamiento de
las vlvulas y la bomba, lo cual se aprecia en la Figura 4.12, y por ltimo, en la Figura 4.16,
se observa el buen funcionamiento del CPD, el cual consigue un comportamiento
desacoplado. Tambin, en la siguiente Figura 4.17 se muestra la demanda de gasto - presin
determinada por el CPD.

Figura 4.17 Demanda Gasto-Presin, determinados por el CPD.

- - 61
En la Figura 4.17, se observa que la demanda de gasto requiere de una presin
proporcional suministrada por la bomba, es decir, la demanda de gasto se satisface en
proporcin a la demanda, as el sistema cumple con el objetivo de desacoplamiento,
conseguido por el CPD. Por ltimo, se muestran en la Figura 4.18, las referencias de gasto
para cada rama paralela, la respuesta del experto y el desempeo del CPD.

Figura 4.18 Respuesta del experto y CPD ante las entradas de referencia.
El diseo del CPD que logra el objetivo de desacoplar el sistema de riego est basado en la
extraccin de informacin del comportamiento desacoplado del sistema de referencia que
es controlado por un control proporcional convencional, el cual determina el
comportamiento de las vlvulas y el comportamiento de la bomba para cumplir con el
objetivo de control que en este caso es el flujo deseado en cada una de las tuberas.

El CPD logra el objetivo de desacoplar el sistema a partir de un conocimiento experto del
funcionamiento basado en el error entre el flujo deseado y el real. Lo anterior es importante
porque implica que se puede aplicar esta metodologa para otro tipo de sistemas como los
no regulares, variantes en el tiempo, entre otros.
4.5 Factor de acoplamiento

Como se mencion en el captulo 1, en un sistema multivariable acoplado, las variables de
entrada-salida interactan entre s hasta cierto punto, lo que es conocido como el grado de

- - 62
interaccin o factor de acoplamiento, el cual se puede calcular para establecer la magnitud
en que una entrada afecta a ms de una salida, sin embargo no es posible modificar este
factor de acoplamiento en forma deseada. En esta seccin se propone una forma de
modificar el grado de interaccin en forma deseada basado en el conocimiento experto del
funcionamiento del sistema. Cabe mencionar, que la base del diseo del controlador no cambia,
solo cambia el informe experto.

4.5.1 Informe experto para el cambio del factor de acoplamiento

De igual manera, para disear un controlador difuso es necesario saber como es el
funcionamiento del sistema para lograr un objetivo especfico de control que en este caso es
el cambio en el factor de acoplamiento. En la Figura 4.19 se muestran las referencias del
sistema.

Figura 4.19 Entradas propuestas de referencia para los gastos en cada rama paralela, la cual muestra
un cambio en la entrada de referencia 1.

La entrada de referencia 1 cambia de 400 lt/min a 500 lt/min, la cual tiene un incremento de
100 lt/min. Se desea afectar de manera deseada a todas las salidas debido a este cambio en
la entrada de referencia 1, eligindose los factores de acoplamiento como: Referencia 1 es
de 50 %, es decir 0.5; Referencia 2 es de 30 %, es decir, 0.3; Referencia 3 es de 20 %, es
decir 0.2. De acuerdo a lo anterior todas las referencias se modifican de la siguiente

- - 63
manera de acuerdo a los factores de acoplamiento propuestos, tal que el experto define la
siguiente respuesta a la salida, ver Figura 4.20.

Figura 4.20 Respuesta del experto ante los factores de acoplamiento propuestos.

De la respuesta del experto mostrada en la Figura 4.20, en la Figura 4.21, es posible extraer
la informacin del comportamiento del sistema en forma de error, y es posible disear un
CPD que consiga el objetivo de modificar el factor de acoplamiento. En la Figura 4.22,
4.23 y 4.24, se muestra el error de cada tubera.

Figura 4.21 Error de gasto para la tubera 1.

- - 64

Figura 4.22 Error de gasto para la tubera 2.

Figura 4.23 Error de gasto para la tubera 3.

Como se mencion al principio de este captulo, la base de las reglas del CPD que asigna
un factor de acoplamiento deseado al sistema, no cambia, lo nico que cambia es el informe
experto el cual se mostr en las Figuras 4.21, 4.22 y 4.23. En la Figura 4.24, se muestra la
respuesta del CPD, el cual logra el objetivo de modificar en forma deseada el factor de
acoplamiento.


- - 65

Figura 4.24 Respuesta del Controlador Proporcional Difuso ante el factor de acoplamiento.

En la Figura 4.24 se puede ver que el CPD, desacopla parcialmente el sistema de tuberas
con un grado predeterminado, as mismo la base de las reglas del controlador no cambi,
solo fue necesario obtener el informe experto que lograba este objetivo de control. En la
Figura 4.25 se muestra la demanda gasto-presin del sistema, ante este requerimiento.

Figura 4.25 Demanda Gasto-Presin del sistema.

En esta seccin se mostr la forma de modificar el grado del factor de acoplamiento de
forma deseada mediante un CPD teniendo resultados satisfactorios. El caso extremo del
grado de interaccin es lograr el desacoplamiento, es decir, que una entrada afecta una sola
salida, en la siguiente seccin se muestra la aplicacin del desacoplamiento a un sistema de
riego por aspersin.

- - 66
4.6 Desacoplamiento de un sistema de riego por aspersin mediante un CPD

Las necesidades de agua en los sistemas de riego dependen del tipo de cultivo, clima
(lluvia, humedad, calor, etc.) y tipo de suelo (caractersticas fsicas y qumicas). Estos
aspectos representan las necesidades bsicas, porque establecen entre s las relaciones
fundamentales en lo que respecta al uso del agua por las plantas. Cada cultivo tiene sus
caractersticas particulares. La demanda de agua es variable con el cultivo, con el ciclo
vegetativo de la planta y el tiempo, y el espacio o cobertura que hace superficialmente la
planta. El clima fija la demanda de transporte de agua y maneja la necesidad de agua de las
plantas por medio de la lluvia, la humedad y el calor. El suelo de acuerdo a sus
caractersticas fsicas y qumicas, retendr el agua con mayor o menor cantidad y rapidez.
De esta forma, para aumentar la eficiencia en el uso del agua y al mismo tiempo mejorar el
desarrollo de la siembra, se hace necesario adaptarse a las necesidades del cultivo,
condiciones climticas y caractersticas del suelo, proporcionando de manera adecuada la
cantidad de agua que se requiere.

En la Figura 4.26, se muestra como ejemplo una superficie con varios cultivos, en donde las
necesidades de agua son variables.

Figura 4.26 Superficie de varios cultivos con diferentes necesidades de agua.

- - 67
Al avanzar el sistema de riego por dicha superficie, las necesidades de suministros en cada
cultivo son variables y es necesario que el sistema de riego se adapte a estos
requerimientos. En esta aplicacin se puede ver que el sistema de riego debe funcionar de
manera desacoplada para cumplir con los requerimientos del cultivo, en este sistema se
propuso un CPD para no depender de un modelo matemtico del sistema, si no nicamente
basarse en la informacin del error entre el flujo deseado y el real. De esta manera se logra
un mejor uso del agua y los cultivos se vern favorecidos ya que solo se administrar el
agua requerida.

























- - 68
Captulo 5. Conclusiones y trabajo a futuro
5.1 Conclusiones

Se dise un Controlador Proporcional Difuso (CPD) a partir del conocimiento experto del
error entre el flujo deseado y el real, para desacoplar el sistema de riego en paralelo
prescindiendo de un modelo matemtico del sistema, obtenindose un comportamiento
satisfactorio. As mismo, con la misma base del controlador se logr modificar el factor de
acoplamiento en forma deseada. Es importante mencionar, que la metodologa propuesta se
puede aplicar a otros sistemas siempre y cuando se cuente con la informacin del experto.

Actualmente los trabajos en lineales, no lineales, difusos, invariantes en el tiempo logran
desacoplar los sistemas basndose en el modelo matemtico, es decir, se tienen que conocer
las ecuaciones dinmicas que aproximen en medida de lo posible el comportamiento real
del sistema. Sin embargo, esta tarea no siempre resulta fcil para el diseador, pues cuando
en el sistema intervienen una gran cantidad de variables, obtener una representacin ser
una tarea difcil, e incluso en algunos casos la solucin general no existe. Por lo tanto, el
enfoque propuesto basado en la lgica difusa presenta una alternativa de solucin viable al
problema de desacoplamiento.
5.2 Trabajo a futuro

La alternativa presentada para modificar el factor de acoplamiento, as como lograr el
desacoplamiento, puede ser implementada en sistemas de control en los cuales, conseguir
alguno de los objetivos mencionados, pueda causar dificultad matemtica. Asi mismo, con
la base del CPD, queda pendiente tratar a sistemas multivariables no regulares.






- - 69
REFERENCIAS
[1] B.S Morgan Jr., The synthesis of linear multivariable systems by state-variable
feedback. IEEE trans. Automat. Contr., vol. AC-9, pp. 405-411,1964.
[2] P.L. Falb and W.A. Wolovich. Decoupling in the desing and synthesis of
multivariable control systems. SIAM Journal Contr. Optimiz., vol. AC-12, (no. 6),
pp.651-669,1967.
[3] W.M. Wonham, and A.S Morse, Decoupling and pole assignment in linear
multivariable systems: A geometric approach. SIAM J. Contr. 8, 1-18, 1970.
[4] A.S. Morse, W.M. Wonham. Status of Noninteracting Control. IEEE Trans. Automat.
Ctrl., Vol. AC-16, No. 6, pp. 568-581, 1971.
[5] J. Descusse and J.M Dion. On the structure at infinity of linear square decoupled
systems. IEEE Trans. Automat. Contr., vol. AC-27, pp. 971-974, 1982.
[6] J. Descusse, J.F. Lafay, M. Malabre, Solution of the static-state feedback decoupling
problem for linear systems with two outputs. IEEE Trans. Automat. Ctrl., vol. AC-30,
no. 9, pp. 914-918, 1985.
[7] J. Descusse, J.F. Lafay and M. Malabre. Solution to Morgans problem. IEEE trans.
Automat. Contr., vol. 33, no. 8, pp. 732-739, 1988.
[8] J.M. Dion, C. Commault. The Minimal Delay Decoupling Problem: Feedback
Implementation with Stability. SIAM J. Contr. Optimiz., Vol. 26, No. 1, pp. 66-82,
1988.
[9] J.J. Loiseau. Sur la modification de la structure a` linfini par un retour detat statique.
SIAM J. Contr. Optimiz. vol. 26, no. 2, pp. 251-273, 1988.
[10] Xu, C.W.; , "Decoupling fuzzy relational systems-an output feedback approach,"
Systems, Man and Cybernetics, IEEE Transactions on , vol.19, no.2, pp.414-418,
Mar/Apr 1989
[11] Foster, G.T.; Kambhampati, C.; Warwick, K.; , "Quasi-decoupled fuzzy logic
controller," Intelligent Control, 1992., Proceedings of the 1992 IEEE International
Symposium on , vol., no., pp.366-371, 11-13 Aug 1992
[12] A.N. Herrera, J. Torres y J. Ruiz. The nonregular Morgans problem: a polinomial
solution for the case of two outputs. Proc. 2nd. ECC, vol. 4, pp. 2275-2278,
Groningen, The Netherlands, 1993.

- - 70
[13] P. Zagalak, J.F Lafay and A.Herrera. The row by row Decoupling via State Feedback:
A Polynomial Approach. Automatica, vol. 29, no. 6, pp. 1491-1499, 1993.
[14] A.N. Herrera and J.F. Lafay New results about the Morgans problem. IEEE Trans.
Automat. Contr., vol. 38, no. 12, pp. 1834-1838, 1993.
[15] A.N. Herrera, Static realization of dynamic precompensators. IEEE Trns Automat.
Contr., vol. 38, no. 12, pp. 1834-1838, 1993.
[16] de Silva, Clarence W., "Knowledge Base Decoupling in Fuzzy-Logic Control
Systems," American Control Conference, 1993, San Francisco, California, U.S.A.,
vol., no., pp.760-764, 2-4 June 1993
[17] J. Ruiz, P. Zagalak, V. Eldem. On the Problem of Decoupling. Proc. 3rd IFAC
Conference on System Structure and Control, pp. 611-616, Nantes, France, 1995.
[18] A.N. Herrera, J.F. Lafay y P. Zagalak. A semi-canonical form for a class of right
invertible systems. Proc. 3rd IFAC Conf. on System Structure and Control, pp. 590-
594, 1995.
[19] J. Ruiz. Decoupling of Linear Systems. PhD dissertation, Czech Technical University,
Czech Republic, 1996.
[20] F.G. Shinskey, Sistemas de control de procesos, Aplicacin, diseo y sintonizacin,
Mc Graw Hill, 1996
[21] Nie, J.; "Fuzzy control of multivariable nonlinear servomechanisms with explicit
decoupling scheme," Fuzzy Systems, IEEE Transactions on , vol.5, no.2, pp.304-311,
May 1997
[22] Kevin M. Passino, Stephen Yurkovich, Fuzzy Control. Addison Wesley Longman
1998.
[23] J.L. Orozco M. Desacoplamiento de sistemas lineales: el caso de sistemas decalados
y el caso general. Tesis de doctorado, CINVESTAV Unidad Guadalajara, Jalisco,
Mxico 2005.
[24] J. Ruiz-Len, Jorge Luis Orozco, and Ofelia Begovich, Closed-loop structure of
decouplable linear multivariable systems. Kybernetika, Vol. 41 No. 1, pag. 33-45,
2005.
[25] Juan Saldarriaga, Hidrulica de tuberas, abastecimiento de agua, redes, riegos, 1ra
ed., Bogot, D. C. Alfaomega, 2007, p.p. 273 y 274.

- - 71
[26] Jie-sheng Wang; , "Self-Tuning Multivariable PID Decoupling Controller of Ball Mill
Pulverizing System," Natural Computation, 2007. ICNC 2007. IEEE Conference
Publications, Third International Conference on, vol.4, no., pp.738-742, 24-27 Aug.
2007
[27] Yongqiang Guo; Kangling Fang; Hongjun Zhou; , "Design of fuzzy feed-forward
decoupling controller based on error," Intelligent Control and Automation, 2008.
WCICA 2008, Chongqing, China. 7th World Congress on, vol., no., pp.6101-6106,
25-27 June 2008
[28] Gao Qiang; Pan Hongxia; , "Leveling control technology of hydraulic system based
on fuzzy decoupling algorithm," Networking and Information Technology (ICNIT),
2010 International Conference on , vol., no., pp.314-318, 11-12 June 2010
[29] Jia Wang; Chao-Ying Liu; Xue-Ling Song; Zhe-Ying Song; , "A realization method
for fuzzy decoupling control of the Circulating Fluidized Bed Boiler," Machine
Learning and Cybernetics (ICMLC), 2011 International Conference on , vol.1, no.,
pp.166-171, 10-13 July 2011
[30] J. A. Delgado A., J. L. Orozco M., E. Ruiz-Beltrn and J. A. Caldern-Martnez,
Desacoplamiento mediante un PD difuso aplicado a un sistema de tanques, en
Reunin de Verano de Potencia y Aplicaciones Industriales (25th, 2011, Guerrero,
Mxico). RVP-AI, IEEE, Power Engineering Society and Industry Aplications Conf.,
AI-25.
[31] J. A. Delgado A., J. A. Juregui A.,E. Ramrez V., S. E. Luna C., J. L. Orozco M.,
Aplicacin del desacoplamiento regular a un circuito elctrico, en 13 th Reunin de
Otoo de Potencia, Electrnica y Computacin, (2011).ROPEC, Morelia, Michoacn,
Mxico, IEEE.
[32] J. A. Delgado A., J. L. Orozco M. and E. Ruiz-Beltrn, Solucin al problema de
desacoplamiento mediante un Controlador Proporcional Difuso de un sistema regular
de riego con tuberas en paralelo, (2012), Revista: Ingeniera, Investigacin y
Tecnologa UNAM. En revisin.
[33] Liu Chen Hui, General decoupling theory of multivariable process control systems,
springer-Verlag, 1983.

- - 72
[34] Edgar H. Bristol, On a new measure of interaction for multivariable process control,
IEEE, Transaction on Automatic control, vol.11, no.1, pp.133-134, June 1966.
[35] Fuzzy Logic. Intelligence, Control and Information. John Yen & Reza Langari.
Prentice Hall. 1999.
[36] Neuro-Fuzzy and Soft Computing. J.-S. R. Jang, C.-T. Sun & E. Mizutani. Prentice
Hall. Matlab Curriculum Series. 1997.
[37] Fuzzy and Neural Approaches in Engineering. Lefteri H. Tsoukalas, Robert E. Uhrig.
John Wiley & Sons, Inc. 1997.
[38] Pattern Recognition. S. Theodoridis & K. Koutroumbas. Academic Press. 1999.























- - 73
Anexo 1
Programa en MATLAB para el desacoplamiento y
cambio del factor de acoplamiento del sistema de
tuberas
%------------------------------------------------------------------------
% MAESTRA EN CIENCIAS EN INGENIERA ELCTRICA
% Alumno: Jorge Alejandro Delgado Aguiaga
% Tesis: Acoplamiento y desacoplamiento difuso de sistemas
% regulares
% PROGRAMA PARA EL DESACOPLAMIENTO Y CAMBIO DEL FACTOR DE
% ACOPLAMIENTO CON UN CONTROLADOR PROPORCIONAL DIFUSO DE 7
% FUNCIONES DE PERTENENCIA Y 7 REGLAS.
%
%------------------------------------------------------------------------
clear all
close all
clc

%------------------------------------------------------------------------
% Constantes del sistema para el desacoplamiento total
%------------------------------------------------------------------------
%------------------------------------------------------------------------
% Determinacin de los gastos
%------------------------------------------------------------------------
it=input('ingrese el valor del gasto maximo deseado, maximo 1000: ');
if it>1000
it=input('ingrese el valor del gasto mximo deseado, maximo 1000: ');
else
it=it
end

ia=input('valor maximo del gasto 1: ');
if ia<it
ia=ia
else
disp('el valor maximo del gasto 1 debe ser menor a la capacidad total, ingrese otro valor')
ia=input('valor maximo del gasto 1: ');
end

ib=input('valor maximo del gasto 2: ');
if ib<(it-ia)
ib=ib
else
disp('el valor maximo del gasto 2 debe ser menor, ingrese otro valor: ')
ib=input('valor maximo del gasto 2: ');
end
ic=input('valor maximo del gasto 3: ');
if ic<=(it-ia-ib)
ic=ic
else
disp('el valor maximo del gasto 3 debe ser menor, ingrese otro valor: ')

- - 74
ic=input('valor maximo del gasto 3: ');

end
%------------------------------------------------------------------------
% Ganacias para el experto
%------------------------------------------------------------------------
kp1=1;
ki1=0;
kd1=0;
kn1=0;

kp2=1;
ki2=0;
kd2=0;
kn2=0;

kp3=1;
ki3=0;
kd3=0;
kn3=0;

v1max=input('ingrese el valor maximo de la presin total: ')

if v1max>it
v1max=input('ingrese otro valor de la presin total: ')
else
v1max=v1max;
end

v1min=0;
c1min=0;

%------------------------------------------------------------------------
disp('ejecute el programa desacoplamiento total del sistema para extraer los universos de discurso para el
control fuzzy')
%------------------------------------------------------------------------
corriente_total=corriente1+corriente2+corriente3;
c1max=max(corriente_total);
%------------------------------------------------------------------------
% Diseo del CPD para la demanda gasto-presin
%------------------------------------------------------------------------
v=newfis('voltaje_fuzzy');

v.input(1).name='GASTO TOTAL DEMANDADO';
v.input(1).range=[c1min c1max];
v.input(1).mf(1).name='al 15%';
v.input(1).mf(1).type='trimf';
v.input(1).mf(1).params=[-((c1max-c1min)/6) c1min c1min+((c1max-c1min)/6)];
v.input(1).mf(2).name='al 30%';
v.input(1).mf(2).type='trimf';
v.input(1).mf(2).params=[c1min c1min+((c1max-c1min)/6) c1min+((c1max-c1min)/6)*2];
v.input(1).mf(3).name='al 45%';
v.input(1).mf(3).type='trimf';
v.input(1).mf(3).params=[c1min+((c1max-c1min)/6) c1min+((c1max-c1min)/6)*2 c1min+((c1max-
c1min)/6)*3];
v.input(1).mf(4).name='al 60%';

- - 75
v.input(1).mf(4).type='trimf';
v.input(1).mf(4).params=[c1min+((c1max-c1min)/6)*2 c1min+((c1max-c1min)/6)*3 c1min+((c1max-
c1min)/6)*4];
v.input(1).mf(5).name='al 75%';
v.input(1).mf(5).type='trimf';
v.input(1).mf(5).params=[c1min+((c1max-c1min)/6)*3 c1min+((c1max-c1min)/6)*4 c1min+((c1max-
c1min)/6)*5];
v.input(1).mf(6).name='al 90%';
v.input(1).mf(6).type='trimf';
v.input(1).mf(6).params=[c1min+((c1max-c1min)/6)*4 c1min+((c1max-c1min)/6)*5 c1min+((c1max-
c1min)/6)*6];
v.input(1).mf(7).name='al 100%';
v.input(1).mf(7).type='trimf';
v.input(1).mf(7).params=[c1min+((c1max-c1min)/6)*5 c1max c1max+((c1max-c1min)/6)];

figure(1)
plotmf(v,'input',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO DEL SISTEMA')

v.output(1).name='PRESIN TOTAL REQUERIDA';
v.output(1).range=[v1min v1max];
v.output(1).mf(1).name='al 15%';
v.output(1).mf(1).type='trimf';
v.output(1).mf(1).params=[-((v1max-v1min)/6) v1min v1min+((v1max-v1min)/6)];
v.output(1).mf(2).name='al 30%';
v.output(1).mf(2).type='trimf';
v.output(1).mf(2).params=[v1min v1min+((v1max-v1min)/6) v1min+((v1max-v1min)/6)*2];
v.output(1).mf(3).name='al 45%';
v.output(1).mf(3).type='trimf';
v.output(1).mf(3).params=[v1min+((v1max-v1min)/6) v1min+((v1max-v1min)/6)*2 v1min+((v1max-
v1min)/6)*3];
v.output(1).mf(4).name='al 60%';
v.output(1).mf(4).type='trimf';
v.output(1).mf(4).params=[v1min+((v1max-v1min)/6)*2 v1min+((v1max-v1min)/6)*3 v1min+((v1max-
v1min)/6)*4];
v.output(1).mf(5).name='al 75%';
v.output(1).mf(5).type='trimf';
v.output(1).mf(5).params=[v1min+((v1max-v1min)/6)*3 v1min+((v1max-v1min)/6)*4 v1min+((v1max-
v1min)/6)*5];
v.output(1).mf(6).name='al 90%';
v.output(1).mf(6).type='trimf';
v.output(1).mf(6).params=[v1min+((v1max-v1min)/6)*4 v1min+((v1max-v1min)/6)*5 v1min+((v1max-
v1min)/6)*6];
v.output(1).mf(7).name='al 100%';
v.output(1).mf(7).type='trimf';
v.output(1).mf(7).params=[v1min+((v1max-v1min)/6)*5 v1max v1max+((v1max-v1min)/6)];

figure(2)
plotmf(v,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE PRESIN PARA LA BOMBA')

v.rule(1).antecedent=[1];
v.rule(1).consequent=[1];
v.rule(1).weight=1;
v.rule(1).connection=1;
v.rule(2).antecedent=[2];

- - 76
v.rule(2).consequent=[2];
v.rule(2).weight=1;
v.rule(2).connection=1;
v.rule(3).antecedent=[3];
v.rule(3).consequent=[3];
v.rule(3).weight=1;
v.rule(3).connection=1
v.rule(4).antecedent=[4];
v.rule(4).consequent=[4];
v.rule(4).weight=1;
v.rule(4).connection=1
v.rule(5).antecedent=[5];
v.rule(5).consequent=[5];
v.rule(5).weight=1;
v.rule(5).connection=1
v.rule(6).antecedent=[6];
v.rule(6).consequent=[6];
v.rule(6).weight=1;
v.rule(6).connection=1
v.rule(7).antecedent=[7];
v.rule(7).consequent=[7];
v.rule(7).weight=1;
v.rule(7).connection=1

ruleedit(v);

%------------------------------------------------------------------------
% Eleccin de los universos de discurso para el control fuzzy
%------------------------------------------------------------------------
e1min=min(e1);
e1max=max(e1);

e2min=min(e2);
e2max=max(e2);

e3min=min(e3);
e3max=max(e3);

r1min=min(valvula_pid_1);
r1max=max(valvula_pid_1);

r2min=min(valvula_pid_2);
r2max=max(valvula_pid_2);
r3min=min(valvula_pid_3);
r3max=max(valvula_pid_3);

%------------------------------------------------------------------------
% Definicin del CPD para la apertura de las vlvulas
%------------------------------------------------------------------------
a=newfis('fuzzy_proporcional_1');

a.input(1).name='FLOW ERROR 1';
a.input(1).range=[e1min e1max];
a.input(1).mf(1).name='high negative';
a.input(1).mf(1).type='trimf';
a.input(1).mf(1).params=[-((e1max-e1min)/6) e1min e1min+((e1max-e1min)/6)];

- - 77
a.input(1).mf(2).name='medium negative';
a.input(1).mf(2).type='trimf';
a.input(1).mf(2).params=[e1min e1min+((e1max-e1min)/6) e1min+((e1max-e1min)/6)*2];
a.input(1).mf(3).name='small negative';
a.input(1).mf(3).type='trimf';
a.input(1).mf(3).params=[e1min+((e1max-e1min)/6) e1min+((e1max-e1min)/6)*2 e1min+((e1max-
e1min)/6)*3];
a.input(1).mf(4).name='ideal flow';
a.input(1).mf(4).type='trimf';
a.input(1).mf(4).params=[e1min+((e1max-e1min)/6)*2 e1min+((e1max-e1min)/6)*3 e1min+((e1max-
e1min)/6)*4];
a.input(1).mf(5).name='small positive';
a.input(1).mf(5).type='trimf';
a.input(1).mf(5).params=[e1min+((e1max-e1min)/6)*3 e1min+((e1max-e1min)/6)*4 e1min+((e1max-
e1min)/6)*5];
a.input(1).mf(6).name='medium positive';
a.input(1).mf(6).type='trimf';
a.input(1).mf(6).params=[e1min+((e1max-e1min)/6)*4 e1min+((e1max-e1min)/6)*5 e1min+((e1max-
e1min)/6)*6];
a.input(1).mf(7).name='high positive';
a.input(1).mf(7).type='trimf';
a.input(1).mf(7).params=[e1min+((e1max-e1min)/6)*5 e1max e1max+((e1max-e1min)/6)];

figure(3)
plotmf(a,'input',1)
title('UNIVERSE OF DISCURSE FOR FLOW ERROR 1')

a.output(1).name='OPENING VALVE 1';
a.output(1).range=[r1min r1max];
a.output(1).mf(1).name='close completely'
a.output(1).mf(1).type='trimf';
a.output(1).mf(1).params=[-((r1max-r1min)/6) r1min r1min+((r1max-r1min)/6)];
a.output(1).mf(2).name='medium close';
a.output(1).mf(2).type='trimf';
a.output(1).mf(2).params=[r1min r1min+((r1max-r1min)/6) r1min+((r1max-r1min)/6)*2];
a.output(1).mf(3).name='close a little';
a.output(1).mf(3).type='trimf';
a.output(1).mf(3).params=[r1min+((r1max-r1min)/6) r1min+((r1max-r1min)/6)*2 r1min+((r1max-
r1min)/6)*3];
a.output(1).mf(4).name='maintain';
a.output(1).mf(4).type='trimf';
a.output(1).mf(4).params=[r1min+((r1max-r1min)/6)*2 r1min+((r1max-r1min)/6)*3 r1min+((r1max-
r1min)/6)*4];
a.output(1).mf(5).name='open a little';
a.output(1).mf(5).type='trimf';
a.output(1).mf(5).params=[r1min+((r1max-r1min)/6)*3 r1min+((r1max-r1min)/6)*4 r1min+((r1max-
r1min)/6)*5];
a.output(1).mf(6).name='medium open';
a.output(1).mf(6).type='trimf';
a.output(1).mf(6).params=[r1min+((r1max-r1min)/6)*4 r1min+((r1max-r1min)/6)*5 r1min+((r1max-
r1min)/6)*6];
a.output(1).mf(7).name='open completely';
a.output(1).mf(7).type='trimf';
a.output(1).mf(7).params=[r1min+((r1max-r1min)/6)*5 r1max r1max+((r1max-r1min)/6)];

figure(4)

- - 78
plotmf(a,'output',1)
title('UNIVERSE OF DISCURSE FOR OPENING VALVE 1')

a.rule(1).antecedent=[1];
a.rule(1).consequent=[7];
a.rule(1).weight=1;
a.rule(1).connection=1;
a.rule(2).antecedent=[2];
a.rule(2).consequent=[6];
a.rule(2).weight=1;
a.rule(2).connection=1;
a.rule(3).antecedent=[3];
a.rule(3).consequent=[5];
a.rule(3).weight=1;
a.rule(3).connection=1
a.rule(4).antecedent=[4];
a.rule(4).consequent=[4];
a.rule(4).weight=1;
a.rule(4).connection=1
a.rule(5).antecedent=[5];
a.rule(5).consequent=[3];
a.rule(5).weight=1;
a.rule(5).connection=1
a.rule(6).antecedent=[6];
a.rule(6).consequent=[2];
a.rule(6).weight=1;
a.rule(6).connection=1
a.rule(7).antecedent=[7];
a.rule(7).consequent=[1];
a.rule(7).weight=1;
a.rule(7).connection=1

ruleedit(a);
%------------------------------------------------------------------------
% El CPD para la vlvula 2:
%------------------------------------------------------------------------
b=newfis('fuzzy_proporcional_2');

b.input(1).name='FLOW ERROR 2';
b.input(1).range=[e2min e2max];
b.input(1).mf(1).name='high negative';
b.input(1).mf(1).type='trimf';
b.input(1).mf(1).params=[-((e2max-e2min)/6) e2min e2min+((e2max-e2min)/6)];
b.input(1).mf(2).name='medium negative';
b.input(1).mf(2).type='trimf';
b.input(1).mf(2).params=[e2min e2min+((e2max-e2min)/6) e2min+((e2max-e2min)/6)*2];
b.input(1).mf(3).name='small negative';
b.input(1).mf(3).type='trimf';
b.input(1).mf(3).params=[e2min+((e2max-e2min)/6) e2min+((e2max-e2min)/6)*2 e2min+((e2max-
e2min)/6)*3];
b.input(1).mf(4).name='ideal flow';
b.input(1).mf(4).type='trimf';
b.input(1).mf(4).params=[e2min+((e2max-e2min)/6)*2 e2min+((e2max-e2min)/6)*3 e2min+((e2max-
e2min)/6)*4];
b.input(1).mf(5).name='small positive';
b.input(1).mf(5).type='trimf';

- - 79
b.input(1).mf(5).params=[e2min+((e2max-e2min)/6)*3 e2min+((e2max-e2min)/6)*4 e2min+((e2max-
e2min)/6)*5];
b.input(1).mf(6).name='medium positive';
b.input(1).mf(6).type='trimf';
b.input(1).mf(6).params=[e2min+((e2max-e2min)/6)*4 e2min+((e2max-e2min)/6)*5 e2min+((e2max-
e2min)/6)*6];
b.input(1).mf(7).name='high positive';
b.input(1).mf(7).type='trimf';
b.input(1).mf(7).params=[e2min+((e2max-e2min)/6)*5 e2max e2max+((e2max-e2min)/6)];

figure(5)
plotmf(b,'input',1)
title('UNIVERSE OF DISCURSE FOR FLOW ERROR 2')

b.output(1).name='OPENING VALVE 2';
b.output(1).range=[r2min r2max];
b.output(1).mf(1).name='close completely'
b.output(1).mf(1).type='trimf';
b.output(1).mf(1).params=[-((r2max-r2min)/6) r2min r2min+((r2max-r2min)/6)];
b.output(1).mf(2).name='medium close';
b.output(1).mf(2).type='trimf';
b.output(1).mf(2).params=[r2min r2min+((r2max-r2min)/6) r2min+((r2max-r2min)/6)*2];
b.output(1).mf(3).name='close a little';
b.output(1).mf(3).type='trimf';
b.output(1).mf(3).params=[r2min+((r2max-r2min)/6) r2min+((r2max-r2min)/6)*2 r2min+((r2max-
r2min)/6)*3];
b.output(1).mf(4).name='maintain';
b.output(1).mf(4).type='trimf';
b.output(1).mf(4).params=[r2min+((r2max-r2min)/6)*2 r2min+((r2max-r2min)/6)*3 r2min+((r2max-
r2min)/6)*4];
b.output(1).mf(5).name='open a little';
b.output(1).mf(5).type='trimf';
b.output(1).mf(5).params=[r2min+((r2max-r2min)/6)*3 r2min+((r2max-r2min)/6)*4 r2min+((r2max-
r2min)/6)*5];
b.output(1).mf(6).name='medium open';
b.output(1).mf(6).type='trimf';
b.output(1).mf(6).params=[r2min+((r2max-r2min)/6)*4 r2min+((r2max-r2min)/6)*5 r2min+((r2max-
r2min)/6)*6];
b.output(1).mf(7).name='open completely';
b.output(1).mf(7).type='trimf';
b.output(1).mf(7).params=[r2min+((r2max-r2min)/6)*5 r2max r2max+((r2max-r2min)/6)];

figure(6)
plotmf(b,'output',1)
title('UNIVERSE OF DISCURSE FOR OPENING VALVE 2')

b.rule(1).antecedent=[1];
b.rule(1).consequent=[7];
b.rule(1).weight=1;
b.rule(1).connection=1;
b.rule(2).antecedent=[2];
b.rule(2).consequent=[6];
b.rule(2).weight=1;
b.rule(2).connection=1;
b.rule(3).antecedent=[3];
b.rule(3).consequent=[5];

- - 80
b.rule(3).weight=1;
b.rule(3).connection=1
b.rule(4).antecedent=[4];
b.rule(4).consequent=[4];
b.rule(4).weight=1;
b.rule(4).connection=1
b.rule(5).antecedent=[5];
b.rule(5).consequent=[3];
b.rule(5).weight=1;
b.rule(5).connection=1
b.rule(6).antecedent=[6];
b.rule(6).consequent=[2];
b.rule(6).weight=1;
b.rule(6).connection=1
b.rule(7).antecedent=[7];
b.rule(7).consequent=[1];
b.rule(7).weight=1;
b.rule(7).connection=1

ruleedit(b);

%------------------------------------------------------------------------
% El CPD para la vlvula 3 es:
%------------------------------------------------------------------------
c=newfis('fuzzy_proporcional_3');

c.input(1).name='FLOW ERROR 3';
c.input(1).range=[e3min e3max];
c.input(1).mf(1).name='high negative';
c.input(1).mf(1).type='trimf';
c.input(1).mf(1).params=[-((e3max-e3min)/6) e3min e3min+((e3max-e3min)/6)];
c.input(1).mf(2).name='medium negative';
c.input(1).mf(2).type='trimf';
c.input(1).mf(2).params=[e3min e3min+((e3max-e3min)/6) e3min+((e3max-e3min)/6)*2];
c.input(1).mf(3).name='small negative';
c.input(1).mf(3).type='trimf';
c.input(1).mf(3).params=[e3min+((e3max-e3min)/6) e3min+((e3max-e3min)/6)*2 e3min+((e3max-
e3min)/6)*3];
c.input(1).mf(4).name='ideal flow';
c.input(1).mf(4).type='trimf';
c.input(1).mf(4).params=[e3min+((e3max-e3min)/6)*2 e3min+((e3max-e3min)/6)*3 e3min+((e3max-
e3min)/6)*4];
c.input(1).mf(5).name='small positive';
c.input(1).mf(5).type='trimf';
c.input(1).mf(5).params=[e3min+((e3max-e3min)/6)*3 e3min+((e3max-e3min)/6)*4 e3min+((e3max-
e3min)/6)*5];
c.input(1).mf(6).name='medium positive';
c.input(1).mf(6).type='trimf';
c.input(1).mf(6).params=[e3min+((e3max-e3min)/6)*4 e3min+((e3max-e3min)/6)*5 e3min+((e3max-
e3min)/6)*6];
c.input(1).mf(7).name='high positive';
c.input(1).mf(7).type='trimf';
c.input(1).mf(7).params=[e3min+((e3max-e3min)/6)*5 e3max e3max+((e3max-e3min)/6)];

figure(7)
plotmf(c,'input',1)

- - 81
title('UNIVERSE OF DISCURSE FOR FLOW ERROR 3')

c.output(1).name='OPENING VALVE 3';
c.output(1).range=[r3min r3max];
c.output(1).mf(1).name='close completely'
c.output(1).mf(1).type='trimf';
c.output(1).mf(1).params=[-((r3max-r3min)/6) r3min r3min+((r3max-r3min)/6)];
c.output(1).mf(2).name='medium close';
c.output(1).mf(2).type='trimf';
c.output(1).mf(2).params=[r3min r3min+((r3max-r3min)/6) r3min+((r3max-r3min)/6)*2];
c.output(1).mf(3).name='close a little';
c.output(1).mf(3).type='trimf';
c.output(1).mf(3).params=[r3min+((r3max-r3min)/6) r3min+((r3max-r3min)/6)*2 r3min+((r3max-
r3min)/6)*3];
c.output(1).mf(4).name='maintain';
c.output(1).mf(4).type='trimf';
c.output(1).mf(4).params=[r3min+((r3max-r3min)/6)*2 r3min+((r3max-r3min)/6)*3 r3min+((r3max-
r3min)/6)*4];
c.output(1).mf(5).name='open a little';
c.output(1).mf(5).type='trimf';
c.output(1).mf(5).params=[r3min+((r3max-r3min)/6)*3 r3min+((r3max-r3min)/6)*4 r3min+((r3max-
r3min)/6)*5];
c.output(1).mf(6).name='medium open';
c.output(1).mf(6).type='trimf';
c.output(1).mf(6).params=[r3min+((r3max-r3min)/6)*4 r3min+((r3max-r3min)/6)*5 r3min+((r3max-
r3min)/6)*6];
c.output(1).mf(7).name='open completely';
c.output(1).mf(7).type='trimf';
c.output(1).mf(7).params=[r3min+((r3max-r3min)/6)*5 r3max r3max+((r3max-r3min)/6)];

figure(8)
plotmf(c,'output',1)
title('UNIVERSE OF DISCURSE FOR THE OPENING OF THE VALVE 3')

c.rule(1).antecedent=[1];
c.rule(1).consequent=[7];
c.rule(1).weight=1;
c.rule(1).connection=1;
c.rule(2).antecedent=[2];
c.rule(2).consequent=[6];
c.rule(2).weight=1;
c.rule(2).connection=1;
c.rule(3).antecedent=[3];
c.rule(3).consequent=[5];
c.rule(3).weight=1;
c.rule(3).connection=1
c.rule(4).antecedent=[4];
c.rule(4).consequent=[4];
c.rule(4).weight=1;
c.rule(4).connection=1
c.rule(5).antecedent=[5];
c.rule(5).consequent=[3];
c.rule(5).weight=1;
c.rule(5).connection=1
c.rule(6).antecedent=[6];
c.rule(6).consequent=[2];

- - 82
c.rule(6).weight=1;
c.rule(6).connection=1
c.rule(7).antecedent=[7];
c.rule(7).consequent=[1];
c.rule(7).weight=1;
c.rule(7).connection=1

ruleedit(c);
%------------------------------------------------------------------------
disp('ejecute el programa en simulink eleccin de la valvula fuzzy, eleccin del voltaje fuzzy y corriente fuzzy
')
%------------------------------------------------------------------------
%------------------------------------------------------------------------
% FACTOR DE ACOPLAMIENTO
%------------------------------------------------------------------------
factor_total=1;
factor1=input('ingrese factor de acoplamiento para gasto 1 entre 0 y 1: ')

if factor1>factor_total
factor1=input('ingrese otro valor: ')
else
factor1=factor1
end

factor2=input('ingrese factor de acoplamiento para gasto 2 entre 0 y 1: ')

if factor2>(factor_total-factor1)
factor2=input('ingrese otro valor: ')
else
factor2=factor2
end

factor3=input('ingrese factor de acoplamiento para gasto 3 entre 0 y 1: ')
if factor3>(factor_total-factor1-factor2)
factor3=input('ingrese otro valor')
else
factor3=factor3
end

%------------------------------------------------------------------------
% Cambio de las salidas por un factor de acoplamiento en el gasto 1
%------------------------------------------------------------------------
cambio_ia=input('ingrese el cambio en la corriente 1: ')
if cambio_ia>0

iafc=400
ia_fc=iafc+(cambio_ia*factor1);
ibfc=300
ib_fc=ibfc+(cambio_ia*factor2);
icfc=100
ic_fc=icfc+(cambio_ia*factor3);
else
cambio_ia=0
end
%------------------------------------------------------------------------
% Cambio de las salidas por un factor de acoplamiento en el gasto 2

- - 83
%------------------------------------------------------------------------
cambio_ib=input('ingrese el cambio en la gasto 2: ')
if cambio_ib>0

iafc=400
ia_fc=iafc+(cambio_ib*factor1);
ibfc=300
ib_fc=ibfc+(cambio_ib*factor2);
icfc=100
ic_fc=icfc+(cambio_ib*factor3);
else
cambio_ib=0
end
%------------------------------------------------------------------------
% Cambio de las salidas por un factor de acoplamiento en el gasto 3
%------------------------------------------------------------------------
cambio_ic=input('ingrese el cambio en la gasto 3: ')

if cambio_ic>0
iafc=400
ia_fc=iafc+(cambio_ic*factor1);
ibfc=300
ib_fc=ibfc+(cambio_ic*factor2);
icfc=100
ic_fc=icfc+(cambio_ic*factor3);
else
cambio_ic=0
it_fc=ia_fc+ib_fc+ic_fc;
end

%------------------------------------------------------------------------
% Determinacin gasto_presin, factor de acoplamiento
%------------------------------------------------------------------------
v1_fcmax=ia_fc+ib_fc+ic_fc;
v1_fcmin=0;
c1_fcmin=0;
%------------------------------------------------------------------------
disp('ejecute el programa para extraer los universos de discurso para el control fuzzy, factor de acoplamiento')
%------------------------------------------------------------------------
corriente_total_fc=corriente1_fc+corriente2_fc+corriente3_fc;
c1_fcmax=max(corriente_total_fc);
%------------------------------------------------------------------------
% CPD gasto-presin, factor de acoplamiento
%------------------------------------------------------------------------
v_fc=newfis('voltaje_fuzzy_factor_coupling');

v_fc.input(1).name='TOTAL FLOW REQUIRED, FACTOR COUPLING';
v_fc.input(1).range=[c1_fcmin c1_fcmax];
v_fc.input(1).mf(1).name='to 15%';
v_fc.input(1).mf(1).type='trimf';
v_fc.input(1).mf(1).params=[-((c1_fcmax-c1_fcmin)/6) c1_fcmin c1_fcmin+((c1_fcmax-c1_fcmin)/6)];
v_fc.input(1).mf(2).name='to 30%';
v_fc.input(1).mf(2).type='trimf';
v_fc.input(1).mf(2).params=[c1_fcmin c1_fcmin+((c1_fcmax-c1_fcmin)/6) c1_fcmin+((c1_fcmax-
c1_fcmin)/6)*2];
v_fc.input(1).mf(3).name='to 45%';

- - 84
v_fc.input(1).mf(3).type='trimf';
v_fc.input(1).mf(3).params=[c1_fcmin+((c1_fcmax-c1_fcmin)/6) c1_fcmin+((c1_fcmax-c1_fcmin)/6)*2
c1_fcmin+((c1_fcmax-c1_fcmin)/6)*3];
v_fc.input(1).mf(4).name='to 60%';
v_fc.input(1).mf(4).type='trimf';
v_fc.input(1).mf(4).params=[c1_fcmin+((c1_fcmax-c1_fcmin)/6)*2 c1_fcmin+((c1_fcmax-c1_fcmin)/6)*3
c1_fcmin+((c1_fcmax-c1_fcmin)/6)*4];
v_fc.input(1).mf(5).name='to 75%';
v_fc.input(1).mf(5).type='trimf';
v_fc.input(1).mf(5).params=[c1_fcmin+((c1_fcmax-c1_fcmin)/6)*3 c1_fcmin+((c1_fcmax-c1_fcmin)/6)*4
c1_fcmin+((c1_fcmax-c1_fcmin)/6)*5];
v_fc.input(1).mf(6).name='to 90%';
v_fc.input(1).mf(6).type='trimf';
v_fc.input(1).mf(6).params=[c1_fcmin+((c1_fcmax-c1_fcmin)/6)*4 c1_fcmin+((c1_fcmax-c1_fcmin)/6)*5
c1_fcmin+((c1_fcmax-c1_fcmin)/6)*6];
v_fc.input(1).mf(7).name='to 100%';
v_fc.input(1).mf(7).type='trimf';
v_fc.input(1).mf(7).params=[c1_fcmin+((c1_fcmax-c1_fcmin)/6)*5 c1_fcmax c1_fcmax+((c1_fcmax-
c1_fcmin)/6)];

figure(9)
plotmf(v_fc,'input',1)
title('UNIVERSE OF DISCURSE FOR DEMAND FLOW SYSTEM, FACTOR COUPLING')

v_fc.output(1).name='TOTAL VOLTAGE REQUIRED, FACTOR COUPLING';
v_fc.output(1).range=[v1_fcmin v1_fcmax];
v_fc.output(1).mf(1).name='to 15%';
v_fc.output(1).mf(1).type='trimf';
v_fc.output(1).mf(1).params=[-((v1_fcmax-v1_fcmin)/6) v1_fcmin v1_fcmin+((v1_fcmax-v1_fcmin)/6)];
v_fc.output(1).mf(2).name='to 30%';
v_fc.output(1).mf(2).type='trimf';
v_fc.output(1).mf(2).params=[v1_fcmin v1_fcmin+((v1_fcmax-v1_fcmin)/6) v1_fcmin+((v1_fcmax-
v1_fcmin)/6)*2];
v_fc.output(1).mf(3).name='to 45%';
v_fc.output(1).mf(3).type='trimf';
v_fc.output(1).mf(3).params=[v1_fcmin+((v1_fcmax-v1_fcmin)/6) v1_fcmin+((v1_fcmax-v1_fcmin)/6)*2
v1_fcmin+((v1_fcmax-v1_fcmin)/6)*3];
v_fc.output(1).mf(4).name='to 60%';
v_fc.output(1).mf(4).type='trimf';
v_fc.output(1).mf(4).params=[v1_fcmin+((v1_fcmax-v1_fcmin)/6)*2 v1_fcmin+((v1_fcmax-v1_fcmin)/6)*3
v1_fcmin+((v1_fcmax-v1_fcmin)/6)*4];
v_fc.output(1).mf(5).name='to 75%';
v_fc.output(1).mf(5).type='trimf';
v_fc.output(1).mf(5).params=[v1_fcmin+((v1_fcmax-v1_fcmin)/6)*3 v1_fcmin+((v1_fcmax-v1_fcmin)/6)*4
v1_fcmin+((v1_fcmax-v1_fcmin)/6)*5];
v_fc.output(1).mf(6).name='to 90%';
v_fc.output(1).mf(6).type='trimf';
v_fc.output(1).mf(6).params=[v1_fcmin+((v1_fcmax-v1_fcmin)/6)*4 v1_fcmin+((v1_fcmax-v1_fcmin)/6)*5
v1_fcmin+((v1_fcmax-v1_fcmin)/6)*6];
v_fc.output(1).mf(7).name='to 100%';
v_fc.output(1).mf(7).type='trimf';
v_fc.output(1).mf(7).params=[v1_fcmin+((v1_fcmax-v1_fcmin)/6)*5 v1_fcmax v1_fcmax+((v1_fcmax-
v1_fcmin)/6)];

figure(10)
plotmf(v_fc,'output',1)

- - 85
title('UNIVERSE OF DISCURSE FOR DEMAND PUMP VOLTAGE, FACTOR COUPLING')

v_fc.rule(1).antecedent=[1];
v_fc.rule(1).consequent=[1];
v_fc.rule(1).weight=1;
v_fc.rule(1).connection=1;
v_fc.rule(2).antecedent=[2];
v_fc.rule(2).consequent=[2];
v_fc.rule(2).weight=1;
v_fc.rule(2).connection=1;
v_fc.rule(3).antecedent=[3];
v_fc.rule(3).consequent=[3];
v_fc.rule(3).weight=1;
v_fc.rule(3).connection=1
v_fc.rule(4).antecedent=[4];
v_fc.rule(4).consequent=[4];
v_fc.rule(4).weight=1;
v_fc.rule(4).connection=1
v_fc.rule(5).antecedent=[5];
v_fc.rule(5).consequent=[5];
v_fc.rule(5).weight=1;
v_fc.rule(5).connection=1
v_fc.rule(6).antecedent=[6];
v_fc.rule(6).consequent=[6];
v_fc.rule(6).weight=1;
v_fc.rule(6).connection=1
v_fc.rule(7).antecedent=[7];
v_fc.rule(7).consequent=[7];
v_fc.rule(7).weight=1;
v_fc.rule(7).connection=1

ruleedit(v_fc);

%------------------------------------------------------------------------
% Universos de discurso para el control fuzzy
%------------------------------------------------------------------------
e1_fcmin=min(e1_fc);
e1_fcmax=max(e1_fc);

e2_fcmin=min(e2_fc);
e2_fcmax=max(e2_fc);

e3_fcmin=min(e3_fc);
e3_fcmax=max(e3_fc);

r1_fcmin=min(valvula_pid_1_fc);
r1_fcmax=max(valvula_pid_1_fc);

r2_fcmin=min(valvula_pid_2_fc);
r2_fcmax=max(valvula_pid_2_fc);

r3_fcmin=min(valvula_pid_3_fc);
r3_fcmax=max(valvula_pid_3_fc);

%------------------------------------------------------------------------
% CPD para la vvula 1, factor de acoplamiento

- - 86
%------------------------------------------------------------------------
a_fc=newfis('fuzzy_proporcional_1_factor_coupling');

a_fc.input(1).name='FLOW ERROR 1, FACTOR COUPLING';
a_fc.input(1).range=[e1_fcmin e1_fcmax];
a_fc.input(1).mf(1).name='high negative';
a_fc.input(1).mf(1).type='trimf';
a_fc.input(1).mf(1).params=[-((e1_fcmax-e1_fcmin)/6) e1_fcmin e1_fcmin+((e1_fcmax-e1_fcmin)/6)];
a_fc.input(1).mf(2).name='medium negative';
a_fc.input(1).mf(2).type='trimf';
a_fc.input(1).mf(2).params=[e1_fcmin e1_fcmin+((e1_fcmax-e1_fcmin)/6) e1_fcmin+((e1_fcmax-
e1_fcmin)/6)*2];
a_fc.input(1).mf(3).name='small negative';
a_fc.input(1).mf(3).type='trimf';
a_fc.input(1).mf(3).params=[e1_fcmin+((e1_fcmax-e1_fcmin)/6) e1_fcmin+((e1_fcmax-e1_fcmin)/6)*2
e1_fcmin+((e1_fcmax-e1_fcmin)/6)*3];
a_fc.input(1).mf(4).name='ideal flow';
a_fc.input(1).mf(4).type='trimf';
a_fc.input(1).mf(4).params=[e1_fcmin+((e1_fcmax-e1_fcmin)/6)*2 e1_fcmin+((e1_fcmax-e1_fcmin)/6)*3
e1_fcmin+((e1_fcmax-e1_fcmin)/6)*4];
a_fc.input(1).mf(5).name='small positive';
a_fc.input(1).mf(5).type='trimf';
a_fc.input(1).mf(5).params=[e1_fcmin+((e1_fcmax-e1_fcmin)/6)*3 e1_fcmin+((e1_fcmax-e1_fcmin)/6)*4
e1_fcmin+((e1_fcmax-e1_fcmin)/6)*5];
a_fc.input(1).mf(6).name='medium positive';
a_fc.input(1).mf(6).type='trimf';
a_fc.input(1).mf(6).params=[e1_fcmin+((e1_fcmax-e1_fcmin)/6)*4 e1_fcmin+((e1_fcmax-e1_fcmin)/6)*5
e1_fcmin+((e1_fcmax-e1_fcmin)/6)*6];
a_fc.input(1).mf(7).name='high positive';
a_fc.input(1).mf(7).type='trimf';
a_fc.input(1).mf(7).params=[e1_fcmin+((e1_fcmax-e1_fcmin)/6)*5 e1_fcmax e1_fcmax+((e1_fcmax-
e1_fcmin)/6)];

figure(11)
plotmf(a_fc,'input',1)
title('UNIVERSE OF DISCURSE FOR FLOW ERROR 1, FACTOR COUPLING')

a_fc.output(1).name='OPENING VALVE 1, FACTOR COUPLING';
a_fc.output(1).range=[r1_fcmin r1_fcmax];
a_fc.output(1).mf(1).name='close completely'
a_fc.output(1).mf(1).type='trimf';
a_fc.output(1).mf(1).params=[-((r1_fcmax-r1_fcmin)/6) r1_fcmin r1_fcmin+((r1_fcmax-r1_fcmin)/6)];
a_fc.output(1).mf(2).name='medium close';
a_fc.output(1).mf(2).type='trimf';
a_fc.output(1).mf(2).params=[r1_fcmin r1_fcmin+((r1_fcmax-r1_fcmin)/6) r1_fcmin+((r1_fcmax-
r1_fcmin)/6)*2];
a_fc.output(1).mf(3).name='close a little';
a_fc.output(1).mf(3).type='trimf';
a_fc.output(1).mf(3).params=[r1_fcmin+((r1_fcmax-r1_fcmin)/6) r1_fcmin+((r1_fcmax-r1_fcmin)/6)*2
r1_fcmin+((r1_fcmax-r1_fcmin)/6)*3];
a_fc.output(1).mf(4).name='maintain';
a_fc.output(1).mf(4).type='trimf';
a_fc.output(1).mf(4).params=[r1_fcmin+((r1_fcmax-r1_fcmin)/6)*2 r1_fcmin+((r1_fcmax-r1_fcmin)/6)*3
r1_fcmin+((r1_fcmax-r1_fcmin)/6)*4];
a_fc.output(1).mf(5).name='open a little';
a_fc.output(1).mf(5).type='trimf';

- - 87
a_fc.output(1).mf(5).params=[r1_fcmin+((r1_fcmax-r1_fcmin)/6)*3 r1_fcmin+((r1_fcmax-r1_fcmin)/6)*4
r1_fcmin+((r1_fcmax-r1_fcmin)/6)*5];
a_fc.output(1).mf(6).name='medium open';
a_fc.output(1).mf(6).type='trimf';
a_fc.output(1).mf(6).params=[r1_fcmin+((r1_fcmax-r1_fcmin)/6)*4 r1_fcmin+((r1_fcmax-r1_fcmin)/6)*5
r1_fcmin+((r1_fcmax-r1_fcmin)/6)*6];
a_fc.output(1).mf(7).name='open completely';
a_fc.output(1).mf(7).type='trimf';
a_fc.output(1).mf(7).params=[r1_fcmin+((r1_fcmax-r1_fcmin)/6)*5 r1_fcmax r1_fcmax+((r1_fcmax-
r1_fcmin)/6)];

figure(12)
plotmf(a_fc,'output',1)
title('UNIVERSE OF DISCURSE FOR OPENING VALVE 1, FACTOR COUPLING')

a_fc.rule(1).antecedent=[1];
a_fc.rule(1).consequent=[1];
a_fc.rule(1).weight=1;
a_fc.rule(1).connection=1;
a_fc.rule(2).antecedent=[2];
a_fc.rule(2).consequent=[2];
a_fc.rule(2).weight=1;
a_fc.rule(2).connection=1;
a_fc.rule(3).antecedent=[3];
a_fc.rule(3).consequent=[3];
a_fc.rule(3).weight=1;
a_fc.rule(3).connection=1
a_fc.rule(4).antecedent=[4];
a_fc.rule(4).consequent=[4];
a_fc.rule(4).weight=1;
a_fc.rule(4).connection=1
a_fc.rule(5).antecedent=[5];
a_fc.rule(5).consequent=[5];
a_fc.rule(5).weight=1;
a_fc.rule(5).connection=1
a_fc.rule(6).antecedent=[6];
a_fc.rule(6).consequent=[6];
a_fc.rule(6).weight=1;
a_fc.rule(6).connection=1
a_fc.rule(7).antecedent=[7];
a_fc.rule(7).consequent=[7];
a_fc.rule(7).weight=1;
a_fc.rule(7).connection=1

ruleedit(a_fc);
%------------------------------------------------------------------------
% CPD para la vlvula 2, factor de acoplamiento
%------------------------------------------------------------------------
b_fc=newfis('fuzzy_proporcional_2_factor_coupling');

b_fc.input(1).name='FLOW ERROR 2, FACTOR COUPLING';
b_fc.input(1).range=[e2_fcmin e2_fcmax];
b_fc.input(1).mf(1).name='high negative';
b_fc.input(1).mf(1).type='trimf';
b_fc.input(1).mf(1).params=[-((e2_fcmax-e2_fcmin)/6) e2_fcmin e2_fcmin+((e2_fcmax-e2_fcmin)/6)];
b_fc.input(1).mf(2).name='medium negative';

- - 88
b_fc.input(1).mf(2).type='trimf';
b_fc.input(1).mf(2).params=[e2_fcmin e2_fcmin+((e2_fcmax-e2_fcmin)/6) e2_fcmin+((e2_fcmax-
e2_fcmin)/6)*2];
b_fc.input(1).mf(3).name='small negative';
b_fc.input(1).mf(3).type='trimf';
b_fc.input(1).mf(3).params=[e2_fcmin+((e2_fcmax-e2_fcmin)/6) e2_fcmin+((e2_fcmax-e2_fcmin)/6)*2
e2_fcmin+((e2_fcmax-e2_fcmin)/6)*3];
b_fc.input(1).mf(4).name='ideal flow';
b_fc.input(1).mf(4).type='trimf';
b_fc.input(1).mf(4).params=[e2_fcmin+((e2_fcmax-e2_fcmin)/6)*2 e2_fcmin+((e2_fcmax-e2_fcmin)/6)*3
e2_fcmin+((e2_fcmax-e2_fcmin)/6)*4];
b_fc.input(1).mf(5).name='small positive';
b_fc.input(1).mf(5).type='trimf';
b_fc.input(1).mf(5).params=[e2_fcmin+((e2_fcmax-e2_fcmin)/6)*3 e2_fcmin+((e2_fcmax-e2_fcmin)/6)*4
e2_fcmin+((e2_fcmax-e2_fcmin)/6)*5];
b_fc.input(1).mf(6).name='medium positive';
b_fc.input(1).mf(6).type='trimf';
b_fc.input(1).mf(6).params=[e2_fcmin+((e2_fcmax-e2_fcmin)/6)*4 e2_fcmin+((e2_fcmax-e2_fcmin)/6)*5
e2_fcmin+((e2_fcmax-e2_fcmin)/6)*6];
b_fc.input(1).mf(7).name='high positive';
b_fc.input(1).mf(7).type='trimf';
b_fc.input(1).mf(7).params=[e2_fcmin+((e2_fcmax-e2_fcmin)/6)*5 e2_fcmax e2_fcmax+((e2_fcmax-
e2_fcmin)/6)];

figure(13)
plotmf(b_fc,'input',1)
title('UNIVERSE OF DISCURSE FOR FLOW ERROR 2, FACTOR COUPLING')

b_fc.output(1).name='OPENING VALVE 2, FACTOR COUPLING';
b_fc.output(1).range=[r2_fcmin r2_fcmax];
b_fc.output(1).mf(1).name='open completely'
b_fc.output(1).mf(1).type='trimf';
b_fc.output(1).mf(1).params=[-((r2_fcmax-r2_fcmin)/6) r2_fcmin r2_fcmin+((r2_fcmax-r2_fcmin)/6)];
b_fc.output(1).mf(2).name='medium open';
b_fc.output(1).mf(2).type='trimf';
b_fc.output(1).mf(2).params=[r2_fcmin r2_fcmin+((r2_fcmax-r2_fcmin)/6) r2_fcmin+((r2_fcmax-
r2_fcmin)/6)*2];
b_fc.output(1).mf(3).name='open a little';
b_fc.output(1).mf(3).type='trimf';
b_fc.output(1).mf(3).params=[r2_fcmin+((r2_fcmax-r2_fcmin)/6) r2_fcmin+((r2_fcmax-r2_fcmin)/6)*2
r2_fcmin+((r2_fcmax-r2_fcmin)/6)*3];
b_fc.output(1).mf(4).name='maintain';
b_fc.output(1).mf(4).type='trimf';
b_fc.output(1).mf(4).params=[r2_fcmin+((r2_fcmax-r2_fcmin)/6)*2 r2_fcmin+((r2_fcmax-r2_fcmin)/6)*3
r2_fcmin+((r2_fcmax-r2_fcmin)/6)*4];
b_fc.output(1).mf(5).name='close a little';
b_fc.output(1).mf(5).type='trimf';
b_fc.output(1).mf(5).params=[r2_fcmin+((r2_fcmax-r2_fcmin)/6)*3 r2_fcmin+((r2_fcmax-r2_fcmin)/6)*4
r2_fcmin+((r2_fcmax-r2_fcmin)/6)*5];
b_fc.output(1).mf(6).name='medium close';
b_fc.output(1).mf(6).type='trimf';
b_fc.output(1).mf(6).params=[r2_fcmin+((r2_fcmax-r2_fcmin)/6)*4 r2_fcmin+((r2_fcmax-r2_fcmin)/6)*5
r2_fcmin+((r2_fcmax-r2_fcmin)/6)*6];
b_fc.output(1).mf(7).name='close completely';
b_fc.output(1).mf(7).type='trimf';

- - 89
b_fc.output(1).mf(7).params=[r2_fcmin+((r2_fcmax-r2_fcmin)/6)*5 r2_fcmax r2_fcmax+((r2_fcmax-
r2_fcmin)/6)];

figure(14)
plotmf(b_fc,'output',1)
title('UNIVERSE OF DISCURSE FOR OPENING VALVE 2, FACTOR COUPLING')

b_fc.rule(1).antecedent=[1];
b_fc.rule(1).consequent=[1];
b_fc.rule(1).weight=1;
b_fc.rule(1).connection=1;
b_fc.rule(2).antecedent=[2];
b_fc.rule(2).consequent=[2];
b_fc.rule(2).weight=1;
b_fc.rule(2).connection=1;
b_fc.rule(3).antecedent=[3];
b_fc.rule(3).consequent=[3];
b_fc.rule(3).weight=1;
b_fc.rule(3).connection=1
b_fc.rule(4).antecedent=[4];
b_fc.rule(4).consequent=[4];
b_fc.rule(4).weight=1;
b_fc.rule(4).connection=1
b_fc.rule(5).antecedent=[5];
b_fc.rule(5).consequent=[5];
b_fc.rule(5).weight=1;
b_fc.rule(5).connection=1
b_fc.rule(6).antecedent=[6];
b_fc.rule(6).consequent=[6];
b_fc.rule(6).weight=1;
b_fc.rule(6).connection=1
b_fc.rule(7).antecedent=[7];
b_fc.rule(7).consequent=[7];
b_fc.rule(7).weight=1;
b_fc.rule(7).connection=1

ruleedit(b_fc);

%------------------------------------------------------------------------
% CPD para la vlvula 3 es:
%------------------------------------------------------------------------
c_fc=newfis('fuzzy_proporcional_3_factor_coupling');

c_fc.input(1).name='FLOW ERROR 3, FACTOR COUPLING';
c_fc.input(1).range=[e3_fcmin e3_fcmax];
c_fc.input(1).mf(1).name='high negative';
c_fc.input(1).mf(1).type='trimf';
c_fc.input(1).mf(1).params=[-((e3_fcmax-e3_fcmin)/6) e3_fcmin e3_fcmin+((e3_fcmax-e3_fcmin)/6)];
c_fc.input(1).mf(2).name='medium negative';
c_fc.input(1).mf(2).type='trimf';
c_fc.input(1).mf(2).params=[e3_fcmin e3_fcmin+((e3_fcmax-e3_fcmin)/6) e3_fcmin+((e3_fcmax-
e3_fcmin)/6)*2];
c_fc.input(1).mf(3).name='small negative';
c_fc.input(1).mf(3).type='trimf';
c_fc.input(1).mf(3).params=[e3_fcmin+((e3_fcmax-e3_fcmin)/6) e3_fcmin+((e3_fcmax-e3_fcmin)/6)*2
e3_fcmin+((e3_fcmax-e3_fcmin)/6)*3];

- - 90
c_fc.input(1).mf(4).name='ideal flow';
c_fc.input(1).mf(4).type='trimf';
c_fc.input(1).mf(4).params=[e3_fcmin+((e3_fcmax-e3_fcmin)/6)*2 e3_fcmin+((e3_fcmax-e3_fcmin)/6)*3
e3_fcmin+((e3_fcmax-e3_fcmin)/6)*4];
c_fc.input(1).mf(5).name='small positive';
c_fc.input(1).mf(5).type='trimf';
c_fc.input(1).mf(5).params=[e3_fcmin+((e3_fcmax-e3_fcmin)/6)*3 e3_fcmin+((e3_fcmax-e3_fcmin)/6)*4
e3_fcmin+((e3_fcmax-e3_fcmin)/6)*5];
c_fc.input(1).mf(6).name='medium positive';
c_fc.input(1).mf(6).type='trimf';
c_fc.input(1).mf(6).params=[e3_fcmin+((e3_fcmax-e3_fcmin)/6)*4 e3_fcmin+((e3_fcmax-e3_fcmin)/6)*5
e3_fcmin+((e3_fcmax-e3_fcmin)/6)*6];
c_fc.input(1).mf(7).name='high positive';
c_fc.input(1).mf(7).type='trimf';
c_fc.input(1).mf(7).params=[e3_fcmin+((e3_fcmax-e3_fcmin)/6)*5 e3_fcmax e3_fcmax+((e3_fcmax-
e3_fcmin)/6)];

figure(15)
plotmf(c_fc,'input',1)
title('UNIVERSE OF DISCURSE FOR FLOW ERROR 3, FACTOR COUPLING')

c_fc.output(1).name='OPENING VALVE 3, FACTOR COUPLING';
c_fc.output(1).range=[r3_fcmin r3_fcmax];
c_fc.output(1).mf(1).name='open completely'
c_fc.output(1).mf(1).type='trimf';
c_fc.output(1).mf(1).params=[-((r3_fcmax-r3_fcmin)/6) r3_fcmin r3_fcmin+((r3_fcmax-r3_fcmin)/6)];
c_fc.output(1).mf(2).name='medium open';
c_fc.output(1).mf(2).type='trimf';
c_fc.output(1).mf(2).params=[r3_fcmin r3_fcmin+((r3_fcmax-r3_fcmin)/6) r3_fcmin+((r3_fcmax-
r3_fcmin)/6)*2];
c_fc.output(1).mf(3).name='open a little';
c_fc.output(1).mf(3).type='trimf';
c_fc.output(1).mf(3).params=[r3_fcmin+((r3_fcmax-r3_fcmin)/6) r3_fcmin+((r3_fcmax-r3_fcmin)/6)*2
r3_fcmin+((r3_fcmax-r3_fcmin)/6)*3];
c_fc.output(1).mf(4).name='maintain';
c_fc.output(1).mf(4).type='trimf';
c_fc.output(1).mf(4).params=[r3_fcmin+((r3_fcmax-r3_fcmin)/6)*2 r3_fcmin+((r3_fcmax-r3_fcmin)/6)*3
r3_fcmin+((r3_fcmax-r3_fcmin)/6)*4];
c_fc.output(1).mf(5).name='close a little';
c_fc.output(1).mf(5).type='trimf';
c_fc.output(1).mf(5).params=[r3_fcmin+((r3_fcmax-r3_fcmin)/6)*3 r3_fcmin+((r3_fcmax-r3_fcmin)/6)*4
r3_fcmin+((r3_fcmax-r3_fcmin)/6)*5];
c_fc.output(1).mf(6).name='medium close';
c_fc.output(1).mf(6).type='trimf';
c_fc.output(1).mf(6).params=[r3_fcmin+((r3_fcmax-r3_fcmin)/6)*4 r3_fcmin+((r3_fcmax-r3_fcmin)/6)*5
r3_fcmin+((r3_fcmax-r3_fcmin)/6)*6];
c_fc.output(1).mf(7).name='close completely';
c_fc.output(1).mf(7).type='trimf';
c_fc.output(1).mf(7).params=[r3_fcmin+((r3_fcmax-r3_fcmin)/6)*5 r3_fcmax r3_fcmax+((r3_fcmax-
r3_fcmin)/6)];

figure(16)
plotmf(c_fc,'output',1)
title('UNIVERSE OF DISCURSE FOR THE OPENING OF THE VALVE 3, FACTOR COUPLING')

c_fc.rule(1).antecedent=[1];

- - 91
c_fc.rule(1).consequent=[1];
c_fc.rule(1).weight=1;
c_fc.rule(1).connection=1;
c_fc.rule(2).antecedent=[2];
c_fc.rule(2).consequent=[2];
c_fc.rule(2).weight=1;
c_fc.rule(2).connection=1;
c_fc.rule(3).antecedent=[3];
c_fc.rule(3).consequent=[3];
c_fc.rule(3).weight=1;
c_fc.rule(3).connection=1
c_fc.rule(4).antecedent=[4];
c_fc.rule(4).consequent=[4];
c_fc.rule(4).weight=1;
c_fc.rule(4).connection=1
c_fc.rule(5).antecedent=[5];
c_fc.rule(5).consequent=[5];
c_fc.rule(5).weight=1;
c_fc.rule(5).connection=1
c_fc.rule(6).antecedent=[6];
c_fc.rule(6).consequent=[6];
c_fc.rule(6).weight=1;
c_fc.rule(6).connection=1
c_fc.rule(7).antecedent=[7];
c_fc.rule(7).consequent=[7];
c_fc.rule(7).weight=1;
c_fc.rule(7).connection=1

ruleedit(c_fc);
%------------------------------------------------------------------------
disp('ejecute el programa en simulink eleccin de la valvula fuzzy, eleccin del voltaje fuzzy y corriente
fuzzy_factor coupling as como grficas del error')
disp('ejecute el programa en simulink referencias factor coupling y total decoupling')
%------------------------------------------------------------------------

%------------------------------------------------------------------------
% PROGRAMA PARA LA DETERMINACIN REAL DE LOS GASTOS
%------------------------------------------------------------------------
ent1min=0
ent1max=max(entrada1)

ent2min=0
ent2max=max(entrada2)

ent3min=0
ent3max=max(entrada3)

g1min=0
g1max=max(entrada1)

g2min=0
g2max=max(entrada2)

g3min=0
g3max=max(entrada3)
%------------------------------------------------------------------------

- - 92
% CPD para el gasto 1
%------------------------------------------------------------------------
f=newfis('gasto1_fuzzy');

f.input(1).name='GASTO 1 REQUERIDO';
f.input(1).range=[ent1min ent1max];
f.input(1).mf(1).name='al 15%';
f.input(1).mf(1).type='trimf';
f.input(1).mf(1).params=[-((ent1max-ent1min)/6) ent1min ent1min+((ent1max-ent1min)/6)];
f.input(1).mf(2).name='al 30%';
f.input(1).mf(2).type='trimf';
f.input(1).mf(2).params=[ent1min ent1min+((ent1max-ent1min)/6) ent1min+((ent1max-ent1min)/6)*2];
f.input(1).mf(3).name='al 45%';
f.input(1).mf(3).type='trimf';
f.input(1).mf(3).params=[ent1min+((ent1max-ent1min)/6) ent1min+((ent1max-ent1min)/6)*2
ent1min+((ent1max-ent1min)/6)*3];
f.input(1).mf(4).name='al 60%';
f.input(1).mf(4).type='trimf';
f.input(1).mf(4).params=[ent1min+((ent1max-ent1min)/6)*2 ent1min+((ent1max-ent1min)/6)*3
ent1min+((ent1max-ent1min)/6)*4];
f.input(1).mf(5).name='al 75%';
f.input(1).mf(5).type='trimf';
f.input(1).mf(5).params=[ent1min+((ent1max-ent1min)/6)*3 ent1min+((ent1max-ent1min)/6)*4
ent1min+((ent1max-ent1min)/6)*5];
f.input(1).mf(6).name='al 90%';
f.input(1).mf(6).type='trimf';
f.input(1).mf(6).params=[ent1min+((ent1max-ent1min)/6)*4 ent1min+((ent1max-ent1min)/6)*5
ent1min+((ent1max-ent1min)/6)*6];
f.input(1).mf(7).name='al 100%';
f.input(1).mf(7).type='trimf';
f.input(1).mf(7).params=[ent1min+((ent1max-ent1min)/6)*5 ent1max ent1max+((ent1max-ent1min)/6)];

figure(17)
plotmf(f,'input',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DEL GASTO 1 DEL SISTEMA')

f.output(1).name='GASTO 1 REAL';
f.output(1).range=[g1min g1max];
f.output(1).mf(1).name='al 15%';
f.output(1).mf(1).type='trimf';
f.output(1).mf(1).params=[-((g1max-g1min)/6) g1min g1min+((g1max-g1min)/6)];
f.output(1).mf(2).name='al 30%';
f.output(1).mf(2).type='trimf';
f.output(1).mf(2).params=[g1min g1min+((g1max-g1min)/6) g1min+((g1max-g1min)/6)*2];
f.output(1).mf(3).name='al 45%';
f.output(1).mf(3).type='trimf';
f.output(1).mf(3).params=[g1min+((g1max-g1min)/6) g1min+((g1max-g1min)/6)*2 g1min+((g1max-
g1min)/6)*3];
f.output(1).mf(4).name='al 60%';
f.output(1).mf(4).type='trimf';
f.output(1).mf(4).params=[g1min+((g1max-g1min)/6)*2 g1min+((g1max-g1min)/6)*3 g1min+((g1max-
g1min)/6)*4];
f.output(1).mf(5).name='al 75%';
f.output(1).mf(5).type='trimf';
f.output(1).mf(5).params=[g1min+((g1max-g1min)/6)*3 g1min+((g1max-g1min)/6)*4 g1min+((g1max-
g1min)/6)*5];

- - 93
f.output(1).mf(6).name='al 90%';
f.output(1).mf(6).type='trimf';
f.output(1).mf(6).params=[g1min+((g1max-g1min)/6)*4 g1min+((g1max-g1min)/6)*5 g1min+((g1max-
g1min)/6)*6];
f.output(1).mf(7).name='al 100%';
f.output(1).mf(7).type='trimf';
f.output(1).mf(7).params=[g1min+((g1max-g1min)/6)*5 g1max g1max+((g1max-g1min)/6)];

figure(18)
plotmf(f,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO TUBERIA 1')

f.rule(1).antecedent=[1];
f.rule(1).consequent=[1];
f.rule(1).weight=1;
f.rule(1).connection=1;
f.rule(2).antecedent=[2];
f.rule(2).consequent=[2];
f.rule(2).weight=1;
f.rule(2).connection=1;
f.rule(3).antecedent=[3];
f.rule(3).consequent=[3];
f.rule(3).weight=1;
f.rule(3).connection=1
f.rule(4).antecedent=[4];
f.rule(4).consequent=[4];
f.rule(4).weight=1;
f.rule(4).connection=1
f.rule(5).antecedent=[5];
f.rule(5).consequent=[5];
f.rule(5).weight=1;
f.rule(5).connection=1
f.rule(6).antecedent=[6];
f.rule(6).consequent=[6];
f.rule(6).weight=1;
f.rule(6).connection=1
f.rule(7).antecedent=[7];
f.rule(7).consequent=[7];
f.rule(7).weight=1;
f.rule(7).connection=1

ruleedit(f);

%------------------------------------------------------------------------
% CPD para el gasto 2
%------------------------------------------------------------------------
h=newfis('gasto2_fuzzy');

h.input(1).name='GASTO 2 REQUERIDO';
h.input(1).range=[ent2min ent2max];
h.input(1).mf(1).name='al 15%';
h.input(1).mf(1).type='trimf';
h.input(1).mf(1).params=[-((ent2max-ent2min)/6) ent2min ent2min+((ent2max-ent2min)/6)];
h.input(1).mf(2).name='al 30%';
h.input(1).mf(2).type='trimf';
h.input(1).mf(2).params=[ent2min ent2min+((ent2max-ent2min)/6) ent2min+((ent2max-ent2min)/6)*2];

- - 94
h.input(1).mf(3).name='al 45%';
h.input(1).mf(3).type='trimf';
h.input(1).mf(3).params=[ent2min+((ent2max-ent2min)/6) ent2min+((ent2max-ent2min)/6)*2
ent2min+((ent2max-ent2min)/6)*3];
h.input(1).mf(4).name='al 60%';
h.input(1).mf(4).type='trimf';
h.input(1).mf(4).params=[ent2min+((ent2max-ent2min)/6)*2 ent2min+((ent2max-ent2min)/6)*3
ent2min+((ent2max-ent2min)/6)*4];
h.input(1).mf(5).name='al 75%';
h.input(1).mf(5).type='trimf';
h.input(1).mf(5).params=[ent2min+((ent2max-ent2min)/6)*3 ent2min+((ent2max-ent2min)/6)*4
ent2min+((ent2max-ent2min)/6)*5];
h.input(1).mf(6).name='al 90%';
h.input(1).mf(6).type='trimf';
h.input(1).mf(6).params=[ent2min+((ent2max-ent2min)/6)*4 ent2min+((ent2max-ent2min)/6)*5
ent2min+((ent2max-ent2min)/6)*6];
h.input(1).mf(7).name='al 100%';
h.input(1).mf(7).type='trimf';
h.input(1).mf(7).params=[ent2min+((ent2max-ent2min)/6)*5 ent2max ent2max+((ent2max-ent2min)/6)];

figure(19)
plotmf(h,'input',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DEL GASTO 2 DEL SISTEMA')

h.output(1).name='GASTO 2 REAL';
h.output(1).range=[g2min g2max];
h.output(1).mf(1).name='al 15%';
h.output(1).mf(1).type='trimf';
h.output(1).mf(1).params=[-((g2max-g2min)/6) g2min g2min+((g2max-g2min)/6)];
h.output(1).mf(2).name='al 30%';
h.output(1).mf(2).type='trimf';
h.output(1).mf(2).params=[g2min g2min+((g2max-g2min)/6) g2min+((g2max-g2min)/6)*2];
h.output(1).mf(3).name='al 45%';
h.output(1).mf(3).type='trimf';
h.output(1).mf(3).params=[g2min+((g2max-g2min)/6) g2min+((g2max-g2min)/6)*2 g2min+((g2max-
g2min)/6)*3];
h.output(1).mf(4).name='al 60%';
h.output(1).mf(4).type='trimf';
h.output(1).mf(4).params=[g2min+((g2max-g2min)/6)*2 g2min+((g2max-g2min)/6)*3 g2min+((g2max-
g2min)/6)*4];
h.output(1).mf(5).name='al 75%';
h.output(1).mf(5).type='trimf';
h.output(1).mf(5).params=[g2min+((g2max-g2min)/6)*3 g2min+((g2max-g2min)/6)*4 g2min+((g2max-
g2min)/6)*5];
h.output(1).mf(6).name='al 90%';
h.output(1).mf(6).type='trimf';
h.output(1).mf(6).params=[g2min+((g2max-g2min)/6)*4 g2min+((g2max-g2min)/6)*5 g2min+((g2max-
g2min)/6)*6];
h.output(1).mf(7).name='al 100%';
h.output(1).mf(7).type='trimf';
h.output(1).mf(7).params=[g2min+((g2max-g2min)/6)*5 g2max g2max+((g2max-g2min)/6)];

figure(20)
plotmf(h,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO TUBERIA 1')


- - 95
h.rule(1).antecedent=[1];
h.rule(1).consequent=[1];
h.rule(1).weight=1;
h.rule(1).connection=1;
h.rule(2).antecedent=[2];
h.rule(2).consequent=[2];
h.rule(2).weight=1;
h.rule(2).connection=1;
h.rule(3).antecedent=[3];
h.rule(3).consequent=[3];
h.rule(3).weight=1;
h.rule(3).connection=1
h.rule(4).antecedent=[4];
h.rule(4).consequent=[4];
h.rule(4).weight=1;
h.rule(4).connection=1
h.rule(5).antecedent=[5];
h.rule(5).consequent=[5];
h.rule(5).weight=1;
h.rule(5).connection=1
h.rule(6).antecedent=[6];
h.rule(6).consequent=[6];
h.rule(6).weight=1;
h.rule(6).connection=1
h.rule(7).antecedent=[7];
h.rule(7).consequent=[7];
h.rule(7).weight=1;
h.rule(7).connection=1

ruleedit(h);

%------------------------------------------------------------------------
% CPD para el gasto 3
%------------------------------------------------------------------------
j=newfis('gasto3_fuzzy');

j.input(1).name='GASTO 3 REQUERIDO';
j.input(1).range=[ent3min ent3max];
j.input(1).mf(1).name='al 15%';
j.input(1).mf(1).type='trimf';
j.input(1).mf(1).params=[-((ent3max-ent3min)/6) ent3min ent3min+((ent3max-ent3min)/6)];
j.input(1).mf(2).name='al 30%';
j.input(1).mf(2).type='trimf';
j.input(1).mf(2).params=[ent3min ent3min+((ent3max-ent3min)/6) ent3min+((ent3max-ent3min)/6)*2];
j.input(1).mf(3).name='al 45%';
j.input(1).mf(3).type='trimf';
j.input(1).mf(3).params=[ent3min+((ent3max-ent3min)/6) ent3min+((ent3max-ent3min)/6)*2
ent3min+((ent3max-ent3min)/6)*3];
j.input(1).mf(4).name='al 60%';
j.input(1).mf(4).type='trimf';
j.input(1).mf(4).params=[ent3min+((ent3max-ent3min)/6)*2 ent3min+((ent3max-ent3min)/6)*3
ent3min+((ent3max-ent3min)/6)*4];
j.input(1).mf(5).name='al 75%';
j.input(1).mf(5).type='trimf';
j.input(1).mf(5).params=[ent3min+((ent3max-ent3min)/6)*3 ent3min+((ent3max-ent3min)/6)*4
ent3min+((ent3max-ent3min)/6)*5];

- - 96
j.input(1).mf(6).name='al 90%';
j.input(1).mf(6).type='trimf';
j.input(1).mf(6).params=[ent3min+((ent3max-ent3min)/6)*4 ent3min+((ent3max-ent3min)/6)*5
ent3min+((ent3max-ent3min)/6)*6];
j.input(1).mf(7).name='al 100%';
j.input(1).mf(7).type='trimf';
j.input(1).mf(7).params=[ent3min+((ent3max-ent3min)/6)*5 ent3max ent3max+((ent3max-ent3min)/6)];

figure(21)
plotmf(j,'input',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DEL GASTO 3 DEL SISTEMA')

j.output(1).name='GASTO 3 REAL';
j.output(1).range=[g3min g3max];
j.output(1).mf(1).name='al 15%';
j.output(1).mf(1).type='trimf';
j.output(1).mf(1).params=[-((g3max-g3min)/6) g3min g3min+((g3max-g3min)/6)];
j.output(1).mf(2).name='al 30%';
j.output(1).mf(2).type='trimf';
j.output(1).mf(2).params=[g3min g3min+((g3max-g3min)/6) g3min+((g3max-g3min)/6)*2];
j.output(1).mf(3).name='al 45%';
j.output(1).mf(3).type='trimf';
j.output(1).mf(3).params=[g3min+((g3max-g3min)/6) g3min+((g3max-g3min)/6)*2 g3min+((g3max-
g3min)/6)*3];
j.output(1).mf(4).name='al 60%';
j.output(1).mf(4).type='trimf';
j.output(1).mf(4).params=[g3min+((g3max-g3min)/6)*2 g3min+((g3max-g3min)/6)*3 g3min+((g3max-
g3min)/6)*4];
j.output(1).mf(5).name='al 75%';
j.output(1).mf(5).type='trimf';
j.output(1).mf(5).params=[g3min+((g3max-g3min)/6)*3 g3min+((g3max-g3min)/6)*4 g3min+((g3max-
g3min)/6)*5];
j.output(1).mf(6).name='al 90%';
j.output(1).mf(6).type='trimf';
j.output(1).mf(6).params=[g3min+((g3max-g3min)/6)*4 g3min+((g3max-g3min)/6)*5 g3min+((g3max-
g3min)/6)*6];
j.output(1).mf(7).name='al 100%';
j.output(1).mf(7).type='trimf';
j.output(1).mf(7).params=[g3min+((g3max-g3min)/6)*5 g3max g3max+((g3max-g3min)/6)];

figure(22)
plotmf(j,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO TUBERIA 3')

j.rule(1).antecedent=[1];
j.rule(1).consequent=[1];
j.rule(1).weight=1;
j.rule(1).connection=1;
j.rule(2).antecedent=[2];
j.rule(2).consequent=[2];
j.rule(2).weight=1;
j.rule(2).connection=1;
j.rule(3).antecedent=[3];
j.rule(3).consequent=[3];
j.rule(3).weight=1;
j.rule(3).connection=1

- - 97
j.rule(4).antecedent=[4];
j.rule(4).consequent=[4];
j.rule(4).weight=1;
j.rule(4).connection=1
j.rule(5).antecedent=[5];
j.rule(5).consequent=[5];
j.rule(5).weight=1;
j.rule(5).connection=1
j.rule(6).antecedent=[6];
j.rule(6).consequent=[6];
j.rule(6).weight=1;
j.rule(6).connection=1
j.rule(7).antecedent=[7];
j.rule(7).consequent=[7];
j.rule(7).weight=1;
j.rule(7).connection=1

ruleedit(j);

%------------------------------------------------------------------------
% Determinacin real de los gastos factor de acoplamiento
%------------------------------------------------------------------------
ent1min_fc=min(entrada1_fc)
ent1max_fc=max(entrada1_fc)

ent2min_fc=min(entrada2_fc)
ent2max_fc=max(entrada2_fc)

ent3min_fc=min(entrada3_fc)
ent3max_fc=max(entrada3_fc)

g1min_fc=min(entrada1_fc)
g1max_fc=max(entrada1_fc)

g2min_fc=min(entrada2_fc)
g2max_fc=max(entrada2_fc)

g3min_fc=min(entrada3_fc)
g3max_fc=max(entrada3_fc)

%------------------------------------------------------------------------
% CPD para el gasto 1 factor de acoplamiento
%------------------------------------------------------------------------
k=newfis('gasto1_fuzzy_fc');

k.input(1).name='GASTO 1 REQUERIDO, FACTOR DE ACOPLAMIENTO';
k.input(1).range=[ent1min_fc ent1max_fc];
k.input(1).mf(1).name='al 15%';
k.input(1).mf(1).type='trimf';
k.input(1).mf(1).params=[-((ent1max_fc-ent1min_fc)/6) ent1min_fc ent1min_fc+((ent1max_fc-
ent1min_fc)/6)];
k.input(1).mf(2).name='al 30%';
k.input(1).mf(2).type='trimf';
k.input(1).mf(2).params=[ent1min_fc ent1min_fc+((ent1max_fc-ent1min_fc)/6) ent1min_fc+((ent1max_fc-
ent1min_fc)/6)*2];
k.input(1).mf(3).name='al 45%';

- - 98
k.input(1).mf(3).type='trimf';
k.input(1).mf(3).params=[ent1min_fc+((ent1max_fc-ent1min_fc)/6) ent1min_fc+((ent1max_fc-
ent1min_fc)/6)*2 ent1min_fc+((ent1max_fc-ent1min_fc)/6)*3];
k.input(1).mf(4).name='al 60%';
k.input(1).mf(4).type='trimf';
k.input(1).mf(4).params=[ent1min_fc+((ent1max_fc-ent1min_fc)/6)*2 ent1min_fc+((ent1max_fc-
ent1min_fc)/6)*3 ent1min_fc+((ent1max_fc-ent1min_fc)/6)*4];
k.input(1).mf(5).name='al 75%';
k.input(1).mf(5).type='trimf';
k.input(1).mf(5).params=[ent1min_fc+((ent1max_fc-ent1min_fc)/6)*3 ent1min_fc+((ent1max_fc-
ent1min_fc)/6)*4 ent1min_fc+((ent1max_fc-ent1min_fc)/6)*5];
k.input(1).mf(6).name='al 90%';
k.input(1).mf(6).type='trimf';
k.input(1).mf(6).params=[ent1min_fc+((ent1max_fc-ent1min_fc)/6)*4 ent1min_fc+((ent1max_fc-
ent1min_fc)/6)*5 ent1min_fc+((ent1max_fc-ent1min_fc)/6)*6];
k.input(1).mf(7).name='al 100%';
k.input(1).mf(7).type='trimf';
k.input(1).mf(7).params=[ent1min_fc+((ent1max_fc-ent1min_fc)/6)*5 ent1max_fc
ent1max_fc+((ent1max_fc-ent1min_fc)/6)];

figure(23)
plotmf(k,'input',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DEL GASTO 1 DEL SISTEMA, FACTOR DE
ACOPLAMIENTO')

k.output(1).name='GASTO 1 REAL, FACTOR DE ACOPLAMIENTO';
k.output(1).range=[g1min_fc g1max_fc];
k.output(1).mf(1).name='al 15%';
k.output(1).mf(1).type='trimf';
k.output(1).mf(1).params=[-((g1max_fc-g1min_fc)/6) g1min_fc g1min_fc+((g1max_fc-g1min_fc)/6)];
k.output(1).mf(2).name='al 30%';
k.output(1).mf(2).type='trimf';
k.output(1).mf(2).params=[g1min_fc g1min_fc+((g1max_fc-g1min_fc)/6) g1min_fc+((g1max_fc-
g1min_fc)/6)*2];
k.output(1).mf(3).name='al 45%';
k.output(1).mf(3).type='trimf';
k.output(1).mf(3).params=[g1min_fc+((g1max_fc-g1min_fc)/6) g1min_fc+((g1max_fc-g1min_fc)/6)*2
g1min_fc+((g1max_fc-g1min_fc)/6)*3];
k.output(1).mf(4).name='al 60%';
k.output(1).mf(4).type='trimf';
k.output(1).mf(4).params=[g1min_fc+((g1max_fc-g1min_fc)/6)*2 g1min_fc+((g1max_fc-g1min_fc)/6)*3
g1min_fc+((g1max_fc-g1min_fc)/6)*4];
k.output(1).mf(5).name='al 75%';
k.output(1).mf(5).type='trimf';
k.output(1).mf(5).params=[g1min_fc+((g1max_fc-g1min_fc)/6)*3 g1min_fc+((g1max_fc-g1min_fc)/6)*4
g1min_fc+((g1max_fc-g1min_fc)/6)*5];
k.output(1).mf(6).name='al 90%';
k.output(1).mf(6).type='trimf';
k.output(1).mf(6).params=[g1min_fc+((g1max_fc-g1min_fc)/6)*4 g1min_fc+((g1max_fc-g1min_fc)/6)*5
g1min_fc+((g1max_fc-g1min_fc)/6)*6];
k.output(1).mf(7).name='al 100%';
k.output(1).mf(7).type='trimf';
k.output(1).mf(7).params=[g1min_fc+((g1max_fc-g1min_fc)/6)*5 g1max_fc g1max_fc+((g1max_fc-
g1min_fc)/6)];

figure(24)

- - 99
plotmf(k,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO TUBERIA 1, FACTOR DE
ACOPLAMIENTO')

k.rule(1).antecedent=[1];
k.rule(1).consequent=[1];
k.rule(1).weight=1;
k.rule(1).connection=1;
k.rule(2).antecedent=[2];
k.rule(2).consequent=[2];
k.rule(2).weight=1;
k.rule(2).connection=1;
k.rule(3).antecedent=[3];
k.rule(3).consequent=[3];
k.rule(3).weight=1;
k.rule(3).connection=1
k.rule(4).antecedent=[4];
k.rule(4).consequent=[4];
k.rule(4).weight=1;
k.rule(4).connection=1
k.rule(5).antecedent=[5];
k.rule(5).consequent=[5];
k.rule(5).weight=1;
k.rule(5).connection=1
k.rule(6).antecedent=[6];
k.rule(6).consequent=[6];
k.rule(6).weight=1;
k.rule(6).connection=1
k.rule(7).antecedent=[7];
k.rule(7).consequent=[7];
k.rule(7).weight=1;
k.rule(7).connection=1

ruleedit(k);

%------------------------------------------------------------------------
% CPD para el gasto 2 factor de acoplamiento
%------------------------------------------------------------------------
l=newfis('gasto2_fuzzy_fc');

l.input(1).name='GASTO 2 REQUERIDO, FACTOR DE ACOPLAMIENTO';
l.input(1).range=[ent2min_fc ent2max_fc];
l.input(1).mf(1).name='al 15%';
l.input(1).mf(1).type='trimf';
l.input(1).mf(1).params=[-((ent2max_fc-ent2min_fc)/6) ent2min_fc ent2min_fc+((ent2max_fc-
ent2min_fc)/6)];
l.input(1).mf(2).name='al 30%';
l.input(1).mf(2).type='trimf';
l.input(1).mf(2).params=[ent2min_fc ent2min_fc+((ent2max_fc-ent2min_fc)/6) ent2min_fc+((ent2max_fc-
ent2min_fc)/6)*2];
l.input(1).mf(3).name='al 45%';
l.input(1).mf(3).type='trimf';
l.input(1).mf(3).params=[ent2min_fc+((ent2max_fc-ent2min_fc)/6) ent2min_fc+((ent2max_fc-
ent2min_fc)/6)*2 ent2min_fc+((ent2max_fc-ent2min_fc)/6)*3];
l.input(1).mf(4).name='al 60%';
l.input(1).mf(4).type='trimf';

- - 100
l.input(1).mf(4).params=[ent2min_fc+((ent2max_fc-ent2min_fc)/6)*2 ent2min_fc+((ent2max_fc-
ent2min_fc)/6)*3 ent2min_fc+((ent2max_fc-ent2min_fc)/6)*4];
l.input(1).mf(5).name='al 75%';
l.input(1).mf(5).type='trimf';
l.input(1).mf(5).params=[ent2min_fc+((ent2max_fc-ent2min_fc)/6)*3 ent2min_fc+((ent2max_fc-
ent2min_fc)/6)*4 ent2min_fc+((ent2max_fc-ent2min_fc)/6)*5];
l.input(1).mf(6).name='al 90%';
l.input(1).mf(6).type='trimf';
l.input(1).mf(6).params=[ent2min_fc+((ent2max_fc-ent2min_fc)/6)*4 ent2min_fc+((ent2max_fc-
ent2min_fc)/6)*5 ent2min_fc+((ent2max_fc-ent2min_fc)/6)*6];
l.input(1).mf(7).name='al 100%';
l.input(1).mf(7).type='trimf';
l.input(1).mf(7).params=[ent2min_fc+((ent2max_fc-ent2min_fc)/6)*5 ent2max_fc
ent2max_fc+((ent2max_fc-ent2min_fc)/6)];

figure(25)
plotmf(l,'input',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DEL GASTO 2 DEL SISTEMA, FACTOR DE
ACOPLAMIENTO')

l.output(1).name='GASTO 2 REAL, FACTOR DE ACOPLAMIENTO';
l.output(1).range=[g2min_fc g2max_fc];
l.output(1).mf(1).name='al 15%';
l.output(1).mf(1).type='trimf';
l.output(1).mf(1).params=[-((g2max_fc-g2min_fc)/6) g2min_fc g2min_fc+((g2max_fc-g2min_fc)/6)];
l.output(1).mf(2).name='al 30%';
l.output(1).mf(2).type='trimf';
l.output(1).mf(2).params=[g2min_fc g2min_fc+((g2max_fc-g2min_fc)/6) g2min_fc+((g2max_fc-
g2min_fc)/6)*2];
l.output(1).mf(3).name='al 45%';
l.output(1).mf(3).type='trimf';
l.output(1).mf(3).params=[g2min_fc+((g2max_fc-g2min_fc)/6) g2min_fc+((g2max_fc-g2min_fc)/6)*2
g2min_fc+((g2max_fc-g2min_fc)/6)*3];
l.output(1).mf(4).name='al 60%';
l.output(1).mf(4).type='trimf';
l.output(1).mf(4).params=[g2min_fc+((g2max_fc-g2min_fc)/6)*2 g2min_fc+((g2max_fc-g2min_fc)/6)*3
g2min_fc+((g2max_fc-g2min_fc)/6)*4];
l.output(1).mf(5).name='al 75%';
l.output(1).mf(5).type='trimf';
l.output(1).mf(5).params=[g2min_fc+((g2max_fc-g2min_fc)/6)*3 g2min_fc+((g2max_fc-g2min_fc)/6)*4
g2min_fc+((g2max_fc-g2min_fc)/6)*5];
l.output(1).mf(6).name='al 90%';
l.output(1).mf(6).type='trimf';
l.output(1).mf(6).params=[g2min_fc+((g2max_fc-g2min_fc)/6)*4 g2min_fc+((g2max_fc-g2min_fc)/6)*5
g2min_fc+((g2max_fc-g2min_fc)/6)*6];
l.output(1).mf(7).name='al 100%';
l.output(1).mf(7).type='trimf';
l.output(1).mf(7).params=[g2min_fc+((g2max_fc-g2min_fc)/6)*5 g2max_fc g2max_fc+((g2max_fc-
g2min_fc)/6)];

figure(26)
plotmf(l,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO TUBERIA 1, FACTOR DE
ACOPLAMIENTO')

l.rule(1).antecedent=[1];

- - 101
l.rule(1).consequent=[1];
l.rule(1).weight=1;
l.rule(1).connection=1;
l.rule(2).antecedent=[2];
l.rule(2).consequent=[2];
l.rule(2).weight=1;
l.rule(2).connection=1;
l.rule(3).antecedent=[3];
l.rule(3).consequent=[3];
l.rule(3).weight=1;
l.rule(3).connection=1
l.rule(4).antecedent=[4];
l.rule(4).consequent=[4];
l.rule(4).weight=1;
l.rule(4).connection=1
l.rule(5).antecedent=[5];
l.rule(5).consequent=[5];
l.rule(5).weight=1;
l.rule(5).connection=1
l.rule(6).antecedent=[6];
l.rule(6).consequent=[6];
l.rule(6).weight=1;
l.rule(6).connection=1
l.rule(7).antecedent=[7];
l.rule(7).consequent=[7];
l.rule(7).weight=1;
l.rule(7).connection=1

ruleedit(l);

%------------------------------------------------------------------------
% CPD para el gasto 3 factor de acoplamiento
%------------------------------------------------------------------------
m=newfis('gasto3_fuzzy_fc');

m.input(1).name='GASTO 3 REQUERIDO, FACTOR DE ACOPLAMIENTO';
m.input(1).range=[ent3min_fc ent3max_fc];
m.input(1).mf(1).name='al 15%';
m.input(1).mf(1).type='trimf';
m.input(1).mf(1).params=[-((ent3max_fc-ent3min_fc)/6) ent3min_fc ent3min_fc+((ent3max_fc-
ent3min_fc)/6)];
m.input(1).mf(2).name='al 30%';
m.input(1).mf(2).type='trimf';
m.input(1).mf(2).params=[ent3min_fc ent3min_fc+((ent3max_fc-ent3min_fc)/6) ent3min_fc+((ent3max_fc-
ent3min_fc)/6)*2];
m.input(1).mf(3).name='al 45%';
m.input(1).mf(3).type='trimf';
m.input(1).mf(3).params=[ent3min_fc+((ent3max_fc-ent3min_fc)/6) ent3min_fc+((ent3max_fc-
ent3min_fc)/6)*2 ent3min_fc+((ent3max_fc-ent3min_fc)/6)*3];
m.input(1).mf(4).name='al 60%';
m.input(1).mf(4).type='trimf';
m.input(1).mf(4).params=[ent3min_fc+((ent3max_fc-ent3min_fc)/6)*2 ent3min_fc+((ent3max_fc-
ent3min_fc)/6)*3 ent3min_fc+((ent3max_fc-ent3min_fc)/6)*4];
m.input(1).mf(5).name='al 75%';
m.input(1).mf(5).type='trimf';

- - 102
m.input(1).mf(5).params=[ent3min_fc+((ent3max_fc-ent3min_fc)/6)*3 ent3min_fc+((ent3max_fc-
ent3min_fc)/6)*4 ent3min_fc+((ent3max_fc-ent3min_fc)/6)*5];
m.input(1).mf(6).name='al 90%';
m.input(1).mf(6).type='trimf';
m.input(1).mf(6).params=[ent3min_fc+((ent3max_fc-ent3min_fc)/6)*4 ent3min_fc+((ent3max_fc-
ent3min_fc)/6)*5 ent3min_fc+((ent3max_fc-ent3min_fc)/6)*6];
m.input(1).mf(7).name='al 100%';
m.input(1).mf(7).type='trimf';
m.input(1).mf(7).params=[ent3min_fc+((ent3max_fc-ent3min_fc)/6)*5 ent3max_fc
ent3max_fc+((ent3max_fc-ent3min_fc)/6)];

figure(27)
plotmf(m,'input',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DEL GASTO 3 DEL SISTEMA, FACTOR DE
ACOPLAMIENTO')

m.output(1).name='GASTO 3 REAL, FACTOR DE ACOPLAMIENTO';
m.output(1).range=[g3min_fc g3max_fc];
m.output(1).mf(1).name='al 15%';
m.output(1).mf(1).type='trimf';
m.output(1).mf(1).params=[-((g3max_fc-g3min_fc)/6) g3min_fc g3min_fc+((g3max_fc-g3min_fc)/6)];
m.output(1).mf(2).name='al 30%';
m.output(1).mf(2).type='trimf';
m.output(1).mf(2).params=[g3min_fc g3min_fc+((g3max_fc-g3min_fc)/6) g3min_fc+((g3max_fc-
g3min_fc)/6)*2];
m.output(1).mf(3).name='al 45%';
m.output(1).mf(3).type='trimf';
m.output(1).mf(3).params=[g3min_fc+((g3max_fc-g3min_fc)/6) g3min_fc+((g3max_fc-g3min_fc)/6)*2
g3min_fc+((g3max_fc-g3min_fc)/6)*3];
m.output(1).mf(4).name='al 60%';
m.output(1).mf(4).type='trimf';
m.output(1).mf(4).params=[g3min_fc+((g3max_fc-g3min_fc)/6)*2 g3min_fc+((g3max_fc-g3min_fc)/6)*3
g3min_fc+((g3max_fc-g3min_fc)/6)*4];
m.output(1).mf(5).name='al 75%';
m.output(1).mf(5).type='trimf';
m.output(1).mf(5).params=[g3min_fc+((g3max_fc-g3min_fc)/6)*3 g3min_fc+((g3max_fc-g3min_fc)/6)*4
g3min_fc+((g3max_fc-g3min_fc)/6)*5];
m.output(1).mf(6).name='al 90%';
m.output(1).mf(6).type='trimf';
m.output(1).mf(6).params=[g3min_fc+((g3max_fc-g3min_fc)/6)*4 g3min_fc+((g3max_fc-g3min_fc)/6)*5
g3min_fc+((g3max_fc-g3min_fc)/6)*6];
m.output(1).mf(7).name='al 100%';
m.output(1).mf(7).type='trimf';
m.output(1).mf(7).params=[g3min_fc+((g3max_fc-g3min_fc)/6)*5 g3max_fc g3max_fc+((g3max_fc-
g3min_fc)/6)];

figure(28)
plotmf(m,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO TUBERIA 3, FACTOR DE
ACOPLAMIENTO')

m.rule(1).antecedent=[1];
m.rule(1).consequent=[1];
m.rule(1).weight=1;
m.rule(1).connection=1;
m.rule(2).antecedent=[2];

- - 103
m.rule(2).consequent=[2];
m.rule(2).weight=1;
m.rule(2).connection=1;
m.rule(3).antecedent=[3];
m.rule(3).consequent=[3];
m.rule(3).weight=1;
m.rule(3).connection=1
m.rule(4).antecedent=[4];
m.rule(4).consequent=[4];
m.rule(4).weight=1;
m.rule(4).connection=1
m.rule(5).antecedent=[5];
m.rule(5).consequent=[5];
m.rule(5).weight=1;
m.rule(5).connection=1
m.rule(6).antecedent=[6];
m.rule(6).consequent=[6];
m.rule(6).weight=1;
m.rule(6).connection=1
m.rule(7).antecedent=[7];
m.rule(7).consequent=[7];
m.rule(7).weight=1;
m.rule(7).connection=1

ruleedit(m);
disp('ejecute el programa de gastos y gastos fc')

%------------------------------------------------------------------------
% RESULTADOS FACTOR DE ACOPLAMIENTO
%------------------------------------------------------------------------

%------------------------------------------------------------------------
% DEMANDA GASTO PRESIN, FACTOR DE ACOPLAMIENTO
%------------------------------------------------------------------------
figure(29)
subplot(311)
plot(corriente_total_fc,'r')
axis([0, 51, 0, 1000])
xlabel('Tiempo')
ylabel('Demanda de gasto')
title('DEMANDA DE GASTO DEL SISTEMA, FACTOR DE ACOPLAMIENTO CON CPD')
grid on

subplot(312)
voltreq_fc=voltaje_requerido_fc(:,1:51);
plot(voltreq_fc,'b'), hold on
axis([0, 51, 0, 1000])
xlabel('Tiempo')
Ylabel('Demanda de presin')
title('DEMANDA DE PRESIN DEL SISTEMA, FACTOR DE ACOPLAMIENTO CON CPD')
grid on

subplot(313)
plot(corriente_total_fc,'r'), hold on
plot(voltreq_fc,'b'), hold on
axis([0, 51, 0 1000])

- - 104
xlabel('Tiempo')
ylabel('Demanda Gasto-Presin')
title('DEMANDA GASTO PRESIN, FACTOR DE ACOPLAMIENTO CON CPD')
grid on

%------------------------------------------------------------------------
% Valvula 1 Factor coupling
%------------------------------------------------------------------------
figure(30)

subplot(231);
graval1_fc=valvula1_fc(:,1:51);
plot(graval1_fc,'g')
title('VLVULA 1 DEFINIDA POR EL CPD, "FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 1, factor de acoplamiento')
grid on

subplot(232);
plot(valvula_pid_1_fc,'r')
title('VLVULA 1 DEFINIDA POR EL EXPERTO, FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la vlvula 1, factor de acoplamiento')
grid on

subplot(233)
plot(graval1_fc,'r'), hold on
plot(valvula_pid_1_fc,'b')
title('VLVULA 1 CON AMBOS CONTROLADORES, FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 1, factor de acoplamiento')
grid on

subplot(234);
gracor1_fc=corriente1_fuzzy_fc(:,1:51);
plot(gracor1_fc,'g')
title('GASTO 1 DEFINIDO POR EL CPD')
xlabel('Tiempo')
ylabel('Comportamiento del gasto 1')
grid on

subplot(235);
plot(corriente1_fc,'r')
title('GASTO 1 DEFINIDO POR EL EXPERTO')
xlabel('Tiempo')
ylabel('Comportamiento del gasto 1')
grid on

subplot(236)
plot(gracor1_fc,'r'), hold on
plot(corriente1_fc,'b')
title('GASTO 1 DEFINIDO POR EL CPD Y EL EXPERTO')
xlabel('Tiempo')
ylabel('Comportamiento de la vlvula 1')
grid on


- - 105
%------------------------------------------------------------------------
% Valvula 2 Factor coupling
%------------------------------------------------------------------------
figure(31)

subplot(231);
graval2_fc=valvula2_fc(:,1:51);
plot(graval2_fc,'r')
title('VLVULA 2 DEFINIDA POR EL CPD, "FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 2, factor de acoplamiento')
axis([0 50 3 3.4])
grid on

subplot(232);
plot(valvula_pid_2_fc,'b')
title('VLVULA 2 DEFINIDA POR EL EXPERTO, FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 2, factor de acoplamiento')
axis([0 50 3 3.4])
grid on

subplot(233)
plot(graval2_fc,'r'), hold on
plot(valvula_pid_2_fc,'b')
title('VLVULA 2 CON AMBOS CONTROLADORES, FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 2, factor de acoplamiento')
axis([0 50 3 3.4])
grid on

subplot(234);
gracor2_fc=corriente2_fuzzy_fc(:,1:51);
plot(gracor2_fc,'r')
title('GASTO 2 DEFINIDO POR EL CPD')
xlabel('Tiempo')
ylabel('Comportamiento del gasto 2')
axis([0 50 290 330])
grid on

subplot(235);
plot(corriente2_fc,'b')
title('GASTO 2 DEFINIDO POR EL EXPERTO')
xlabel('Tiempo')
ylabel('Comportamiento del gasto 2')
axis([0 50 290 330])
grid on

subplot(236)
plot(gracor2_fc,'r'), hold on
plot(corriente2_fc,'b')
title('GASTO 2 DEFINIDO POR EL CPD Y EXPERTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 2')
axis([0 50 290 330])
grid on

- - 106

%------------------------------------------------------------------------
% Valvula 3 Factor coupling
%------------------------------------------------------------------------
figure(32)

subplot(231);
graval3_fc=valvula3_fc(:,1:51);
plot(graval3_fc,'g')
title('VLVULA 3 DEFINIDA POR EL CPD, "FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 3, factor de acoplamiento')
grid on

subplot(232);
plot(valvula_pid_3_fc,'r')
title('VLVULA 3 DEFINIDA POR EL EXPERTO, FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 3, factor de acoplamiento')
grid on

subplot(233)
plot(graval3_fc,'r'), hold on
plot(valvula_pid_3_fc,'b')
title('VLVULA 3 CON AMBOS CONTROLADORES, FACTOR DE ACOPLAMIENTO')
xlabel('Tiempo')
ylabel('Comportamiento de la valvula 3, factor de acoplamiento')
grid on

subplot(234);
gracor3_fc=corriente3_fuzzy_fc(:,1:51);
plot(gracor3_fc,'g')
title('GASTO 3 DEFINIDO POR EL CPD')
xlabel('Tiempo')
ylabel('Comportamiento del gasto 3')
grid on

subplot(235);
plot(corriente3_fc,'r')
title('GASTO 3 DEFINIDO POR EL EXPERTO')
xlabel('Tiempo')
ylabel('Comportamiento del gasto 3')
grid on

subplot(236)
plot(gracor3_fc,'r'), hold on
plot(corriente3_fc,'b')
title('GASTO 3 DEFINIDO POR EL CPD Y EL EXPERTO')
xlabel('Tiempo')
ylabel('Comportamiento de la vlvula 3')
grid on
%------------------------------------------------------------------------
% Resultados del experto y del CPD factor coupling
%------------------------------------------------------------------------
figure(33)
%subplot(311)

- - 107
plot(referencia1,'r'), hold on
plot(referencia2,'b'), hold on
plot(referencia3,'g'), hold on
axis([0 51 0 550])
xlabel('Tiempo')
ylabel('Gasto requerido, lts/min')
title('REFERENCIA DE GASTO DEL SISTEMA, CAMBIO EN LA REFERENCIA 1')
grid on

figure(34)
%subplot(312)
plot(entrada1_fc,'r'), hold on
plot(entrada2_fc,'b'), hold on
plot(entrada3_fc,'g'), hold on
axis([0 51 0 550])
xlabel('Tiempo')
ylabel('Flujo requerido, lts/min')
title('RESPUESTA DEL EXPERTO ANTE EL FACTOR DE ACOPLAMIENTO PROPUESTO')
grid on

figure(35)
%subplot(313)
gasto1fc=gasto1_fc(:,1:51);
gasto2fc=gasto2_fc(:,1:51);
gasto3fc=gasto3_fc(:,1:51);
plot(gasto1fc,'r'), hold on
plot(gasto2fc,'b'), hold on
plot(gasto3fc,'g'), hold on
axis([0 51 0 550])
xlabel('Tiempo')
ylabel('Flujo requerido, lts/min')
title('RESPUESTA DE CPD ANTE EL FACTOR DE ACOPLAMIENTO PROPUESTO')
grid on

%------------------------------------------------------------------------
% RESULTADOS DEL DESACOPLAMIENTO TOTAL
%------------------------------------------------------------------------
%------------------------------------------------------------------------
% Demanda de gasto-presin del sistema DESACOPLAMIENTO TOTAL
%------------------------------------------------------------------------
figure(36)
subplot(311)
plot(corriente_total,'r')
axis([0, 51, 0, 1000])
xlabel('tiempo')
ylabel('lts/min')
title('DEMANDA DE GASTO DEL SISTEMA, DESACOPLAMIENTO TOTAL')
grid on

subplot(312)
voltreq=voltaje_requerido(:,1:51);
plot(voltreq,'b')
axis([0, 51, 0, 1000])
xlabel('tiempo')
Ylabel('Presin requerida')
title('PRESIN REQUERIDA')

- - 108
grid on

subplot(313)
plot(corriente_total,'r'), hold on
plot(voltreq,'b')
axis([0, 51, 0, 1000])
xlabel('tiempo')
ylabel('Demanda Gasto-Presin')
title('DEMANDA GASTO PRESIN')
grid on

%------------------------------------------------------------------------
% ENTRADAS DE REFERENCIA, RESPUESTA DEL EXPERTO
%------------------------------------------------------------------------
figure (37)
%subplot(121)
plot(entrada1,'r'), hold on
plot(entrada2,'b'), hold on
plot(entrada3,'g'), hold on
axis([0, 51, 50, 550])
xlabel('Tiempo')
ylabel('Gasto requerido, lts/min')
title('REFERENCIA DE GASTO DEL SISTEMA, lts/min')
grid on

figure(38)
%subplot(122)
plot(corriente1,'r'), hold on
plot(corriente2,'b'), hold on
plot(corriente3,'g'), hold on
axis([0, 51, 50, 550])
xlabel('Tiempo')
ylabel('Gasto requerido')
title('RESPUESTA DEL "EXPERTO"')
grid on

%------------------------------------------------------------------------
% Informe experto factor de acoplamiento
%------------------------------------------------------------------------
figure(39)
plot(E1_fc,'r')
xlabel('Tiempo')
ylabel('Error de gasto 1 ante factor de acoplamiento')
title('ERROR DE GASTO 1 ANTE FACTOR DE ACOPLAMIENTO DEL 50%')
grid on

figure(40)
plot(E2_fc,'g')
xlabel('Tiempo')
ylabel('Error de gasto 2 ante factor de acoplamiento')
title('ERROR DE GASTO 2 ANTE FACTOR DE ACOPLAMIENTO DEL 30 %')
grid on

figure(41)
plot(E3_fc,'b')
xlabel('Tiempo')

- - 109
ylabel('Error de gasto 3 ante factor de acoplamiento')
title('ERROR DE GASTO 3 ANTE FACTOR DE ACOPLAMIENTO DEL 20%')
grid on

%------------------------------------------------------------------------
% Conocimiento experto ERROR desacoplamiento total
%------------------------------------------------------------------------
figure(42)
plot(E1_td,'r')
xlabel('Tiempo')
ylabel('Error de gasto 1')
axis([0 51 -0.5 3.5])
title('ERROR DE GASTO 1')
grid on

figure(43)
plot(E2_td,'g')
xlabel('Tiempo')
ylabel('Error de gasto 2')
axis([0 51 -0.5 1])
title('ERROR DE GASTO 2')
grid on

figure(44)
plot(E3_td,'b')
xlabel('Tiempo')
ylabel('Error de gasto 3')
axis([0 51 -0.5 1])
title('ERROR DE GASTO 3')
grid on

%------------------------------------------------------------------------
% Deamanda gasto-presin desacoplamiento total
%------------------------------------------------------------------------
figure(60)
subplot(311)
plot(entrada1,'r'), hold on
plot(entrada2,'b'), hold on
plot(entrada3,'m'), hold on
axis([0, 51, 0, 550])
xlabel('Tiempo')
ylabel('Referencia de gasto, lts/min')
title('REFERENCIA DE GASTO DEL SISTEMA, lts/min')
grid on

subplot(312)
voltreq=voltaje_requerido(:,1:51);
plot(corriente1,'r'), hold on
plot(corriente2,'b'), hold on
plot(corriente3,'m'), hold on
axis([0, 51, 0, 550])
xlabel('Tiempo')
Ylabel('Respuesta del "experto", lts/min')
title('RESPUESTA DEL "EXPERTO, lts/min"')
grid on


- - 110
subplot(313)
tub1=gasto1(:,1:51);
tub2=gasto2(:,1:51);
tub3=gasto3(:,1:51);
plot(tub1,'r'), hold on
plot(tub2,'b'), hold on
plot(tub3,'m'), hold on
axis([0, 51, 0, 550])
xlabel('Tiempo')
ylabel('Respuesta CPD, lts/min')
title('RESPUESTA DEL CPD, lts/min')
grid on

figure(61)
tub1=gasto1(:,1:51);
tub2=gasto2(:,1:51);
tub3=gasto3(:,1:51);
plot(tub1,'r'), hold on
plot(tub2,'b'), hold on
plot(tub3,'m'), hold on
axis([0, 51, 0, 550])
xlabel('Tiempo')
ylabel('Respuesta CPD, lts/min')
title('RESPUESTA DEL CPD, lts/min')
grid on

%------------------------------------------------------------------------
% Respuestas para el desacoplamiento parcial
%------------------------------------------------------------------------
figure(62)
subplot(311)
plot(entrada1_fc,'r'), hold on
plot(entrada2_fc,'b'), hold on
plot(entrada3_fc,'m'), hold on
axis([0, 51, 0, 550])
xlabel('time')
ylabel('lts/seg ')
title('FLOW REFERENCE, COUPLING FACTOR')
grid on

subplot(312)
plot(corriente1_fc,'r'), hold on
plot(corriente2_fc,'b'), hold on
plot(corriente3_fc,'m'), hold on
axis([0, 51, 0, 550])
xlabel('time')
Ylabel('Proportional response, coupling factor')
title('EXPERT RESPONSE, COUPLING FACTOR"')
grid on

subplot (313)
tub1=gasto1_fc(:,1:51);
tub2=gasto2_fc(:,1:51);
tub3=gasto3_fc(:,1:51);
plot(tub1,'r'), hold on
plot(tub2,'b'), hold on

- - 111
plot(tub3,'m'), hold on
axis([0, 51, 0, 550])
xlabel('tiempo')
ylabel('lts/seg')
title('RESPUESTA CPD, FACTOR DE ACOPLAMIENTO')
grid on

Anda mungkin juga menyukai