Parametrización de la Presa de El Atazar (Grupo 31)
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Parametrización de la Presa de El Atazar. Grupo 31 |
| Asignatura | Teoría de Campos |
| Curso | 2025-26 |
| Autores |
|
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
1 Introducción
La Presa de El Atazar es la mayor presa de la Comunidad de Madrid, y es considerada una de las mayores obras de la ingeniería española. Está situada en la corriente del río Lozoya, un afluente del Tajo, y en su interior almacena 426 hm³, los cúales corrsponden al 46% del volumen de agua embalsada de la comunidad.
1.1 Historia
La construcción de la presa empezó en 1965 con un coste inicial de mil millones de pesetas, que acabó ascendiendo a una cifra en torno 3000 y 3500 millones. Hoy en día contando con la inflación equivaldría a 388 millones de euros aproxidamente. El principal objetivo de la obra fue dotar a la región de un suministro permanente de agua durante todo el año, y además se pudó regularizar el caudal del río Lozoya. Otra de sus funciones es actuar como gran reserva de embalses más pequeños de la zona. En 1992 la presa fue incluida en el Plan Integral de Aprovechamiento del Recurso Hidroeléctrico del Canal de Isabel II para aprovechar la energía hidroeléctrica que genera. Finalmente, tras alguna complicación debido a la litología del terreno, fue inagurada en 1972.
2 Superficie parametrizada de la presa en su cara aguas arriba
Primero se definen las dimensiones de la presa y se crea la malla base para la fachada. Después, se obtiene el valor de 𝜌 utilizando la ecuación: [math]\rho = \rho_0 + b \left( 1 - \frac{z^2}{H^2} \right)[/math] Por último, se convierten las coordenadas para graficar la figura resultante con el comando surf.
H = 134; % Altura
rho0 = 150; % Radio
b = 40; % Parámetro de curvatura
% Definimos la alrura de 0 a H
z = linspace(0, H, 50);
theta = linspace(2*pi/3, 4*pi/3, 50);
% Creamos la malla
[Z, TH] = meshgrid(z, theta);
% Calculamos Rho:
Rho = rho0 + b * (1 - (Z.^2) / (H^2));
% Convertimos de cilíndricas a (X, Y, Z)
X = Rho .* cos(TH);
Y = Rho .* sin(TH);
figure;
surf(X, Y, Z);
% Estética del gráfico
title('Representación de la Presa de El Atazar (Cara Aguas Arriba)');
xlabel('X metros');
ylabel('Y metros');
zlabel('Z Altura en metros');
axis equal;
shading interp;
colormap summer;
colorbar;
grid on;
3 Campo escalar de presión
La distribución hidrostática de presiones sobre la superficie aguas arriba puede describirse mediante la expresión
[math] P(z)=\rho\, g\, h(z), [/math]
donde
𝜌 ρ representa la densidad del agua,
𝑔 g es la aceleración debida a la gravedad,
ℎ ( 𝑧 ) h(z) corresponde a la columna de agua situada por encima de la cota 𝑧 z.
Esta función permite visualizar la variación de presión a lo largo del paramento mojado, identificando claramente las zonas sometidas a mayores solicitaciones. En la representación gráfica se distinguen dos gamas cromáticas: los colores fríos, asociados a regiones donde la presión es menor, y los colores cálidos, que indican los puntos de presión más elevada. Este comportamiento concuerda con la teoría hidrostática, pues la presión aumenta con la profundidad y alcanza su valor máximo en la base de la presa, disminuyendo gradualmente hacia la coronación.
% Parámetros físicos
rho = 1000; % Densidad del agua (kg/m^3)
g = 9.81; % Aceleración de la gravedad (m/s^2)
% Cálculo de la presión en función de la altura
P = rho * g * (H - Z); % Presión hidrostática en la superficie
% Visualización de la superficie con colores representando la presión
figure;
surf(X, Y, Z, P, 'EdgeColor', 'none'); % Superficie con mapa de colores basado en P
xlabel('Eje X (m)');
ylabel('Eje Y (m)');
zlabel('Eje Z (m)');
title('Presión sobre la superficie de la presa');
% Configuración de colores y visualización
colormap(jet); % Paleta de colores para la presión
colorbar; % Barra de colores para interpretar la presión
axis equal; % Igualar las escalas de los ejes
view(3); % Vista tridimensional
grid on; % Mostrar la cuadrícula
3.1 Campo vectorial de la fuerza de presión
% Parámetros de la presa
rho = 1000; % Densidad del agua (kg/m^3)
g = 9.81; % Aceleración gravitatoria (m/s^2)
H = 134; % Altura de la presa (m)
r0 = 968/pi; % Radio en la altura máxima (m)
b = 35; % Factor de curvatura del arco parabólico (m)
% --- Gráfica 1: Toda la presa ---
% Coordenadas cilíndricas
theta = linspace(3pi/4, 5pi/4, 20); % Ángulo θ
z = linspace(0, H, 20); % Altura z
[Theta, Z] = meshgrid(theta, z); % Mallado para θ y z
R = r0 + b * (1 - Z.^2 / H^2); % Radio en función de z
% Conversión a coordenadas cartesianas
X = R .* cos(Theta); % Coordenadas X
Y = R .* sin(Theta); % Coordenadas Y
% Derivadas parciales para las normales
dr_dz = -2 * b * Z / H^2; % Derivada parcial de r respecto a z
n_r = 1 ./ sqrt(1 + dr_dz.^2); % Componente radial del vector normal
n_x = n_r .* cos(Theta); % Proyección de la normal en X
n_y = n_r .* sin(Theta); % Proyección de la normal en Y
% Campo de presión
P = rho * g * (H - Z); % Presión en función de la profundidad
% Vectores de fuerza de presión
F_x = -P .* n_x; % Componente en X
F_y = -P .* n_y; % Componente en Y
% Representación gráfica de toda la presa
figure;
quiver3(X, Y, Z, F_x, F_y, zeros(size(F_x)), 1, 'b');
title('Fuerza de presión en la presa (3D)');
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
grid on;
axis equal;
% --- Gráfica 2: Corte vertical ---
% Coordenadas cilíndricas para el corte vertical (θ = π)
theta_cut = pi; % Corte en θ = π
z_cut = linspace(0, H, 20); % Altura z
R_cut = r0 + b * (1 - z_cut.^2 / H^2); % Radio en función de z
% Coordenadas cartesianas para el corte
X_cut = R_cut .* cos(theta_cut); % Coordenadas X (constante para θ = π)
Z_cut = z_cut; % Coordenadas Z
% Derivadas parciales para calcular las normales
dr_dz_cut = -2 * b * Z_cut / H^2; % Derivada parcial de r respecto a z
n_r_cut = 1 ./ sqrt(1 + dr_dz_cut.^2); % Componente radial del vector normal
n_x_cut = n_r_cut .* cos(theta_cut); % Proyección de la normal en X
n_z_cut = -dr_dz_cut .* n_r_cut; % Proyección de la normal en Z
% Campo de presión
P_cut = rho * g * (H - Z_cut); % Presión en función de la profundidad
% Vectores de fuerza de presión (en el plano X-Z)
F_x_cut = -P_cut .* n_x_cut; % Componente en X
F_z_cut = -P_cut .* n_z_cut; % Componente en Z
% Representación gráfica del corte vertical
figure;
quiver(X_cut, Z_cut, F_x_cut, F_z_cut, 1, 'r');
title('Fuerza de presión en el corte vertical (X-Z)');
xlabel('X (m)');
ylabel('Z (m)');
grid on;
axis equal;
Los resultados obtenidos concuerdan con el comportamiento hidrostático esperado: la magnitud de la fuerza de presión crece conforme aumenta la profundidad, de modo que los vectores correspondientes a la zona inferior presentan mayor intensidad (colores más cálidos), mientras que en las proximidades de la coronación se observan fuerzas notablemente menores (tonos más fríos). Esta tendencia refleja el incremento lineal de la presión con la profundidad.
4 Cálculo de la fuerza de presión total y la presión por unidad de superficie
En este apartado se determinarán la fuerza total debida a la presión y la presión distribuida por unidad de superficie para dos valores diferentes del parámetro de curvatura: 𝑏 = 40 m, correspondiente al caso de doble curvatura, y 𝑏 = 0 m, que representa el caso de curvatura simple. Se analizará cuál de estas dos configuraciones presenta una mejor capacidad de resistencia frente a la presión y la fuerza.
Los datos empleados para la realización de los cálculos son los siguientes;
Datos dados sobre la presa:
H = 134m , altura de la presa;
𝜌0 = 150 , radio en la coronación(altura máxima);
Curvaturas parabólicas:
1er Caso b = 40;
2o Caso b = 0;
Tomamos datos físicos que usaremos:
𝜌 = 1000(kg/m^3): densidad del agua;
g = 9.81(m/s^2): aceleración de la gravedad;
r0 = 968/pi(m): radio en la altura máxima.
4.1 Caso 1. Caso de doble curvatura(b=40)
En este caso usaremos el parámetro de curvatura b=40m, que es el caso de doble curvatura, cuya representación es la siguiente:
% Caso 1 - CASO DE DOBLE CURVATURA
% Parámetro de curvatura:
b = 40;
% Parámetros geométricos y físicos
r0 = 150; % Radio inicial (m)
h = 134; % Altura de la presa (m)
rho = 1000; % Densidad del agua (kg/m³)
g = 9.81; % Aceleración de la gravedad (m/s²)
% Coordenadas cilíndricas
theta = linspace(3*pi/4, 5*pi/4, 40);
z = linspace(0, h, 40);
[Theta, Z] = meshgrid(theta, z);
% Radio en función de la altura
R = r0 + b * (1 - Z.^2 / h^2);
% Transformación a coordenadas cartesianas
X = R .* cos(Theta);
Y = R .* sin(Theta);
% Derivadas para la normal
dr_dz = -2 * b * Z / h^2;
n_r = 1 ./ sqrt(1 + dr_dz.^2);
n_x = n_r .* cos(Theta);
n_y = n_r .* sin(Theta);
% Campo de presión hidrostática
P = rho * g * (h - Z);
% Componentes de fuerza por presión
F_x = -P .* n_x;
F_y = -P .* n_y;
% Representación gráfica con fondo negro
fig = figure('Color', 'black');
ax = axes('Parent', fig, 'Color', 'black');
q = quiver3(X, Y, Z, F_x, F_y, zeros(size(F_x)), 1.2, ...
'Color', 'cyan', 'LineWidth', 1.3);
q.MaxHeadSize = 2;
title('Fuerza de presión en presa de doble curvatura (3D)', 'Color', 'white');
xlabel('X (m)', 'Color', 'white');
ylabel('Y (m)', 'Color', 'white');
zlabel('Z (m)', 'Color', 'white');
grid on;
axis equal;
set(gca, 'XColor', 'white', 'YColor', 'white', 'ZColor', 'white', ...
'GridColor', [0.6 0.6 0.6], 'GridAlpha', 0.4);
4.2 Caso 2. Caso curvatura simple (b=0)
En este segundo caso usaremos el parámetro de curvatura b=0, curvatura simple, con la siguiente representación:
% Caso 2 - CASO DE CURVATURA SIMPLE
% Parámetro de curvatura:
b = 0;
% Parámetros geométricos y físicos (mismos que el caso anterior)
r0 = 150; % Radio inicial (m)
h = 134; % Altura de la presa (m)
rho = 1000; % Densidad del agua (kg/m³)
g = 9.81; % Aceleración de la gravedad (m/s²)
% Coordenadas cilíndricas
theta = linspace(3*pi/4, 5*pi/4, 40);
z = linspace(0, h, 40);
[Theta, Z] = meshgrid(theta, z);
% Radio constante (b = 0)
R = r0 + b * (1 - Z.^2 / h^2);
% Transformación a coordenadas cartesianas
X = R .* cos(Theta);
Y = R .* sin(Theta);
% Derivadas para la normal
dr_dz = -2 * b * Z / h^2;
n_r = 1 ./ sqrt(1 + dr_dz.^2);
n_x = n_r .* cos(Theta);
n_y = n_r .* sin(Theta);
% Presión hidrostática
P = rho * g * (h - Z);
% Componentes de fuerza por presión
F_x = -P .* n_x;
F_y = -P .* n_y;
% Gráfica con fondo negro (misma apariencia que la primera)
fig = figure('Color', 'black');
ax = axes('Parent', fig, 'Color', 'black');
q = quiver3(X, Y, Z, F_x, F_y, zeros(size(F_x)), 1.2, ...
'Color', 'cyan', 'LineWidth', 1.3);
q.MaxHeadSize = 2;
title('Fuerza de presión en presa de curvatura simple (3D)', 'Color', 'white');
xlabel('X (m)', 'Color', 'white');
ylabel('Y (m)', 'Color', 'white');
zlabel('Z (m)', 'Color', 'white');
grid on;
axis equal;
set(gca, 'XColor', 'white', 'YColor', 'white', 'ZColor', 'white', ...
'GridColor', [0.6 0.6 0.6], 'GridAlpha', 0.4);
4.3 Conclusión
En la primera opción (b=40) la presa tiene forma de arco tanto en horizontal como en vertical. Esto permite que la presión del agua se distribuya hacia los lados, hacia los estribos o montañas, reduciendo la carga directa sobre el cuerpo de la presa. Es estructuralmente muy eficiente y soporta bien la presión.
En la segunda (b=0) opción la presa es vertical y plana, sin variación de radio con la altura. La presión del agua se transmite directamente al cuerpo de la presa, concentrando la fuerza en la estructura y haciendo que sea menos eficiente frente a la misma carga.
En conclusión, la presa de doble curvatura (b = 40 m) es estructuralmente superior, ya que distribuye la presión del agua hacia los lados y reduce tanto la fuerza total como la presión media sobre la estructura. En cambio, la presa de curvatura simple (b = 0 m) concentra la presión directamente en el cuerpo de la presa, haciéndola menos eficiente. Por ello, la configuración de doble curvatura es la mejor opción para soportar la presión del embalse.
5 Opción 1. Sedimentación en el embalse
5.1 Representación del campo S(x,y)
%Parámetros
S0 = 50;
alpha = 3;
L = 500;
%Creación de la malla
x = linspace(-1000,1000,200);
y = linspace(-1000,1000,200);
[X,Y] = meshgrid(x,y);
%Campo escalar S(x,y)
S = S0*(1+ alpha*exp(-(X.^2 + Y.^2)/L^2));
%Representación gráfica
figure('Units', 'normalized', 'Position', [0.05 0.05 0.8 0.8])
c = pcolor(X, Y, S);
set (c, 'EdgeColor', 'none');
axis equal;
colorbar;
colormap summer;
ylabel('y (m)');
xlabel('x (m)');
title("S(x,y)") ;
subtitle('Representación del campo escalar de la sedimentación')
5.2 Gradiente de sedimentación ∇S
%Parámetros
S0 = 50;
alpha = 3;
L = 500;
%Creación de la malla
x = linspace(-1000, 1000, 200);
y = linspace(-1000, 1000, 200);
[X, Y] = meshgrid(x, y);
% Campo escalar S(x,y)
S = S0*(1+ alpha*exp(-(X.^2 + Y.^2)/L^2));
% Cálculo del gradiente de sedimentación ∇S
[dx, dy] = gradient(S, x, y);
% Representación del campo vector
figure('Units','normalized','Position',[0.2 0.2 0.5 0.5])
c = pcolor(X, Y, S);
set (c, 'EdgeColor', 'none');
colorbar;
colormap summer;
hold on
axis equal
xlabel('x (m)');
ylabel('y (m)');
title('Gradiente sobre S(x,y)');
grid on
m = 6;
quiver(X(1:m:end,1:m:end), Y(1:m:end,1:m:end),...
dx(1:m:end,1:m:end),dy(1:m:end,1:m:end),'y');
hold off5.3 Calculo de la masa total de los sedimentos, el volumen que ocupan y el porcentaje de la capacidad del embalse que representan
Para calcular la masa total de sedimentos integraremos la función de concentración de sedimentos S(x,y) por el área del fondo del embalse. Para simplificar el cálculo consideraremos el fondo del embalse como plano en z=0 y con forma de sector circular centrado en el valle, delimitado por el arco de la presa en su base.
[math] M = \iint_{A} S(x,y)\, dA = \iint_{A} S_0 \left( 1 + \alpha e^{\frac{-(x^2+y^2)}{L^2}} \right) [/math]
Vamos a simplificar el cálculo pasando de coordenadas cartesianas a polares, ya que el fondo tiene forma circular.
Sabemos que [math] x^2+y^2 = r^2 [/math] y que el área diferencial en coordenadas polares es [math]dA=r\, dr\, d\theta [/math]
Por lo que nos quedaría la siguiente integral: [math] M = \int_{\theta_0}^{\theta_1}\int_{0}^{R}S_0\left(1+\alpha e^{\frac{-r^2}{L^2}}\right)\, r \, dr \, d\theta [/math]
Dividimos la integral en [math] S_0\int_{\theta_0}^{\theta_1}\left( \int_{0}^{R} r\, dr\, +\, \int_{0}^{R}r\, \alpha\, e^{\frac{-r^2}{L^2}}\, dr \right)d\theta[/math] y resolvemos las partes de la integral con la variable [math]r[/math] por separado.
[math] \int_{0}^{R} r\, dr\, = {\frac{R^2}{2}}[/math]
[math] \int_{0}^{R}r\, \alpha\, e^{\frac{-r^2}{L^2}}\, =\, ({\frac{-L^2}{2}}\,)\, e^{\frac{-R^2}{L^2}}\alpha [/math]
[math] \int_{\theta_0}^{\theta_1} ({R^2/2}\, +\,({-L^2/2}\,)\, e^{-R^2/L^2}\alpha)d\theta [/math]
Como la variable [math]\theta[/math] no está presente dentro de la integral podemos definir esta de la siguiente forma:[math] \int_{\theta_0}^{\theta_1}d\theta\, \,({R^2/2}\, +\,({-L^2/2}\,)\, e^{-R^2/L^2}\alpha) [/math]
Donde [math]\int_{\theta_0}^{\theta_1}d\theta \,=\, \Delta\theta [/math]
Así que nos quedaría [math]M\,=S_0\, \Delta\theta\,({R^2/2}\, +\,({-L^2/2}\,)\, e^{-R^2/L^2}\alpha) [/math]
5.4 Curvas de isoconcentración de S(x,y)
Se representan las curvas de isoconcentración con S(x,y)=cte para el campo:
[math] S(x,y) = S_0 \left( 1 + \alpha e^{-\frac{x^2+y^2}{L^2}} \right) [/math]
S0 = 50;
alpha = 3;
L = 500;
x = linspace(-500, 500, 300);
y = linspace(-500, 500, 300);
[X, Y] = meshgrid(x, y);
% Campo escalar
S = S0 * (1 + alpha * exp(-(X.^2 + Y.^2)/L^2));
% Curvas
figure;
contour(X, Y, S, 10, 'LineWidth', 1.5);
colorbar;
xlabel('x (m)');
ylabel('y (m)');
title('Curvas de isoconcentración de S(x,y)');
axis equal;
grid on;
colormap("summer");
6 Opción 2.Estratificación térmica
6.1 Representación gráfica del perfil de temperatura 𝑇(𝑧) para 𝑧 ∈ [0, 𝐻agua] con Δ𝑇𝜃 = 0 °C
Al ejecutar el primer bloque del código, obtendrás una gráfica de T frente a la profundidad z.
- Epilimnio: Es la zona superior (cerca de z=125 m). En la gráfica se ve que la temperatura es alta (aprox 23ºC) y bastante uniforme en los primeros metros antes de empezar a caer.
- Termoclino (Metalimnio): Es la zona intermedia. En la gráfica es la sección con mayor pendiente, donde la temperatura baja rápidamente de caliente a fría. Ocurre aproximadamente entre z=100 y z=80.
- Hipolimnio: Es la zona inferior (fondo, z < 80 m aprox). Aquí la curva se aplana en 8ºC.
TempF = 8;
DTz = 15;
d = 15;
Hagua = 125;
z = linspace(0, Hagua, 500);
% Ecuación T(z)
Tz = Tfondo + DTz .* (1 - exp(-(Hagua - z).^2 ./ (2*d^2)));
%No ponemos la segunda parte de la ecuacion ya que dT0=0%
% Gráfica
figure;
plot(z, Tz, 'g','LineWidth', 2);
xlabel('Profundidad z (m)');
ylabel('Temperatura °C');
title('Perfil vertical de temperatura en el embalse');
grid on;
6.2 Δ𝑇𝜃 = 3 °C. Cálculo de nuevo gradiente
Ahora con Δ𝑇𝜃 = 3 °C calculamos el gradiente de temperatura.
Representación gráfica:
%Parámetros
% Parámetros
Hagua = 125;
Tfondo = 8;
DeltaTz = 15;
d = 15;
DeltaTtheta = 3;
theta_sol = 5*pi/6;
hsuper = 4;
% Profundidad
z = linspace(0, Hagua, 500);
% Gradiente de temperatura
theta = theta_sol;
dTdz = DeltaTz*(Hagua - z)/d^2 .* exp(-(Hagua - z).^2/(2*d^2)) + ...
DeltaTtheta/hsuper * cos(theta - theta_sol) .* exp(-(Hagua - z)/hsuper);
[grad_max, idx_max] = max(dTdz);
z_max = z(idx_max); o
termoclino_z = [z_max-10, z_max+10];
figure('Color', 'k');
plot(dTdz, z, 'LineWidth', 2, 'Color', 'g');
set(gca, 'YDir', 'reverse', 'Color', 'k', 'XColor', 'w', 'YColor', 'w');
xlabel('Gradiente de temperatura (°C/m)', 'Color', 'w');
ylabel('Profundidad (m)', 'Color', 'w');
title('Gradiente vertical de temperatura con variación superficial', 'Color', 'w');
grid on;
El gradiente máximo se alcanza en el termoclino. En esta región ocurre el cambio más brusco de temperatura con la profundidad, por lo que el gradiente vertical
dT/dz alcanza su valor más alto allí. Este punto está marcado en rojo en la representación.
6.3 Representación de 5 superficies isotérmicas para diferentes valores de temperatura
Vamos a usar la temperaturas 𝑇 = 10, 13, 16, 19 y 22 °C; por Δ𝑇𝜃 = 0 °C y Δ𝑇𝜃 = 3 °C. Esta es la representación de las 5 superficies para el Δ𝑇𝜃 = 0 °C:
% Parámetros del embalse
T_fondo = 8;
DeltaT_z = 15;
d = 15;
H = 125;
T= [10, 13, 16, 19, 22];
theta_sol = 5*pi/6;
h_super = 4;
colores = [0 0 1; 0 1 0; 1 1 0; 1 0.5 0; 1 0 0];
theta = linspace(0, 2*pi, 100);
rho = linspace(0, 50, 100);
[Theta, Rho] = meshgrid(theta, rho);
X = Rho.*cos(Theta);
Y = Rho.*sin(Theta);
%Superficies ΔTθ = 0
Z_iso0 = zeros(size(Theta,1), size(Theta,2), length(T_iso));
for k = 1:length(T_iso)
T = T_iso(k);
z_iso = H_agua - sqrt(-2*d^2 * log(1 - (T-T_fondo)/DeltaT_z));
Z_iso0(:,:,k) = z_iso * ones(size(Theta));
end
figure('Color','k'); hold on
for k = 1:length(T_iso)
surf(X,Y,Z_iso0(:,:,k),'FaceColor',colores(k,:),'EdgeColor','none','FaceAlpha',0.7)
end
xlabel('X (m)','Color','w'); ylabel('Y (m)','Color','w'); zlabel('Profundidad z (m)','Color','w')
title('Isotermas ΔT_\theta = 0 (planas)','Color','w')
grid on; ax=gca; ax.GridColor=[1 1 1]; ax.GridAlpha=0.5; ax.XColor='w'; ax.YColor='w'; ax.ZColor='w';
view(3); axis tight; shading interp; lighting phong; camlight headlight
% Superficies ΔTθ = 3
DeltaT_theta3 = 3;
Z_iso3 = zeros(size(Theta,1), size(Theta,2), length(T_iso));
for k = 1:length(T_iso)
T = T_iso(k);
for i = 1:size(Theta,1)
for j = 1:size(Theta,2)
f = @(z) T_fondo + DeltaT_z*(1 - exp(-(H_agua - z)^2/(2*d^2))) + ...
DeltaT_theta3*cos(Theta(i,j)-theta_sol)*exp(-(H_agua-z)/h_super) - T;
Z_iso3(i,j,k) = fzero(f,H_agua/2);
end
end
end
figure('Color','k'); hold on
for k = 1:length(T_iso)
surf(X,Y,Z_iso3(:,:,k),'FaceColor',colores(k,:),'EdgeColor','none','FaceAlpha',0.7)
end
xlabel('X (m)','Color','w'); ylabel('Y (m)','Color','w'); zlabel('Profundidad z (m)','Color','w')
title('Isotermas ΔT_\theta = 3 (deformadas)','Color','w')
grid on;
view(3); axis tight; shading interp;
endEn el caso de ΔTθ = 0 °C. Tiene superficies isotérmicas planas y horizontales, paralelas a la superficie del agua.
En el caso de ΔTθ = 3 °C. Tiene superficies isotérmicas deformadas, con ondulación superficial orientada hacia la dirección de máxima insolación, pero profundas siguen casi horizontales.
6.4 Sección vertical rectangular del embalse.
Se representa el campo escalar 𝑇(𝑧) como un mapa de colores sobre esta sección, por Δ𝑇𝜃 = 0 °C y Δ𝑇𝜃 = 3°C.
clear;
clc;
% Parámetros
Tfondo = 8;
DTz = 15;
d = 15;
Hagua = 125;
hsuper = 4;
DTtheta_vals = [0, 3];
rho = linspace(0, 200, 200);
z = linspace(0, Hagua, 200);
[R,Z] = meshgrid(rho, z);
% Ángulos
theta = pi/2;
thetasol = 5*pi/6;
for k = 1:2
DTtheta = DTtheta_vals(k);
%T(rho,z)
T = Tfondo + DTz*(1 - exp(-(Hagua - Z).^2/(2*d^2))) ...
+ DTtheta*cos(theta - thetasol).*exp(-(Hagua - Z)/hsuper);
% Gráfico
figure;
contourf(R, Z, T, 30, 'LineColor', 'none');
colorbar;
colormap(summer);
xlabel('\rho (m)');
ylabel('z (m)');
title(['T(\rho,z) con \DeltaT_\theta = ', num2str(DTtheta), ' °C']);
end