Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Asesor:
FACULTAD DE INGENIERÍA
BOGOTÁ D.C.
2012
2
Bogotá D.C., Diciembre 03 de 2012
Ingeniera
MARIA PATRICIA LEÓN NEIRA
Directora Departamento de Ingeniería Civil
Universidad Pontificia Javeriana
Respetada Ingeniera:
De esta forma quiero agradecer la constante guía y paciencia de mi asesor Ing. Héctor
William Clavijo Sanabria.
Cordialmente,
3
A Lucía Tavera Suárez
4
AGRADECIMIENTOS
5
TABLA DE CONTENIDO
1. INTRODUCCIÓN .................................................................................................. 16
1.1. OBJETIVOS ....................................................................................................... 21
1.1.1. OBJETIVO GENERAL ....................................................................................... 21
1.1.2. OBJETIVOS ESPECÍFICOS ................................................................................ 21
1.2. METODOLOGÍA ................................................................................................ 21
1.2.1. REVISIÓN BIBLIOGRÁFICA Y DEFINICIÓN DE LA HERRAMIENTA
COMPUTACIONAL ................................................................................................... 21
1.2.2. EXPLORACIÓN NUMÉRICA INICIAL DE LA EXTENSIÓN DEL ALGORITMO DEL
GRADIENTE GLOBAL ................................................................................................ 22
1.2.3. PLANIFICACIÓN DE LA ESTRUCTURA INFORMÁTICA..................................... 22
1.2.4. DESARROLLO DE LA APLICACIÓN .................................................................. 22
1.2.5. PRUEBAS DE CONSISTENCIA Y VALIDEZ DE LA APLICACIÓN ......................... 23
2. MARCO CONCEPTUAL ......................................................................................... 24
2.1. MODELACIÓN DE REDES HIDRÁULICAS ............................................................. 24
2.2. ALGORITMO DEL GRADIENTE GLOBAL (GGA) .................................................... 27
2.2.1. EJEMPLO SIMBÓLICO DE APLICACIÓN DEL GGA ........................................... 29
2.3. EXTENSIÓN DEL ALGORITMO DEL GRADIENTE GLOBAL (EGGA) ......................... 32
2.3.1. EJEMPLO SIMBÓLICO DE APLICACIÓN DEL EGGA ......................................... 34
2.4. LENGUAJE DE PROGRAMACIÓN ....................................................................... 35
3. DISEÑO Y DESARROLLO DEL SOFTWARE (DRÜCKE) .............................................. 38
3.1. DESARROLLO DEL MODELO DE DATOS ............................................................. 38
3.1.1. ENTRADA DE DATOS ...................................................................................... 39
3.1.2. ALMACENAMIENTO DE LA INFORMACIÓN ................................................... 41
3.1.3. MOTOR DE CÁLCULO..................................................................................... 49
3.1.4. SALIDA DE DATOS .......................................................................................... 53
3.2. METODOLOGÍA PARA LA SOLUCIÓN DE SISTEMAS LINEALES............................. 54
3.2.1. ALMACENAMIENTO DE LA MATRIZ Aij.......................................................... 55
3.3 IMPLEMENTACIÓN DE LA INTERFAZ GRÁFICA (GUI) ........................................... 60
3.3.1. DESARROLLO DE OBJETOS VISUALES ............................................................ 62
6
3.3.2. PROGRAMACIÓN DE EVENTOS ..................................................................... 67
4. APLICACIONES, RESULTADOS Y DISCUSIÓN ......................................................... 68
4.1. CASOS DE APLICACIÓN ..................................................................................... 68
4.2. RESULTADOS COMPARATIVOS CON EL ALGORITMO DEL GRADIENTE GLOBAL .. 70
5. CONCLUSIONES Y RECOMENDACIONES ............................................................... 81
5.1. CONCLUSIONES................................................................................................ 81
5.2. RECOMENDACIONES ........................................................................................ 82
6. BIBLIOGRAFÍA ..................................................................................................... 83
7
LISTA DE FIGURAS
8
LISTA DE GRÁFICAS
Gráfica 1. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 1 minuto, usando el software EPANET.. .................................... 19
Gráfica 2. Resultados obtenidos de los caudales con el GGA para un intervalo de tiempo
de 1 minuto, usando el software EPANET.. .................................................................... 19
Gráfica 3. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 15 minutos, usando el software EPANET. ................................. 19
Gráfica 4. Resultados obtenidos de los caudales con el GGA para un intervalo de tiempo
de 15 minutos, usando el software EPANET. .................................................................. 19
Gráfica 5-6. Resultados obtenidos para el vaciado de los tanques con el GGA y el EGGA
para un intervalo de tiempo de 1 minuto. ...................................................................... 70
Gráfica 7. Resultados obtenidos de los caudales con el GGA para un intervalo de tiempo
de 1 minuto. .................................................................................................................... 70
Gráfica 8. Resultados obtenidos de los caudales de los tanques con el EGGA para un
intervalo de tiempo de 1 minuto. ................................................................................... 70
Gráfica 9-10. Resultados obtenidos para el vaciado de los tanques con el GGA y el
EGGA para un intervalo de tiempo de 5 minutos. .......................................................... 71
Gráfica 11. Resultados obtenidos de los caudales con el GGA para un intervalo de
tiempo de 5 minutos.. ..................................................................................................... 71
Gráfica 12. Resultados obtenidos de los caudales con el EGGA para un intervalo de
tiempo de 5 minutos.. ..................................................................................................... 71
Gráfica 13. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 10 minutos. ................................................................................ 72
Gráfica 14.Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 10 minutos ................................................................................. 72
Gráfica 15. Resultados obtenidos de los caudales con el GGA para un intervalo de
tiempo de 10 minutos. .................................................................................................... 72
Gráfica 16. Resultados obtenidos de los caudales con el EGGA para un intervalo de
tiempo de 10 minutos. .................................................................................................... 72
Gráfica 17. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 15 minutos. ................................................................................ 73
Gráfica 18.Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 15 minutos ................................................................................. 73
9
Gráfica 19. Resultados obtenidos de los caudales con el GGA para un intervalo de
tiempo de 15 minutos. .................................................................................................... 73
Gráfica 20. Resultados obtenidos de los caudales con el EGGA para un intervalo de
tiempo de 15 minutos. .................................................................................................... 73
Gráfica 21. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 30 minutos. ................................................................................ 74
Gráfica 22.Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 30 minutos ................................................................................. 74
Gráfica 23.Resultados obtenidos de los caudales con el GGA para un intervalo de
tiempo de 30 minutos. .................................................................................................... 74
Gráfica 24. Resultados obtenidos de los caudales con el EGGA para un intervalo de
tiempo de 30 minutos. .................................................................................................... 74
Gráfica 25.Variación del error para diferentes intervalos de tiempo ............................ 75
Gráfica 26. Resultados obtenidos con el EGGA para un intervalo de tiempo de 1 minuto.
........................................................................................................................................ 76
Gráfica 27. Resultados obtenidos con el EGGA para un intervalo de tiempo de 1 minuto.
........................................................................................................................................ 76
Gráfica 28. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 1 minuto. ................................................................................... 77
Gráfica 29. Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 1 minuto. ................................................................................... 77
Gráfica 30. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 5 minutos. .................................................................................. 77
Gráfica 31. Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 5 minutos ................................................................................... 77
Gráfica 32. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 10 minutos. ................................................................................ 78
Gráfica 33. Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 10 minutos.s .............................................................................. 78
Gráfica 34. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 15 minutos. ................................................................................ 78
10
Gráfica 35. Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 15 minutos. ................................................................................ 78
Gráfica 36. Resultados obtenidos para el vaciado de los tanques con el GGA para un
intervalo de tiempo de 30 minutos. ................................................................................ 79
Gráfica 37. Resultados obtenidos para el vaciado de los tanques con el EGGA para un
intervalo de tiempo de 30 minutos. ................................................................................ 79
Gráfica 38. Variación del error para diferentes intervalos de tiempo ............................ 79
11
LISTA DE ESQUEMAS
12
LISTA DE ANEXOS
13
RESUMEN
Mediante la Extensión del Algoritmo del Gradiente Global (EGGA) (Todini, 2011), cuyo
fundamento se aplica para la solución de la inestabilidad numérica en el análisis de
flujo en el período extendido, se desarrolló el software cuyo funcionamiento ha sido
estructurado mediante el método del Gradiente Conjugado para la solución iterativa
de sistemas lineales aplicados al algoritmo EGGA en conjunto con las leyes de la
hidráulica de sistemas de presión. De esta forma, se aplica la solución al problema de
la inestabilidad numérica de las redes de distribución de agua potable y así, se muestra
cuantitativamente la solución obtenida por Todini (2011).
No obstante, el Algoritmo del Gradiente Global (GGA), introducido por Todini (1979) y
Todini & Pilati (1988), ha conformado la estructura para la mayoría de los software
hidráulicos. EPANET, desarrollado por Rossman (1993) para la Agencia de Protección
Ambiental de los Estados Unidos, WATERGEMS (BentleySystems, 2006), WATERCAD,
en conjunto con otros software para el análisis hidráulico, han usado la metodología
del GGA para la modelación y simulación hidráulica de flujo en el período extendido.
Un esquema explícito de Euler proporciona la base del funcionamiento de las redes
hidráulicas en el período extendido, sin embargo, la inestabilidad en los sistemas de
almacenamiento se ha podido presenciar y asociar a determinados casos en particular.
Por tal razón, Todini (2011) introduce básicamente el uso de un esquema Explícito –
Implícito de solución de las ecuaciones diferenciales ordinarias de la simulación
cuasidinámica del flujo en redes de distribución.
14
ABSTRACT
This work implements the solution of the problem of numerical instability for flow
analysis in hydraulic networks extended period, which exists because of marked
consecutive oscillations and whose solution is made using the new methodology
proposed by Todini (2011). This solution is implemented and developed in DRÜCKE
software for modeling and simulation pressurized hydraulic flow storage systems.
By the Extending the Global Gradient Algorithm (EGGA) (Todini, 2011), whose
foundation is applied for solving numerical instability in the flow analysis in the
extended period, the software was developed whose operation has been structured by
Method numerical conjugate gradient for solving linear systems applied to EGGA
algorithm in conjunction with the laws of hydraulic pressure systems. Thus, applying
the solution to the problem of instability of digital networks potable water distribution
and thus shows quantitatively the solution obtained by Todini (2011).
However, Global Gradient Algorithm (GGA), introduced by Todini (1979) and Todini &
Pilati (1988), has formed the structure for most hydraulic software. EPANET, developed
by Rossman (1993) for the Environmental Protection Agency of the United States,
WaterGEMS (Bentley Systems 2006), WaterCAD, in conjunction with other software
for hydraulic analysis, have used GGA methodology for modeling and simulation of
hydraulic flow in the extended period. An explicit Euler scheme provides the basis for
the operation of water networks in the extended period, however, instability in
storage systems has been witnessed and involve certain particular cases. For this
reason, Todini (2011) basically introduces a scheme using Explicit - Implicit solution of
ordinary differential equations for quasi-steady simulation of flow in distribution
networks.
15
1. INTRODUCCIÓN
Las redes hidráulicas son sistemas que trabajan en conjunto para la distribución de
fluidos sin importar su tipo. Éstas se modelan en flujo permanente en el período
extendido, sin embargo existe la opción de realizar la modelación en flujo cuasi-
dinámico. La existencia de software con éste propósito son diversos, cuyo como motor
de cálculo es el Algoritmo del Gradiente Global (Todini, 2011). A pesar de haberse
establecido como la metodología más usada para el cálculo de redes hidráulicas de
distribución, el GGA ha presentado inestabilidades numéricas, especialmente para
grandes intervalos de tiempo. Dicho problema se debe a que el cálculo genera
oscilaciones marcadas en los períodos consecutivos, es decir, en cada cambio del
intervalo de tiempo , generando también posible falta de convergencia. Éste
problema a pesar de ser numérico, se puede ejemplarizar como el cambio basto en
cada intervalo de tiempo, los cuales deberían ser bajos y sutiles para simular el
comportamiento real de los sistemas de almacenamiento.
La Extensión del Algoritmo del Gradiente Global, la cual consiste en una adición de un
término implícito en el esquema del GGA para proporcionar la estabilidad numérica
necesaria en el cálculo de las redes hidráulicas; es el motor de cálculo adoptado y
desarrollado en éste trabajo. El método del Gradiente Conjugado, los modelos de
almacenamiento matricial, la simplificación del cálculo de la extensión, la Interfaz
Gráfica de Usuario (GUI), son algunos de los algoritmos contenidos dentro de DRÜCKE
los cuales trabajan conjuntamente para el desarrollo de las redes de distribución.
Para el desarrollo del software, se inició con un modelo de datos formalizado en dónde
se plantea el esquema general para el funcionamiento de la aplicación, se procede con
la subdivisión de las clases y métodos que conformarán la estructura general para el
procesamiento de la información. Dichos métodos de procesamiento son
dependientes de la forma utilizada para el ingreso de la información y cuya conexión
se hace directamente con el Método del Gradiente Conjugado para la solución
matricial de las ecuaciones hidráulicas. Éste modelo de datos fue estructurado con la
proyección de poder simular en tiempo real las diferentes variables hidráulicas que
conforman el sistema y así poder visualizar el comportamiento en el período extendido
de la red hidráulica. Posteriormente, se podrá discernir de los resultados obtenidos
con la extensión del GGA, resaltando la sutileza de las oscilaciones en cada intervalo de
tiempo.
16
ORGANIZACIÓN DEL DOCUMENTO
17
ANTECEDENTES
Figura 1.
Figura 2
18
A partir de la Figura. 1, se tiene una red hidráulica con dos sistemas de
almacenamiento con cabeza inicial conocida. En el transcurso del tiempo, ésta energía
disminuirá ya que la configuración de la red hidráulica corresponde al modelo de
descarga libre. Desarrollando las ecuaciones del GGA con el esquema explícito de
Euler, se tiene para el cálculo de las variables del sistema las siguientes gráficas:
30 60
40
25 20
0
Caudal [Lps]
20 -20
Energía [m]
-40
15 -60
-80
10
-100
5 -120
-140
0 -160
0 1 2 3 4 0 1 2 3 4
Gráfica 1. Resultados obtenidos para el vaciado de los Gráfica 2. Resultados obtenidos de los caudales con el GGA
tanques con el GGA para un intervalo de tiempo para un intervalo de tiempo de 1 minuto, usando
de 1 minuto, usando el software EPANET. el software EPANET.
30 80
60
25 40
20
0
Energía [m]
20
Caudal [Lps]
-20
15 -40
-60
10 -80
-100
5 -120
-140
0 -160
0 1 2 3 4 0 1 2 3 4
Tanque 1
Tiempo [Horas]
Tiempo [Horas]
Tanque 2 Tubería 1 Tubería 2 Tubería 3
Gráfica 3. Resultados obtenidos para el vaciado de los Gráfica 4 Resultados obtenidos de los caudales con el GGA
tanques con el GGA para un intervalo de tiempo para un intervalo de tiempo de 15 minutos,
de 15 minutos, usando el software EPANET. usando el software EPANET.
19
tiempo se hace más grande la información perdida es mayor y por ende la simulación
será menos confiable.
JUSTIFICACIÓN
La solución a éste tipo de problemas ayuda a modelar con mayor eficiencia y precisión
la hidráulica de las redes en estado no estable. Si se soluciona la inestabilidad
numérica, es posible realizar esquemas de operación en tiempo extendido
representando con mayor aproximación para cada instante de tiempo, la variación de
energía de los sistemas de almacenamiento y elementos hidráulicos como los nodos,
válvulas y demás dispositivos.
20
1.1. OBJETIVOS
1.2. METODOLOGÍA
Programación versátil
Velocidad óptima de procesamiento de datos
Modelación de interfaz gráfica
21
Entorno de Desarrollo Integrado (IDE – “Integrated Development Environment”)
NetBeans.
22
El desarrollo del manual del usuario se llevará a cabo simultáneamente se avance con
el código de programación, con el propósito de evitar confusiones y la omisión de
herramientas de la aplicación.
23
2. MARCO CONCEPTUAL
24
materiales de las tuberías, los dispositivos de regulación, de almacenamiento y de
adición de energía. Con ésta información básica, se procede al cálculo dependiendo de
la configuración de la red y así determinar las variables para determinados instantes de
tiempo.
Las dos variables que rigen el comportamiento de la red hidráulica corresponden a los
caudales ( ) y las energías ( ) de todo el sistema. La primera variable es la cantidad
de masa que se transporta a través de las tuberías desde un punto hasta un punto
en un determinado lapso de tiempo; ésta variable depende esencialmente del área
transversal por la cual se transporta y la velocidad con la que lo hace. En una red
hidráulica real, adquiere diferentes valores respecto al tiempo debido a la variación de
consumo poblacional.
[3]
A partir de ésta ecuación se puede estimar la disposición del transporte del fluido a lo
largo de la red hidráulica.
Con estas dos variables se definen las ecuaciones [1] y [2]. Para una red hidráulica de
nodos se tiene entonces incógnitas referentes a las energías para todo el sistema y
incógnitas referentes a los caudales de las tuberías, siendo el número total de
tuberías. Para la solución simultánea del sistema, es necesario entonces emplear un
algoritmo para la solución matricial de todas las ecuaciones planteadas a partir de
éstas dos variables.
SISTEMA DE - ECUACIONES
25
∑ [4]
Donde,
SISTEMA DE - ECUACIONES
[5]
[6]
( ) [ ] [7]
26
∑ {[ ] } ∑ {[ ] } [8]
Donde,
Una vez establecidas todas las propiedades del sistema se procede a realizar el cálculo
de las variables hidráulicas con el propósito de conocer la solución de la red. La
metodología utilizada para ésta solución se conoce como el Algoritmo del Gradiente
Global, el cual consiste en la formulación del Balance de Masas para cada nodo y las
ecuaciones de energía (Todini, 1979):
[9]
( ) ( ) [10]
(Todini, 1988)
Donde,
| | | | [11]
27
| | [12]
| | | |
( ) ( ) [13]
[14]
| | | |
∑ ( ) [15]
Donde,
[ ][ ] [ ][ ] [16]
28
Donde [ ] es la matriz calculada mediante la ecuación[12] para todas las tuberías y
cuya composición representa la conexión entre todos los nodos, el vector [ ]
representa las incógnitas del sistema correspondiente a las energías para cada nodo, la
matriz [ ] corresponde a la matriz de de fijos correspondientes a aquellas
tuberías que interconectan tanques o embalses, el vector [ ] corresponde a las
energías de los embalses o los tanques y el vector a las constantes de todo el
sistema correspondientes a las operaciones entre los caudales de demanda de los
nodos y con los valores de para la tubería que conecta dichos nodos.
Éste es el esquema que ha sido adoptado por los diferentes programas para la
modelación y simulación en el período extendido utilizando un esquema Euler explícito
para las energías de los sistemas de almacenamiento. Éste esquema es usado para
solucionar las ecuaciones diferenciales ordinarias del sistema.
[∑ ] [∑ ]
6
H8f H7f
4
5
3
1
2
29
Para el desarrollo de la red hidráulica es necesario suponer una dirección de flujo para
cada tubería y así empezar a definir las matrices para la primera iteración.
NODO 1
[ ( ) ] [ ( ) ]
NODO 2
[ ( ) ] [ ( ) ]
[ ( ) ]
NODO 3
[ ( ) ] [ ( ) ]
[ ( ) ]
NODO 4
[ ( ) ] [ ( ) ]
[ ( ) ]
NODO 5
[ ( ) ] [ ( ) ]
[ ( ) ]
NODO 6
[ ( ) ] [ ( ) ]
Para cada ecuación, se agrupan los términos constantes con el propósito de obtener
los valores del vector .
( )
( )
30
( )
( )
( )
( )
Nótese que ésta agrupación deja para cada ecuación los valores de y , los
cuales se pueden organizar matricialmente de la siguiente forma:
[ ] [ ] [ ] [ ]
Se continúa con el proceso iterativo hasta obtener una diferencia mínima entre las
energías de la iteración actual y la anterior. Cuando el sistema converge para éste
primer tiempo, se procede a realizar el cálculo del segundo tiempo tal y como se había
descrito previamente y así sucesivamente obteniendo para cada intervalo de tiempo el
valor de las energías y caudales del sistema.
Se ha podido presenciar para ésta metodología de cálculo que para los intervalos de
tiempo pequeños las oscilaciones marcadas en el tiempo de los sistemas de
almacenamiento simulan el comportamiento real, sin embargo, cuando se utilizan
31
intervalos de tiempo muy grandes el cálculo puede presentar falta de convergencia
aumentando la inestabilidad numérica del sistema y de esta forma genera en los
sistemas de almacenamiento cambios bastos entre los intervalos de cálculo. Éste
comportamiento se debe al esquema Explícito de Euler, cuyo funcionamiento utiliza
información del cálculo realizado en la iteración anterior. Cuando el intervalo es muy
grande, el algoritmo desconoce toda la información que se ha debido generar entre el
tiempo pasado y el tiempo de cálculo actual generando de esta forma la inestabilidad
en los sistemas de almacenamiento. Para la misma tipología de red hidráulica que se
ha venido trabajando, se ha desarrollo con el software EPANET la simulación de los
dispositivos de almacenamiento para diferentes intervalos de tiempo:
La extensión del Algoritmo del Gradiente Global introducida en el año 2011, consiste
en la adición del esquema Implícito – Explícito de Euler el cual permite solucionar el
cambio brusco en las oscilaciones marcadas en el tiempo. Ésta adición se hace
mediante el factor θ el cual adquiere valores mayores a cero o menores o iguales a
uno, discretizando en el tiempo el cálculo del sistema (Todini, 2011).
[∑ ] [∑ ] [18]
Donde,
∑[ ( ) ]
[19]
[∑ ]
32
De acuerdo a las propiedades de la sumatoria, se procede a separar los términos del
primer sumando de la ecuación [19]:
∑ ( ) ∑ ∑
[20]
[∑ ]
∑ ∑
∑ ∑ ∑ [∑ ] [21]
[ ][ ] [ ][ ] [22]
33
Donde [ ] es la matriz calculada mediante la ecuación [12] para todas las tuberías y
cuya composición representa la conexión entre todos los nodos, el vector [ ]
representa las incógnitas del sistema correspondiente a las energías para cada nodo, la
matriz [ ] corresponde a la matriz de de fijos correspondientes a aquellas
tuberías que interconectan embalses, el vector [ ] corresponde a las energías de los
embalses y el vector a las constantes de todo el sistema correspondientes a las
operaciones entre los caudales de demanda de los nodos y con los valores de
para la tubería que conecta dichos nodos. A diferencia de la ecuación [17], se
agrega el vector el cual representa la inclusión del esquema Explícito – Implícito
de Euler con el cual se soluciona el problema de la inestabilidad numérica presentada
en los dispositivos de almacenamiento.
Ésta adición permite que en el cálculo prevalezca las energías obtenidas en el tiempo
anterior dependiendo del valor que adquiera θ. En el caso que éste factor adquiera el
valor de 1, el esquema Explícito – Implícito desaparecerá dejando sólo como objeto de
cálculo el GGA con su respectivo esquema Explícito de Euler.
( )
( )
34
A21+A5 iter+1 C1
-A21 0 0 -A51 0 0 0 H1 0
1
A32+A42 iter+1
-A21 -A32 -A42 0 0 0 0 H2 C2 0
+A21
A43+A32 iter+1
0 -A32 -A43 0 0 -A73 0 H3 C3 0
+A73
A43+A45 iter+1
0 -A42 -A43 -A45 0 0 0 H4 = C4 + 0
+A42
A45+A85 iter+1
-A51 0 0 -A45 0 0 -A85 H5 C5 0
+A51
iter+1
0 0 0 0 0 A76+A68 -A76 -A68 H6 C6 0
( )( )
A73+ iter+1
0 0 -A73 0 0 -A76 0 H7 C7
A76
( )( )
A68+ iter+1
0 0 0 0 -A85 -A68 0 H8 C8
A85
[ ] [ ]
Se procede a realizar la ecuación matricial obteniendo los valores de las energías y los
caudales con la ecuación [15] y se sigue con el mismo procedimiento descrito en la
sección 2.2.1.
Sólo para cada cambio de tiempo es necesario calcular de nuevo el vector con
los caudales obtenidos en el tiempo anterior, a diferencia de la matriz [ ], la cual sí
se debe de calcular en cada nueva iteración con las respectivas adiciones del EGGA.
35
hizo con los siguientes criterios: programación versátil, velocidad óptima de
procesamiento de datos y modelación de la interfaz gráfica. Actualmente, el lenguaje
que más se ajusta a éstas condiciones es JAVA.
JAVA es un lenguaje de programación de alto nivel el cual permite el uso de comandos
a cambio de códigos numéricos encriptados. Cada instrucción corresponde a una serie
de algoritmos dentro del procesador del computador cuyo lenguaje consiste
enteramente en números que son analizados para concluir con la orden ejecutada por
el usuario (Gary et al, 2005).
JAVA fue diseñado y desarrollado en la década de los 90 por James Gosling para Sun
Microsystems (Oracle Corporation) y cuya sintaxis emplea como base, lenguajes como
C, C++ y Smalltalk. Contiene un modelo de objetos simples eliminando herramientas de
bajo nivel las cuales suelen introducir a errores y cuyo funcionamiento lo convierte en
uno de los lenguajes más utilizados y confiables de la industria (Gary et al, 2005).
Para el desarrollo del software DRÜCKE, se empleó la IDE NetBeans el cual implementa
dicho lenguaje de programación. A partir de éste software de desarrollo se elaboró la
interfaz gráfica de usuario y toda la implementación de la Extensión del Algoritmo del
Gradiente Global.
TIPOS DE DATOS
Los tipos de datos son conceptos fundamentales en todos los lenguajes de
programación, los cuales hacen referencia a los métodos disponibles de
almacenamiento de la información. Éstos permiten dimensionar un dato en memoria.
Básicamente existen dos tipos de datos en JAVA:
SIMPLES COMPUESTOS
Integer String
Double Table
Float Nombres
Boolean de clases o
Chart interfaces
Los tipos simples son manejados directamente por el compilador y no necesitan el uso
de bibliotecas JAVA específicas. En los tipos compuestos, su uso puede necesitar clases
específicas de la biblioteca JAVA (Aumaille, 2000).
36
OBJETOS
Las instancias de las clases se denominan objetos. El diseño orientado a objetos radica
en averiguar cuáles son los objetos de un sistema, las clases en que se pueden agrupar
y las relaciones entre objetos que se puedan obtener (Durán, Gutiérrez, Pimentel,
2007). Éstos tienen propiedades que los hace únicos en todo el lenguaje de
programación lo que permite la fácil manipulación y procesamiento de la información.
Para el desarrollo del esquema de almacenamiento del software DRÜCKE, fue
necesario implementar los objetos en la programación realizada en tiempo real.
EVENTOS
Los eventos son aquellos sucesos o acciones generados por el usuario que proporciona
un flujo de programación definido por la ruta que el usuario desee. Estos son
generados desde el hardware (teclado y ratón) y su determinación genera el
funcionamiento de DRÜCKE.
37
3. DISEÑO Y DESARROLLO DEL SOFTWARE (DRÜCKE)
USUARIO
4 1
1. Reporte DRÜCKE 1. Lectura Directa
2. Datos Exportados 2. Datos importados
3.1.2. ALMACENAMIENTO DE
3.1.3. MOTOR DE CÁLCULO INFORMACIÓN
3 2
1. Implementación del EGGA 1. En Objetos
2. En matrices condensadas
Transferencia de Información
38
3.1.1. ENTRADA DE DATOS
MENÚ
Base de Datos
39
La parte derecha del esquema superior (GUI), corresponde al conjunto de clases y
métodos secundarios los cuales se realizan antes de oprimir el botón de ejecutar el
cálculo de la aplicación, mientras que la parte izquierda corresponde a las clases
principales de DRÜCKE y cuyo funcionamiento se origina una vez oprimido el botón de
ejecutar la aplicación. A diferencia de ésta ruta para el ingreso de información, la
segunda ruta consiste en la importación de datos, se hace mediante un módulo
especial GUI de importar, es decir: se suprime el proceso cíclico descrito previamente,
ejecutándose sólo una vez la orden para importar el archivo de texto.
40
segundo esquema, dónde se importan datos mediante un archivo de texto, funciona a
partir de un evento establecido por el usuario con el objetivo de transferir toda la
información leída a la clase Base_de_Datos, sin necesidad de realizar un
almacenamiento preliminar.
Con éste esquema de trabajo se procede a realizar la simulación hidráulica en el
período de tiempo extendido, generando un bucle en el motor de cálculo para obtener
la variación de energías y caudales del sistema. A partir de este Módulo generalizado,
se procede a continuación con la explicación detallada del almacenamiento de la
información.
41
información básica para la simulación en el período extendido, elementos hidráulicos
desconectados, tuberías mal insertadas, entre otros.
Vector Tanques
1N
Vector Nodos
42
3.1.2.2ALMACENAMIENTO DE LA INFORMACIÓN EN MATRICES CONDENSADAS
Nodo
ID Línea Nodo L D Km A Rij Aij Bij Qij
44
Para las matrices de las tuberías se tiene que,
A partir de la línea punteada se encuentran las variables del sistema, las cuales
tomarán un valor diferente para cada iteración. Éstas corresponden a las variables R,
, Aij, Bijy Qij cuya dependencia se origina a partir del cálculo del caudal.
ORDEN DE CÁLCULO
1 2 3 4 5
La cabeza de la flecha [ ] indica cuales son las variables necesarias para calcular la variable de la cola de
la flecha.
45
El llenado de la matriz Variables se hace de la siguiente forma:
Para realizar el cálculo del factor de fricción de Darcy Weisbach, es necesario realizar
un número finito de iteraciones de la siguiente manera:
1 2 3 4 5 6
[ [ ]]
√ | | | |
* **
* Suposición de velocidad.
** Suposición de factor de fricción.
Donde,
Número de iteración
Velocidad correspondiente a cada iteración
[24]
Numero de Reynolds
Diámetro de la tubería
Viscosidad cinemática del fluido
[25]
[ [ ]]
√
Factor de fricción
Coeficiente de pérdidas
[26]
√
46
Energía disponible para en nodo
Energía disponible para en nodo
Coeficiente de pérdidas por accesorios
Para poder determinar el valor del factor de fricción, es necesario suponer para la
primera iteración, un valor de velocidad (columna 1) con la que se procede a
calcular el número de Reynolds (columna 2). Al igual que la velocidad, se debe de
suponer un valor inicial para el de Darcy para poder calcular la columna 4 y 5. Se
procede a realizar el cálculo de la resistencia hidráulica y las dos constantes de
cálculo y para cada tubería. Ya terminada ésta iteración, se procede a la
siguiente haciendo el valor de y el calculado anteriormente
( respectivamente). Al finalizar cada iteración, se realiza la resta entre
y obtenidos en dicha iteración. Si la diferencia es menor a la tolerancia
establecida inicialmente, se da por terminado el proceso iterativo obteniendo el valor
final del factor de fricción de Darcy a partir de la columna 4 de la última iteración
(Larock, Jeppson & Watters, 2000).
Para esta versión de prueba, el f es dado.
[27]
[28]
47
Longitud de la tubería
Constante de Hazen-Williams
Diámetro de la tubería
3 Cálculo de la constante
[29]
4 Cálculo de la constante
4
[30]
| | | |
5 Cálculo de la constante
[31]
| | | |
En estos dos últimos pasos, el caudal que se emplea, corresponde a los caudales
supuestos para la primera iteración y los caudales calculados en las siguientes
iteraciones tal y como se muestra en el Esquema general del funcionamiento del Motor
de Cálculo de DRÜCKE.
48
A pesar de que los primeros cinco datos son fijos (excepto el factor de fricción de Darcy
durante la ejecución del programa, no pueden ser almacenados en la matriz de Fijos ya
que éstos tienen un tipo de dato Double diferente al de la matriz Fijos (Integer).
Adicionalmente, ésta información hace referencia a una tubería o la información
existente entre dos nodos.
Para las matrices de los nodos se tiene que,
Estas dos matrices de los nodos, a diferencia de la Matriz Variables, se caracterizan por
permanecer constante en todo el tiempo de ejecución de la aplicación. Si el usuario
desea modificar la configuración o tipología de la red, es necesario entonces realizar la
instrucción de edición en el software. En ésta instrucción, la aplicación retorna al
primer modelo de llenado vectorial de objetos donde se modifican directamente los
componentes de los mismos para proceder con la modificación de la matriz Fijos.
49
Cada valor de caudal adoptado por las tuberías es aproximado al valor de convergencia
conforme se realizan las iteraciones; cuando el error de tolerancia es menor al
establecido por el usuario entre la iteración actual y la anterior, se procede a calcular
el siguiente tiempo para el cual la variación de energías y caudales será diferente.
Después de haber inicializado todas las columnas de la matriz Variables, se procede a
realizar el cálculo de las nuevas energías y caudales con el Método del Gradiente
Conjugado, donde se podrá obtener la solución a la ecuación matricial arrojando como
resultado el vector de energías para cada elemento hidráulico. Ya obtenido éste vector
se procede con el cálculo de los caudales respectivos.
Para llevar a cabo todo el proceso descrito previamente, es necesario que el usuario
genere el evento lógico para el cual el software cambia su disposición de
funcionamiento; éste evento se refleja con oprimir el botón de cálculo. Una vez
realizada ésta orden, el software empieza a realizar los cálculos iterativos con
parámetros iniciales ingresados por el usuario o bien las establecidas dentro de la
aplicación por defecto y cuya finalización se hace mediante un condicional de tiempo,
es decir: si la sumatoria del número de intervalos de tiempo calculados supera el total
del tiempo establecido por el usuario, el bucle finalizará y el programa reportará los
resultados obtenidos.
50
INICIO DEL BUCLE GLOBAL {
MÓDULO 1
MÓDULO 2
Inicio del Bucle 2 {
En ésta etapa, el software extrae la
información calculada previamente
de los Aij, Bij con sus respectivos ID
ECUACIÓN MATRICIAL con el propósito de hacer el llenado
de la ecuación matricial. Una vez
[ ][ ] [ ][ ] Ec. [22] finalizado el proceso de llenado de la
ecuación matricial, se operan las
La anterior ecuación se puede expresar como: constantes para obtener el vector
[b]. En el primer tiempo de cálculo se
omite el término “[ext]” quedando
por defecto el Método del Gradiente
Donde,
Global. Para los siguientes tiempos,
la constante “[ext]”hará presencia y
[ ][ ] por ende la nueva metodología de
[ ] [ ] cálculo se aplicará.
51
Para llevar a cabo el primer módulo del motor de cálculo, es necesario establecer el
orden con el que se llena la matriz Variables. Como se había definido en la sección
3.1.3.2. el orden de cálculo se rige por las dependencias de las variables.
Mediante éste esquema se realiza el cálculo de las variables que comprenden la red
hidráulica. Conforme se encuentra una solución para cada tiempo, se almacena en la
matriz de resultados todos los valores pertinentes. Ya finalizado el tiempo de cálculo,
se reportará mediante tablas y gráficas los resultados almacenados en dicha matriz.
52
Cuando se ha determinado que tipo de elemento corresponde el Nodo y el Nodo , se
procede a realizar el llenado de la ecuación matricial con base en los siguientes
criterios:
Si el Nodo es un Tanque, se deberá calcular para éste elemento el operador
derivado de la ecuación [21] y adicionarlo en la matriz Aij en la posición
, donde A es el área del tanque, es el parámetro del esquema Implícito -
Explícito del algoritmo EGG y es el intervalo de tiempo. Adicionalmente,
para la posición del vector [ext] es necesario plantear la ecuación:
[∑ ] derivado de la ecuación [21] para dicho Nodo . De igual
forma, aplica para el nodo .Para esta metodología, a diferencia del GGA, la
matriz Aij adopta un mayor tamaño igual al número de nodos más el número de
tanques.
Si el Nodo es un embalse, el Aij para ésta tubería deberá ir en la matriz Aif y Aij
Nótese que los mismos identificadores del Nodo y el Nodo indican en que posición
de la matriz Aij deben ir (Ver sección 2.2.1.).Cuando el bucle para recorrer y comparar
toda la Matriz Líneas finaliza, la matriz Aij queda planteada con el método Implícito –
Explícito del GGA. Se opera posteriormente con el Método del Gradiente Conjugado y
se obtiene la solución tal y cómo se describe en secciones anteriores.
La adición del parámetro en el esquema antiguo del Método del Gradiente Global, se
implementa en DRÜCKE cuando se calcula la ecuación matricial en la operación de la
constante . Éste es el equivalente al operador antes mencionado [ext] y cuyo
contenido se pudo apreciar en la sección 2.2.1. De esta forma es implementado el
algoritmo EGG.
53
Existe dos matrices generales de resultados: la primera que contiene los resultados de
las energías para cada nodo y la segunda que contiene los valores de los caudales de
cada línea. De ésta última es posible derivar los resultados de las velocidades para cada
tubería mediante la ecuación:
[33]
Como se afirmó en la sección anterior, para llevar a cabo el cálculo del EGG es
necesario realizar en cada iteración la solución al sistema lineal establecido por la
configuración de la red hidráulica. En la parte preliminar de la investigación para el
desarrollo de DRÜCKE, fue necesario conocer el funcionamiento de los modelos de
análisis numéricos existentes para la solución matricial de sistemas lineales, evaluando
para cada método la velocidad de procesamiento y complejidad de cálculo para poder
ser implementada en el software DRÜCKE. El Método de Gauss Jordan, el Método de la
Factorización de Cholesky y por último el Método del Gradiente Conjugado, el cual se
puede usar ya que la matriz es simétrica y definida positiva. Estos fueron los
esquemas analizados para evaluar cuál de ellos se adaptaba a las necesidades de las
redes hidráulicas que serán introducidas en el software.
Para la solución de las redes de distribución, es necesario plantear el sistema de
ecuaciones que rigen el comportamiento hidráulico del sistema, las cuales están
fundamentadas en las leyes de la conservación de la energía. Una vez planteado el
sistema de ecuaciones, se puede representar matricialmente todo el conjunto de
ecuaciones mediante la ecuación:
[32]
54
es el vector constante determinado a partir de las demandas y cabezas hidráulicas
constantes conocidas, también con longitud .
56
DIAG A11 A22 A33 A44 A55 A66
ID_C 1 3 5 6 7
El Método del Gradiente Conjugado por una parte evita el cálculo y el almacenamiento
de la información requerida en un método de Newton de Gradiente y por otra intenta
mejorar la convergencia de los métodos de descenso por Gradiente (Hernández, 2006),
lo que permite que el procesamiento de la información sea lo suficientemente rápido
para que alcance en sistemas densos una respuesta rápida y segura.
57
Dirección
Paso
Punto Anterior
Punto Nuevo
Después de haber sido definida la dirección de cálculo, se determina una porción del
gradiente para éste punto mediante la constante , también denominado el paso de
cálculo.
Para el Método del Gradiente conjugado, se asume que la función es cuadrática a
diferencia del método de Newton donde la función se analiza linealmente.
[36]
[37]
58
[38]
Donde,
[41]
[42]
[43]
[44]
[45]
59
IMPLEMENTACIÓN DEL ALGORTIMO DEL GRADIENTE CONJUGADO
Se calcula las condiciones iniciales mediante las ecuaciones [46] y [47], teniendo en
cuenta que éste cálculo sólo se hace una vez en la ejecución del programa.
[46]
[47]
[48]
[50]
[51]
[52]
[53]
Éste bucle finaliza cuando es muy pequeño. Para éste caso, en el tiempo de
ejecución de la aplicación se genera la instrucción de continuar con la siguiente
iteración del método del EGGA. En el software DRÜCKE, la multiplicación se hace
una sola vez para cada iteración con el propósito de optimizar la velocidad de
procesamiento.
GUI
Archivo Herramientas
Editar Ayuda
MENÚ PRINCIPAL
Insertar
Archivo
Dibujo
Navegación BARRA PRINCIPAL
Gráficas
Tablas
61
objetos y así mantener almacenada todos los datos pertinentes y listos para el
momento de la ejecución del cálculo.
Todos los métodos utilizados para llevar a cabo la interfaz se encuentran contenidos
dentro de la clase “GUI” la cual contiene los diferentes eventos que pueden llegar a
presentarse dentro del tiempo de ejecución total de la aplicación. Entiéndase como
evento todo suceso o acción generado por el usuario que proporciona un flujo de
programación definido por la ruta que el usuario desee. Son eventos típicos el click
sobre un botón, el hacer doble click sobre algún objeto, pulsar una tecla, arrastrar un
ícono, mover el ratón, soltar el click entre otros, los cuales deben de ser programados
por aparte para lograr una interfaz funcional.
Cada uno de los eventos realizados por el usuario determinará la ruta de
programación; internamente el evento más importante para el cual todos los métodos
convergerán será la acción del botón de ejecución de cálculo. Independiente a la ruta
que el usuario haya elegido para llevar a cabo la inserción de la información, una vez
oprimido éste botón deberá de haberse registrado en todos los objetos la información
acumulada para continuar con el siguiente paso en el modelo de datos,
correspondiente a la validación de la información guardada y el funcionamiento del
motor de cálculo de DRÜCKE.
Para el desarrollo de la parte visual se usaron los siguientes objetos JAVA los cuales son
orientados a los posibles eventos registrados por el usuario:
JFrame:
ÁREA DE TRABAJO
Inserción de
Objetos
62
JMenuBar:
JMenu Bar
JPanel:
JPanel
63
JTabbedPane:
JTabbedPane
JButton:
Éste tipo de objeto es el más común en todas las interfaces gráficas, consiste en un
botón el cual al ser presionado se reintegra a su estado natural cuando se suelta el
click.
JButton
64
JToggleButton:
JToggleButton
JButtonGroup:
JLabel:
Es el objeto más sencillo de todos. No han sido programados los JLabel en DRÜCKE
frente a cualquier evento ya que son etiquetas que tienen la función de informar.
JLabel
65
JText Field:
También denominado campo de texto, son aquellos espacios destinados para que el
usuario ingrese textos pequeños mediante pulsaciones del teclado. Para grandes
textos se utiliza la herramienta JTextArea.
JText Field
Área de Dibujo
66
3.3.2. PROGRAMACIÓN DE EVENTOS
Éste evento fue programado para el JFrame y cuyo objetivo fue realizar el
dibujo dinámico de objetos tales como los tanques, nodos y embalses. Se
genera cuando es oprimido el click dentro del área del JFrame (excepto las
áreas donde existen los JPanel o JTabbedPane); si alguno de los JToggleButton
correspondientes a la paleta de dibujo está activado, entonces al generarse
sobre el área libre del JFrame el click se insertará automáticamente el dibujo
correspondiente al JToggleButton activado.
ComponentAdded (Container)
67
4. APLICACIONES, RESULTADOS Y DISCUSIÓN
Los sistemas de regulación y adición de energía (como las válvulas y las bombas
hidráulicas respectivamente), no hacen parte de éste proyecto, ya que no es necesario
la inclusión de los mismos en las redes hidráulicas para poder mostrar el problema
descrito en la sección 1.
Para el análisis de cálculo del software DRÜCKE, se implementaron dos casos de redes
hidráulicas, cada una de ellas con las siguientes características:
CASO 1:
CASO 2:
69
4.2. RESULTADOS COMPARATIVOS CON EL ALGORITMO DEL GRADIENTE GLOBAL
Para cada caso descrito previamente, se realiza el paralelo del GGA y el EGGA,
utilizando como herramientas de comparación EPANET y DRÜCKE respectivamente.
CASO 1:
30
25 Tanque 1 GGA
Tanque 2 GGA
20
Tanque 1 EGGA
15
Energia [m]
Tanque 2 EGGA
10
5
0
-5
00 01 02 03 04 05 06 07 08 09 10
Tiempo [Horas]
200 80
60
150
40
Caudal [lps]
100
Caudal [lps]
20
50
0
00 -20
-50 -40
-100 -60
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
Tiempo [Horas]
Tiempo [Horas]
Linea 1 Linea 2 Linea 3 Linea 4
Linea 9 Linea 10
70
En la Gráfica 5, todavía no se evidencia ninguna inestabilidad numérica en los sistemas
de almacenamiento. Se puede apreciar que en la primera hora, los niveles de los
tanques se igualan y a partir de este momento, comienza una descarga en conjunto de
ambos tanques.
30
Tanque 1 GGA
25
Tanque 2 GGA
20
Tanque 1 EGGA
Energia [m]
15
Tanque 2 EGGA
10
-5
00 01 02 03 04 05 06 07 08 09 10
Tiempo [Horas]
150 80
100 60
40
Caudal [lps]
50
Caudal [lps]
20
00
0
-50
-20
-100
-40
0
10,800
14,400
18,000
21,600
25,200
28,800
32,400
36,000
3,600
7,200
0 1 2 3 4 5 6 7 8 9 10
Resultados obtenidos de los caudales con el GGA Resultados obtenidos de los caudales con el
Gráfica 11. Gráfica 12. EGGA para un intervalo de tiempo de 5
para un intervalo de tiempo de 5 minutos.
minutos.
71
Con un aumento de 5 minutos en el intervalo de tiempo, los niveles de los tanques
empiezan a sufrir cambios abruptos. Ya no se descargan conjuntamente y los caudales
no se estabilizan tal y como se veía en el intervalo de un minuto.
30 30
25
25
20
20
Energía [m]
15
Energia [m]
15
10
10
5
5 0
0 -5
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
Tanque 1 Tanque 1
Tiempo [Horas] Tiempo [Horas]
Tanque 2 Tanque 2
Gráfica 13. Resultados obtenidos para el vaciado de los Gráfica 14 Resultados obtenidos para el vaciado de los
tanques con el GGA para un intervalo de tiempo tanques con el EGGA para un intervalo de
de 10 minutos. tiempo de 10 minutos.
400 80
300 60
200 40
Caudal [lps]
100 20
Caudal [lps]
00 0
-100 -20
-200 -40
0 1 2 3 4 5 6 7 8 9 10 0 2 4 6 8 10
Tiempo [Horas] Tiempo [Horas]
Linea 9 Linea 10
Gráfica 15. Resultados obtenidos de los caudales con el GGA Gráfica 16 Resultados obtenidos de los caudales con el
para un intervalo de tiempo de 10 minutos. EGGA para un intervalo de tiempo de 10
minutos.
72
40 30
35
25
30
20
Energía [m]
25
Energia [m]
20 15
15 10
10
5
5
0
0
0 2 4 6 8 10
0 1 2 3 4 5 6 7 8 9 10
Tiempo [Horas]
Tiempo [Horas] Tanque 1
Tanque 1
Tanque 2 Tanque 2
500 80
400 60
300 40
Caudal [lps]
200 20
Caudal [lps]
100
0
00
-20
-100
-40
-200
0 1 2 3 4 5 6 7 8 9 10 -60
0 2 4 6 8 10
Tiempo [Horas]
Tiempo [Horas]
Linea 1 Linea 2 Linea 3
Linea 4 Linea 5 Linea 6
Linea 7 Linea 8 Linea 9
Linea 10
Resultados obtenidos de los caudales con el GGA Gráfica 20. Resultados obtenidos de los caudales con el
Gráfica 19.
para un intervalo de tiempo de 15 minutos. EGGA para un intervalo de tiempo de 15
minutos.
73
30 30
25 25
20
20
Energía [m]
15
Energia [m]
15
10
10
5
5
0
0 -5
0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10
Gráfica 21. Resultados obtenidos para el vaciado de los Gráfica 22. Resultados obtenidos para el vaciado de los
tanques con el GGA para un intervalo de tiempo tanques con el EGGA para un intervalo de
de 30 minutos. tiempo de 30 minutos.
400 80
300 60
200
40
Caudal [lps]
Caudal [lps]
100
20
00
0
-100
-20
-200
-300 -40
-400 -60
0 2 4 6 8 10 0 2 4 6 8 10
Tiempo [Horas] Tiempo [Horas]
Linea 9 Linea 10
Gráfica 23. Resultados obtenidos de los caudales con el GGA Gráfica 24. Resultados obtenidos de los caudales con el
para un intervalo de tiempo de 30 minutos. EGGA para un intervalo de tiempo de 30
minutos.
74
Para un intervalo de tiempo de 1 minuto, se puede apreciar la variación cuadrática de
los niveles en los tanques; cómo estos dos tanques están conectados mediante una
tubería, los niveles de ambos se igualan en un determinado tiempo y a partir de éste
instante se realiza una descarga conjunta variando de igual forma la energía en los dos
sistemas de almacenamiento. Con éste esquema, ambos sistemas se pueden
simplificar teóricamente en un solo tanque, por lo tanto el caudal de la tubería que los
conecta (Línea 10) tenderá a ser cero para permitir la descarga en conjunto de ambos
tanques. Si éste caudal fuese diferente a cero, como en el intervalo entre 0 segundos y
3.600 segundos, existirá una transferencia de energía del tanque con mayor carga
hidráulica al tanque con menor carga, oscilando los niveles de ambos hasta llegar a la
misma cabeza piezométrica.
60.00%
50.00%
40.00%
Inestabilidad
30.00%
20.00%
10.00%
0.00%
0 10 20 30 40 50 60
Tanque 1
Intervalo de tiempo ∆t [Minutos] Tanque 2
75
Se calcula el porcentaje de la diferencia respecto a los valores de referencia.
Se promedian los porcentajes para cada intervalo de tiempo y se procede a
graficar.
A diferencia del GGA, en el EGGA los cambios de los niveles de los tanques se hacen de
manera sutil, simulando con mayor precisión el comportamiento del vaciado y llenado
de los sistemas de almacenamiento. Para éste mismo ejemplo, se desarrolló en el
software DRÜCKE la simulación del comportamiento de la red hidráulica, obteniendo
los siguientes resultados:
Gráfica 27. Resultados obtenidos con el EGGA para un intervalo de tiempo de 1 minuto.
76
Como se puede apreciar, la inestabilidad numérica se ha solucionado mediante el
esquema Explícito – Implícito de Euler. Para los diferentes intervalos de tiempo, la
gráfica muestra el mismo comportamiento a diferencia de las gráficas iniciales
calculadas en EPANET. Nótese que en la primera hora, cuando los dos tanques
empiezan a nivelar sus energías, el tanque con menor cabeza piezométrica se empieza
a llenar hasta alcanzar el nivel del segundo. Éste comportamiento no se evidenció en
las gráficas calculadas con el GGA.
CAS0 2:
2,597 2,597
2,596
2,596
2,596
Energía [m]
2,596
2,595
2,595
2,595
Energía [m]
2,595 2,594
2,594 2,594
2,593
2,594
2,593
2,593
2,592
2,593
2,592
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Tiempo [Horas] Tiempo [Horas]
Tanque 1 Tanque 1
Tanque 2 Tanque 2
Gráfica 28 Resultados obtenidos para el vaciado de los Gráfica 29. Resultados obtenidos para el vaciado de los
tanques con el GGA para un intervalo de tiempo tanques con el EGGA para un intervalo de
de 1 minuto. tiempo de 1 minuto.
2,597 2,597
2,596 2,596
2,596
2,596
2,595
Energía [m]
2,595
2,595
Energía [m]
2,595
2,594
2,594 2,594
2,593 2,594
2,593 2,593
2,592
2,593
2,592
2,592
2,591
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2,592
Tiempo [Horas] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Tanque 1
Tiempo [Horas] Tanque1
Tanque 2
Tanque 2
Gráfica 30. Resultados obtenidos para el vaciado de los Gráfica 31. Resultados obtenidos para el vaciado de los
tanques con el GGA para un intervalo de tiempo tanques con el EGGA para un intervalo de
de 5 minutos. tiempo de 5 minutos.
77
2,597 2,597
2,596 2,596
2,596
2,596
Energía [m]
2,595
2,595
Energía [m]
2,595
2,595
2,594
2,594
2,594
2,594
2,593
2,593
2,593
2,593 2,592
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Gráfica 32. Resultados obtenidos para el vaciado de los Gráfica 33 Resultados obtenidos para el vaciado de los
tanques con el GGA para un intervalo de tiempo tanques con el EGGA para un intervalo de
de 10 minutos. tiempo de 10 minutos.
2,597 2,597
2,596 2,596
2,596
2,596
Energía [m]
2,595
2,595
Energía [m]
2,595
2,595
2,594
2,594
2,594
2,594
2,593
2,593 2,593
2,593 2,592
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Gráfica 34. Resultados obtenidos para el vaciado de los Gráfica 35 Resultados obtenidos para el vaciado de los
tanques con el GGA para un intervalo de tiempo tanques con el EGGA para un intervalo de
de 15 minutos. tiempo de 15 minutos.
78
2,597 2,597
2,596 2,596
2,596
2,596
Energía [m]
2,595
2,595
Energía [m]
2,595
2,595
2,594
2,594
2,594
2,594
2,593
2,593 2,593
2,593 2,592
0 1 2 3 4 5 6 7 8 9 101112131415161718192021222324 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Tanque 2 Tanque 2
Gráfica 36. Resultados obtenidos para el vaciado de los Gráfica 37. Resultados obtenidos para el vaciado de los
tanques con el GGA para un intervalo de tiempo tanques con el EGGA para un intervalo de
de 30 minutos. tiempo de 30 minutos.
0.020%
0.018%
0.016%
0.014%
Inestabilidad
0.012%
0.010%
0.008%
0.006%
0.004%
0.002%
0.000%
0 5 10 15 20 25 30 35
Intervalo de tiempo Δt [Minutos]
Para éste segundo caso, la variación de los niveles de los tanques se evidencia acorde
con el patrón de demanda establecido en el ANEXO 3. La inestabilidad numérica se
evidencia a partir de la hora 16 en adelante, dónde los niveles de ambos tanques
interactúan directamente, haciendo que el nivel del tanque 2 realice cambios abruptos
en el resto del tiempo. Como se aprecia en la Gráfica 38., el comportamiento de la
evolución del error es similar al mostrado en la Gráfica 25., sin embargo la magnitud
de éste es bastante inferior, debido a la regulación presentada en el sistema.
79
200.00
180.00 Almacenamiento sin reducción
160.00 Almacenamiento sin ceros
Tiempo de Cálculo [min]
80
5. CONCLUSIONES Y RECOMENDACIONES
5.1. CONCLUSIONES
81
nodos. El esquema utilizado para simplificar y reducir esta matriz, aumenta la
velocidad de procesamiento de la información aproximadamente en un 93%
generando mayor eficiencia en la aplicación.
5.2. RECOMENDACIONES
82
6. BIBLIOGRAFÍA
B.Shelly, G., Cashman, T. J., L.Starks, J., & L.Mick, M. (2006). Java Programming:
Comprehensive Concepts And Techniques. Ed. 3 pp. 11-29 Shelly Cashman Series.
Francisco, D., Francisco, G., & Ernesto, P. (2007). Programación orientada a objetos con
Java. Ed. 1 pp. 1-20 Thomson Ediciones.
George, A., Liu, J. & Ng, E. (1994). Computer Solution of Sparse Linear Systems.
Giustolisi, O. (2010). Water Distribution Network pressure-driven analysis usingEGGAO,
en Journal of Water Resources Planning and Management, Vol 10.1061, pp. 2-40
Larock, B.E.,Jeppson, R.W.& Watters, G.Z. (2000). Hydraulics of Pipeline Systems.
Todini, E. (2011). Extending the global gradient algorithm to unsteady flow extended
period simulations of water distribution. Journal of Hydroinformatics Vol 13 No 2 pp
167–180 Dipartimento di Scienze della Terra e Geologico Ambientali, Universitá di
Bologna.
Todini, E. & Pilati, S. (1988) A gradient method for the solution of looped pipe networks.
In Computer Applications in Water Supply (ed. B. Coulbeck & C. H. Orr), Vol. 1, (System
analysis and simulation) pp. 1–20. John Wiley & Sons, London.
83