Diferencia entre revisiones de «La presa de El Atazar»

De MateWiki
Saltar a: navegación, buscar
(Campo vectorial de la fuerza de presión)
Línea 76: Línea 76:
  
 
===Campo vectorial de la fuerza de presión===
 
===Campo vectorial de la fuerza de presión===
 +
[[Archivo:fotopresa3.png|miniaturadeimagen|Representación Presa|Figura 3. Representación del campo escalar de presiones.]]
 +
{{matlab|codigo=
 +
 +
%APARTADO 3
 +
 +
% Derivadas numéricas para obtener vectores tangentes
 +
[Rx_theta, Rx_z] = gradient(X);
 +
[Ry_theta, Ry_z] = gradient(Y);
 +
[Rz_theta, Rz_z] = gradient(Z);
 +
 +
% Producto cruzado de vectores tangentes para obtener el vector normal
 +
Nx = Ry_theta .* Rz_z - Rz_theta .* Ry_z;
 +
Ny = Rz_theta .* Rx_z - Rx_theta .* Rz_z;
 +
Nz = Rx_theta .* Ry_z - Ry_theta .* Rx_z;
 +
 +
% Magnitud del vector normal
 +
N_magnitude = sqrt(Nx.^2 + Ny.^2 + Nz.^2);
 +
 +
% Vector normal unitario
 +
Nx_unit = Nx ./ N_magnitude;
 +
Ny_unit = Ny ./ N_magnitude;
 +
Nz_unit = Nz ./ N_magnitude;
 +
 +
% Campo de fuerza de presión
 +
Fx = -P .* Nx_unit;
 +
Fy = -P .* Ny_unit;
 +
Fz = -P .* Nz_unit;
 +
 +
% Representación del campo vectorial sobre la superficie
 +
figure;
 +
quiver3(X, Y, Z, Fx, Fy, Fz, 0.5, 'Color', 'yellow'); % Escala ajustable con el factor 2
 +
hold on;
 +
surf(X, Y, Z, P, 'EdgeColor', 'none', 'FaceAlpha',1); % Superficie semitransparente
 +
colorbar;
 +
xlabel('X (m)');
 +
ylabel('Y (m)');
 +
zlabel('Z (m)');
 +
title('Campo vectorial de la fuerza de presión sobre la presa');
 +
view(3);
 +
grid on;
 +
 +
%APARTADO 3B
 +
 +
 +
% Fijamos theta = 0 (corte longitudinal)
 +
theta_cut = 0; % Corte en el plano x-z
 +
X_cut = X(:, 51); % Extraemos el corte longitudinal (theta cerca de 0)
 +
Z_cut = Z(:, 51); % Correspondiente en altura
 +
P_cut = P(:, 51); % Presión en el plano
 +
 +
% Vectores normales en el corte
 +
Nx_cut = Nx(:, 51); % Componente x del vector normal
 +
Nz_cut = Nz(:, 51); % Componente z del vector normal
 +
N_magnitude_cut = sqrt(Nx_cut.^2 + Nz_cut.^2);
 +
 +
% Normalización del vector normal
 +
Nx_unit_cut = Nx_cut ./ N_magnitude_cut;
 +
Nz_unit_cut = Nz_cut ./ N_magnitude_cut;
 +
 +
% Campo de fuerza de presión en el corte
 +
Fx_cut = -P_cut .* Nx_unit_cut;
 +
Fz_cut = -P_cut .* Nz_unit_cut;
 +
 +
% Gráfica del campo vectorial en el corte
 +
figure;
 +
quiver(X_cut, Z_cut, Fx_cut, Fz_cut, 'b', 'LineWidth', 1.5); % Vectores de fuerza
 +
hold on;
 +
plot(X_cut, Z_cut, 'k-', 'LineWidth', 2); % Contorno de la presa en el plano
 +
xlabel('X (m)');
 +
ylabel('Z (m)');
 +
title('Campo de fuerza de presión en el plano longitudinal');
 +
grid on;
 +
}}

Revisión del 12:34 27 nov 2024

La presa de El Atazar, ubicada en el río Lozoya, es la mayor y más importante de la Comunidad de Madrid. Inaugurada en 1972, es una presa de gravedad y arco con 134 metros de altura y una capacidad de 425 hectómetros cúbicos, siendo clave para el abastecimiento de agua potable en Madrid y su área metropolitana.

El presente trabajo tiene por objeto la visualización y representación de la geometría de la presa para hacer un posterior análisis de la estabilidad estructural y la interacción del agua con la presa, incluyendo presión y caudal. Para su realización se empleará el software de programación y cálculo numérico Matlab.

Trabajo realizado por estudiantes
Título La presa de El Atazar. Grupo 31
Asignatura Teoría de Campos
Curso 2024-25
Autores
  • Cristopher Ardon Colindres
  • Andrea Garcia Carrasco
  • Aaron García Martín
  • Lara Gutiérrez Kreutzer
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Representación de la presa

En primer lugar, se representa la superficie aguas arriba de la presa. Esta tiene una altura de 134 metros, y está definida por [math]θ ∈ [\frac{3π}{4}, \frac{5π}{4}][/math] y [math]Z ∈ [0,H][/math]. Para su realización, se ha comenzado definiendo los parámetros básicos y discreteando el dominio con una altura de paso de h=100. Con el comando "meshgrid()" se construye una malla que permita parametrizar la superficie en coordenadas cilíndricas según la siguiente ecuación.

[math]r = r_{0} + b * (1 - \frac{z^2}{h^2})[/math]

Por último, se convierte la parametrización a coordenadas cartesianas y con el comando "surf()" obtenemos la gráfica de la superficie. A continuación, se muestra el código empleado para la obtención de la presay la imagen resultante:

Figura 1. Representación de la presa.
clc
r0 = 200;                                      % Radio base de la presa (aproximado)
b = 35;                                        % Curvatura del arco parabólico
H = 134;                                       % Altura de la presa
theta_min = 3*pi/4;
theta_max = 5*pi/4;
theta = linspace(theta_min, theta_max, 100);   % Ángulo en radianes
z = linspace(0, H, 100);                       % Altura
[Theta, Z] = meshgrid(theta, z);               % Creación del mallado
R = r0 + b * (1 - (Z.^2) / H^2);               % Ecuación paramétrica para r
X = R .* cos(Theta);                           % Conversión a coordenadas cartesiana
Y = R .* sin(Theta);
figure;
surf(X, Y, Z, 'FaceColor', 'cyan', 'EdgeColor', 'none');
xlabel('Eje X (m)');
ylabel('Eje Y (m)');
zlabel('Eje Z (m)');
title('Superficie parametrizada de la presa (aguas arriba)');
axis equal;                                    
view(3);                                       %Visualizamos el gráfico en tres dimensiones
grid on;


2 Presiones sobre la presa

A continuación, analizamos y visualizamos los efectos de la presión sobre la superficie de la presa mediante la representación de los campos escalares y vectoriales de presión.

2.1 Campo escalar de presión

El campo escalar de presiones viene dado por la función: [math]P(z)=ρgh(z)[/math]. donde ρ es la densidad del agua, g es la aceleración de la gravedad, y h(z) es la profundidad del agua. Representamos el campo escalar de presiones para visualizar como varía la presión en la superficie aguas arriba de la presa.Esto nos permite identificar las zonas de mayor y menor presión.

Figura 2. Representación del campo escalar de persión sobre la presa.
% Parámetros de presión
rho = 1000;             % Densidad del agua (kg/m^3)
g = 9.81;               % Gravedad (m/s^2)
% Cálculo de la presión
P = rho * g * (H - Z);  % Presión en función de z
% Gráfica de la superficie con mapa de colores para la presión
figure;
surf(X, Y, Z, P, 'EdgeColor', 'none');
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title('Presión sobre la superficie de la presa');
colorbar;               % Barra de colores para indicar magnitudes de presión
colormap(jet);          % Esquema de colores
axis equal;
view(3);
grid on;
INTERPRETACIÓN DEL CAMPO ESCALAR DE PERSIÓN

En la imagen se observan dos gamas de colores diferenciadas: una primera, correspondiente a tonos fríos (azul), que representa las zonas de menor presión, y una segunda, compuesta por tonos cálidos (amarillo), asociada a las regiones de mayor presión. Es coherente con el comportamiento hidrostático que los valores más altos de presión se localicen en la base de la presa y disminuyan progresivamente con la altura.

2.2 Campo vectorial de la fuerza de presión

Figura 3. Representación del campo escalar de presiones.
%APARTADO 3

% Derivadas numéricas para obtener vectores tangentes
[Rx_theta, Rx_z] = gradient(X);
[Ry_theta, Ry_z] = gradient(Y);
[Rz_theta, Rz_z] = gradient(Z);

% Producto cruzado de vectores tangentes para obtener el vector normal
Nx = Ry_theta .* Rz_z - Rz_theta .* Ry_z;
Ny = Rz_theta .* Rx_z - Rx_theta .* Rz_z;
Nz = Rx_theta .* Ry_z - Ry_theta .* Rx_z;

% Magnitud del vector normal
N_magnitude = sqrt(Nx.^2 + Ny.^2 + Nz.^2);

% Vector normal unitario
Nx_unit = Nx ./ N_magnitude;
Ny_unit = Ny ./ N_magnitude;
Nz_unit = Nz ./ N_magnitude;

% Campo de fuerza de presión
Fx = -P .* Nx_unit;
Fy = -P .* Ny_unit;
Fz = -P .* Nz_unit;

% Representación del campo vectorial sobre la superficie
figure;
quiver3(X, Y, Z, Fx, Fy, Fz, 0.5, 'Color', 'yellow'); % Escala ajustable con el factor 2
hold on;
surf(X, Y, Z, P, 'EdgeColor', 'none', 'FaceAlpha',1); % Superficie semitransparente
colorbar;
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title('Campo vectorial de la fuerza de presión sobre la presa');
view(3);
grid on;

%APARTADO 3B


% Fijamos theta = 0 (corte longitudinal)
theta_cut = 0; % Corte en el plano x-z
X_cut = X(:, 51); % Extraemos el corte longitudinal (theta cerca de 0)
Z_cut = Z(:, 51); % Correspondiente en altura
P_cut = P(:, 51); % Presión en el plano

% Vectores normales en el corte
Nx_cut = Nx(:, 51); % Componente x del vector normal
Nz_cut = Nz(:, 51); % Componente z del vector normal
N_magnitude_cut = sqrt(Nx_cut.^2 + Nz_cut.^2);

% Normalización del vector normal
Nx_unit_cut = Nx_cut ./ N_magnitude_cut;
Nz_unit_cut = Nz_cut ./ N_magnitude_cut;

% Campo de fuerza de presión en el corte
Fx_cut = -P_cut .* Nx_unit_cut;
Fz_cut = -P_cut .* Nz_unit_cut;

% Gráfica del campo vectorial en el corte
figure;
quiver(X_cut, Z_cut, Fx_cut, Fz_cut, 'b', 'LineWidth', 1.5); % Vectores de fuerza
hold on;
plot(X_cut, Z_cut, 'k-', 'LineWidth', 2); % Contorno de la presa en el plano
xlabel('X (m)');
ylabel('Z (m)');
title('Campo de fuerza de presión en el plano longitudinal');
grid on;