Está en la página 1de 1

EXPORT HCJ()

BEGIN
//Variables
LOCAL DER,X0,ECALC;
LOCAL Q,b,n,S;
LOCAL A,T,Fr,p,R,v,Es,DH;

//Datos de entrada
ECALC:=2*E;
INPUT({Q,b,n,S});
X0:=0;
E:=0.00001;
DER:=CAS.diff((((b*S^0.5)/n)*X*((b*X/(b+2*X))^(2/3))-Q),X);

//Newton Raphson
WHILE E<ECALC DO
X:=X0;
X1:=EVAL(X-(((b*S^0.5)/n)*X*((b*X/(b+2*X))^(2/3))-Q)/DER);
ECALC:=ABS(X1-X0);
X0:=X1;
END;

//Datos de salida
A:=b*X1;
T:=b;
v:=Q/A;
DH:=A/T;
Fr:=v/((9.81*DH)^0.5);
p:=b+2*X1;
R:=(b*X1)/(b+2*X1);
Es:=X1+((v^2)/(2*9.81));

RECT_P(#AAAF);
TEXTOUT_P("RESULTADOS",30,10,5,#);
TEXTOUT_P("TIRANTE NORMAL (y) : "+TRUNCATE(X1,5)+" m",10,40,1,#);
TEXTOUT_P("�REA HIDR�ULICA (A) : "+TRUNCATE(A,5)+" m^2",10,60,1,#);
TEXTOUT_P("ESPEJO DE AGUA (T) : "+T+" m",10,80,1,#);
TEXTOUT_P("N�MERO DE FROUDE (Fr) : "+TRUNCATE(Fr,5),10,100,1,#);
TEXTOUT_P("PER�METRO (p) : "+TRUNCATE(p,5)+" m",10,120,1,#);
TEXTOUT_P("RADIO HIDR�ULICO (R) : "+TRUNCATE(R,5)+" m",10,140,1,#);
TEXTOUT_P("VELOCIDAD (v) : "+TRUNCATE(v,5)+" m/s",10,160,1,#);
TEXTOUT_P("ENERG�A ESPEC�FICA (Es) : "+TRUNCATE(Es,5)+" m-Kg/Kg",10,180,1,#);

IFTE(Fr<1,TEXTOUT_P("TIPO DE FLUJO:
Subcr�tico",10,200,1,#),IFTE(Fr=1,TEXTOUT_P("TIPO DE FLUJO:
Cr�tico",10,200,1,#),IFTE(Fr>1,TEXTOUT_P("TIPO DE FLUJO:
Supercr�tico",10,200,1,#))));

FREEZE;

END;

También podría gustarte