clc clear all close all global H_g C1ch Agp Cch Ach CchT Atf % Datos Lgp = 3*154.8 ; % longitud de la galería de presión(m) Ltf = 1197.25-Lgp ; % longitud de la tubería forzada(m) Ltdif = 20 ; % longitud del tubo difusor Dch = 8.5 ; % diámetro interior de la chimenea de equilibrio (m) Ach = pi/4 * Dch*Dch ; % área transversal de la chimenea de equilibrio (m^2) A0 = 4 ; % diámetro de la chimenea de equilibrio en su conexión a la conducción (m) Lch = 100 ; L= Lgp + Ltf ; % Ojo con t_iv, ¿En función de qué L lo defino? landa = 0.02 ; % coeficiente de fricción del conducto D = 4.4 ; % diámetro del conducto (m) c_0 = 1300 ; % m/s N = 50 ; inc_t = 1.0/N ; % Incremento de tiempo tfin = 50.0 ; % tfin = 0.1 ; t_p = (0:1.0/N:tfin); lt=length(t_p); % = tfin*N + 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % nuevos parámetros para imponer el cierre no instantáneo t_c = 1; % tiempo de cierre de la válcula t_iv = L/c_0; %tiempo de ida y vuelta de la onda A_e = (pi*D^2)/4; % Área de entrada de la válvula A_s = A_e ; % Área de salida de la válvula % a_0 = A_s/A_e ; % Constante adimensionales para t=0 a_0 = 0.01129200682 ; % Para que salga finalmente v_0 próximo a 1 H_g = 400 ; g = 9.81 ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% x_p = (0:1.0/N:1); lx=length(x_p); % = N + 1 rho_0 = 1000 ; % [kg/m3] g = 9.81 ; % [m/s2] H_g = 400; % [m] p_a = 1*10^5 ; % [Pa] c_0 = 1300 ; alpha = asin(H_g/(Lgp+Ltf+Ltdif)); x = x_p*(Lgp+Ltf+Ltdif); z = (Lgp+Ltf+Ltdif-x)*sin(alpha); landa = 0.02 ; % coeficiente de fricción del conducto D = 4.4 ; % diámetro del conducto (m) Agp = pi/4*D*D ; % área del conducto a la entrada (m^2) Atf = pi/4*D*D ; % área del conducto a la entrada (m^2) Atdif = 4.5*Atf ; % área del conducto a la salida (m^2) Cch = ( landa*Lch/D + 1.5 )/2/9.81/Ach/Ach ; C1ch = ( landa*Lgp/D + 1.5 )/2/9.81/Agp/Agp ; CchT = ( landa*Ltf/D + 1.5 )/2/9.81/Atf/Atf ; Ctdif = ( landa*Ltdif/D + 0.5 )/2/9.81/Atf/Atf ; % v_E = v_p*v_0; % H=-103,499 + 22,19·Q - 0,0785307·Q\u2\ B0= -103.499 ; B1= 22.19 ; B2= - 0.0785307 ; z_ch= H_g - Lgp*sin(alpha); z_E = H_g - (Lgp+Ltf)*sin(alpha); %%% 3 de las 6 ecuaciones %%% 1ª Ecuación % Agp*vgp+Ach*vch = Atf*vtf; %%% 2ª %eje x % -vgp*cos(alpha)*(Agp*vgp)+vtf*cos(alpha)*(Atf*vtf)=-p1*cos(alpha)*Agp-p2*cos(alpha)*Atf; %%% 3ª %eje y % -vgp*sin(alpha)*(Agp*vgp)+vtf*sin(alpha)*(Atf*vtf)=-p1*sin(alpha)*Agp-p2*sin(alpha)*Atf-pch*Ach; %%% En primer lugar dimensionalizamos las variables con las que se está %%% trabajando %%% Velocidades % vgp=v_1*v_0; % vch=v_ch*v_0; % vtf=v_2*v_0; %%% Presiones % p1 = (p_1+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0); % pch = (p_ch+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0); % p2 = (p_2+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0); %%% Resultando: %%% 1ª Ecuación % Agp*v_1*v_0+Ach*v_ch*v_0 = Atf*v_2*v_0; %%% 2ª %eje x % -v_1*v_0*cos(alpha)*(Agp*v_1*v_0)+v_2*v_0*cos(alpha)*(Atf*v_2*v_0)=-(p_1+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*cos(alpha)*Agp-(p_2+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*cos(alpha)*Atf; %%% 3ª %eje y % -v_1*v_0*sin(alpha)*(Agp*v_1*v_0)+v_2*v_0*sin(alpha)*(Atf*v_2*v_0)=-(p_1+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*sin(alpha)*Agp-(p_2+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*sin(alpha)*Atf-(p_ch+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*Ach; %%%Intento de resolver las condiciones iniciales%%%%%%%%%%%%%%%%% % X = [1 1 1 z_ch] ; % %X = [v_01 v_0ch v_02 Hch] ; % % EPS = 1e-7 ; % incremento para derivadas % PREC = 1e-4 ; % precisión relativa requerida % Niter = 20 ; % número máximo de iteraciones % N = 4 ; %NUMERO DE INCOGNITAS % Ieps = EPS*eye(N) ; % eps * matriz identidad NxN % % for k=1:Niter % F = ecs_Cierre_no_inst_con_fricc_chimenea_1(X) ; % for i=1:N % J(:,i) = ( ecs_tdleest2b(X+Ieps(i,:)) - F ) / EPS ; % end % incr = transpose( inv(J)*F ) ; % X = X - incr ; % converg = max( abs(incr./X) ) ; % if (converg < PREC) break; end % end % % F = ecs_Cierre_no_inst_con_fricc_chimenea_1(X) ; % % % Iteraciones = k ; % % X % % v_01 = X(1); % v_0ch = X(2); % v_02 = X(3); % Hch= X(4); %%%%%%%%%%%%%%%%%%%%%%%%%%%% t = (0:1.0/N:t_c); C_0=70; o=0.4; kv=C_0./(t_c*N-t*N).^o - C_0./(t_c*N).^o; k = kv; %%%Candiciones inicales calculadas con EES Hch = 399.5 ; v_01 = 1.632 ; v_02 = 1.632 ; v_0ch = 0.0004883 ; ztopch = 399.5 ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % p_0 = rho_0*v_0*c_0; p_01 = rho_0*v_01*c_0; p_0ch = rho_0*v_0ch*c_0; p_02 = rho_0*v_02*c_0; % %%%%%%%%%%%%Descomentar todo hacia abajo%%%%%%%%%%%%%%%% % Condiciones de iniciales para t=0 (primera fila) y para toda x (todas las columnas) for i = 1:lx %%% Tramo 1 p_1(1,i) = -(landa*(Lgp)/(2*D))*(v_01/c_0)*i/lx ; %%% Chimenea p_ch(1,i) = -(landa*(Lch)/(2*Dch))*(v_0ch/c_0)*i/lx ; %%% Tramo 2 % Para conocer las condiciones de presión y velocidad iniciales en el Tramo 2, aplicamos las %%% siguientes ecuaciones: p_2(1,i) = -(landa*(Ltf)/(2*D))*(v_02/c_0)*i/lx ; %%% end %%% Tramo1 v_1(1,1:lx) = 1 ; %%% Chimenea v_ch(1,1:lx) = 1 ; %%% Tramo 2 % Para conocer las condiciones de presión y velocidad iniciales en el Tramo 2, aplicamos las %%% siguientes ecuaciones: % Agp*v_1*v_0+Ach*v_ch*v_0 = Atf*v_2*v_0; v_2(1,1:lx)=(Agp*v_1*v_01+Ach*v_ch*v_0ch)/(Atf*v_02); %%% Para calcular la presión se aplica una de las dos ecuaciones %%% siguientes: %eje x % -v_1*v_0*cos(alpha)*(Agp*v_1*v_0)+v_2*v_0*cos(alpha)*(Atf*v_2*v_0)=-(p_1+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*cos(alpha)*Agp-(p_2+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*cos(alpha)*Atf; %%% 3ª %eje y % -v_1*v_0*sin(alpha)*(Agp*v_1*v_0)+v_2*v_0*sin(alpha)*(Atf*v_2*v_0)=-(p_1+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*sin(alpha)*Agp-(p_2+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*sin(alpha)*Atf-(p_ch+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*Ach; %%% Se va a emplear la primera, por simplicidad % for i = 1:lx % p_2(1,i)=(-v_1(1,i)*v_01*cos(alpha)*(Agp*v_1(1,i)*v_01)+v_2(1,i)*v_02*cos(alpha)*(Atf*v_2(1,i)*v_02)+(p_1(1,i)+rho_0*g*z_E-p_a-rho_0*g*H_g)/(p_0)*cos(alpha)*Agp)*(p_02)/(cos(alpha)*Atf)-rho_0*g*z_E+p_a+rho_0*g*H_g; % end %%% A = [1 1 ; 1 -1]; for i = 2:lt j=1; %%% Tramo 1 p_1(i,j) = 0 ; v_1(i,j) = v_1(i-1,j+1) - p_1(i-1,j+1) - landa*L/(2*D)*(v_01/c_0)*inc_t*v_1(i-1,j+1)*abs(v_1(i-1,j+1)) + p_1(i,j) ; %%% Chimenea p_ch(i,j) = 0 ; v_ch(i,j) = v_ch(i-1,j+1) - p_ch(i-1,j+1) - landa*L/(2*D)*(v_0ch/c_0)*inc_t*v_ch(i-1,j+1)*abs(v_ch(i-1,j+1)) + p_ch(i,j) ; %%% Tramo 2 % p_2(i,j)= 0!?; ¿Es esto correcto??? p_2(i,j)= 0; v_2(i,j) = v_2(i-1,j+1) - p_2(i-1,j+1) - landa*L/(2*D)*(v_02/c_0)*inc_t*v_2(i-1,j+1)*abs(v_2(i-1,j+1)) + p_2(i,j) ; %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% j=lx; if i <= t_c*N %% AQUÍ ESTÁ LO DIFÍCIL %%% Tramo 1 v_1(i,j) = 0 ;% !? ¿Es esto correcto??? %%% Chimenea v_ch(i,j) = 0 ;% !? ¿Es esto correcto??? %%% Tramo 2 coefa = ((Ctdif+B2+k(i))*(Atf^2)*(v_02^2)-(v_02^2)/(2*g))*(rho_0*g/p_02); coefb = 1+(B1*Atf*v_02)*(rho_0*g/p_02); coefc = -v_2(i-1,j-1) - p_2(i-1,j-1) + ((landa*L*v_02*inc_t)/(2*D*c_0))*(v_2(i-1,j-1)^2)+(B0-H_g)*(rho_0*g/p_02); v_2(i,j) = (-coefb + sqrt(coefb^2-4*coefa*coefc))/(2*coefa); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% else %%% Tramo 1 v_1(i,j) = 0 ; %%% Chimenea v_ch(i,j) = 0 ; %%% Tramo 2 v_2(i,j) = 0 ; %%% end p_1(i,j) = v_1(i-1,j-1) + p_1(i-1,j-1) - landa*L/(2*D)*(v_01/c_0)*inc_t*v_1(i-1,j-1)*abs(v_1(i-1,j-1)) - v_1(i,j); p_ch(i,j) = v_ch(i-1,j-1) + p_ch(i-1,j-1) - landa*L/(2*D)*(v_0ch/c_0)*inc_t*v_ch(i-1,j-1)*abs(v_ch(i-1,j-1)) - v_ch(i,j); p_2(i,j) = v_2(i-1,j-1) + p_2(i-1,j-1) - landa*L/(2*D)*(v_02/c_0)*inc_t*v_2(i-1,j-1)*abs(v_2(i-1,j-1)) - v_2(i,j); for j = 2:lx-1 %%% Tramo 1 b(1,1) = v_1(i-1,j-1) + p_1(i-1,j-1) - landa*L/(2*D)*(v_01/c_0)*inc_t*v_1(i-1,j-1)*abs(v_1(i-1,j-1)); b(2,1) = v_1(i-1,j+1) - p_1(i-1,j+1) - landa*L/(2*D)*(v_01/c_0)*inc_t*v_1(i-1,j+1)*abs(v_1(i-1,j+1)); x=A\b; v_1(i,j) = x(1); p_1(i,j) = x(2); %%% Chimenea c(1,1) = v_ch(i-1,j-1) + p_ch(i-1,j-1) - landa*L/(2*D)*(v_0ch/c_0)*inc_t*v_ch(i-1,j-1)*abs(v_ch(i-1,j-1)); c(2,1) = v_ch(i-1,j+1) - p_ch(i-1,j+1) - landa*L/(2*D)*(v_0ch/c_0)*inc_t*v_ch(i-1,j+1)*abs(v_ch(i-1,j+1)); y=A\c; v_ch(i,j) = y(1); p_ch(i,j) = y(2); %%% Tramo 2 d(1,1) = v_2(i-1,j-1) + p_2(i-1,j-1) - landa*L/(2*D)*(v_02/c_0)*inc_t*v_2(i-1,j-1)*abs(v_ch(i-1,j-1)); d(2,1) = v_2(i-1,j+1) - p_2(i-1,j+1) - landa*L/(2*D)*(v_02/c_0)*inc_t*v_2(i-1,j+1)*abs(v_ch(i-1,j+1)); y=A\d; v_2(i,j) = y(1); p_2(i,j) = y(2); %%% end end %%%¿Cómo unimos los vectores para porder representarlos?%%% %% A continuación se intenta representar cada conucto % Representación gráfica Galería de Presión(animación) % m = size(v_1,1) ; figure(1) clf % hv = plot(x,v(1:n),'EraseMode','background'); hp = plot(x_p,p_1(1,:),'EraseMode','xor'); hold on hv = plot(x_p,v_1(1,:),'r','EraseMode','xor'); axis([0 1 -1.2 1.2]) % axis square % box on set(gca,'xtick',[0 0.2 0.4 0.6 0.8 1]) set(gca,'ytick',[-1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1.0 1.2]) % grid xlabel('{\it x/L}','Fontsize',15) ylabel('{\it v/v}_o , {\it p/p}_o','Fontsize',15) title('Presión y velocidad a lo largo de la galería de presión') for j=2:m pause(0.01); % set(hv,'XData',x,'YData',v( n*(j-1)+1 : n*j )) set(hp,'YData',p_1(j,:)) set(hv,'YData',v_1(j,:)) drawnow end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Representación gráfica Chimenea de Equilibrio(animación) % m = size(v_ch,1) ; figure(2) clf % hv = plot(x,v(1:n),'EraseMode','background'); hp = plot(x_p,p_ch(1,:),'EraseMode','xor'); hold on hv = plot(x_p,v_ch(1,:),'r','EraseMode','xor'); axis([0 1 -1.2 1.2]) % axis square % box on set(gca,'xtick',[0 0.2 0.4 0.6 0.8 1]) set(gca,'ytick',[-1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1.0 1.2]) % grid xlabel('{\it x/L}','Fontsize',15) ylabel('{\it v/v}_o , {\it p/p}_o','Fontsize',15) title('Presión y velocidad a lo largo de la chimenea de equilibrio') for j=2:m pause(0.01); % set(hv,'XData',x,'YData',v( n*(j-1)+1 : n*j )) set(hp,'YData',p_ch(j,:)) set(hv,'YData',v_ch(j,:)) drawnow end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Representación gráfica Tubería Forzada(animación) % m = size(v_2,1) ; figure(3) clf % hv = plot(x,v(1:n),'EraseMode','background'); hp = plot(x_p,p_2(1,:),'EraseMode','xor'); hold on hv = plot(x_p,v_2(1,:),'r','EraseMode','xor'); axis([0 1 -1.2 1.2]) % axis square % box on set(gca,'xtick',[0 0.2 0.4 0.6 0.8 1]) set(gca,'ytick',[-1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1.0 1.2]) % grid xlabel('{\it x/L}','Fontsize',15) ylabel('{\it v/v}_o , {\it p/p}_o','Fontsize',15) title('Presión y velocidad a lo largo de la tubería forzada') for j=2:m pause(0.01); % set(hv,'XData',x,'YData',v( n*(j-1)+1 : n*j )) set(hp,'YData',p_2(j,:)) set(hv,'YData',v_2(j,:)) drawnow end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


ESTUDIO NUMÉRICO DE LOS FENÓMENOS TRANSITORIOS APLICADOS A UNA CENTRAL HIDRÃULICA DE BOMBEO PURO

: Moreno Haya, Fernando
: Ingeniería Industrial