El tanque de tormentas de Arroyofresno (Grupo 43)

De MateWiki
Revisión del 01:17 6 dic 2025 de Jo.martin (Discusión | contribuciones) (Vida útil de la columna en la zona crítica)

Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título El tanque de tormentas de Arroyofresno. Grupo 43
Asignatura Teoría de Campos
Curso 2025-26
Autores
  • Jorge Martin Urresti
  • Diego Morcillo Parga
  • Lucia Dominguez Alvarez
  • Claudia Manrique Arias
  • Edgar Carhuaricra Solano
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

El tanque de tormentas de Arroyofresno, en funcionamiento desde 2007, es una de las infraestructuras hidráulicas subterráneas más relevantes de Madrid para la gestión de episodios de lluvia intensa. Con una capacidad de almacenamiento cercana a 400 000 m³, actúa como un gran depósito regulador donde se retienen las primeras aguas de escorrentía, suelen ser las más cargadas de contaminantes debido al arrastre de residuos, partículas, metales pesados y materia orgánica acumulada en la superficie urbana antes de ser enviadas a tratamiento.

La función esencial de esta instalación es reducir los caudales punta que llegan al alcantarillado durante las tormentas. Por lo que la retención temporal de estas aguas evita que lleguen de forma directa a los cauces naturales y permite enviarlas posteriormente a la estación depuradora en condiciones controladas. Al amortiguar esos volúmenes excesivos, se minimizan las posibilidades de inundación en superficie y se previene la descarga directa de aguas altamente contaminadas en los cauces receptores. Esto convierte al tanque en un elemento estratégico tanto para la seguridad hidráulica de la ciudad como para la protección medioambiental. Infraestructuras similares pueden encontrarse en grandes ciudades europeas como Barcelona, Berlín o París, donde la gestión de aguas pluviales mediante tanques o colectores subterráneos forma parte esencial de los sistemas de saneamiento modernos.

En este trabajo se construye un modelo geométrico simplificado del tanque de Arroyofresno, con el objetivo de analizar distintos campos escalares relevantes: la presión hidrostática ejercida por la columna de agua, la distribución vertical de contaminantes, los procesos de infiltración en el hormigón y el avance de la corrosión en las armaduras. Todas las representaciones y cálculos se realizarán y analizaran con Matlab, aplicando los conceptos de la asignatura de Teoría de Campos, con el fin de comprender de manera precisa cómo interactúan los procesos hidráulicos y estructurales en una infraestructura esencial para la gestión del agua urbana en Madrid.


Tanque de tormentas.jpg

Contenido

1 Funcionamiento del Tanque de Arroyofresno:

El funcionamiento del tanque se basa en laminar los caudales punta que llegan al alcantarillado durante una tormenta. Cuando la red unitaria, que transporta tanto aguas residuales como pluviales, supera su capacidad, el tanque se activa automáticamente y comienza a llenarse. De esta forma se evita que se produzcan inundaciones en superficie o vertidos altamente contaminantes al medio natural. Durante el tiempo que el agua permanece retenido en el depósito, se produce una decantación natural que reduce la cantidad de sólidos en suspensión puesto que el agua sucia experimenta una fase de reposo que permite que la parte de los sólidos se depositen en fondo, lo que facilita su posterior tratamiento cuando la depuradora vuelve a estar en condiciones de recibir el caudal. Este proceso, además de regular hidráulicamente la red, genera un entorno químicamente agresivo en el interior del tanque, ya que las aguas contaminadas favorecen la presencia de cloruros y sulfatos que afectan a las estructuras de hormigón armado. Los cloruros pueden penetrar en el hormigón y alcanzar la armadura puesto que si el hormigón se encuentran sometido a un ambiente químico agresivo durante un largo tiempo, se destruye la capa pasivadora del acero y provoca procesos de corrosión que generan fisuras y pérdida de adherencia. Cuando esto ocurre, la humedad y el oxígeno desencadenan procesos de corrosión que aumentan el volumen de acero oxidado y se originan fisuras en el recubrimiento. Por su parte, los sulfatos procedentes de la degradación de la materia orgánica reaccionan con los componentes del cemento, dando lugar a productos expansivos que producen tensiones internas y, a largo plazo, deterioran progresivamente la matriz del hormigón. Para hacer frente a estos mecanismos de daño que son responsables de pérdidas de durabilidad podrían limitan la vida útil de estas instalaciones, dichas estructuras se diseñan con recubrimientos más gruesos, hormigones de baja porosidad, armaduras resistentes a la corrosión e incluso con revestimientos protectores en las superficies en contacto con el agua e incluso se puede llegar a recurrir a recubrimientos superficiales que actúan como barrera frente a la penetración de contaminantes.

En este trabajo se desarrolla un modelo geométrico simplificado del tanque de Arroyofresno para estudiar fenómenos como la presión hidrostática, la distribución de contaminantes, la infiltración en el hormigón y la evolución de la corrosión en la armadura. Todo ello se analiza mediante Matlab, siguiendo los métodos propios de la Teoría de Campos, con el fin de comprender de manera precisa cómo interactúan los procesos hidráulicos y estructurales en una infraestructura esencial para la gestión del agua urbana en Madrid.

2 Presión y fuerzas estructurales sobre columnas

2.1 Cálculo y representación del campo de presiones P(z):

Cuando el tanque de tormentas se encuentra completamente lleno, el campo escalar de presión que actúa sobre las columnas de hormigón viene determinado por la ley fundamental de la hidrostática. Este campo presenta una dependencia con la coordenada vertical, característica de los fluidos en reposo bajo la acción de la gravedad. La expresión matemática de este comportamiento es:


[math]P(z) = P_0 + \rho_{\text{agua}} \, g \, h(z),\qquad z \in [-H,0][/math]

donde P_0 es 101325 kPa es la presión atmosférica, \(\rho_{\text{agua}}\) es la densidad del agua y tiene un valor de 1000 kg/m³, \(g\) es la aceleración de la gravedad con valor 9.81 m/s2 y por último, \(h(z)\) que representa la profundidad con un valor de -z. Si reecribimos nuestra función, tenemos:


[math]P(z) = P_0 - \rho_{\text{agua}} \, g \, z,\qquad z \in [-H,0][/math]

Por lo que sabemos que nuestro campo tiene una independencia horizontal donde todos los puntos situados a la misma profundidad experimentan una idéntica presión, posee una variación lineal donde la presión aumenta linealmente con la profundidad y una distribución cilíndrica con columnas de radio [math]r_c = 0{,}75 m[/math], donde cada anillo horizontal presenta una presión uniforme.

La visualización se realiza mediante una malla cilíndrica parametrizada en coordenadas cilíndricas (p,θ,z) transformadas posteriormente a cartesianas (x,y,z), donde a cada punto de esta superficie se le asigna un valor de presión mediante un mapa de colores que permite identificar las zonas de mayor solicitación.

Campo de presiones
% Parámetros para la representación del campo de presiones 
rc = 0.75;      % radio en metros
H = 22;               % altura en metros 
Patmosferica = 101325;        % presión atmosférica en Pa (pascales)
dagua = 1000;       % densidad del agua en kg/m^3
g = 9.81;             % gravedad m/s^2

% Malla en coordenadas cilíndricas
theta = 200;
z = 200;
theta2 = linspace(0,2*pi,theta);
z2 = linspace(-H,0,z);
[Theta,Z] = meshgrid(theta2,z2);

% Coordenadas cartesianas de la superficie cilíndrica
R = rc;
X = R*cos(Theta);
Y = R*sin(Theta);

% Cálculo del campo de presiones P(z) 
P = Patmosferica - dagua * g .* Z;                

% Representación del mapa de colores 
figure('Color',[1,1,1],'Position',[250 180 720 580]);
h = surf(X, Y, Z, P, 'EdgeColor','none','FaceAlpha',0.95);  
colorbar_handle = colorbar;
colorbar_handle.Label.String = 'Presión (Pa)';

% Etiquetas
axis equal
xlabel('Eje x (metros)','FontSize',11)
ylabel('Eje Y (metros)','FontSize',11)
zlabel('Eje Z (metros)','FontSize',11)
title('Representación del campo de presiones','FontSize',13,'FontWeight','bold')
view(38,22)


2.2 Cálculo y representación del gradiente de presión y representación como campo vectorial:

El gradiente de presión es un operador vectorial fundamental en mecánica de fluidos que cuantifica la variación espacial del campo de presión. Para un campo escalar de presión P(x,y,z), su gradiente se define matemáticamente como:
[math]\nabla P = \left( \frac{\partial P}{\partial x},\frac{\partial P}{\partial y},\frac{\partial P}{\partial z} \right)[/math]

Dado nuestro campo de presiones \(P(z) = P_0 - \rho_{\text{agua}} g z\), con una dependencia exclusiva en z, las derivadas parciales se simplifican dando como resultado el siguiente campo vectorial del gradiente:

br />
[math]\nabla P = (0,\,0,\,-\rho_{\text{agua}} g)[/math]

Sabemos que posee una magnitud constante con valor de 9810 N/m³, que posee una dirección vertical y que el gradiente es uniforme en toda la columna y que estamos representando la fuerza por unidad de volumen que el agua ejerce sobre la estructura.

Este campo vectorial constante explica por qué la presión aumenta linealmente con la profundidad y permite comprender la distribución de fuerzas sobre las columnas del tanque.

Gradiente de presiones
% Datos
H = 22;                % altura en metros 
rc = 0.75;      % radio de las columnas en metros
dagua = 1000;         % densidad del agua en kg/m^3
g = 9.81;         % gravedad en m/s^2

% Mallado cilíndrico
Theta = 20;
Z = 20;
theta2 = linspace(0, 2*pi, Theta);
z2 = linspace(-H, 0, Z);
[Theta, Z] = meshgrid(theta2, z2);
X = rc*cos(Theta);
Y = rc*sin(Theta);

% Gradiente de presión 
Gradientex = zeros(size(X));
Gradientey = zeros(size(Y));
Gradientez = -ones(size(Z));   % campo de presiones -z

% Representación
figure;
surf(X, Y, Z, 'FaceAlpha', 0.25, 'EdgeColor', 'none');  
hold on;
quiver3(X, Y, Z, Gradientex, Gradientey, Gradientez, 0.75, 'color',[0.2 0.2 0.2]);        
axis equal;
xlabel('Eje x (metros)','FontSize',11)
ylabel('Eje Y (metros)','FontSize',11)
zlabel('Eje Z (metros)','FontSize',11)
title('Cáculo y representación del gradiente de presión','FontSize',13,'FontWeight','bold')
view(35,25)
grid on;
hold off;


2.3 Cálculo de la fuerza total que el agua ejerce sobre una columna:

Para determinar la fuerza total que ejerce el agua sobre una columna cilíndrica del tanque de tormentas, se emplea el concepto de presión manométrica. La presión manométrica representa la presión relativa respecto a la atmosférica, por lo que en nuestro análisis consideramos [math] P_0 = 0 [/math].

La distribución de presión manométrica viene dada por:
[math]p(z) = \rho_{\text{agua}}\,g\,h(z) = -\rho_{\text{agua}} g z,\qquad z\in[-H,0][/math]
.

La fuerza total se obtiene integrando la presión sobre toda la superficie lateral de la columna. En coordenadas cilíndricas sabemos que el elemento de área es \(dA = r_c\,d\theta\,dz\) y que la integral de fuerza es


[math] F = \int_{\text{superficie}} p(z)\,dA = \int_{z=-H}^0 \int_{\theta=0}^{2\pi} (-\rho_{\text{agua}} g z)\, r_c\,d\theta\,dz = 2\pi r_c \rho_{\text{agua}} g \int_{-H}^0 (-z)\,dz [/math]

Su resolución analítica es:


[math] F = \int_{-H}^0 (-z)\,dz = \left[-\frac{z^2}{2}\right]_{-H}^0 = \frac{H^2}{2} [/math]

Si sustituimos los datos en la resolución de nuestra integral sabiendo que \(r_c = 0{,}75\ \text{m}\), \(H = 22\ \text{m}\), \(\rho_{\text{agua}} = 1000\ \text{kg/m}^3\) y \(g = 9{,}81\ \text{m/s}^2\) tenemos que


[math] F = \pi\,r_c\,\rho_{\text{agua}}\,g\,H^2 [/math]

3 Infiltración y corrosión en columnas

3.1 Representación del campo de concentración infiltrada:

Para una sección vertical que pasa por el eje de la columna, el campo de concentración infiltrada \(C_{\mathrm{col}}(x,z)\) viene dado por \(C_{\mathrm{col}}(\rho,z)=C_0\left(1+\alpha\frac{|z|}{H}\right)\mathrm{e}^{-\lambda(\rho_c-\rho)}\)

Distribución espacial de la concentración de cloruros infiltrados en una sección vertical de la columna.


H=22;rho_c=0.75;rho_a=0.65;C0=0.3;alpha=3;lambda=10;
n=120;
x=linspace(-rho_c, rho_c, n);z=linspace(-H,0,n);  
[X,Z] = meshgrid(x, z);R = abs(X);                        
C_col = C0 .* (1 + alpha*abs(Z)/H) .* exp(-lambda*(rho_c - R));
C_col(R > rho_c) = NaN;

figure
surf(X, Z, C_col, 'EdgeColor','none');   
view(2);                                  
colorbar
xlabel('x [m]');
ylabel('z [m]');
title('Seccion vertical');
axis tight

hold on
z_armadura = max(C_col(:)) * 1.01;
x1 = rho_a * ones(size(z));x2 = -rho_a * ones(size(z));

plot3(x1, z, z_armadura*ones(size(z)), 'k--', 'LineWidth', 1.5);
plot3(x2, z, z_armadura*ones(size(z)), 'k--', 'LineWidth', 1.5);
hold off

Representación del campo de concentración infiltrada en una sección vertical.

Representación del campo de concentración infiltrada (sección transversal).

Distribución espacial de la concentración de cloruros infiltrados en la sección transversal de la columna, donde se aprecia el decaimiento radial desde la superficie exterior hacia la armadura.

H=22;rho_c=0.75;rho_a=0.65;C0=0.3;alpha=3;lambda=10;
z0 = -H/2;n= 150;
x= linspace(-rho_c, rho_c, n);y= linspace(-rho_c, rho_c, n);

[X,Y] = meshgrid(x, y);R= sqrt(X.^2 + Y.^2);              

C_col = C0 .* (1 + alpha*abs(z0)/H) .* exp(-lambda*(rho_c - R));
C_col(R > rho_c) = NaN;

figure
surf(X, Y, C_col, 'EdgeColor','none');
view(2);
colorbar
xlabel('x [m]');
ylabel('y [m]');
title('Seccion transversal');
axis equal tight

hold on
z_armadura = max(C_col(:)) * 1.01;
theta = linspace(0,2*pi,200);
xa = rho_a*cos(theta);
ya = rho_a*sin(theta);
plot3(xa, ya, z_armadura*ones(size(theta)), 'k--', 'LineWidth', 1.5);
hold off

Representación del campo de concentración infiltrada en una sección transversal.

3.2 Representación del campo de gradiente de concentración infiltrada:

En nuestro caso el campo gradiente de la funcion C: \(\nabla C = \bigl(\lambda C_0(1+\alpha |z|/H)\,\mathrm{e}^{-\lambda(\rho_c-\rho)},\,0,\,-C_0\alpha/H\,\mathrm{e}^{-\lambda(\rho_c-\rho)}\bigr)\)

3.3 Representación del campo de gradiente de concentración infiltrada

En nuestro caso el campo escalar de concentración se escribe en coordenadas cilíndricas como [math] C = C(\rho,z), [/math] es decir, es independiente del ángulo [math]\theta[/math] (simetría cilíndrica).

El gradiente en coordenadas cilíndricas, para un campo escalar con simetría axial, es [math] \nabla C = \frac{\partial C}{\partial \rho}\,\vec e_\rho + \frac{\partial C}{\partial z}\,\vec e_z, [/math] ya que la derivada respecto de [math]\theta[/math] es nula.

Por otro lado, en coordenadas cartesianas [math](x,y,z)[/math] el gradiente se escribe como [math] \nabla C = \frac{\partial C}{\partial x}\,\vec i + \frac{\partial C}{\partial y}\,\vec j + \frac{\partial C}{\partial z}\,\vec k, [/math] donde [math]\vec i,\vec j,\vec k[/math] son los versores de los ejes [math]x,y,z[/math].

El enlace entre ambas bases viene dado por las relaciones habituales de teoría de campos: [math] \vec e_\rho = \cos\theta\,\vec i + \sin\theta\,\vec j, \qquad \vec e_\theta = -\sin\theta\,\vec i + \cos\theta\,\vec j, \qquad \vec e_z = \vec k. [/math]

Sustituyendo [math]\vec e_\rho[/math] y [math]\vec e_z[/math] en la expresión del gradiente en cilíndricas, obtenemos:

[math] \boxed{ \nabla C = \frac{\partial C}{\partial \rho}\,(\cos\theta\,\vec i + \sin\theta\,\vec j) + \frac{\partial C}{\partial z}\,\vec k } [/math]

Comparando término a término con la expresión cartesiana del gradiente, [math] \nabla C = \frac{\partial C}{\partial x}\,\vec i + \frac{\partial C}{\partial y}\,\vec j + \frac{\partial C}{\partial z}\,\vec k, [/math] se obtienen directamente las componentes:

[math] \boxed{ \frac{\partial C}{\partial x} = \frac{\partial C}{\partial \rho}\,\cos\theta, \qquad \frac{\partial C}{\partial y} = \frac{\partial C}{\partial \rho}\,\sin\theta, \qquad \frac{\partial C}{\partial z} = \frac{\partial C}{\partial z}. } [/math]

Por definición de las coordenadas cilíndricas tenemos [math] x = \rho\cos\theta, \qquad y = \rho\sin\theta \;\Rightarrow\; \cos\theta = \frac{x}{\rho}, \quad \sin\theta = \frac{y}{\rho}. [/math]

Por tanto, las componentes del gradiente en función de [math](x,y,z)[/math] quedan:

[math] \boxed{ \frac{\partial C}{\partial x} = \frac{\partial C}{\partial \rho}\,\frac{x}{\rho}, \qquad \frac{\partial C}{\partial y} = \frac{\partial C}{\partial \rho}\,\frac{y}{\rho}, \qquad \frac{\partial C}{\partial z} = \frac{\partial C}{\partial z}. } [/math]

En el código de MATLAB, esta última expresión se implementa en la sección [math]x-z[/math] como [math] \frac{\partial C}{\partial x} \approx \texttt{dC\_dr}\,\frac{X}{R}, [/math] donde [math]\texttt{dC\_dr}[/math] representa [math]\partial C/\partial \rho[/math], [math]X[/math] es la matriz de coordenadas [math]x[/math] y [math]R = |X|[/math] es la distancia radial en dicha sección.


H=22;rho_c=0.75;rho_a=0.65;C0=0.3;alpha=3;lambda=10;
n=120;
x=linspace(-rho_c, rho_c, n);z=linspace(-H,0,n);  
[X,Z]=meshgrid(x, z);R = abs(X); 
C_col=C0.* (1 + alpha*abs(Z)/H).* exp(-lambda*(rho_c-R));
C_col(R>rho_c)=NaN;
dC_dr = lambda*C0*(1+alpha*abs(Z)/H).* exp(-lambda*(rho_c-R));
dC_drho=0;
dC_dz=C0*(alpha/H)*abs(Z).* exp(-lambda*(rho_c-R));

GradCx=zeros(size(X));
mask=(R>0 & R<=rho_c);
GradCx(mask)=dC_dr(mask).* X(mask)./R(mask);

GradCz=dC_dz;

GradCx(R>rho_c)=NaN;
GradCz(R>rho_c)=NaN;

figure;
contourf(X, Z, C_col, 25, 'LineColor', 'none');
hold on;
step=3;
quiver(X(1:step:end,1:step:end),Z(1:step:end,1:step:end),......
        GradCx(1:step:end,1:step:end),.....
        GradCz(1:step:end,1:step:end),......
        1.2, 'k');

xlabel('x [m]');
ylabel('z [m]');
title('Sección vertical: campo del gradiente de concentración');
axis tight;
grid on;
hold off;

Grad seccion vertical.png

3.3.1 Representación del campo de la función de concentración de la armadura en función de la profundidad:

En la Figura se representa la variación de la concentración de contaminantes en la armadura, [math]C_\text{acero}(z)[/math], a lo largo de la profundidad del tanque, desde el fondo ([math]z=-H[/math]) hasta la superficie ([math]z=0[/math]). Sobre la misma se ha trazado la línea horizontal correspondiente al umbral crítico de inicio de corrosión, [math]C_\text{crit} = 0{,}05\ \text{kg/m}^3[/math].

Se observa que [math]C_\text{acero}(z)[/math] aumenta hacia la superficie, de modo que solo en el tramo superior la concentración supera el valor crítico. Esa franja define la zona de riesgo de corrosión de la armadura. El resultado es coherente con el comportamiento físico del problema: los contaminantes (principalmente cloruros) penetran desde la superficie hacia el interior y su concentración disminuye con la profundidad, de manera que las barras situadas más cerca de la superficie —donde además hay mayor disponibilidad de oxígeno— son las más expuestas a la corrosión.


H= 22;rho_c = 0.75;rho_a = 0.65;    
C0=0.3;alpha =3;lambda = 10;Ccrit = 0.05;    
n = 100;
z = linspace(-H, 0, n);        

factor_r = (rho_a / rho_c)^alpha;
Cacero = C0 * factor_r .* exp(lambda * z / H);

figure; hold on;

plot(z, Cacero, 'LineWidth', 1.5);
plot(z, Ccrit * ones(size(z)), 'k--', 'LineWidth', 1.2);

xlabel('Profundidad z (m)');
ylabel('C_{acero}(z) [kg/m^3]');
title('Concentración de contaminantes en la armadura');
legend('C_{acero}(z)', 'C_{crit} = 0.05 kg/m^3', 'Location', 'best');
grid on;

text(-2, Ccrit + 0.01, 'Riesgo de corrosión: C_{acero} > C_{crit}');

Representación del campo de concentración infiltrada en una sección vertical.

3.3.2 Representación de las superficies de isoconcentración dentro de una columna:

En la Figura se representan las superficies de isoconcentración del campo de concentración infiltrada en la columna, \(C_{\text{col}}(\rho,z)\), junto con el cilindro de la armadura. Cada superficie corresponde a un valor constante de concentración dentro del rango 0,1 a 0,4 en kg/m^3.

Se observa que las isosuperficies forman capas prácticamente cilíndricas, adheridas a la pared del tanque y extendidas a lo largo de toda la profundidad. Hacia el fondo del tanque (\(z \approx -H\)) la concentración aumenta debido a la sedimentación de contaminantes en el agua, mientras que hacia el interior de la columna la concentración disminuye por el efecto de atenuación radial en el hormigón. Esta representación tridimensional permite identificar de forma visual las regiones del hormigón con igual grado de contaminación y la proximidad de dichas capas a la armadura.

En la Figura se han representado cuatro superficies de isoconcentración del campo \(C_{\text{col}}(\rho,z)\). Cada color corresponde a un valor constante de concentración:

  • La superficie **azul**, que es la más interior, corresponde a \(C_{\text{col}} = 0{,}10\ \text{kg/m}^3\).
  • La siguiente superficie (de tono **amarillento**) corresponde a \(C_{\text{col}} = 0{,}20\ \text{kg/m}^3\).
  • La superficie intermedia de color **anaranjado** representa el nivel \(C_{\text{col}} = 0{,}30\ \text{kg/m}^3\).
  • La superficie más exterior, de tono **morado**, corresponde a \(C_{\text{col}} = 0{,}40\ \text{kg/m}^3\).

A medida que nos alejamos del eje de la columna y nos acercamos a la pared del tanque, la concentración aumenta, de modo que las superficies de mayor concentración (0,30 y 0,40 kg/m³) envuelven a las de menor concentración (0,10 y 0,20 kg/m³).

La armadura se representa como un cilindro gris semitransparente de radio \(\rho_a = 0{,}65\ \text{m}\), situado cerca de la pared del tanque (\(\rho_c = 0{,}75\ \text{m}\)). Por su posición radial, la armadura queda inmersa en la zona de concentraciones medias–altas, aproximadamente entre las superficies de \(0{,}20\) y \(0{,}40\ \text{kg/m}^3\), lo que indica un mayor riesgo de contaminación en esa región del hormigón.


H=22;rho_c=0.75;rho_a=0.65;C0=0.3;alpha=3;lambda =10;
Is_superf=[0.10 0.20 0.30 0.40];n=40;
x=linspace(-rho_c,rho_c,n);
y=linspace(-rho_c,rho_c,n);
z=linspace(-H,0,2*n);
[X,Y,Z]=meshgrid(x,y,z);
R=sqrt(X.^2+Y.^2);

C_col=C0.* (1 + alpha*abs(Z)/H).* exp(-lambda*(rho_c-R));
C_col(R>rho_c)=NaN;

figure; hold on;axis tight;

colores = lines(length(Is_superf));

for k = 1:length(Is_superf)
    nivel=Is_superf(k);
    p=patch(isosurface(X,Y,Z,C_col,nivel));
    set(p,'FaceColor',colores(k,:), ...
          'EdgeColor','none', ...
          'FaceAlpha', 0.6);
end

[Xa,Ya,Za]=cylinder(rho_a, 2*n);
Za=-H+H*Za;

surf(Xa, Ya, Za, ...
    'FaceColor', [0.8 0.8 0.8], ...
    'FaceAlpha', 0.25, ...
    'EdgeColor', 'none');

xlabel('x (m)');
ylabel('y (m)');
zlabel('z (m)');
title('Superficies de isoconcentración');
xlim([-rho_c rho_c]);
ylim([-rho_c rho_c]);
zlim([-H 0]);
view(40, 55);
grid on;
hold off;

Representación del campo de concentración infiltrada en una sección vertical.

3.3.3 Estimación de la vida útil de la columna en la zona crítica:

3.3.4 Vida útil de la columna en la zona crítica

Diámetro inicial de la barra:

[math]d_0 = 20~\text{mm}[/math]

Pérdida crítica del 25 % del diámetro:

[math]d_{\text{perd}} = 0{,}25\,d_0 = 0{,}25\cdot 20 = 5~\text{mm}[/math]

Velocidad de corrosión (avance radial):

[math]v_{\text{corr}} = 0{,}1~\text{mm/año}[/math]

La corrosión reduce el radio, así que la pérdida de diámetro es el doble del espesor corroído:

[math]2\,v_{\text{corr}}\,t = d_{\text{perd}}[/math]
[math]2\cdot 0{,}1~\text{mm/año}\cdot t = 5~\text{mm}[/math]
[math]0{,}2\,t = 5 \quad\Rightarrow\quad t = \dfrac{5}{0{,}2} = 25~\text{años}[/math]

Por tanto, la barra tarda aproximadamente **25 años** en perder el 25 % de su diámetro.

3.3.5 Cálculo de la masa total de contaminantes infiltrado:

3.3.6 Cálculo del campo de concentración de contaminantes en el agua:

3.4 Apartado 10: Cálculo Numérico de Masa de Contaminantes

3.5 Apartado 10: Cálculo Analítico de la Masa Infiltrada

3.6 Apartado 10: Cálculo Analítico de la Masa de Contaminantes Infiltrados

3.6.1 1. Planteamiento del Problema

En el marco de la **Teoría de Campos**, se calcula la masa total de contaminantes infiltrados en una columna cilíndrica de hormigón como la integral volumétrica de un campo escalar de concentración [math]C_{\text{col}}(\rho, z)[/math] definido en coordenadas cilíndricas.

3.6.2 2. Campo Escalar de Concentración

El campo de concentración dentro del material poroso es: [math] C_{\text{col}}(\rho, z) = C_{\text{agua}}(z) \cdot e^{-\lambda (\rho_e - \rho)} [/math]

donde el campo escalar en el agua circundante es: [math] C_{\text{agua}}(z) = C_0 \left(1 + \alpha \frac{|z|}{H}\right) [/math]

3.6.3 3. Integral de Volumen

La masa total se obtiene integrando el campo escalar sobre el volumen [math]V[/math] de la columna: [math] M_{\text{col}} = \iiint\limits_{V} C_{\text{col}}(\rho,z) \, dV [/math]

En coordenadas cilíndricas [math](\rho, \theta, z)[/math], con [math]z \in [-H, 0][/math] y [math]\rho \in [\rho_a, \rho_e][/math]: [math] M_{\text{col}} = \int_{z=-H}^{0} \int_{\theta=0}^{2\pi} \int_{\rho=\rho_a}^{\rho_e} C_{\text{col}}(\rho,z) \, \rho \, d\rho \, d\theta \, dz [/math]

3.6.4 4. Separación de Variables

Debido a la simetría axial y la estructura multiplicativa del campo, la integral se separa: [math] M_{\text{col}} = \underbrace{\int_{-H}^{0} C_{\text{agua}}(z) \, dz}_{I_z} \cdot \underbrace{\int_{0}^{2\pi} d\theta}_{I_\theta} \cdot \underbrace{\int_{\rho_a}^{\rho_e} e^{-\lambda (\rho_e - \rho)} \rho \, d\rho}_{I_\rho} [/math]

3.6.5 5. Resolución de [math]I_z[/math] (Integral Vertical)

Para [math]z \leq 0[/math], se tiene [math]|z| = -z[/math]: [math] \begin{aligned} I_z &= \int_{-H}^{0} C_0 \left(1 + \alpha \frac{|z|}{H}\right) dz = \int_{-H}^{0} C_0 \left(1 - \alpha \frac{z}{H}\right) dz \\ &= C_0 \left[ z - \frac{\alpha}{2H} z^2 \right]_{-H}^{0} \\ &= C_0 \left( 0 - \left( -H - \frac{\alpha}{2H} H^2 \right) \right) \\ &= C_0 H \left( 1 + \frac{\alpha}{2} \right) \end{aligned} [/math]

3.6.6 6. Resolución de [math]I_\theta[/math] (Integral Angular)

[math] I_\theta = \int_{0}^{2\pi} d\theta = 2\pi [/math]

3.6.7 7. Resolución de [math]I_\rho[/math] (Integral Radial)

Esta integral modela la atenuación radial de la concentración. Se resuelve con el cambio de variable [math]u = \rho_e - \rho[/math]: [math] \begin{aligned} I_\rho &= \int_{\rho_a}^{\rho_e} e^{-\lambda (\rho_e - \rho)} \rho \, d\rho \\ &= \int_{0}^{\rho_e - \rho_a} e^{-\lambda u} (\rho_e - u) \, du \quad \text{(con } u = \rho_e - \rho \text{)} \\ &= \rho_e \int_{0}^{\rho_e-\rho_a} e^{-\lambda u} \, du - \int_{0}^{\rho_e-\rho_a} u e^{-\lambda u} \, du \end{aligned} [/math]

Resolviendo la primera integral: [math] \int_{0}^{\rho_e-\rho_a} e^{-\lambda u} \, du = \left[ -\frac{1}{\lambda} e^{-\lambda u} \right]_{0}^{\rho_e-\rho_a} = \frac{1}{\lambda} \left(1 - e^{-\lambda(\rho_e-\rho_a)}\right) [/math]

Resolviendo la segunda integral por partes: [math] \int u e^{-\lambda u} du = -\frac{u}{\lambda} e^{-\lambda u} - \frac{1}{\lambda^2} e^{-\lambda u} [/math] Evaluando entre 0 y [math]\rho_e-\rho_a[/math]: [math] \int_{0}^{\rho_e-\rho_a} u e^{-\lambda u} du = \left[ -\frac{u}{\lambda} e^{-\lambda u} - \frac{1}{\lambda^2} e^{-\lambda u} \right]_{0}^{\rho_e-\rho_a} = -\frac{\rho_e-\rho_a}{\lambda} e^{-\lambda(\rho_e-\rho_a)} - \frac{1}{\lambda^2} e^{-\lambda(\rho_e-\rho_a)} + \frac{1}{\lambda^2} [/math]

Combinando los resultados: [math] \begin{aligned} I_\rho &= \rho_e \cdot \frac{1}{\lambda} \left(1 - e^{-\lambda(\rho_e-\rho_a)}\right) - \left( -\frac{\rho_e-\rho_a}{\lambda} e^{-\lambda(\rho_e-\rho_a)} - \frac{1}{\lambda^2} e^{-\lambda(\rho_e-\rho_a)} + \frac{1}{\lambda^2} \right) \\ &= \frac{\rho_e}{\lambda} \left(1 - e^{-\lambda(\rho_e-\rho_a)}\right) + \frac{\rho_e-\rho_a}{\lambda} e^{-\lambda(\rho_e-\rho_a)} + \frac{1}{\lambda^2} \left(e^{-\lambda(\rho_e-\rho_a)} - 1\right) \end{aligned} [/math]

3.6.8 8. Sustitución Numérica

    • Parámetros:**
  • [math]C_0 = 0.3 \, \text{kg/m}^3[/math], [math]\alpha = 3[/math], [math]H = 22 \, \text{m}[/math]
  • [math]\lambda = 10 \, \text{m}^{-1}[/math], [math]\rho_e = 0.75 \, \text{m}[/math], [math]\rho_a = 0.65 \, \text{m}[/math]
    • Cálculo de [math]I_z[/math]:**

[math] I_z = 0.3 \times 22 \times \left( 1 + \frac{3}{2} \right) = 16.5 \, \text{kg/m}^2 [/math]

    • Cálculo de [math]I_\rho[/math]:**

[math] \begin{aligned} \rho_e - \rho_a &= 0.10 \, \text{m} \\ \lambda(\rho_e - \rho_a) &= 1 \\ e^{-\lambda(\rho_e - \rho_a)} &= e^{-1} \approx 0.367879 \\ I_\rho &= \frac{0.75}{10}(1 - 0.367879) + \frac{0.10}{10} \times 0.367879 + \frac{1}{100}(0.367879 - 1) \\ &= 0.047409 + 0.003679 - 0.006321 = 0.044767 \, \text{m}^2 \end{aligned} [/math]

    • Masa total en la columna ([math]M_{\text{col}}[/math]):**

[math] M_{\text{col}} = I_z \times I_\theta \times I_\rho = 16.5 \times 2\pi \times 0.044767 \approx 4.6406 \, \text{kg} [/math]

3.6.9 9. Masa en el Volumen Equivalente de Agua

    • Volumen desplazado por la columna:**

[math] V_{\text{equiv}} = \pi \rho_e^2 H = \pi \times (0.75)^2 \times 22 \approx 38.880 \, \text{m}^3 [/math]

    • Concentración promedio en el agua:**

[math] C_{\text{prom}} = \frac{I_z}{H} = \frac{16.5}{22} = 0.75 \, \text{kg/m}^3 [/math]

    • Masa en agua equivalente ([math]M_{\text{agua}}[/math]):**

[math] M_{\text{agua}} = V_{\text{equiv}} \times C_{\text{prom}} = 38.880 \times 0.75 \approx 29.160 \, \text{kg} [/math]

3.6.10 10. Comparación y Interpretación Física

    • Relación entre masas:**

[math] \frac{M_{\text{col}}}{M_{\text{agua}}} = \frac{4.6406}{29.160} \approx 0.1591 \quad \text{(15.9\%)} [/math]

    • Interpretación en el contexto de la Teoría de Campos:**

La masa de contaminantes que se infiltra en la columna de hormigón poroso representa solo el **15.9%** de la masa que contendría el mismo volumen si estuviera lleno de agua con la concentración promedio. Este resultado cuantifica el **efecto atenuador** del material. La atenuación exponencial [math]e^{-\lambda(\rho_e-\rho)}[/math] en el campo escalar [math]C_{\text{col}}[/math] modela la difusión radial, donde el coeficiente [math]\lambda[/math] representa la "resistencia" del hormigón a la penetración de contaminantes. La integral de volumen sobre la geometría cilíndrica, resuelta mediante separación de variables, es una aplicación directa de los métodos de integración de campos escalares en coordenadas curvilíneas.

4 Decantación y distribución de contaminantes

4.1 Grafico de la función Cagua(z)

4.1.1 Gráfico de Concentración vs Profundidad

Código MATLAB Gráfica Resultante Función Cagua(z)
%% (11a) Gráfico de C_agua(z) vs z
% Parámetros del modelo
C0 = 0.3;      % Concentración en superficie (kg/m^3)
alpha = 3;     % Parámetro de aumento
H = 22;        % Profundidad total del tanque (m)

% Vector de profundidad y cálculo de concentración
z = linspace(-H, 0, 100);
C_agua = C0 * (1 + alpha * abs(z) / H);

% Crear gráfico
figure;
plot(C_agua, z, 'b', 'LineWidth', 2);
xlabel('Concentración C_{agua}(z) (kg/m^3)');
ylabel('Profundidad z (m)');
title('(11a) Concentración de contaminantes en el agua vs Profundidad');
grid on;
set(gca, 'YDir', 'reverse');

% Añadir puntos de referencia
hold on;
plot(C0, 0, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'red');
plot(C0*(1+alpha), -H, 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'red');
legend('C_{agua}(z)', 'Superficie (z=0)', 'Fondo (z=-H)', 'Location', 'best');

Figura 11a: Gráfico de concentración vs profundidad

4.2 Mapa de Colores en Pared del Tanque

4.2.1 Mapa de Colores en Pared del Tanque

Código MATLAB (11b) Gráfica Resultante (11b)
%% (11b) Mapa de colores sobre una pared del tanque
% Parámetros del modelo
C0 = 0.3;      % Concentración en superficie (kg/m^3)
alpha = 3;     % Parámetro de aumento
H = 22;        % Profundidad total del tanque (m)
W = 140;       % Anchura del tanque (m)

% Definir coordenadas para una pared (x fijo, variando y y z)
y_pared = linspace(-W/2, W/2, 100);  % Coordenadas y de la pared
z_pared = linspace(-H, 0, 100);      % Coordenadas z de la pared
[Y, Z] = meshgrid(y_pared, z_pared); % Malla para la pared

% Calcular concentración en la pared (solo depende de z)
C_pared = C0 * (1 + alpha * abs(Z) / H);

% Crear mapa de colores
figure;
imagesc(y_pared, z_pared, C_pared);
colorbar;
xlabel('Coordenada y (m)');
ylabel('Profundidad z (m)');
title('(11b) Mapa de concentración de contaminantes en una pared del tanque');
axis xy;  % Asegurar que el eje z aumente hacia arriba (0 en top, -H en bottom)

% Opcional: añadir líneas de contorno para mayor claridad
hold on;
[C,h] = contour(Y, Z, C_pared, 5, 'k-');
clabel(C, h);

Figura 11b: Mapa de concentración en pared del tanque

4.3 Representación de contaminantes del agua

4.3.1 Cálculo del Gradiente de Concentración

Desarrollo Analítico Representación Gráfica

4.3.2 Función de concentración

La concentración de contaminantes en el agua viene dada por la expresión:

[math]C_{\text{agua}}(z) = C_0 \left(1 + \alpha \frac{|z|}{H}\right)[/math]

4.3.3 Parámetros del problema

  • [math]C_0 = 0.3 \text{kg/m}^3[/math] (concentración en superficie)
  • [math]\alpha = 3[/math] (parámetro de aumento)
  • [math]H = 22 \text{m}[/math] (profundidad total del tanque)
  • Sistema de coordenadas: [math]z \in [-H, 0][/math] con eje z positivo hacia arriba

4.3.4 Simplificación para el dominio considerado

Para [math]z \leq 0[/math], tenemos que [math]|z| = -z[/math], por lo que:

[math]C_{\text{agua}}(z) = C_0 \left(1 + \alpha \frac{-z}{H}\right) = C_0 \left(1 - \alpha \frac{z}{H}\right)[/math]

4.3.5 Cálculo del gradiente

El gradiente de la concentración se define como:

[math]\nabla C_{\text{agua}} = \left( \frac{\partial C_{\text{agua}}}{\partial x}, \frac{\partial C_{\text{agua}}}{\partial y}, \frac{\partial C_{\text{agua}}}{\partial z} \right)[/math]

Calculamos las derivadas parciales:

  • [math]\frac{\partial C_{\text{agua}}}{\partial x} = 0[/math] (no depende de x)
  • [math]\frac{\partial C_{\text{agua}}}{\partial y} = 0[/math] (no depende de y)
  • [math]\frac{\partial C_{\text{agua}}}{\partial z} = -\frac{C_0 \alpha}{H}[/math]

Por lo tanto, el gradiente resulta:

[math]\nabla C_{\text{agua}} = \left( 0, 0, -\frac{C_0 \alpha}{H} \right)[/math]

4.3.6 Sustitución numérica

[math]\nabla C_{\text{agua}} = \left( 0, 0, -\frac{0.3 \times 3}{22} \right) = \left( 0, 0, -0.04091 \right) \text{kg/m}^4[/math]

4.3.7 Interpretación física

El gradiente es un vector constante que apunta verticalmente hacia abajo con magnitud [math]0.04091 \text{kg/m}^4[/math]. Esto indica que la concentración de contaminantes aumenta uniformemente con la profundidad, lo cual es consistente con el proceso de sedimentación donde las partículas se depositan en el fondo del tanque.

4.3.8 Código MATLAB

%% Apartado (12) - Campo vectorial del gradiente
C0 = 0.3; alpha = 3; H = 22; W = 140;
dC_dz = -C0 * alpha / H;

y = linspace(-W/2, W/2, 15);
z = linspace(-H, 0, 15);
[Y, Z] = meshgrid(y, z);

U = zeros(size(Y));
V = dC_dz * ones(size(Z));

figure;
quiver(Y, Z, U, V, 'b', 'LineWidth', 1.2);
xlabel('Coordenada y (m)'); ylabel('Profundidad z (m)');
title('(12) Campo vectorial del gradiente \nabla C_{agua}');
grid on; axis equal;

magnitud = abs(dC_dz);
text(0, -H/2, sprintf('Magnitud: %.4f kg/m^4', magnitud), ...
    'HorizontalAlignment', 'center', 'BackgroundColor', 'white');
xlim([-W/2, W/2]); ylim([-H, 0]);

Figura 12: Campo vectorial del gradiente de concentración

4.3.9 Descripción de las superficies de isoconcentracion en el agua:

4.3.10 Cálculo de la masa total de contaminantes en el agua del tanqu:

4.4 Enunciado

(14) Calcula la masa total de contaminantes en el agua del tanque suponiendo que hay aproximadamente:

   N ≈ (L/15) × (W/15) columnas

y que el nivel del agua alcanza la altura:

   z = –7 m

Se desea calcular la masa total:

   Mtot= ?

4.5 Datos proporcionados

W = 140 m  
L = 290 m  
h = –7 m  
C_agua(z) = C₀ · (1 + a · (z / H))  
C₀ = 0.3 kg/m³  
a = 3  
H = 22 m  

4.6 Cálculo del número de columnas

Se estima:

   N ≈ (L/15) × (W/15)
   N ≈ 180.44

4.7 Cálculo de volúmenes

Volumen total del tanque (con columnas)= V₁ :

   V₁ = L · W · |z|
   V₁ = 290 · 140 · 7  
   V₁ = 284200 m³

Volumen de columnas(totales)= V₂ :

   Vol_columna = π · r² · h  
   con r = 0.75 m, h = 7 m
   V₂ = N · (π · 0.75² · 7)
   V₂ = 2232.10 m³

Volumen real del agua= V_real :

   V_real = V₁ – V₂  
   V_real = 281967.90 m³

4.8 Se define un sistema equivalente variando *W*

   V_real = L · W' · |z|
   281967.90 = 290 · W' · 7  
   W' = 138.9 m

Nota: No se varía *z* porque la concentración C(z) depende directamente de él.

4.9 Masa total

Definimos la concentración como:

   C=M/V Tomando diferenciales dM=C(z)*dV

Como la concentración depende de la profundidad, la masa se calcula mediante:

   dMtot = C_agua(z) · dV

Se descompone:

   dV = dL · dW' · dz

y se integra la expresión con una **integral triple** sobre el dominio:

   L ∈ [0, 290]  
   W' ∈ [0, 138.9]  
   z ∈ [0, 7]

4.10 Integral

Mtot = ∫∫∫C₀ · (1 + a · (z/H)) dL dW' dz= C₀(zW'L+(W'Laz²)/2H)=124962.65 Kg de contaminante.

4.10.1 Preguntas pasadas las 24 horas de decantación: