Sei sulla pagina 1di 161

Jorge AIejandro DeIgado Aguiaga Jorge Luis Orozco

Mora EIvia Ruiz BeItrn


AcopIamiento y
desacopIamiento difuso
de sistemas reguIares
DesacopIamiento de un sistema de riego
agrcoIa con un ControIador ProporcionaI
Difuso
AcopIamiento y desacopIamiento difuso de
sistemas reguIares
Eh esIe Iraba|o se esIudia la ihIeraccih de los sisIemas mulIivariables
(mlIiples ehIradas y salidas), como uha de sus caracIersIicas mas
imporIahIes, cohocido como el problema de acoplamiehIo, abordado
desde los ahos 60s y que acIualmehIe esIa resuelIo eh !orma geheral
para el caso parIicular del desacoplamiehIo regular (mismo hmero de
ehIradas que salidas) y que ah ho exisIe solucih geheral para el caso
ho regular (mayor hmero de ehIradas que salidas), solo alguhos casos
parIiculares por la di!iculIad maIemaIica que presehIa, lo que hace
imporIahIe su ahalisis. Eh esIe Iraba|o el eh!oque de esIudio del
problema de acoplamiehIo se hace coh los cohcepIos de la lgica
di!usa. Coh Ial eh!oque, se propohe uha solucih al problema de
acoplamiehIo para el caso regular, el cual presehIa uha vehIa|a sobre el
ahalisis maIemaIico de las soluciohes exisIehIes, pues la lgica di!usa se
basa eh la uIilizacih del cohocimiehIo experIo sobre el sisIema sih
cohocer el modelo maIemaIico, y as es posible esIablecer uh coh|uhIo
adecuado de reglas heursIicas que cohsigah esIe ob|eIivo de cohIrol. Se
exIiehdeh los resulIados para modi!icar el !acIor de acoplamiehIo eh
!orma deseada.
Jorge Ale|ahdro Delgado Aguihaga
lhgehiero Mecahico (2009) y MaesIro eh Ciehcias
eh lhgehiera ElcIrica (2012) por el lhsIiIuIo
1echolgico de AguascaliehIes. Su Iraba|o de
ihvesIigacih se relacioha coh el problema de
DesacoplamiehIo Di!uso de SisIemas Regulares y
No Regulares.
978-3-8473-5604-2
D
e
s
a
c
o
p
I
a
m
i
e
n
I
o

c
o
n

L

g
i
c
a

D
i
!
u
s
a
D
e
I
g
a
d
o

A
g
u
i

a
g
a
,

O
r
o
z
c
o

M
o
r
a
,

u
i
z

e
I
I
r

n
Jorge AIejandro DeIgado Aguiaga
Jorge Luis Orozco Mora
FIvia uiz eIIrn
AcopIamienIo y desacopIamienIo di!uso de sisIemas reguIares
Jorge AIejandro DeIgado Aguiaga
Jorge Luis Orozco Mora
FIvia uiz eIIrn
AcopIamienIo y desacopIamienIo
di!uso de sisIemas reguIares
DesacopIamienIo de un sisIema de riego agrcoIa
con un ConIroIador ProporcionaI Di!uso
FdiIoriaI Acadmica FspaoIa
FdiIoriaI Acadmica FspaoIa
Impresin
lh!ormacih bibliogra!ica publicada por DeuIsche NaIiohalbiblioIhek: La DeuIsche
NaIiohalbiblioIhek ehumera esa publicacih eh DeuIsche NaIiohalbibliogra!ie, daIos
bibliogra!icos deIallados esIah dispohibles eh ihIerheI eh hIIp://dhb.d-hb.de.
Los demas hombres de marcas y hombres de producIos mehciohados eh esIe libro esIah
su|eIos a la marca regisIrada o la proIeccih de paIehIes y soh marcas comerciales o
marcas comerciales regisIradas de sus respecIivos propieIarios. El uso de hombres de
marcas, hombre de producIo, hombres comuhes, hombre comerciales, descripciohes de
producIos, eIc. ihcluso sih uha marca parIicular eh esIas publicaciohes, de hihguha mahera
debe ihIerpreIarse eh el sehIido de que esIos hombres puedeh ser cohsiderados ilimiIados
eh maIerias de marcas y legislacih de proIeccih de marcas y, por lo IahIo, ser uIilizadas
por cualquier persoha.
lmageh de porIada: www.ihgimage.com
EdiIor: EdiIorial Acadmica Espahola es uha marca de
LAP LAM8ER1 Academic Publishihg CmbH & Co. KC
Heihrich-8ckihg-SIr. 6-8, 66121 Saarbrckeh, Alemahia
1el!oho +49 681 3720-310, Fax +49 681 3720-3109
Correo ElecIrohico: ih!o@eae-publishihg.com
Publicado eh Alemahia
SchalIuhgsdiehsI Lahge o.H.C., 8erlih, 8ooks oh Demahd CmbH, NordersIedI,
Reha CmbH, Saarbrckeh, Amazoh DisIribuIioh CmbH, Leipzig
I5N: 978-3-8473-5604-2
ImprinI (onIy !or U5A, G)
8ibliographic ih!ormaIioh published by Ihe DeuIsche NaIiohalbiblioIhek: 1he DeuIsche
NaIiohalbiblioIhek lisIs Ihis publicaIioh ih Ihe DeuIsche NaIiohalbibliogra!ie, deIailed
bibliographic daIa are available ih Ihe lhIerheI aI hIIp://dhb.d-hb.de.
Ahy brahd hames ahd producI hames mehIiohed ih Ihis book are sub|ecI Io Irademark,
brahd or paIehI proIecIioh ahd are Irademarks or regisIered Irademarks o! Iheir respecIive
holders. 1he use o! brahd hames, producI hames, commoh hames, Irade hames, producI
descripIiohs eIc. eveh wiIhouI a parIicular markihg ih Ihis works is ih ho way Io be
cohsIrued Io meah IhaI such hames may be regarded as uhresIricIed ih respecI o!
Irademark ahd brahd proIecIioh legislaIioh ahd could Ihus be used by ahyohe.
Cover image: www.ihgimage.com
Publisher: EdiIorial Acadmica Espahola is ah imprihI o! Ihe publishihg house
LAP LAM8ER1 Academic Publishihg CmbH & Co. KC
Heihrich-8ckihg-SIr. 6-8, 66121 Saarbrckeh, Cermahy
Phohe +49 681 3720-310, Fax +49 681 3720-3109
Email: ih!o@eae-publishihg.com
PrihIed ih Ihe U.S.A.
PrihIed ih Ihe U.K. by (see lasI page)
I5N: 978-3-8473-5604-2
CopyrighI 2012 by Ihe auIhor ahd LAP LAM8ER1 Academic Publishihg CmbH & Co. KC
ahd licehsors
All righIs reserved. Saarbrckeh 2012
i
N D I C E G E N E R A L
Captulo 1. Introduccin................................................................................ 1
1.1 Descripcin del problema .................................................................. 2
1.2 Objetivos ........................................................................................... 2
1.2.1 Objetivo general.......................................................................... 2
1.2.2 Objetivos particulares.................................................................. 3
1.3 Hiptesis............................................................................................ 3
1.4 Justificacin....................................................................................... 3
1.5 Estado del arte ................................................................................... 4
1.6 Publicaciones obtenidas y sometidas.................................................. 8
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. .......... 17
2.2 Factor de acoplamiento. ................................................................... 19
2.2.1 Ganancia relativa. ..................................................................... 22
Captulo 3. Lgica difusa............................................................................. 25
3.1 Conjuntos difusos ............................................................................ 25
3.1.1 Propiedades de los conjuntos difusos ........................................ 31
3.1.2 Operaciones entre conjuntos difusos ......................................... 33
3.2 Principios de la lgica difusa ........................................................... 36
3.2.1 Reglas de implicacin ............................................................... 38
3.3 Reglas de mapeo funcional .............................................................. 39
3.3.1 Mapeando una subregin difusa a un modelo local ................... 40
3.4 Defuzificacin ................................................................................. 41
3.4.1 Mtodos de defuzificacin ........................................................ 41
3.5 Mtodo difuso basado en reglas para aproximacin de funciones .... 44
3.5.1 El modelo Mamdani.................................................................. 44
ii
Captulo 4. Resultados sobre el desacoplamiento y cambio en el factor de
acoplamiento difuso del sistema de tuberas en paralelo................................ 47
4.1 Inters y utilizacin de la lgica difusa para el control..................... 47
4.1.1 Inters. ...................................................................................... 47
4.1.2 Utilizacin para el control. ........................................................ 48
4.1.3 La capitalizacin del saber hacer. .............................................. 48
4.2 Caso de estudio................................................................................ 49
4.3 Sistema de control difuso tipo Mamdani para el sistema de riego .... 54
4.3.1 Conjuntos difusos del CPD del sistema de riego. ...................... 55
4.3.2 Mecanismo de inferencia del CPD. ........................................... 57
4.3.3 Mtodo de defuzificacin del CPD. ........................................... 59
4.4 Resultados obtenidos del CPD en desacoplamiento ......................... 60
4.5 Resultados obtenidos del CPD en el factor de acoplamiento............ 63
4.5.1 Informe experto para el cambio del factor de acoplamiento. ..... 64
4.6 Desacoplamiento de un sistema de riego por aspersin mediante un
CPD......... .................................................................................................. 67
Captulo 5. Conclusiones y trabajo a futuro................................................. 69
5.1 Conclusiones ................................................................................... 69
5.2 Trabajo a futuro ............................................................................... 69
Referencias: 70
Anexo 1: Programa en MATLAB para el desacoplamiento y cambio del factor de
acoplamiento del sistema de tuberas74
iii
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. ............................................................ 13
Figura 2.5 Representacin en espacio de estados del sistema en MATLAB. . 16
Figura 2.6 Entrada u
1
al sistema................................................................ 16
Figura 2.7 Entrada u
2
al sistema con una amplitud de 20 V y 1 rad/seg en frecuencia.
............................................................................................................... 17
Figura 2.8 Respuesta del sistema ante u
1
y u
2
. ............................................... 17
Figura 2.9 Entrada u
1
aplicada al sistema ...................................................... 18
Figura 2.10 Entrada u
2
aplicada al sistema .................................................... 19
Figura 2.11 Respuesta del sistema ante las entradas u
1
y u
2
con asignacin de modos
en -10 y -15. ........................................................................................... 19
Figura 2.12 Sistema multivariable de flujo de fluidos en tuberas en paralelo.
................................................................................................... 20
Figura 2.13 Representacin esquemtica del sistema de tuberas en paralelo. 20
Figura 2.14 Esquema de un proceso (MIMO) nxn. ........................................ 21
Figura 2.15 Interaccin de un sistema de 2X2. .............................................. 22
Figura 3.1 Especificacin del conjunto difuso en forma enumerativa en forma
discreta. .................................................................................................. 28
Figura 3.2 Representacin en forma intencional de un conjunto difuso. ........ 29
Figura 3.3 Funciones de pertenencia del ejemplo 2. ...................................... 30
Figura 3.4 Representacin alternativa del ejemplo 2. .................................... 31
Figura 3.5 Representacin alternativa del ejemplo 2. .................................... 31
Figura 3.6 Operacin interseccin de los conjuntos BAJO y MEDIANO de la Figura
3.3 empleando el mnimo. ...................................................................... 34
iv
Figura 3.7 Operacin interseccin de los conjuntos BAJO y MEDIANO de la Figura
3.3 empleando el producto. ..................................................................... 34
Figura 3.8 Operacin unin de los conjuntos BAJO y MEDIANO de la Figura 3.3
empleando el mximo. ............................................................................ 35
Figura 3.9 Operacin complemento del conjunto BAJO de la Figura 3.3. ..... 36
Figura 3.10 Operacin AND. ........................................................................ 37
Figura 3.11 Esquema para el mapeo funcional de las reglas, particin cartesiana..
............................................................................................................... 39
Figura 3.12 Esquema para el mapeo funcional de las reglas, particin difusa.
................................................................................................... ...39
Figura 3.13 Mtodos de defuzificacin LOM, MOM y SOM. ....................... 42
Figura 3.14 Defuzificacin por el mtodo centroide. ..................................... 43
Figura 3.15 Defuzificacin por el mtodo bisector. ....................................... 43
Figura 3.16 Sistema difuso tipo Mamdani ..................................................... 45
Figura 3.17 Variables de salida y defuzificacin ........................................... 46
Figura 4.1 Esquema del sistema de riego de tuberas en paralelo................... 49
Figura 4.2 Circuito elctrico anlogo al sistema de referencia....................... 50
Figura 4.3 Simulacin del sistema de tuberas en paralelo en lazo cerrado con
MATLAB............................................................................................... 54
Figura 4.4 Sistema difuso tipo Mamdani ....................................................... 54
Figura 4.5 Universo de discurso y conjuntos difusos para la demanda de gasto del
sistema ................................................................................................... 55
Figura 4.6 Universos de discurso y conjuntos difusos para la demanda de presin
requerida por el sistema.......................................................................... 56
Figura 4.7 Universos de discurso y conjuntos difusos para la demanda de gasto 1.
............................................................................................................... 56
Figura 4.8 Universos de discurso y conjuntos difusos para la apertura de la vlvula 1
............................................................................................................... 57
Figura 4.9 Grfica generada por la base de las reglas de CPD, Gasto-
Presion..........................58
v
Figura 4.10 Grfica generada por la base de las reglas del CPD para el control de la
apertura de las vlvulas........................................................................... 59
Figura 4.11 Entradas variables de referencia para el gasto de las ramas paralelas.....
............................................................................................................... 60
Figura 4.12 Respuesta del experto ante la entrada de referencia.................... 60
Figura 4.13 Error de gasto para la tubera 1................................................... 61
Figura 4.14 Error de gasto para la tubera 2................................................... 61
Figura 4.15 Error de gasto para la tubera 3................................................... 61
Figura 4.16 Resultados del controlador CPD................................................. 62
Figura 4.17 Demanda Gasto-Presin, determinados por el CPD.................... 62
Figura 4.18 Respuesta del experto y CPD ante las entradas de referencia...... 63
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 ......................... 64
Figura 4.20 Respuesta del experto ante los factores de acoplamiento propuestos
............................................................................................................... 65
Figura 4.21 Error de gasto para la tubera 1................................................... 65
Figura 4.22 Error de gasto para la tubera 2................................................... 65
Figura 4.23 Error de gasto para la tubera 3................................................... 66
Figura 4.24 Respuesta del Controlador Proporcional Difuso ante el factor de
acoplamiento .......................................................................................... 66
Figura 4.25 Demanda Gasto-Presin del sistema........................................... 67
Figura 4.26 Superficie de varios cultivos con diferentes necesidades de agua
................................................................................................... 68
vi
NDICE DE TABLAS
Tabla 3.1 Correspondencia entre operadores de la Teora de Conjuntos, el lgebra
Boleana y la Lgica Tradicional ............................................................ 36
Tabla 4.1 Base de las reglas del CPD gasto-presin. ..................................... 58
Tabla 4.2 Base de las reglas del CPD para la apertura de las vlvulas ........... 59
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
2
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.
1.1Descripcin 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.2Objetivos
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.
3
1.2.2 Objetivos particulares
R Conocer la teora bsica para entender el acoplamiento de sistemas lineales.
R Caracterizar el factor de acoplamiento en el sistema considerado.
R Estudiar el desacoplamiento de sistemas regulares.
R Entender y aplicar la lgica difusa.
R Disear un controlador difuso para modificar el grado de acoplamiento del
sistema.
1.3Hiptesis
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.4Justificacin
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.
4
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.
1.5Estado 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.
5
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.
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
6
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.
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.
7
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, 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.
8
1.6Publicaciones obtenidas y sometidas
Como resultado del trabajo desarrollado en esta tesis, se tiene hasta el momento las
siguientes publicaciones.
y J. A. DelgadoA., J. L. Orozco M., E. Ruiz-Beltrn 'Regular coupling and
decoupling fu::v svstems`, Poster, en CIIIEE 2010, 10 al 12 de Noviembre,
Aguascalientes, Ags. Mexico.
y 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.
y J. A. Delgado A., J. A. Juregui A.,E. Ramrez V., S. E. Luna C., J. L. Orozco
M., 'Aplicacion del desacoplamiento regular a un circuito electrico`, en 13 th
Reunin de Otoo de Potencia, Electrnica y Computacin, (2011). ROPEC,
Morelia, Michoacn, Mxico, IEEE.
Artculos sometidos a revisin:
y 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 tuberias en paralelo`, (2012), Revista:
Ingeniera, Investigacin y Tecnologa UNAM.
y 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.
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
10
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
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
11
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 %, 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].
13
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:

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:
14

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, 0.n-10.2-10.1. Los indices 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
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 %, el sistema es desacoplable, [2]. Como el det
15
%, 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:

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.
16
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
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
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.
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.
17
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:
* * *
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:
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

) (
1
0
0
) (
1
1
s
s
T
m
FG
I
I

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
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.
19
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
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.
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
20
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.
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:
21
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
) (
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.
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.
22
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 la respuesta de una variable controlada en particular a una
variable manipulada seleccionada, depender de lo que estn haciendo las otras
variables manipuladas.
23
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

w
w

w
w
O 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:

/
nn n n
n
n
n
n
C
C
C
M M M
O O O
O O O
O O O

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.
24
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

w
w
Ec. 2.24
Para calcular
2
1
1
C
M
C

w
w
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

w
w
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

O Ec. 2.29
11 22
11 21 12
1
O O
O O O


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

/
O O
O O
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.
25
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]),
26
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?
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 _ _ _
semana la de Das _ _ _ 5
naturales Nmeros _ 1
naturales Nmeros Sbado _
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 t $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
27
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}
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:

28
Ec. 3.1
En donde
Es el grado de membreca del i-simo elemento x
i
al conjunto Cf. El par
i i cf
x x ) ( P se
conoce como singleton. '/ es un marcador, no el simbolo de division.
En forma breve, el conjunto de pares ordenados de la Ec. 3.1, se representa como:
Ec. 3.2
La expresin Cf es la especificacin del conjunto difuso en forma enumerativa o
extensional y se puede graficar en un par de ejes coordenados )) ( , (
i cf i
x m x 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
} / ) (
/ ) ( / ) ( / ) ( / ) ( { 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
P
P P P P
) (
Cf i
x P

X x
i i A
i
x x / ) ( A P

X
A
x x / ) ( A P
29
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
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
2 1

w
w
w
w
w
w
A
p
A
p
A
p
A
dp
d
N

30
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.
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.
31
Figura 3.4 Representacin alternativa del ejemplo 2.
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:
32
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.
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 clasico (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
t
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
) ( ) (
i
x
A
x A Card
i
P
) ( max ) (
i A
x
x A Height
i
P
33
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
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:

>
=
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
34
) ( ) ( ) ( 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 w z y x si
z y x z y x
x y y x


1 (*)
(*) (*) entonces y
) (*) (*)( (*) (*)
) ( ) (
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.
Figura 3.7 Operacin interseccin de los conjuntos BAJO y MEDIANO de la
Figura 3.3 empleando el producto.
35
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.
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:
36
) ( 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
Ahora bien, el razonamiento lgico consiste en la combinacin de
37
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.
38
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 inIiere 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.
39
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.
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
40
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:
1.- Particionar
2.- Mapear localmente.

i
A
S x x
i
1 ) ( P
S A
i
i

d
i
A
S x x
i
1 ) ( 0 P
41
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
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.

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.
42
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: Supongase 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.
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:
P
y
A MOM
P y

*
*
) (


y
A A
y y y P ) ( sup *) ( * P P
43
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.
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
).

x
A
x
A
x
x x
A COA
) (
) (
) (
P
P
44
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
[[8
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 $
1
, x
2
es $
2
x
r
es $
r
donde $
1
$
2
$
r
, son subconjuntos difusos de U
1
, U
2
8
r
(lo cual implica que
son nmeros difusos), la contribucin de la i-sima regla R
i
a la salida y del modelo
de 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

M
i
i
M
i
i i
w c w y
1 1
) ( ) ( ) (
2 1 '
y y
i i
C in i i C
P D D D P
45
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
RSHUDGRUPD[
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
min" " operador el como con )), ( ) ( ( sup
'

j A j A
x
ij
x x
ij j
j
P P D
^ ` ) ( , ), ( ), ( max ) (
' ' '
2 1
y y y y
L
C C C C
P P P P
46
Figura 3.17 Variables de salida y defuzificacin.
El objetivo es obtener un nmero duro mediante desfuzificacin.
47
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.
48
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:
R tener en cuenta un conocimiento lingstico existente de naturaleza cualitativa,
R tener en cuenta las variables que difcilmente se integran en el sistema,
R 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.
49
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 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],
50
que se representa en la Ec. 4.1.

n
i
i T
Q Q
1
Ec. 4.1
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 ' ' ' '
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.
51
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
52
I
R
R
I
i
T
i

Ec. 4.5
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.
53
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 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 tuberias 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.
55
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, 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.
56
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.
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.
El universo de discurso de las variables lingsticas de apertura de la vlvula 1
57
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.
58
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
.
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.
59
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).
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
60
utiliz el mtodo del centroide para la defuzzificacin.
4.4 Resultados obtenidos del CPD en desacoplamiento
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.
Figura 4.12 Respuesta del experto ante la entrada de referencia.
Claramente, se aprecia que el experto responde satisfactoriamente, y es posible
61
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.
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
62
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.
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.
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
63
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 Resultados obtenidos del CPD en el 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 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
64
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 manera de acuerdo a los factores de
acoplamiento propuestos, tal que el experto define la siguiente respuesta a la salida,
ver Figura 4.20.
65
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.
Figura 4.22 Error de gasto para la tubera 2.
66
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.
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.
67
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.
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.
68
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.
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.
69
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.
70
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. LaIay and M. Malabre. Solution to Morgan`s 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 modiIication de la structure a` l`inIini par un retour d`etat
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 Morgan`s problem: a
polinomial solution for the case of two outputs. Proc. 2nd. ECC, vol. 4, pp.
71
2275-2278, Groningen, The Netherlands, 1993.
[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. LaIay New results about the Morgan`s 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.
72
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.
[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 diIuso 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., 'Aplicacion del desacoplamiento regular a un circuito electrico, 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-Beltran, 'Solucin al problema
de desacoplamiento mediante un Controlador Proporcional Difuso de un
73
sistema regular de riego con tuberias 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.
[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.
74
Anexo 1
3URJUDPDHn MATLAB para el desacoplamiento y cambio del factor de
acoplamiento dHOVLVWHPDGHWXEHUtDV
%------------------------------------------------------------------------
% 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
75
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: ')
ic=input('valor maximo del gasto 3: ');
end
%------------------------------------------------------------------------
% Ganacias para el experto
%------------------------------------------------------------------------
kp1=1;
ki1=0;
kd1=0;
kn1=0;

kp2=1;
ki2=0;
76
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';
77
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%';
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')
78

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

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];
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];
80
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');

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

82
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];
83
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)
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];
84
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';
85
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';
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';
86
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;
87
b.rule(2).connection=1;
b.rule(3).antecedent=[3];
b.rule(3).consequent=[5];
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';
88
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)
89
plotmf(c,'input',1)
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';
90
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];
c.rule(6).weight=1;
91
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')
92
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
%------------------------------------------------------------------------
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
93
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')
94
%------------------------------------------------------------------------
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%';
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];
95
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';
96
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)
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];
97
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);

98
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
%------------------------------------------------------------------------
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';
99
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';
100
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';
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];
101
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);
%----------------------------------------------- -------------------------
102
% 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';
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];
103
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';
104
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';
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];
105
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';
106
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];
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];
107
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)
108
plotmf(c_fc,'output',1)
title('UNIVERSE OF DISCURSE FOR THE OPENING OF THE VALVE 3,
FACTOR COUPLING')

c_fc.rule(1).antecedent=[1];
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];
109
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)
110
%------------------------------------------------------------------------
% 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';
111
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%';
112
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];
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];
113
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%';
114
h.input(1).mf(2).type='trimf';
h.input(1).mf(2).params=[ent2min ent2min+((ent2max-ent2min)/6)
ent2min+((ent2max-ent2min)/6)*2];
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';
115
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)
116
plotmf(h,'output',1)
title('UNIVERSO DE DISCURSO PARA LA DEMANDA DE GASTO TUBERIA
1')

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];
117
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';
118
j.input(1).mf(5).params=[ent3min+((ent3max-ent3min)/6)*3 ent3min+((ent3max-
ent3min)/6)*4 ent3min+((ent3max-ent3min)/6)*5];
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%';
119
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];
120
j.rule(3).consequent=[3];
j.rule(3).weight=1;
j.rule(3).connection=1
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)
121

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%';
k.input(1).mf(3).type='trimf';
122
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];
123
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)
124
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];
125
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';
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];
126
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];
127
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];
l.rule(1).consequent=[1];
l.rule(1).weight=1;
l.rule(1).connection=1;
128
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
%----------------------------------------------- -------------------------
129
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';
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';
130
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';
131
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];
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];
132
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)
133
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])
xlabel('Tiempo')
ylabel('Demanda Gasto-Presin')
title('DEMANDA GASTO PRESIN, FACTOR DE ACOPLAMIENTO CON CPD')
grid on

%------------------------------------------------------------------------
% Valvula 1 Factor coupling
%----------------------------------------------- -------------------------
134
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')
135
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

%------------------------------------------------------------------------
% 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')
136
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])
137
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

%------------------------------------------------------------------------
% 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')
138
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')
139
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)
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
140
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
%----------------------------------------------- -------------------------
141
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')
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
%----------------------------------------------- -------------------------
142
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')
143
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')
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')
144
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);
145
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

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])
146
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)
147
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
plot(tub3,'m'), hold on
axis([0, 51, 0, 550])
xlabel('tiempo')
ylabel('lts/seg')
title('RESPUESTA CPD, FACTOR DE ACOPLAMIENTO')
grid on

Buy your books fast and straightforward online - at one of worlds
fastest growing online book stores! Environmentally sound due to
Print-on-Demand technologies.
Buy your books online at
www.get-morebooks.com
Compre sus libros rpido y directo en internet, en una de las
libreras en lnea con mayor crecimiento en el mundo! Produccin
que protege el medio ambiente a travs de las tecnologas de
impresin bajo demanda.
Compre sus libros online en
www.morebooks.es
VDM Verlagsservicegesellschaft mbH
Heinrich-Bcking-Str. 6-8 Telefon: +49 681 3720 174 info@vdm-vsg.de
D - 66121 Saarbrcken Telefax: +49 681 3720 1749 www.vdm-vsg.de

Potrebbero piacerti anche