Diferencia entre revisiones de «Torres de enfriamiento hiperbólicas (Grupo 18)»
| Línea 70: | Línea 70: | ||
==.-Representación del campo escalar de presiones.== | ==.-Representación del campo escalar de presiones.== | ||
Suponiendo que la torre está sujeta a un viento paralelo al vector <math>\vec{i} + \vec{j}</math> para la mitad expuesta de la torre. | Suponiendo que la torre está sujeta a un viento paralelo al vector <math>\vec{i} + \vec{j}</math> para la mitad expuesta de la torre. | ||
| + | [[File:primer_codigo_largo_cuarto.png|right|600px|Mapa de presión del viento en la mitad de la torre expuesta.]] | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
% Parámetros dados | % Parámetros dados | ||
| Línea 79: | Línea 80: | ||
alpha = 0.14; % Exponente de perfil de viento | alpha = 0.14; % Exponente de perfil de viento | ||
rho_air = 1.225; % Densidad del aire estándar en kg/m^3 | rho_air = 1.225; % Densidad del aire estándar en kg/m^3 | ||
| − | % Rango para | + | % Rango para v y ángulo u (solo la mitad expuesta) |
v = linspace(0, 120, 100); % Altura de 0 a 120 m | v = linspace(0, 120, 100); % Altura de 0 a 120 m | ||
| − | u= linspace(0, pi, 100); % Ángulo | + | u = linspace(0, pi, 100); % Ángulo u para la mitad expuesta |
% Crear la superficie de la torre | % Crear la superficie de la torre | ||
[U, V] = meshgrid(u, v); | [U, V] = meshgrid(u, v); | ||
| − | Rho = a * sqrt(1 + (( | + | Rho = a * sqrt(1 + ((V - z0) / c).^2); % Ecuación de la torre |
X = Rho .* cos(U); | X = Rho .* cos(U); | ||
Y = Rho .* sin(U); | Y = Rho .* sin(U); | ||
| − | % Calcular la velocidad del viento en función de | + | % Calcular la velocidad del viento en función de v |
| − | V_z = V0 * (V/ zref).^alpha; | + | V_z = V0 * (V / zref).^alpha; |
% Calcular la presión del viento | % Calcular la presión del viento | ||
P_z = 0.5 * rho_air .* V_z.^2; | P_z = 0.5 * rho_air .* V_z.^2; | ||
Revisión del 10:40 5 dic 2024
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Torres de enfriamiento hiperbólicas (Grupo 18) |
| Asignatura | Teoría de Campos |
| Curso | 2024-25 |
| Autores |
|
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Las torres de enfriamiento hiperbólicas son estructuras icónicas en la ingeniería moderna, utilizadas principalmente en centrales termoeléctricas y nucleares para la disipación de calor residual. Estas torres, caracterizadas por su forma hiperbólica, no solo destacan por su eficiencia térmica, sino también por su diseño estructural optimizado, que combina funcionalidad y resistencia frente a las fuerzas externas como el viento.
Consideremos una torre de enfriamiento hiperbólica, caracterizada por su altura total H, su radio
máximo en la base Rmax, y su radio mínimo Rmin alcanzado a [math]\dfrac{\scriptsize 2}{\scriptsize 3}[/math] de la altura H de la torre. La superficie de la torre sigue la forma de un hiperboloide hiperbólico con centro a la altura [math]\dfrac{\scriptsize 2}{\scriptsize 3}H[/math] , el cual, en coordenadas cartesianas, tiene la siguiente forma:
Para los siguientes datos, podemos suponer:
Uno de los factores a tener en cuenta, es el viento. Este, ejerce una presión lateral que varía en función de la altura. La velocidad escalar del viento la podemos describir con la siguiente función:
Con base en esta velocidad del viento, la presión ejercida por el viento sobre la superficie de la torre puede expresarse de la siguiente manera:
Además, la torre esta expuesta a unas fuerzas laterales, estas vienen descritas por la siguiente función:
Finalmente, el campo de temperaturas es representado como:
Contenido
- 1 .-Ecuación de la torre.
- 2 .-Ecuación de la torre como una superficie reglada.
- 3 .-Representación de la superficie parametrizada.
- 4 .-Representación del campo escalar de presiones.
- 5 .-Representación de la fuerza en la superficie de la mitad de la torre expuesta.
- 6 .-Representación del campo gradiente de temperatura.
- 7 .-Superficies isotermas.
1 .-Ecuación de la torre.
Para definir la torre es necesario hallar el valor de a, c y [math]z_{\text{0}}[/math]. Para ello pasamos la ecuación a coordenadas cilíndricas:A continuación, hallamos los parámetros a, c y [math]z_{\text{0}}[/math].
Según el enunciado, obtenemos la coordenada del centro: [math]z_{\text{0}}[/math]=80m.
Para hallar el valor de [math]\mathbf{a}[/math] sustituimos en la ecuación. [math]\dfrac{20^2}{a^2} - \dfrac{(80 - 80)^2}{c^2} = 1[/math], obtenemos que [math]\mathbf{a}[/math]=20.
Tras sustituir de nuevo, hallamos el valor de [math]\mathbf{c}[/math]=34.17
2 .-Ecuación de la torre como una superficie reglada.
3 .-Representación de la superficie parametrizada.
A continuación, vemos la representación de la superficie parametrizada ayudándonos de los parámetros calculados anteriormente
% Parámetros de la torre
a = 20; % Radio mínimo
z0 = 80; % Centro del hiperboloide (a 2/3 de H)
c = 34.17; % Valor de 'c'
H = 120; % Altura total
% Crear la malla para parametrizar la superficie
u = linspace(0, 2*pi, 100); % Ángulo alrededor del eje z (resolución angular)
v = linspace(0, H, 200); % Altura (resolución vertical)
[U, V] = meshgrid(u, v); % Crear mallas 2D para u y v
% Parametrización del hiperboloide
X = a * cos(U) .* sqrt(1 + ((V - z0) / c).^2);
Y = a * sin(U) .* sqrt(1 + ((V - z0) / c).^2);
Z = V;
% Representar la superficie
figure;
surf(X, Y, Z, 'EdgeColor', 'k', 'FaceColor', 'white', 'FaceAlpha', 0.9); % Color con malla
hold on;
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title('Superficie de la Torre de Enfriamiento');
axis equal; % Mantener proporciones
grid on; % Mostrar cuadrícula
view(3); % Vista en 3D4 .-Representación del campo escalar de presiones.
Suponiendo que la torre está sujeta a un viento paralelo al vector [math]\vec{i} + \vec{j}[/math] para la mitad expuesta de la torre.
% Parámetros dados
a = 20; % Parámetro a de la ecuación
z0 = 80; % Centro en z
c = 34.17; % Parámetro c de la ecuación
V0 = 15; % Velocidad inicial del viento
zref = 10; % Altura de referencia
alpha = 0.14; % Exponente de perfil de viento
rho_air = 1.225; % Densidad del aire estándar en kg/m^3
% Rango para v y ángulo u (solo la mitad expuesta)
v = linspace(0, 120, 100); % Altura de 0 a 120 m
u = linspace(0, pi, 100); % Ángulo u para la mitad expuesta
% Crear la superficie de la torre
[U, V] = meshgrid(u, v);
Rho = a * sqrt(1 + ((V - z0) / c).^2); % Ecuación de la torre
X = Rho .* cos(U);
Y = Rho .* sin(U);
% Calcular la velocidad del viento en función de v
V_z = V0 * (V / zref).^alpha;
% Calcular la presión del viento
P_z = 0.5 * rho_air .* V_z.^2;
% Visualización
figure;
surf(X, Y, V, P_z, 'EdgeColor', 'none'); % Graficar superficie con colores según presión
colormap(jet); % Mapa de colores tipo 'jet'
colorbar; % Agregar barra de colores
title('Mapa de Presión del Viento en la Mitad de la Torre Expuesta');
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
view([-120, 30]); % Vista diagonal y desde atrás
axis equal;5 .-Representación de la fuerza en la superficie de la mitad de la torre expuesta.
Debido a la presión del viento, se genera una fuerza la cual actúa sobre la mitad de la torre expuesta. Aquí se muestra su representación:
% Parámetros dados
a = 20; % Parámetro a de la ecuación
z0 = 80; % Centro en z
c = 34.17; % Parámetro c de la ecuación
V0 = 15; % Velocidad inicial del viento
zref = 10; % Altura de referencia
alpha = 0.14; % Exponente de perfil de viento
rho_air = 1.225; % Densidad del aire estándar en kg/m^3
% Rango para v y ángulo u (solo la mitad expuesta)
v = linspace(0, 120, 30); % Altura de 0 a 120 m
u = linspace(0, pi, 30); % Ángulo u para la mitad expuesta
% Crear la superficie de la torre
[U, V] = meshgrid(u, v);
Rho = a * sqrt(1 + ((V - z0) / c).^2); % Ecuación de la torre
X = Rho .* cos(U);
Y = Rho .* sin(U);
% Calcular la velocidad del viento en función de v
V_v = V0 * (V / zref).^alpha;
% Calcular la presión del viento
P_v = 0.5 * rho_air .* V_v.^2;
% Calcular los vectores normales a la superficie
% Derivadas parciales de la superficie
[URho, VRho] = gradient(Rho, u, v); % Derivadas parciales respecto a u y v
[UX, VZ] = gradient(V, u, v); % Derivadas parciales respecto a u y v
% Componentes del vector normal (gradientes cruzados)
Nx = -URho .* VZ;
Ny = -VRho .* VZ;
Nz = URho .* VRho - VRho .* UX;
% Normalizar el vector normal
N_magnitude = sqrt(Nx.^2 + Ny.^2 + Nz.^2);
Nx = Nx ./ N_magnitude;
Ny = Ny ./ N_magnitude;
Nz = Nz ./ N_magnitude;
% Calcular el campo de fuerza
Fx = -P_v .* Nx;
Fy = -P_v .* Ny;
Fz = -P_v .* Nz;
% Normalizar el campo de fuerza para uniformidad en las direcciones
F_magnitude = sqrt(Fx.^2 + Fy.^2 + Fz.^2);
Fx = Fx ./ F_magnitude;
Fy = Fy ./ F_magnitude;
Fz = Fz ./ F_magnitude;
% Visualización
figure;
quiver3(X, Y, V, Fx, Fy, Fz, 'k'); % Campo vectorial con flechas negras
title('Campo Vectorial de la Presión del Viento en la Mitad de la Torre');
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
view([-120, 45]); % Vista más elevada desde atrás
axis equal;
grid on;6 .-Representación del campo gradiente de temperatura.
Consiste en la representación del campo del gradiente de temperatura en los puntos de un plano que corta la torre
verticalmente pasando por el eje de simetría. Además, la animación muestra la temperatura en varios
planos paralelos al suelo.
% Parámetros
a = 20; % Semi-eje en x e y (m)
c = 34.17; % Semi-eje en z (m)
z0 = 80; % Centro del hiperboloide (altura)
H = 120; % Altura total de la torre (m)
Rmax = 50; % Radio máximo (m)
Tbase = 70; % Temperatura en la base (°C)
Ttop = 25; % Temperatura en la parte superior (°C)
DeltaTz = Tbase - Ttop;
DeltaTr = 5; % Variación máxima radial (°C)
n = 1.5; % Exponente de convección
% Malla para el hiperboloide
theta = linspace(0, 2*pi, 50); % Ángulo alrededor del eje z
z = linspace(0, H, 50); % Coordenada vertical
% Iniciar figura
figure;
for i = 1:length(z)
% Altura de la capa actual
zi = z(i);
% Radio en esta altura
r = sqrt((1 + (zi - z0)^2 / c^2) * a^2);
% Coordenadas de la capa
x = r * cos(theta);
y = r * sin(theta);
z_layer = zi * ones(size(x));
% Temperatura en esta capa
T_layer = Tbase - DeltaTz * (zi / H)^n - DeltaTr * (1 - exp(-r^2 / (Rmax^2 - r^2)));
% Dibujar la capa
fill3(x, y, z_layer, T_layer, 'EdgeColor', 'none'); % Colores según la temperatura
hold on;
% Configuración gráfica
colormap('jet');
colorbar;
caxis([Ttop, Tbase]); % Escala de colores
xlabel('x (m)');
ylabel('y (m)');
zlabel('z (m)');
title('Construcción del hiperboloide con el campo de temperatura');
xlim([-Rmax, Rmax]);
ylim([-Rmax, Rmax]);
zlim([0, H]);
view(3);
pause(0.1);
end
hold off;La siguiente figura muestra la representación el campo del gradiente de temperatura en los puntos de un plano que corta la torre verticalmente pasando por el eje de simetría, así como en los puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo.
% Parámetros
a = 20; % Semi-eje en x e y (m)
c = 34.17; % Semi-eje en z (m)
z0 = 80; % Centro del hiperboloide (altura)
H = 120; % Altura total de la torre (m)
Rmax = 50; % Radio máximo (m)
Rmin = 10; % Radio interno mínimo (m)
Tbase = 70; % Temperatura en la base (°C)
Ttop = 25; % Temperatura en la parte superior (°C)
DeltaTz = Tbase - Ttop;
DeltaTr = 5; % Variación máxima radial (°C)
n = 1.5; % Exponente de convección
% Malla para el hiperboloide
theta = linspace(0, 2*pi, 50); % Ángulo alrededor del eje z
z = linspace(0, H, 50); % Coordenada vertical
% Iniciar figura
figure;
for i = 1:length(z)
% Altura de la capa actual
zi = z(i);
% Radios en esta altura
r_ext = sqrt((1 + (zi - z0)^2 / c^2) * a^2); % Radio externo
r_int = max(Rmin, r_ext - 5); % Radio interno (manteniendo hueco mínimo)
% Coordenadas de la superficie externa
x_ext = r_ext * cos(theta);
y_ext = r_ext * sin(theta);
z_ext = zi * ones(size(x_ext));
% Coordenadas de la superficie interna
x_int = r_int * cos(theta);
y_int = r_int * sin(theta);
z_int = zi * ones(size(x_int));
% Temperatura en esta capa
T_layer = Tbase - DeltaTz * (zi / H)^n - DeltaTr * (1 - exp(-r_ext^2 / (Rmax^2 - r_ext^2)));
% Representar la capa externa
fill3(x_ext, y_ext, z_ext, T_layer, 'EdgeColor', 'none'); % Superficie externa
hold on;
% Representar la capa interna
fill3(x_int, y_int, z_int, T_layer, 'EdgeColor', 'none'); % Superficie interna
% Conexión entre superficies (laterales)
for j = 1:length(theta) - 1
patch([x_ext(j) x_ext(j+1) x_int(j+1) x_int(j)], ...
[y_ext(j) y_ext(j+1) y_int(j+1) y_int(j)], ...
[z_ext(j) z_ext(j+1) z_int(j+1) z_int(j)], ...
T_layer, 'EdgeColor', 'none');
end
% Configuración gráfica
colormap('jet');
colorbar;
caxis([Ttop, Tbase]); % Escala de colores
xlabel('x (m)');
ylabel('y (m)');
zlabel('z (m)');
title('Construcción el hiperboloide hueco con el campo de temperatura');
xlim([-Rmax, Rmax]);
ylim([-Rmax, Rmax]);
zlim([0, H]);
view(3);
pause(0.1);
end
hold off;7 .-Superficies isotermas.
Una superficie isoterma, es aquella que tiene una temperatura constante en todos los puntos de la misma. Para visualizarlo, hemos tomado varias temperaturas para ver dichas superficies. Estas, vendrán acompañadas de su gradiente.
% Parámetros de la torre
a = 20; % Semi-eje en x e y (m)
c = 34.17; % Semi-eje en z (m)
z0 = 80; % Centro del hiperboloide (altura)
H = 120; % Altura total de la torre (m)
Rmax = 50; % Radio máximo (m)
Tbase = 70; % Temperatura en la base (°C)
Ttop = 25; % Temperatura en la parte superior (°C)
DeltaTz = Tbase - Ttop;
DeltaTr = 5; % Variación máxima radial (°C)
n = 1.5; % Exponente de convección
% Rango de temperaturas para las superficies isotérmicas
T_isos = linspace(Ttop, Tbase, 6); % 6 niveles isotérmicos
% Crear malla 3D para el hiperboloide
theta = linspace(0, 2*pi, 50); % Ángulo
z = linspace(0, H, 50); % Altura
[Theta, Z] = meshgrid(theta, z);
% Coordenadas de la superficie hiperboloide
R = sqrt((1 + ((Z - z0).^2) / c^2) * a^2); % Radio en cada altura
X = R .* cos(Theta);
Y = R .* sin(Theta);
% Calcular campo de temperatura
T = Tbase - DeltaTz * (Z / H).^n - DeltaTr * (1 - exp(-R.^2 ./ (Rmax^2 - R.^2)));
% Calcular gradientes de temperatura
[Tx, Tz] = gradient(T, mean(diff(X(1,:))), mean(diff(Z(:,1))));
Ty = Tx; % Simetría en Theta
% Iniciar figura
figure;
% Crear animación de superficies isotérmicas
for i = 1:length(T_isos)
% Seleccionar superficie isotérmica actual
T_iso = T_isos(i);
% Crear máscara lógica para identificar la superficie
iso_mask = abs(T - T_iso) < 0.5; % Tolerancia de ±0.5°C
% Filtrar puntos isotérmicos
X_iso = X(iso_mask);
Y_iso = Y(iso_mask);
Z_iso = Z(iso_mask);
T_iso_colors = T(iso_mask);
% Graficar puntos de la superficie isotérmica
scatter3(X_iso, Y_iso, Z_iso, 20, T_iso_colors, 'filled');
hold on;
% Superponer gradiente de temperatura
quiver3(X_iso, Y_iso, Z_iso, Tx(iso_mask), Ty(iso_mask), Tz(iso_mask), ...
'k', 'AutoScaleFactor', 0.5);
% Configuración gráfica
colormap('jet');
colorbar;
caxis([Ttop, Tbase]); % Escala de colores de temperatura
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title(['Superficie isotérmica: T = ', num2str(T_iso), '°C']);
xlim([-Rmax, Rmax]);
ylim([-Rmax, Rmax]);
zlim([0, H]);
view(3);
grid on;
% Pausa para animación
pause(1);
% Limpiar para el siguiente cuadro
hold off;
end