Professional Documents
Culture Documents
Código Desarrollado en Lenguaje Python: Sys Math Self Self Pyqt5 Pyqt5 Pyqt5.Qtwidgets GG - Init - Init
Código Desarrollado en Lenguaje Python: Sys Math Self Self Pyqt5 Pyqt5 Pyqt5.Qtwidgets GG - Init - Init
[ ]: import sys
import math
import self as self
from PyQt5 import *
from PyQt5 import uic
from PyQt5.QtWidgets import*
class gg(QMainWindow):
def __init__(self):
super(gg, self).__init__()
uic.loadUi("clear.ui", self)
#botones
self.btncalcular.clicked.connect(self.calcular)
self.btncalcular2.clicked.connect(self.calcular2)
self.btncalcular3.clicked.connect(self.calcular3)
#funciones
def calcular(self):
Q=self.txtentrada1.toPlainText()
b=self.txtentrada2.toPlainText()
z=self.txtentrada3.toPlainText()
n=self.txtentrada4.toPlainText()
s=self.txtentrada5.toPlainText()
Q = float(Q)
b = float(b)
z = float(z)
n = float(n)
s = float(s)
# tirante
1
P = b + 2 * x * ((1 + z ** 2) ** (1 / 2))
f = (A ** (5 / 3)) / (P ** (2 / 3)) - (Q * n) / (s ** (1 / 2))
return f
def NewtonRaphson(x):
error = 1
tol = 1e-4
while error >= tol:
xi = x - f(x, b, z, Q, s, n) / df(x, b, z)
error = abs((xi - x) / xi)
x = xi
return xi
y = round(NewtonRaphson(1), 4)
self.txtsalida1.setText(str(y))
# area hidraulica
a = round(area(y, b, z), 4)
self.txtsalida2.setText(str(a))
# espejo de agua
e = round(espejo(y, b, z), 4)
2
self.txtsalida3.setText(str(e))
# perimetro mojado
pe = round(perimetro(y, b, z), 4)
self.txtsalida6.setText(str(pe))
# radio hidraulico
r = round(radio(a, pe), 4)
self.txtsalida7.setText(str(r))
# velocidad
v = round(veloc(n, r, s), 4)
self.txtsalida8.setText(str(v))
# numero de froud
fr = round(Froud(a, e, v), 4)
self.txtsalida4.setText(str(fr))
# tipo de flujo
f1 = str("supercrítico")
f2 = str("crítico")
3
f3 = str("subcrítico")
if fr > 1:
fl = f1
if fr == 1:
fl = f2
if fr < 1:
fl = f3
self.txtsalida5.setText(fl)
# para la ventana 2
def calcular2(self):
Qc = self.txtentrada11.toPlainText()
Dc = self.txtentrada12.toPlainText()
nc = self.txtentrada13.toPlainText()
sc = self.txtentrada14.toPlainText()
Qc = float(Qc)
Dc = float(Dc)
nc = float(nc)
sc = float(sc)
# tirante
,→3))) * (Dc / 2)
return df
def NewtonRaphson(y):
error = 1
tol = 1e-4
4
while error >= tol:
yi = y - f(y, Dc, Qc, sc, nc) / df(y, Dc)
error = abs((yi - y) / yi)
y = yi
return yi
aa=NewtonRaphson(1)
#tirante
def tirante(aa,Dc):
yc = (Dc / 2) * (1 - math.cos(aa / 2))
return yc
ti=round(tirante(aa, Dc),4)
self.txtsalida11.setText(str(ti))
# area hidraulica
def areac(aa,Dc):
Arc=((Dc**2)/8)*(aa-math.sin(aa))
return Arc
ac=round(areac(aa, Dc),4)
self.txtsalida12.setText(str(ac))
# espejo de agua
def espejoc(aa,Dc):
Tcc=(math.sin(aa/2))*Dc
return Tcc
ec=round(espejoc(aa, Dc),4)
self.txtsalida13.setText(str(ec))
#perimetro mojado
def perimetroc(aa,Dc):
Pcc = aa * Dc / 2
return Pcc
pc=round(perimetroc(aa, Dc),4)
self.txtsalida16.setText(str(pc))
# radio hidraulico
def radioc(ac,pc):
5
Rcc=ac/pc
return Rcc
rc=round(radioc(ac, pc),4)
self.txtsalida17.setText(str(rc))
# velocidad
def velocidadc(nc,rc,sc):
Vcc=(1/nc)*(rc**(2/3))*(sc**(1/2))
return Vcc
vc=round(velocidadc(nc,rc,sc),4)
self.txtsalida18.setText(str(vc))
#Numero de froud
def froudc(ac,ec,vc):
DH = ac / ec
frcc = vc / ((9.807 * DH) ** (1 / 2))
return frcc
frc=round(froudc(ac,ec,vc),4)
self.txtsalida14.setText(str(frc))
# tipo de flujo
f1c = str("supercrítico")
f2c = str("crítico")
f3c = str("subcrítico")
if frc > 1:
flc = f1c
if frc == 1:
flc = f2c
if frc < 1:
flc = f3c
self.txtsalida15.setText(flc)
# para la ventana 3
def calcular3(self):
Qp = self.txtentrada21.toPlainText()
Tp = self.txtentrada22.toPlainText()
np = self.txtentrada23.toPlainText()
sp = self.txtentrada24.toPlainText()
6
Qp = float(Qp)
Tp = float(Tp)
np = float(np)
sp = float(sp)
# tirante
return df
def NewtonRaphson(yp):
error = 1
tol = 1e-6
while error >= tol:
ypi = yp - f(yp, Qp, Tp, np, sp) / df(yp, Tp)
error = abs((ypi - yp) / ypi)
yp = ypi
return ypi
# tirante
ypp = round(NewtonRaphson(1), 4)
self.txtsalida21.setText(str(ypp))
# Area hidraulica
ap = round(areap(Tp, ypp), 4)
7
self.txtsalida22.setText(str(ap))
# Perimetro mojado
pp = round(perimetrop(Tp, ypp), 4)
self.txtsalida25.setText(str(pp))
# Radio Hidraulico
rp = round(radiop(ap, pp), 4)
self.txtsalida26.setText(str(rp))
# Velocidad
self.txtsalida27.setText(str(vp))
# Numero de Froud
return frp
self.txtsalida23.setText(str(fp))
# tipo de flujo
8
f1p = str("supercrítico")
f2p = str("crítico")
f3p = str("subcrítico")
if fp > 1:
flp = f1p
if fp == 1:
flp = f2p
if fp < 1:
flp = f3p
self.txtsalida24.setText(flp)
if __name__ == "__main__":
pass
app=QApplication(sys.argv)
mainWin = gg()
mainWin.show()
sys.exit(app.exec_())