martes, 10 de mayo de 2011

codigo en scilab

function r=Area(x)
  // Area del la tuberia
  r = %pi * x.^2/4;
endfunction

function r=v(x,y)
  // v del caudal
  // x= Caudal, y= Area.
  r=abs(x)/y;
endfunction

function r=Re(x,y)
  // Re de los cauudales
  // x=v del caudal, Y=Diametro tuberia
  r= x*(y/0.000001);
endfunction

function r=f(x)
  // friccion
  //x=Re
  r=1.02*(log10(x).^(-2.5));
endfunction

function r=k(x,y,z)
  // x=friccion, y=longitud, z=diametro
  r=x*(y/z);
endfunction

function r=c(x,y,z)
  //x=longitud, y=K, z=Area
  r=(x*(y/2))/(z^2);
endfunction

function r=Error()
  //Correccion en el caudal siguiente
  error1=(-0.5)*((C(1)*abs(Q(1))*Q(1))+(C(2)*abs(Q(2))*Q(2))+(C(3)*abs(Q(3))*Q(3)))/((C(1)*abs(Q(1)))+(C(2)*abs(Q(2)))+(C(3)*abs(Q(3))));
  error2=(-0.5)*((C(4)*abs(Q(4))*Q(4))+(C(5)*abs(Q(5))*Q(5))+(C(6)*abs(Q(6))*Q(6)))/((C(4)*abs(Q(4)))+(C(5)*abs(Q(5)))+(C(6)*abs(Q(6))));
  r=[error1,error2];
endfunction

function r=Caudal()
  r=[Q(1)+(E(1)-E(2));Q(2)+E(1);Q(3)+E(1);Q(4)+(E(2)-E(1));Q(5)+E(2);Q(6)+E(2)];
endfunction

  Q=[-0.3;0.4;-0.1;0.3;-0.3;0.1];
  D=0.4;
  L=1000;
  A=Area(D);
  V=v(Q,A);
  RE=Re(V,D);
  F=f(RE);
  K=k(F,L,D);
  C=c(L,K,A);
  E=Error();

function r=Matriz(x)
  // matriz siguiente
  for a=1:x
    Q=Caudal();
    D=0.4;
    L=1000;
    A=Area(D);
    V=v(Q,A);
    RE=Re(V,D);
    F=f(RE);
    K=k(F,L,D);
    C=c(L,K,A);
    E=Error();
end
r=[Q,V,RE,F,K,C];
endfunction

No hay comentarios:

Publicar un comentario