El Tanque de Arroyofresno (Grupo 8)

De MateWiki
Revisión del 18:19 3 dic 2025 de Risketos91 (Discusión | contribuciones) (Masa de contaminantes depositados)

Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título El tanque de tormentas de Arroyofresno. Grupo 8
Asignatura Teoría de Campos
Curso 2025-26
Autores
  • Alejandro Ayuso Hernández
  • Daniel Álvaro Castejón
  • Jean Carlo Peña Palacios
  • Nerea García Pérez
  • Rodrigo Ruiz-Bailón Camacho
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

El tanque de Arroyofresno, es el tanque de tormentas más grande de Europa, se activa cuando tras una tormenta de alta intensidad, las redes de alcantarillado de Madrid y las diferentes depuradoras de la ciudad son incapaces de almacenar más agua, así, el agua se deriva al tanque mediante un colector de 3km y 6,7m de diámetro, logrando evitar desbordes, inundaciones, caudales punta y el vertimiento de aguas contaminadas al Río Manzanares.


1 Funcionamiento del Tanque de Arroyofresno

TANQUE DE TORMENTAS

El funcionamiento del tanque hace que el agua entra por colectores con grandes filtros, se decanta y se almacena temporalmente antes de ser bombeada a la depuradora. Normalmente, el agua solo permanece en el tanque durante unas pocas horas, pues esta empieza a ser bombeada una vez cese la tormenta, por lo que durante episodios de tormentas de alta intensidad el agua puede llegar a quedarse en el estanque durante días.

Como se ha mencionado anteriormente, el tanque de tormentas de Arroyofresno es el más grande de España y de Europa, aun así, España goza de una gran red de tanques de tormentas. En toda España hay un total de 470, y solo en la Comunidad de Madrid podemos encontrar un total de 65 tanques, de los que destacan el de Arroyofresno, Butarque, La China o Retamas, así, Madrid es una de las regiones con mayor red del mundo. A nivel europeo, Madrid lidera todos los rankings en cuanto a número de tanques y la capacidad de estos, aunque otras grandes ciudades europeas como París, Berlín y Londres también tienen grandes redes, destacando los tanques de Bassin de la Villete (París) o Regenrückhaltebecken Tege (Berlín).

Cuando una estructura de hormigón (como el tanque en cuestión) es expuesta a aguas contaminadas, estas pueden causar problemas estructurales y de durabilidad, pues las aguas contaminadas pueden degradar la estructura a partir de varios mecanismos, algunas de las principales amenazas son la carbonatación (el CO2 reduce el pH del hormigón pudiendo corroer el material), las posibles reacciones químicas internas causadas por sulfitos, ácidos o sales disueltas en las aguas contaminadas y abrasión o impactos por los diferentes materiales arrastrados.

Para evitar la degradación total del hormigón de la estructura, existen varias estrategias de protección, entre las cuales destacan el diseño preventivo, recubriendo bien el material o utilizando hormigones de baja relación agua/cemento, utilizar protecciones superficiales como impregnaciones hidrófobas o un revestimiento de polímeros y la protección activa del hormigón a partir de un buen sistema de drenaje, sellado de juntas, un buen mantenimiento periódico y la utilización de inhibidores de corrosión sobre el hormigón.

2 Presión y fuerzas estructurales sobre columnas

2.1 Representación del campo de presiones

PRESIÓN HIDROSTÁTICA

En este apartado se va a analizar la presión hidrostática que sufre la superficie de las diferentes columnas del tanque cuando este está lleno, buscando obtener una representación escalar de cómo varía la presión en función de la profundidad.

1) Fórmula y datos:

Campo escalar de presión hidrostática:

[math] P(z) = P_0 - \rho g z, \quad z \in [-H, 0] [/math]

Esta expresión indica que la presión aumenta linealmente con la profundidad. El término [math]P_0[/math] es la presión atmosférica en la superficie, [math]\rho[/math] la densidad del agua, y [math]g[/math] la aceleración de la gravedad.

[math] P_0 = 101325 \,\text{Pa} [/math]

[math] \rho = 1000 \,\text{kg/m}^3 [/math]
[math] g = 9.81 \,\text{m/s}^2 [/math]
[math] H = 22 \,\text{m} [/math]

[math] \text{Radio de la columna: } R_c = 0.75 \,\text{m} [/math]


2) Parametrización del cilindro:

[math] x = R_c \cos\theta, \quad y = R_c \sin\theta, \quad z = z [/math]


3) Código MATLAB:

clear; clc;

% Parámetros
H = 22;
rho = 1000;
g=9.81;
P0 = 101325;
Rc = 0.75;

% Mallado cilindro
theta = linspace(0, 2*pi, 300);
z = linspace(-H, 0, 300);
[Theta, Z] = meshgrid(theta, z);

X = Rc*cos(Theta);
Y = Rc*sin(Theta);

% Presión hidrostática
P = P0 - rho*g*Z;

% Representación
figure;
surf(X, Y, Z, P);
shading interp;
colorbar;
xlabel('x'); 
ylabel('y'); 
zlabel('z');
title('Campo de presión P(z) sobre la superficie de la columna');
axis equal;


4) Interpretación:

- La presión es máxima en el fondo (colores cálidos).

- La presión es mínima en la superficie (colores fríos).

- Cada franja horizontal tiene presión constante.

2.2 Gradiente de presión y representación como campo vectorial

GRADIENTE DE PRESIONES

En este apartado, se volverá a analizar el campo de presión hidrostática para representarlo como un campo vectorial, obteniendo una representación vectorial en lugar de una escalar, que ya se ha obtenido en el apartado anterior.

1) Cálculo del gradiente:

[math] \nabla P = (0,\,0,\,-\rho g) [/math]

- Magnitud constante

[math] |\nabla P| = \rho g = 9810 \,\text{Pa/m} [/math]


2) Código MATLAB:

clear; clc;

H = 22;
rho = 1000;
g = 9.81;
Rc = 0.75;
theta = linspace(0, 2*pi, 40);
z = linspace(-H, 0, 40);
[Theta, Z] = meshgrid(theta, z);
X = Rc*cos(Theta);
Y = Rc*sin(Theta);

% Gradiente constante

dPx = zeros(size(Z));
dPy = zeros(size(Z));
dPz = -rho*g * ones(size(Z));
figure;
quiver3(X, Y, Z, dPx, dPy, dPz, 'AutoScaleFactor', 0.4);
xlabel('x'); ylabel('y'); zlabel('z');
title('Gradiente de presión sobre la superficie de la columna');
axis equal;


3) Interpretación:

- Todos los vectores son paralelos entre sí y direccionados hacia el fondo.

- Este resultado nos indica que la presión aumenta linealmente con la profundidad, y este cambio es uniforme en todo el tanque.

2.3 Fuerza total del agua sobre la columna

Para poder calcular la fuerza total que ejerce el agua sobre una columna, el primer paso será analizar la geometría de la columna en cuestión, posteriormente se calculará el campo vectorial de fuerza de presión y por último la fuerza total.


1) Geometría de la columna:

El radio de la columna es:

[math] \rho_c = 0.75 \,\mathrm{m} [/math]

Su superficie lateral se parametriza como:

[math] \mathbf{r}(\theta, z) = \begin{pmatrix} \rho_c \cos\theta \\ \rho_c \sin\theta \\ z \end{pmatrix}, \quad \theta \in [0, 2\pi], \; z \in [-H, 0]. [/math]

Para un cilindro vertical, el normal saliente es:

[math] \mathbf{n}(\theta, z) = \begin{pmatrix} \cos\theta \\ \sin\theta \\ 0 \end{pmatrix}. [/math]

El diferencial de superficie es:

[math] dS = \rho_c \, d\theta \, dz. [/math]


2) Campo vectorial de fuerza sobre presión:


[math] \mathbf{F}(\theta, z) = -P(z)\,\mathbf{n}(\theta, z) = -(P_0 - \rho g z) \begin{pmatrix} \cos\theta \\ \sin\theta \\ 0 \end{pmatrix}. [/math]


3) Fuerza total sobre la columna:


La fuerza total es la integral sobre la superficie lateral:

[math] \mathbf{F}_{\text{tot}} = \int_{-H}^{0} \int_{0}^{2\pi} \mathbf{F}(\theta, z)\, dS = -\rho_c \int_{-H}^{0} (P_0 - \rho g z) \left( \int_{0}^{2\pi} \begin{pmatrix} \cos\theta \\ \sin\theta \\ 0 \end{pmatrix} d\theta \right) dz. [/math]


Sin embargo, se da que:


[math] \int_{0}^{2\pi} \cos\theta \, d\theta = 0, \quad \int_{0}^{2\pi} \sin\theta \, d\theta = 0. [/math]


Por lo que, finalmente, la fuerza total es:


[math] \mathbf{F}_{\text{tot}} =0. [/math]


4) Interpretación:

- Cada vector de fuerza apunta hacia el centro de la columna (dirección radial).

- Por simetría, las fuerzas en direcciones opuestas se anulan.

- No hay componente vertical porque la presión hidrostática no ejerce fuerza sobre la superficie lateral en dirección vertical (esa fuerza actúa en el fondo, no en el costado).

3 Infiltración y corrosión en columnas

3.1 Campo de concentración infiltrada

En este apartado se busca el campo de concentración infiltrada, este campo describe cómo los contaminantes presentes en el agua del tanque penetran en el hormigón de la columna, disminuyendo su concentración a medida que se avanza hacia el interior debido a la porosidad del material.Consideremos la fórmula:

[math] C_{\text{col}}(r,z) = C_{0}\left(1 + \alpha \frac{|z|}{H}\right)\exp\!\left[-\lambda(\rho_{c}-r)\right] [/math]

Como se pide, se obtendrán dos representaciones del campo en cuestión, la primera será una sección vertical mientras que la segunda será una sección transversal.

1) Sección vertical (código MATLAB):

SECCIÓN VERTICAL
% infiltracion_columna.m
clear; clc; close all;

% Parámetros (del enunciado)
H = 22;        % m
Rc = 0.75;     % m (radio columna)
Ra = 0.65;     % m (radio armadura)
C0 = 0.3;      % kg/m^3
alpha = 3;
lambda = 10;   % m^-1

% Funciones discretas
nr = 300; nz = 300;
r = linspace(0, Rc, nr);
z = linspace(-H, 0, nz);
[R, Z] = meshgrid(r, z);   % matrices (nz x nr) if meshgrid(z,r),
% Concentración en el agua
Cagua = @(zz) C0 .* (1 + alpha .* abs(zz) ./ H);

% Concentración infiltrada (R: radial positions ; Z: depths)
Ccol = Cagua(Z) .* exp(-lambda .* (Rc - R));

%% (a) Sección vertical (r vs z) - mapa de colores
figure;
imagesc(r, z, Ccol);
set(gca,'YDir','normal');
colorbar;
xlabel('\rho (m)'); ylabel('z (m)');
title('Concentración infiltrada C_{col}(\rho,z) — sección vertical');
hold on;
% marcar armadura (vertical line at rho = Ra)
plot([Ra Ra], [-H 0], 'k--', 'LineWidth', 2);
text(Ra+0.02, -H+1, 'armadura (\rho_a)', 'Color', 'k');
hold off;


2) Sección transversal (código MATLAB):

SECCIÓN TRANSVERSAL
%% (b) Sección transversal (a profundidad seleccionada)
clear; clc; close all;

%% Parámetros 
Rc    = 0.75;      % radio exterior columna (m)
Ra    = 0.65;      % posición de la armadura (m)
H     = 22;        % altura/ profundidad (m)

C0    = 0.3;       % concentración en superficie (kg/m^3) 
alpha = 3;         % aumento hacia el fondo (adimensional) 
lambda= 10;        % coeficiente atenuación radial (m^-1)    
Ccrit = 0.05;      % umbral crítico corrosión (kg/m^3)      

%% Mallado (radial y vertical) 
nr = 200;          % resolución radial
nz = 300;          % resolución vertical

r = linspace(0, Rc, nr);     % 0 .. Rc
z = linspace(-H, 0, nz);     % -H .. 0 (z negativo hacia abajo)

% Generamos malla 2D: R (cols=r), Z (rows=z)
[R, Z] = meshgrid(r, z);     % size = [nz x nr]

%% Concentración en el agua y en el hormigón 
% C_agua(z) según enunciado: C0*(1 + alpha *


3) Interpretaciones:

- La sección vertical muestra concentraciones crecientes con profundidad.

- La sección transversal muestra atenuación radial desde la superficie hacia el centro y el círculo de la armadura marcado.

3.2 Campo del gradiente de concentración infiltrada

En este apartado se representará el campo del gradiente de concentración infiltrada, para ver como varía la concentración infiltrada en las posibles direcciones. El gradiente indica la dirección y magnitud del cambio más rápido de concentración, lo que es clave para entender cómo los contaminantes se propagan hacia la armadura.

1) Cálculos iniciales:

La concentración de contaminantes en el agua varía con la profundidad según

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

donde [math]C_0 = 0.3,\text{kg/m}^3[/math] y [math]\alpha = 3[/math].

La concentración que penetra en el hormigón de la columna se describe mediante

[math] C_{\text{col}}(r,z)=C_{\text{agua}}(z)\, e^{-\lambda(\rho_a - r)},\qquad 0\le r\le \rho_a [/math]

con [math]\rho_a = 0.65,\text{m}[/math] (radio donde se ubica la armadura) y [math]\lambda = 10,\text{m}^{-1}[/math] (coeficiente de atenuación del hormigón).

El gradiente de la concentración, expresado en coordenadas cilíndricas [math](r,z)[/math], es


[math] \nabla C_{\text{col}}(r,z)= \left( \frac{\partial C_{\text{col}}}{\partial r}, \frac{\partial C_{\text{col}}}{\partial z} \right) = \left( \lambda\, C_{\text{col}}(r,z), -\,C_0\,\alpha\,\frac{1}{H}\, e^{-\lambda(\rho_a - r)} \right) [/math]


En una sección vertical que corta el eje de la columna (plano [math]y=0[/math]), se introduce la coordenada horizontal [math]x[/math] de forma que [math]r=|x|[/math].

Con esta relación, el campo vectorial se expresa como [math]\nabla C_{\text{col}}(x,z)[/math].


2) Código MATLAB

GRADIENTE SECCIÓN VERTICAL
%%Gradiente en la sección vertical (quiver)
% calcular derivadas parciales (en coordenadas r,z)
[Dr, Dz] = deal(zeros(size(Ccol)));
% ∂C/∂r (centradas)
for j=2:(nr-1)
    Dr(:,j) = (Ccol(:,j+1) - Ccol(:,j-1)) / (r(j+1)-r(j-1));
end
% forward/backward en los extremos
Dr(:,1) = (Ccol(:,2)-Ccol(:,1)) / (r(2)-r(1));
Dr(:,nr) = (Ccol(:,nr)-Ccol(:,nr-1)) / (r(nr)-r(nr-1));

% ∂C/∂z (centradas)
for i=2:(nz-1)
    Dz(i,:) = (Ccol(i+1,:) - Ccol(i-1,:)) / (z(i+1)-z(i-1));
end
Dz(1,:) = (Ccol(2,:)-Ccol(1,:)) / (z(2)-z(1));
Dz(nz,:) = (Ccol(nz,:)-Ccol(nz-1,:)) / (z(nz)-z(nz-1));

% plot vector field: convertir coordenada r,z a x = r (horizontal axis), z vertical
skip = 8;
figure;
quiver(R(1:skip:end,1:skip:end), Z(1:skip:end,1:skip:end), ...
       Dr(1:skip:end,1:skip:end), Dz(1:skip:end,1:skip:end));
xlabel('\rho (m)'); ylabel('z (m)');
title('\nabla C_{col}(\rho,z) (componentes \partial/\partial \rho, \partial/\partial z)');
set(gca,'YDir','normal');


3) Interpretación:

- Los vectores apuntan hacia el exterior y hacia el fondo, porque la concentración aumenta hacia la superficie del hormigón y hacia abajo.

- La componente radial es mucho mayor cerca de la superficie, indicando que la difusión hacia el interior es más intensa en la zona externa.

3.3 Función de concentración en la armadura en función de la profundidad

En este apartado se pide representar con un gráfico la concentración de contaminantes en la armadura en función de la profundidad, que, como se ha visto anteriormente, a mayor profundidad del tanque, se da una mayor concentración de contaminantes se aprecia. Más concretamente, se representará el gráfico con una línea horizontal, la cual representa el umbral crítico, este identifica la zona de riesgo de corrosión, este estudio permite determinar la vida útil de la estructura, prevenir la citada corrosión y la planificación de un mantenimiento adecuado.


1) Datos y funciones:

La concentración de contaminantes en la armadura se calcula evaluando el perfil de infiltración en el radio donde se encuentra el acero:

[math] C_{\text{acero}}(z) = C_{\text{agua}}(z) \cdot e^{-\alpha (R - r_{\text{armadura}})} [/math]

donde:

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

se tiene que:

[math]C_0 = 0.3 \,\text{kg/m}^3[/math] (concentración en superficie)

[math]\beta = 3[/math] (factor de incremento hacia el fondo)

[math]H = 22 \,\text{m}[/math] (profundidad del tanque)

[math]R = 0.75 \,\text{m}[/math] (radio exterior de la columna)

[math]r_{\text{armadura}} = 0.65 \,\text{m}[/math] (radio donde está la armadura)

[math]\alpha = 10 \,\text{m}^{-1}[/math] (coeficiente de atenuación por porosidad)

Umbral crítico para corrosión: [math]C_{\text{crit}} = 0.05 \,\text{kg/m}^3[/math]

Este análisis permite determinar si la concentración en la armadura supera el umbral crítico, lo que indica riesgo de corrosión y necesidad de mantenimiento preventivo.

2) Código MATLAB:

CONCENTRACIÓN ARMADURA
% --- Parámetros del problema ---
C0 = 0.3;            % Concentración en superficie (kg/m^3)
beta = 3;            % Factor de incremento hacia el fondo
H = 22;              % Profundidad del tanque (m)
alpha = 10;          % Coeficiente de atenuación (m^-1)
R = 0.75;            % Radio exterior de la columna (m)
r_armadura = 0.65;   % Radio donde está la armadura (m)
Ccrit = 0.05;        % Umbral crítico para corrosión (kg/m^3)

% --- Factor de atenuación radial ---
% Representa la pérdida de concentración desde la superficie exterior hasta la armadura
factor_radial = exp(-alpha*(R - r_armadura));

% --- Vector de profundidad ---
% Se toma desde el fondo (-H) hasta la superficie (0)
z = linspace(-H,0,200);

% --- Concentración en el agua ---
% Varía linealmente con la profundidad
Cagua = C0*(1 + beta*z/H);

% --- Concentración en la armadura ---
% Se calcula aplicando el factor radial a la concentración del agua
Cacero = Cagua * factor_radial;

% --- Gráfico ---
figure;
plot(z,Cacero,'b','LineWidth',2);          % Curva de concentración en la armadura
hold on;
yline(Ccrit,'r--','Umbral crítico');       % Línea horizontal indicando el umbral
xlabel('Profundidad z [m]');               % Etiqueta del eje X
ylabel('Concentración en armadura [kg/m^3]'); % Etiqueta del eje Y
title('Concentración en la armadura vs profundidad'); % Título del gráfico
grid on;
legend('C_{acero}(z)','Umbral crítico');   % Leyenda explicativa


3) Interpretación:

- La curva muestra que la concentración en la armadura aumenta con la profundidad, porque el agua es más contaminada en el fondo.

- La línea roja horizontal indica el umbral crítico: si la curva lo supera, hay riesgo de corrosión.

- En este caso, la concentración en la armadura probablemente cruza el umbral en las zonas más profundas, lo que significa que las barras de acero estarán expuestas a corrosión si el tanque permanece lleno durante mucho tiempo.

- Esto confirma la importancia del recubrimiento de hormigón y del mantenimiento preventivo en zonas profundas.

3.4 Superficies de isoconcentración dentro de una columna

ISOSUPERFICIES
%% Isosuperficies 3D 
clear; clc; close all;

%% Parámetros
Rc = 0.75;
Ra = 0.65;
H  = 22;

C0 = 0.3;
alpha = 3;
lambda = 10;

%% Mallado NDGRID
nt = 60; nr3 = 60; nz3 = 60;

r3 = linspace(0, Rc, nr3);
t3 = linspace(0, 2*pi, nt);
z3 = linspace(-H, 0, nz3);

[T3, R3, Z3] = ndgrid(t3, r3, z3);

X3 = R3 .* cos(T3);
Y3 = R3 .* sin(T3);

%% Campo 3D
Cagua = @(zz) C0 .* (1 + alpha .* abs(zz) ./ H);
C3 = Cagua(Z3) .* exp(-lambda .* (Rc - R3));

%% Valores de isosuperficie
isos = [0.10 0.20 0.30 0.40];
colores = [0 0 1;     % azul
           0 1 0;     % verde
           1 1 0;     % amarillo
           1 0 0];    % rojo

figure('Color','white'); hold on;

for k = 1:length(isos)

    p = patch(isosurface(X3, Y3, Z3, C3, isos(k)));

    % Color sólido
    set(p, 'FaceColor', colores(k,:), ...
           'EdgeColor','none', ...
           'FaceAlpha', 0.40);
end

%% Armadura (cilindro)
[xa, ya, za] = cylinder(Ra, 80);
za = za * H - H;

surf(xa, ya, za, 'FaceColor',[0.5 0.5 0.5], ...
     'EdgeColor','none', 'FaceAlpha',0.4);

%% Vista y estética
axis equal;
xlabel('x (m)'); ylabel('y (m)'); zlabel('z (m)');
title('Isosuperficies 3D de C_{col}');
view(3);
camlight headlight;
lighting gouraud;

hold off;


La gráfica representa las capas de igual concentración (con los valores dados en el enunciado). Estas capas tienen forma de lámina cilíndrica ya que la función [math]C_{\text{col}}[/math] tiene como variables [math]{\text{z}}[/math] y [math]\rho[/math]. La concentración tendrá un valor mayor cuanto más cerca esté de la capa externa de la columna, y se irá reduciendo cuanto más se acerque al centro

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

Cuando [math]C_{\text{acero}}(z) \gt C_{\text{crit}}[/math], se activa el proceso de corrosión uniforme de las armaduras, produciendo una reducción progresiva del diámetro efectivo. Para valorar la durabilidad estructural, se estima el tiempo necesario para que la pérdida de espesor alcance el 25% del diámetro original, límite habitual asociado a una disminución significativa de capacidad resistente.


Datos: diámetro de la barra [math]d_{\text{barra}} = 20 \text{ mm}[/math].

Pérdida crítica del 25%: [math] \Delta d = 0.25 \cdot 20 = 5 \text{ mm} [/math]

Velocidad de corrosión [math]v_{\text{corr}} = 0.1 \text{ mm/año}[/math] (cuando [math]C_{\text{acero}} \gt C_{\text{crit}}[/math]).

Tiempo necesario para alcanzar la pérdida crítica:

[math] t = \frac{5\ \text{mm}}{0.1\ \text{mm/año}} = 50\ \text{años}. [/math]


[math]\boxed{t \approx 50\ \text{años}}[/math]


Interpretación: donde [math]C_{\text{acero}}(z) \gt C_{\text{crit}}[/math], la corrosión progresa a [math]0.1\ \text{mm/año}[/math], por lo que se requieren unos 50 años para alcanzar una pérdida del 25% del diámetro.

3.6 Masa total de contaminantes infiltrados en una columna

En este ejercicio se busca calcular la masa total de contaminantes infiltrados en una columna y compararla con la masa de contaminantes en el volumen equivalente de agua que rodea la columna, este análisis permite determinar la capacidad de penetración de contaminantes en el hormigón frente a la concentración en el agua, esto es muy importante para estimar riesgos de corrosión en la armadura.

Se busca calcular:

[math] M_{\text{col}} = \int_{z=-H}^{0} \int_{\theta=0}^{2\pi} \int_{r=0}^{R_c} C_{\text{col}}(r,z)\, r \, dr \, d\theta \, dz = 2\pi \int_{-H}^{0} C_{\text{agua}}(z) \left( \int_{0}^{R_c} e^{-\lambda(R_c - r)} r \, dr \right) dz. [/math]

1) Resultados numéricos:

- Masa infiltrada en la columna: [math]M_{\text{col}} \approx 6.82 \,\text{kg}[/math]

- Masa de contaminantes en el volumen equivalente de agua (cilindro de radio [math]R_c[/math] y altura [math]H[/math]): [math] M_{\text{agua}} = \pi R_c^2 \int_{-H}^{0} C_{\text{agua}}(z)\, dz \approx 29.16 \,\text{kg}. [/math]

Así que la masa infiltrada en el hormigón es mucho menor que la masa contenida en el mismo volumen de agua: [math]\approx 6.8 \,\text{kg}[/math] frente a [math]29.2 \,\text{kg}[/math]. (Números obtenidos por integración numérica).

Estos valores incluyen que la concentración en el hormigón se atenúa radialmente mediante:

[math] e^{-\lambda(R_c - r)}, \quad \text{con } \lambda = 10 \,\text{m}^{-1}. [/math]


2) Código MATLAB:

%% (f) Masa total infiltrada en la columna (numérico)
% usar trapz para integración
nr_int = 400; nz_int = 800;
r_int = linspace(0, Rc, nr_int);
z_int = linspace(-H, 0, nz_int);
[Ri, Zi] = meshgrid(r_int, z_int);
Ci = Cagua(Zi) .* exp(-lambda .* (Rc - Ri));
% integrate: 2*pi * integral_z integral_r ( C * r dr dz )
mass_col = 2*pi * trapz(z_int, trapz(r_int, Ci .* Ri, 2)); % note trapz dimensions
fprintf('Masa infiltrada en la columna: %.3f kg\n', mass_col);

% masa en volumen de agua equivalente (cilindro de radio Rc, altura H)
mass_water = pi * Rc^2 * trapz(z_int, Cagua(z_int));
fprintf('Masa en el agua del volumen equivalente: %.3f kg\n', mass_water);


3) Interpretación:

- La masa infiltrada en el hormigón es significativamente menor que la masa contenida en el mismo volumen de agua.

- Esto indica que el hormigón actúa como barrera frente a los contaminantes, aunque no es completamente impermeable.

- La atenuación radial [math]e^{-\lambda(R_c - r)}[/math] reduce drásticamente la penetración, pero la zona cercana a la armadura puede alcanzar concentraciones críticas si el tiempo de exposición es prolongado, lo que implica riesgo de corrosión.

4 Decantación y distribución de contaminantes infiltrados en una columna

4.1 Campo de concentración de contaminantes en el agua

En este apartado se va a representar el campo de concentración de contaminantes en el agua, así, se podrá analizar como varía la concentración de contaminantes según la profundidad en el tanque, pues, como se ha explicado con anterioridad, las primeras aguas en llegar al tanque son las más contaminadas. Luego, cuanto más profundo, más contaminado.

Se expondrán dos representaciones, la primera (apartado a en el código de MATLAB) es un simple gráfico representando el campo de concentraciones frente a la profundidad. El segundo (apartado b) representa un mapa de colores simulando una pared del tanque.

Para poder analizar la concentración de contaminantes frente a la profundidad, debe saberse que la concentración de contaminantes viene dada por la siguiente función:


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

1) Código MATLAB:

Concentracion contaminantes gp8.png
Mapa de concentracion gp8.png
% Parámetros
C0 = 0.3;            % Concentración en superficie (kg/m^3)
beta = 3;            % Factor de incremento hacia el fondo
H = 22;              % Profundidad del tanque (m)
L = 290;             % Longitud del tanque (m)

% Vector de profundidad
z = linspace(-H,0,200); % Desde el fondo (-H) hasta la superficie (0)

% Concentración en el agua (corrigiendo el signo)
Cagua = C0*(1 - beta*z/H); % Aumenta hacia el fondo

% (a) Gráfico de la función Cagua(z)
figure;
plot(Cagua,z,'b','LineWidth',2);
xlabel('Concentración [kg/m^3]');
ylabel('Profundidad z [m]');
title('Concentración de contaminantes en el agua vs profundidad');
grid on;
set(gca,'YDir','reverse'); % Superficie arriba, fondo abajo

% (b) Mapa de colores sobre una pared del tanque
nx = 50; nz = 50;
x = linspace(-L/2,L/2,nx);
Z = linspace(-H,0,nz);
[X,Zgrid] = meshgrid(x,Z);

Cmap = C0*(1 - beta*Zgrid/H);

figure;
contourf(X,Zgrid,Cmap,20,'LineColor','none');
colorbar;
xlabel('Longitud x [m]');
ylabel('Profundidad z [m]');
title('Mapa de concentración sobre la pared del tanque');
set(gca,'YDir','reverse'); % Superficie arriba
axis equal;


2) Interpretaciones:

- Apartado a) (gráfica): La concentración aumenta hacia el fondo del tanque. En la superficie es 0.3[math]\text{kg/m}^3[/math]. Por otro lado, en el fondo alcanza aproximadamente 1.2[math]\text{kg/m}^3[/math]. Esto refleja el efecto de la sedimentación: las partículas más pesadas se acumulan en el fondo.

- Apartado b) (mapa): El mapa de color muestra un gradiente vertical uniforme (porque la concentración depende solo de z). Las zonas más profundas son más contaminadas, lo que implica que el lodo formado en el fondo será altamente concentrado.

4.2 Gradiente de concentración de contaminantes en el agua

En este apartado, se va a calcular el gradiente de concentración de contaminantes en el agua, el cual, como se ha visto anteriormente, viene definido como:

[math] C_{\text{agua}}(z) = C_0 \left( 1 + \beta \frac{z}{H} \right), \; z \in [-H, 0], \; C_0 = 0.3 \,\text{kg/m}^3, \; \beta = 3, \; H = 22 \,\text{m} [/math]

El gradiente a buscar permitirá analizar como varía la concentración de contaminantes según la profundidad, conociendo esto se podrá evaluar la estratificación de contaminantes.

El gradiente deseado se obtiene a partir del siguiente código.

1) Código MATLAB

GRADIENTE DE CONCENTRACIÓN
% Parámetros
C0 = 0.3;      % kg/m^3
beta = 3;      % factor de incremento
H = 22;        % profundidad en m
L = 290;       % longitud del tanque
W = 140;       % anchura del tanque

% Dominio de la pared (tomamos la pared longitudinal)
nx = 30; nz = 30;
x = linspace(-L/2, L/2, nx);
z = linspace(-H, 0, nz);
[X,Z] = meshgrid(x,z);

% Campo de concentración
Cagua = C0*(1 + beta*Z/H);

% Gradiente (constante en z)
gradC = (C0*beta/H); % kg/m^4
Ux = zeros(size(X)); % componente x
Uz = gradC*ones(size(Z)); % componente z (vertical)

% Representación
figure;
contourf(X,Z,Cagua,20); colorbar;
hold on;
quiver(X,Z,Ux,Uz,'k');
xlabel('x [m]'); ylabel('z [m]');
title('Gradiente de concentración sobre la pared del tanque');
axis equal;


2) Interpretación:

- El campo de concentración aumenta linealmente con la profundidad: más contaminantes en el fondo.

- El gradiente es constante y vertical, lo que indica que la variación es uniforme en todo el tanque.

- Implicación práctica: la decantación es estable y predecible, pero el fondo acumula contaminantes, lo que puede afectar la durabilidad del hormigón y requerir limpieza periódica.

4.3 Superficie de isoconcentración en el agua

En este apartado se pide identificar y representar las zonas del tanque donde la concentración de contaminantes es igual, a las que llamaremos superficies de isoconcentración. Como la concentración depende solo de la profundidad, esas superficies serán representadas como planos horizontales que nos permitirán visualizar fácilmente la estratificación de los contaminantes en el tanque de tormentas.

1) Cálculo de las profundidades:

Como [math]C_{\text{agua}}[/math] depende solo de [math]z[/math], las superficies [math]C_{\text{agua}} = \text{const}[/math] son planos horizontales. Calculamos la profundidad [math]z[/math] donde cada concentración se alcanza.

Resolución algebraica: Para [math]z \leq 0[/math], [math]|z| = -z[/math]:

[math] C = C_0 \left( 1 - \alpha \frac{z}{H} \right) \;\Rightarrow\; z = -\frac{H}{\alpha} \left( \frac{C}{C_0} - 1 \right) [/math]

Sustituyendo: Para [math]C = 0.4[/math]:

[math] z = -\frac{22}{3} \left( \frac{0.4}{0.3} - 1 \right) = -\frac{22}{3} (0.333333) \approx -2.4444 \,\text{m} [/math]

- Para [math]C = 0.6[/math]: [math] z \approx -7.3333 \,\text{m} [/math]

- Para [math]C = 0.8[/math]: [math] z \approx -12.2222 \,\text{m} [/math]

- Para [math]C = 1.0[/math]: [math] z \approx -17.1111 \,\text{m} [/math]

2) Código MATLAB:

SUPERFICIES DE ISOCONCENTRACIÓN
% Isosurfaces (pero son planos horizontales)
Cvals = [0.4, 0.6, 0.8, 1.0];
zvals = - (H/alpha) * (Cvals./C0 - 1);
% dibujar cubo tanque y planos horizontales
L = 290; W = 140;
x = linspace(-L/2, L/2, 40);
y = linspace(-W/2, W/2, 40);
[X,Y] = meshgrid(x,y);
figure; hold on;
for k=1:length(zvals)
    surf(X, Y, zvals(k)*ones(size(X)), 'FaceAlpha', 0.5, 'EdgeColor','none');
end
xlabel('x (m)'); ylabel('y (m)'); zlabel('z (m)');
title('Superficies isoconcentración en el tanque (planos horizontales)');
view(3); axis tight; hold off;


3) Interpretación:

- Las superficies de isoconcentración son planos horizontales porque la concentración depende únicamente de la profundidad.

- A mayor concentración, mayor profundidad: los contaminantes se acumulan en el fondo.

- Esto confirma que el proceso de decantación es estratificado y estable, lo que facilita la limpieza del fondo y la predicción de zonas críticas para corrosión.

4.4 Masa total de contaminantes en el agua

La masa total de contaminantes es la cantidad de materia(contaminante) disuelta en el agua del tanque de Tormentas de Arroyofresno.Para resolver su masa total matemáticamente acudiremos a la siguiente fórmula:

Datos del problema:

[math]\textbf{Dimensiones del tanque:}[/math]

[math]L = 290\,\text{m},\quad W = 140\,\text{m},\quad h = 7\,\text{m}[/math]


[math] A = L \cdot W = 290 \cdot 140 = 40{,}600\ \text{m}^2 [/math]

[math]\textbf{Perfil de concentración en el agua:}[/math]


[math] C_{\text{agua}}(z) = C_0\left(1 - \frac{\alpha}{H}z\right), \quad C_0 = 0.3\ \text{kg/m}^3,\ \alpha = 3,\ H = 22\ \text{m},\quad z \in [-h,0] [/math]


[math]\textbf{Masa total de contaminantes (definición general):}[/math]


[math] M = \iiint_V C(\mathbf{r})\, dV [/math]


[math]\textbf{Masa en el tanque (sección constante):}[/math]


[math] M = A \int_{-h}^{0} C_{\text{agua}}(z)\, dz [/math]


[math]\textbf{Resolución de la integral:}[/math]


[math] M = A \cdot C_0 \cdot \int_{-h}^{0} \left(1 - \frac{\alpha}{H}z\right)\, dz = A \cdot C_0 \cdot \left[z - \frac{\alpha}{2H}z^2\right]_{-h}^{0} = A \cdot C_0 \cdot \left(h - \frac{\alpha}{2H}h^2\right) [/math]


[math]\textbf{Sustitución numérica:}[/math]


[math] \frac{\alpha}{2H} = \frac{3}{44} \approx 0.06818,\quad \frac{\alpha}{2H}h^2 = 0.06818 \cdot 49 \approx 3.34,\quad h - \frac{\alpha}{2H}h^2 = 7 - 3.34 = 3.66 [/math]



[math] M = 40{,}600 \cdot 0.3 \cdot 3.66 \approx 44{,}600\ \text{kg} [/math]


[math]\textbf{Resultado:}[/math]

[math]\quad M \approx 44{,}600\ \text{kg}[/math]

4.5 24 horas pasadas

En esta parte del trabajo tomaremos los siguientes datos:

[math]\textbf{Masa total de contaminantes del agua:}[/math]

[math]M_{\text{total}} = 1.26 \times 10^{7}\ \text{kg}[/math]

[math]\textbf{Porcentaje decantado en 24h:}[/math]

[math]60\%[/math]

[math]\textbf{Densidad aparente del lodo:}[/math]

[math]\rho_{\text{lodo}} = 1400 \ \mathrm{kg\,m^{-3}}[/math]

[math]\textbf{Dimensiones del tanque:}[/math]

[math]L = 290\,\text{m},\quad W = 140\,\text{m}[/math]

4.5.1 Masa de contaminantes depositados

Sustituyendo el porcentaje (60%=60/100) y la masa total de contaminantes del agua:

[math]M_{\text{depositada}} = 0.60 \cdot M \approx 0.60 \cdot 125952.27 \approx 75571.36 \ \mathrm{kg}[/math]

2)CODIGO MATLAB:

% masa_lodo.m
clear; clc;
% datos
L = 290; W = 140; H = 22;
C0 = 0.3; alpha = 3;
zlow = -7; zhigh = 0;
A = L*W;
% integral analítica (como en la deducción):
integral = C0*( (zhigh - zlow) - (alpha/(2*H))*(zhigh^2 - zlow^2) );
M = A * integral;
fprintf('Masa total en agua (z=-7..0): %.2f kg\n', M);

% decantación
M_dep = 0.6 * M;
rho_lodo = 1400;
V_lodo = M_dep / rho_lodo;
% columnas
Rc = 0.75;
Napprox = (L/15)*(W/15);
N = floor(Napprox); % usar entero
Acol = pi*Rc^2;
Aef = A - N*Acol;
espesor = V_lodo / Aef;
fprintf('Masa depositada: %.2f kg\nVolumen lodo: %.2f m^3\nEspesor evento: %.4f m (%.2f mm)\n', M_dep, V_lodo, espesor, espesor*1000);
fprintf('Espesor anual (8 eventos): %.4f m (%.2f mm)\n', espesor*8, espesor*8*1000);


4.5.2 Volumen de lodo

4.5.3 Espesor promedio de la capa de lodo en el fondo

4.5.4 Si el tanque se usa en promedio 8 veces al año, calcula el espesor total de lodo acumulado en un año (asumiendo que no se limpia entre eventos). Si se considera necesario limpiar cuando el espesor supera los 30 cm, ¿sería suficiente una limpieza anual?

5 Póster