You are on page 1of 5

#

#
CALCULO Y DISEO DE LINEAS DE ADUCCION

#
import os
#-----------------------------------------------------------------------------#INGRESO DE DATOS:
#-----------------------------------------------------------------------------#Limpiando la Pantalla para una mejor presentacion:
os.system('cls')
#**************************
# Matriz de Datos de Nudos:
#**************************
#[Nudo Cota(m) Demanda_en_Nudo_q(Lt/s)]

MN=[]
vfd=[0, 0, 0]
vf=[0]
val="p"
while val != "":
print("Ingrese Datos de Nudos\n")
val=raw_input("
Nudo
: ")
if val != "":
vfd[0]=int(val)
#Cota piezometrica del nudo en m:
vfd[1]=raw_input("
Cota[m]
if vfd[1]=="":
vfd[1]=0.0
else:
vfd[1]=float(vfd[1])

: ")

#Demanda localizada en el nudo en Lt/s:


vfd[2]=raw_input("
Demanda[Lt/s]: ")
if vfd[2]=="":
vfd[2]=0.0
else:
vfd[2]=float(vfd[2])
#Agregando los datos ingresados a la matriz MN:
vf[0]=vfd
MN=MN+vf
vfd=[0, 0, 0]
print("")
os.system('cls')
#**************************
os.system('cls')

#*****************************
# Matriz de Datos de Tuberias:
#*****************************
#[Nudo_Inicial Nudo_Final Longitud_Tuberia Distancia_Horizontal_Tuberia Caudal_en_Tuberia

You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com)

Ks_

MT=[]
vfd=[0, 0, 0, 0, 0, 0, 0]
vf=[0]
val="p"
i=0
while val != "":
print("Ingrese Datos de Tuberias\n")
i=i+1
print " Datos Tuberia", i, ":\n"
val=raw_input("
Nudo Inicial
: ")
if val != "":
vfd[0]=int(val)
#Nudo Final:
vfd[1]=raw_input("
Nudo Final
while vfd[1]=="":
print("Ingrese un Valor Adecuado!")
vfd[1]=raw_input("
Nudo Final
vfd[1]=int(vfd[1])
#Longitud de Tuberia en m:
vfd[2]=raw_input("
Longitud de T[m]
if vfd[2]=="":
vfd[2]=0.0
else:
vfd[2]=float(vfd[2])
#Distancia Horizontal de Tuberia en m:
vfd[3]=raw_input("
Distancia Hor. [m]
if vfd[3]=="":
vfd[3]=0.0
else:
vfd[3]=float(vfd[3])
#Caudal que pasa por Tuberia en Lt/s:
vfd[4]=raw_input("
Caudal Q[Lt/s]
if vfd[4]=="":
vfd[4]=0.0
else:
vfd[4]=float(vfd[4])
#Ks Rugosidad Absoluta de Tuberia en m:
vfd[5]=raw_input("
Ks[m]
while vfd[5]=="":
print("Ingrese un Valor Adecuado!")
vfd[5]=raw_input("
Ks[m]
vfd[5]=float(vfd[5])
#Pendiente S0 de Tuberia en m/m:
vfd[6]=raw_input("
Pendiente S[m/m]
if vfd[6]=="":
vfd[6]=0.0
else:
vfd[6]=float(vfd[6])

: ")

: ")

: ")

: ")

: ")

: ")

: ")

: ")

#Agregando los datos ingresados a la matriz MT


2

You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com)

vf[0]=vfd
MT=MT+vf
vfd=[0, 0, 0, 0, 0, 0, 0]
print("")
os.system('cls')
#**************************
#******************
#Datos Adicionales:
#******************
os.system('cls')
print("Ingrese Datos de Adicionales\n")
Temperatura=raw_input("
Temperatura [C]: ")
while Temperatura=="":
print("
Ingrese un Valor Adecuado!")
Temperatura=raw_input("
Temperatura [C]: ")
Temperatura=float(Temperatura)
#******************
#****************************************
#Base de Datos utilizada por el programa:
#****************************************
#Rugosidad Bsoluta Ks para diferentes materiales:
#
# Material

Ks(m)

#
#
Vidrio

0.0000003

#
PVC

0.0000015

#
Polietileno (PE)

0.0000020

#
Asbesto Cemento

0.0000300

#
Acero

0.0000460

#
Hierro Forjado

0.0000600

#
Hierro Fundido Asfaltado

0.0001200

#
Hierro Galvanizado

0.0001500

#
Arcilla Vitrificada

0.0001500

#
Hierro Fundido

0.0001500

#
Hierro Ductil

0.0002500

#
Madera Cepillada

0.00018 - 0.00090

#
Concreto

0.00030 - 0.00300

#
Acero Bridado

0.00090 - 0.00900

#
# (*) Valores Sacados de la presentacion del curso "Especializacion en Riego
#
Tecnificado en Cultivos de Agroexportacion"
#****************************************
#==============================================================================
#-----------------------------------------------------------------------------#CALCULOS PREVIOS:
#-----------------------------------------------------------------------------#1RO DETERMINAREMOS QUE DATOS ESTAN FALTANDO EN CADA MATRIZ Y QUE DATOS SE
#TIENEN PARA PODER CALCULAR DICHOS DATOS FALTANTES:
#Analizando las propiedades geometricas del sistema:
#*************************************
#Calculo de diferencias verticales H:
#*************************************
#Se presentan 4 casos posibles:
3

You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com)

#1er Caso: se conocen las cotas piezometricas => H=Ci-Ci+1


#2do Caso: se conocen Longitu de Tuberia y Distancia de Proyeccion =>
#
H=(L**2 - D**2)**0.5
#3er Caso: se concen la longitud de la tuberia y la pendiente de la tuberia =>
#
H=(S0*L)/((1+S0**2)**0.5)
#4to Caso: se conocen la Distancia de la Proyeccion y la pendiente de tuberia
#
=> H=S0*D
#Con las casos antes analizados pasemos a completar y en caso de no poder,
#solicitar al usuario el dato necesario para calculo de H:
dH=[]
vh=[0]
for i in range(0,len(MT)):
#Para los 4 casos analisados necesitamos extraer y ver los siguintes datos:
#PARA ANALISIS DEL 1ER CASO:
#Extrallendo el nudo inicial y final para la tuberia i-esima:
ni=MT[i][0]
nf=MT[i][1]
#Buscando dichos nudos y extrallendo su cota piezometrica:
for j in range(0,len(MN)):
if ni == MN[j][0]:
#Extrallendo Cota Inicial.
ci=MN[j][1]
if nf == MN[j][0]:
#Extrallendo Cota Final.
cf=MN[j][1]
#PARA ANALISIS DEL 2DO CASO:
#Extrallendo longitud y Distancia Horizontal de la Tuberia i-esima:
Li=MT[i][2]
Di=MT[i][3]
#PARA ANALISIS DEL 3ER CASO:
#Extrallendo la pendiente S0i, la longitud ya fue extraida.
S0i=MT[i][6]
#PARA ANALISIS DEL 4TO CASO:
#No es necesario extraer ningun dato adicional pues, la pendiente y la
#distancia Horizontal ya se extralleron para los casos anteriores.
#ANALIZANDO CADA CASO CON LOS DATOS OBTENIDOS:
#ANALISIS DEL 1ER CASO ci<>0 Y cf<>0 H=Ci-Ci+1
#Verificando si ci y cf son diferentes de cero para calcular el H=Ci-Cf
if ci != 0.0 and cf != 0.0:
vh[0]=ci-cf
dH=dH+vh
vh=[0]
#ANLISIS DEL 2DO CASO SI ESQUE EL PRIMERO NO SE CUMPLE:
#Verificando que Li y Di sean diferentes de cero para calcular H=(L**2 - D**2)**0.5
elif Li != 0.0 and Di != 0.0:
vh[0]=(Li**2 - Di**2)**0.5
dH=dH+vh
vh=[0]
#ANALISIS DEL 3ER CASO SI ES QUE EL PRIMERO O EL SEGUNDO NO CUMPLE:
#Verificando que Li y S0i sean diferentes de cero para calcular H=(S0*L)/((1+S0**2)**0.5)
4

You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com)

elif Li != 0.0 and S0i != 0.0:


vh[0]=(S0i*Li)/((1+S0i**2)**0.5)
dH=dH+vh
vh=[0]
#ANALISIS DEL 4TO CASO SI ESQUE EL PRIMERO, NI EL SEGUNDO, NI EL TERCERO SE CUMPLEN:
#Verificando que S0i y Di sean diferentes de cero para calcular H=S0*D
elif Di != 0.0 and S0i != 0.0:
vh[0]=S0i*Di
dH=dH+vh
vh=[0]
print MN,"\n",MT

#*************************************
#==============================================================================

You created this PDF from an application that is not licensed to print to novaPDF printer (http://www.novapdf.com)

You might also like