Diferencia entre revisiones de «Torres de enfriamiento hiperbólicas (grupo 33)»
(→Animación que representa las superficies isotérmicas para varios valores de temperatura) |
(→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 y los puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo) |
||
| (No se muestran 23 ediciones intermedias del mismo usuario) | |||
| Línea 127: | Línea 127: | ||
Una superficie rigada es una superficie generada al mover una recta a lo largo de una trayectoria. | Una superficie rigada es una superficie generada al mover una recta a lo largo de una trayectoria. | ||
El hiperboloide de una hoja es una superficie reglada, y su representación puede expresarse como: | El hiperboloide de una hoja es una superficie reglada, y su representación puede expresarse como: | ||
| + | |||
| + | [[Archivo:Apartado3torrehip.jpg|100px|derecha]] | ||
<math>r(u,v)=r_0(u)+v \cdot d(u)</math> | <math>r(u,v)=r_0(u)+v \cdot d(u)</math> | ||
| Línea 147: | Línea 149: | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
| + | % Parámetros de la torre | ||
| + | radio_max_base = 50; % Radio máximo de la base | ||
| + | radio_min_torre = 20; % Radio mínimo de la torre | ||
| + | centro_hiperboloide = 80; % Centro del hiperboloide | ||
| + | parametro_c = sqrt(((6400 * radio_min_torre^2) / (radio_max_base^2 - radio_min_torre^2))); % Parámetro c | ||
| + | altura_torre = 120; % Altura total de la torre | ||
| + | densidad_aire = 1.225; % Densidad del aire (kg/m^3) | ||
| + | vel_viento_ref = 15; % Velocidad del viento a altura de referencia (m/s) | ||
| + | altura_ref_viento = 10; % Altura de referencia para el viento (m) | ||
| + | exponente_viento = 0.14; % Exponente del perfil del viento | ||
% Crear la malla para parametrizar la superficie | % Crear la malla para parametrizar la superficie | ||
angulo = linspace(0, 2*pi, 100); % Ángulo alrededor del eje z | angulo = linspace(0, 2*pi, 100); % Ángulo alrededor del eje z | ||
| Línea 187: | Línea 199: | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
% Parámetros de la torre | % Parámetros de la torre | ||
radio_max_base = 50; % Radio máximo | radio_max_base = 50; % Radio máximo | ||
| Línea 246: | Línea 248: | ||
view(3); % Vista en 3D | view(3); % Vista en 3D | ||
hold off; | hold off; | ||
| − | |||
</syntaxhighlight> | </syntaxhighlight> | ||
| Línea 259: | Línea 260: | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
| + | % Parámetros | ||
| + | radio_max_base = 50; % Radio máximo (m) | ||
| + | radio_min_torre = 20; % Radio mínimo | ||
| + | centro_hiperboloide = 80; % Centro del hiperboloide | ||
| + | parametro_c = sqrt(((6400 * radio_min_torre^2) / (radio_max_base^2 - radio_min_torre^2))); % Parámetro c | ||
| + | altura_torre = 120; % Altura total | ||
| + | temp_base = 70; % Temperatura en la base (°C) | ||
| + | temp_tope = 25; % Temperatura en la parte superior (°C) | ||
| + | delta_temp_vertical = temp_base - temp_tope; % Diferencia de temperatura vertical | ||
| + | delta_temp_radial = 5; % Variación máxima radial (°C) | ||
| + | exponente_conveccion = 1.5; % Exponente de convección | ||
| + | % Malla para el hiperboloide | ||
| + | angulo_theta = linspace(0, 2*pi, 100); % Ángulo alrededor del eje z | ||
| + | altura_malla = linspace(0, altura_torre, 50); % Coordenada vertical | ||
| + | alturas_lineas = 0:20:altura_torre; % Alturas de las líneas discontinuas | ||
% Iniciar figura | % Iniciar figura | ||
figure; | figure; | ||
| Línea 304: | Línea 320: | ||
Por otro lado, el plano vertical en matlab es: | Por otro lado, el plano vertical en matlab es: | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
| − | + | %% 2. Campo de temperatura en el plano vertical | |
| − | % | + | % Parámetros |
| − | + | radio_max_base = 50; % Radio máximo (m) | |
| − | + | radio_min_torre = 20; % Radio mínimo | |
| − | [ | + | centro_hiperboloide = 80; % Centro del hiperboloide |
| − | % | + | parametro_c = sqrt(((6400 * radio_min_torre^2) / (radio_max_base^2 - radio_min_torre^2))); % Parámetro c |
| − | + | altura_torre = 120; % Altura total | |
| − | + | temp_base = 70; % Temperatura en la base (°C) | |
| − | % | + | temp_tope = 25; % Temperatura en la parte superior (°C) |
| − | + | delta_temp_vertical = temp_base - temp_tope; % Diferencia de temperatura vertical | |
| − | + | delta_temp_radial = 5; % Variación máxima radial (°C) | |
| + | exponente_conveccion = 1.5; % Exponente de convección | ||
| + | figure('Name', 'Plano Vertical del Campo de Temperatura'); | ||
| + | z = linspace(0, altura_torre, 300); % Coordenada vertical | ||
| + | x = linspace(-radio_max_base - 10, radio_max_base + 10, 300); % Coordenada horizontal | ||
| + | [X, Z] = meshgrid(x, z); % Crear malla | ||
| + | R = sqrt((1 + ((Z - centro_hiperboloide) / parametro_c).^2) * radio_min_torre^2); % Radio según el hiperboloide | ||
| + | r = abs(X); % Distancia radial | ||
| + | T = temp_base - delta_temp_vertical * (Z / altura_torre).^exponente_conveccion - delta_temp_radial * (1 - exp(-r.^2 ./ (radio_max_base^2 - r.^2))); % Campo de temperatura | ||
| + | mask = abs(X) <= R; % Máscara para limitar al hiperboloide | ||
| + | T(~mask) = NaN; % Fuera de la silueta, no mostrar | ||
| + | % Dibujar el campo de temperatura | ||
| + | contourf(X, Z, T, 50, 'LineColor', 'none'); | ||
colormap('jet'); | colormap('jet'); | ||
colorbar; | colorbar; | ||
| − | caxis([ | + | caxis([temp_tope, temp_base]); % Escala de colores |
| + | hold on; | ||
| + | % Dibujar la silueta de la torre | ||
| + | x_sil_left = -R; % Lado izquierdo de la silueta | ||
| + | x_sil_right = R; % Lado derecho de la silueta | ||
| + | z_sil = z; % Coordenadas verticales | ||
| + | plot(x_sil_left, z_sil, 'k-', 'LineWidth', 2); % Silueta izquierda | ||
| + | plot(x_sil_right, z_sil, 'k-', 'LineWidth', 2); % Silueta derecha | ||
| + | % Configuración gráfica | ||
xlabel('x (m)'); | xlabel('x (m)'); | ||
| − | ylabel | + | ylabel('z (m)'); |
| − | + | title('Campo de temperatura (°C) dentro de la silueta de la torre'); | |
| − | title(' | + | xlim([-radio_max_base - 10, radio_max_base + 10]); |
| − | xlim([- | + | ylim([0, altura_torre]); |
| − | ylim([ | + | grid on; |
| − | + | view(2); % Vista 2D | |
| − | view( | + | |
hold off; | hold off; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | [[Archivo:Apartado6gif.gif|450px|centroizquierda]][[Archivo:Apartado6.2torrehip.jpg|450px|centroderecha]] | |
En esta animación se puede observar,la evolución del gradiente de la temperatura a lo largo de la z, viendo como esta disminuye a medida que se acerca a la parte superior de la torre. En el eje vertical (Z) se representa la altura (en metros), mientras que los ejes X y Y muestran las dimensiones horizontales (también en metros). | En esta animación se puede observar,la evolución del gradiente de la temperatura a lo largo de la z, viendo como esta disminuye a medida que se acerca a la parte superior de la torre. En el eje vertical (Z) se representa la altura (en metros), mientras que los ejes X y Y muestran las dimensiones horizontales (también en metros). | ||
== 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 y los puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo == | == 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 y los puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo == | ||
| − | + | Este apartado consiste en representar el campo del gradiente de temperatura en dos planos diferentes de una torre: un plano vertical que corta la torre pasando por su eje de simetría y un plano horizontal en el radio mínimo de la estructura. La tarea es visualizar cómo varía la temperatura en estos puntos y cómo se representa el gradiente en cada caso. | |
| − | |||
El codigo en matlab es: | El codigo en matlab es: | ||
<syntaxhighlight lang="matlab"> | <syntaxhighlight lang="matlab"> | ||
| − | % Parámetros | + | % Parámetros de la torre |
| − | + | z0 = 80; % Altura del centro de la torre (m) | |
| − | + | Rmin = 20; % Radio mínimo (m) | |
| − | + | Rmax = 50; % Radio máximo (m) | |
| − | + | H = 120; % Altura total (m) | |
| − | + | z_horizontal = (2/3) * H; % Altura del plano horizontal | |
| − | + | c = sqrt(((6400 * Rmin^2) / (Rmax^2 - Rmin^2))); % Parámetro c | |
| − | + | ||
| − | + | ||
| − | + | % Parámetros térmicos | |
| − | + | Tbase = 70; % Temperatura en la base (°C) | |
| − | % | + | DeltaTz = Tbase - 25; % Variación de temperatura con la altura |
| − | + | DeltaTr = 5; % Variación de temperatura radial | |
| − | + | n = 1.5; % Exponente para el perfil vertical | |
| − | % | + | |
| − | + | ||
| − | % | + | % Parámetros para la malla dentro del cuadrado [-60, 60] en X y Y |
| − | + | res_x = 50; % Resolución ajustada para X | |
| − | + | res_y = 50; % Resolución ajustada para Y | |
| − | + | x = linspace(-60, 60, res_x); % Rango de X de -60 a 60 | |
| − | + | y = linspace(-60, 60, res_y); % Rango de Y de -60 a 60 | |
| − | + | [X, Y] = meshgrid(x, y); | |
| − | + | ||
| − | + | ||
| − | + | % Filtrar puntos dentro del círculo de radio Rmin | |
| − | + | mask = X.^2 + Y.^2 <= Rmin^2; % Solo puntos dentro del radio mínimo (20 m) | |
| − | + | X = X(mask); | |
| − | + | Y = Y(mask); | |
| − | + | ||
| − | + | ||
| − | + | % Flechas perpendiculares apuntando hacia abajo | |
| − | + | Tx_grad = zeros(size(X)); % No hay componente en X | |
| − | + | Ty_grad = zeros(size(Y)); % No hay componente en Y | |
| − | + | Tz_grad = -0.8 * ones(size(X)); % Flechas hacia abajo, magnitud ajustada | |
| − | + | ||
| − | + | ||
| − | + | % Representación gráfica para el plano horizontal | |
| − | + | figure; | |
| − | + | hold on; | |
| − | + | ||
| − | + | ||
| − | + | % Flechas del gradiente | |
| − | + | quiver3(X, Y, z_horizontal * ones(size(X)), Tx_grad, Ty_grad, Tz_grad, 0.5, ... | |
| − | + | 'Color', [0.3 0.5 1], 'LineWidth', 1, 'MaxHeadSize', 2); | |
| − | + | ||
| − | + | ||
| − | + | % Contorno del círculo de radio Rmin | |
| − | + | theta_circle = linspace(0, 2*pi, 100); | |
| − | + | x_circle = Rmin * cos(theta_circle); | |
| − | + | y_circle = Rmin * sin(theta_circle); | |
| − | + | z_circle = z_horizontal * ones(size(theta_circle)); | |
| − | + | plot3(x_circle, y_circle, z_circle, 'm--', 'LineWidth', 2); | |
| − | + | ||
| − | + | ||
| − | + | % Configuración de la gráfica | |
| − | + | title('Gradiente de temperatura en el plano z = 2/3 H (Radio = 20 m)'); | |
| − | + | xlabel('X (m)'); | |
| + | ylabel('Y (m)'); | ||
| + | zlabel('Altura Z (m)'); | ||
| + | axis([-60 60 -60 60 z_horizontal-20 z_horizontal+20]); % Ajuste de límites | ||
| + | axis equal; | ||
| + | grid on; | ||
| + | view(75, 30); % Vista 3D inclinada | ||
| + | hold off; | ||
| + | |||
| + | |||
| + | % Crear malla para el plano vertical | ||
| + | z = linspace(0, H, 50); % Coordenada vertical | ||
| + | x = linspace(-Rmax - 10, Rmax + 10, 50); % Coordenada horizontal extendida | ||
| + | [X, Z] = meshgrid(x, z); % Crear la malla | ||
| + | |||
| + | |||
| + | % Cálculo del radio según el hiperboloide | ||
| + | R = sqrt((1 + ((Z - z0) / c).^2) * Rmin^2); % Radio según el hiperboloide | ||
| + | r = abs(X); % Distancia radial en el plano (x, 0, z) | ||
| + | |||
| + | |||
| + | % Campo de temperatura (con corrección para evitar divisiones por cero) | ||
| + | epsilon = 1e-6; % Para evitar divisiones por cero | ||
| + | T = Tbase - DeltaTz * (Z / H).^n - DeltaTr * (1 - exp(-r.^2 ./ (Rmax^2 - r.^2 + epsilon))); | ||
| + | |||
| + | |||
| + | % Máscara para limitar al hiperboloide | ||
| + | mask = abs(X) <= R; % Máscara para la silueta | ||
| + | T(~mask) = NaN; % Fuera de la torre, no se muestra | ||
| + | |||
| + | |||
| + | % Gradientes en el plano vertical | ||
| + | [Tx, Tz] = gradient(T, x(2) - x(1), z(2) - z(1)); % Derivadas en x y z | ||
| + | |||
| + | |||
| + | % Figura 2: Gradiente de temperatura en el plano vertical desde arriba (2D) | ||
| + | figure('Name', 'Gradiente de Temperatura en el Plano Vertical'); % Nueva ventana | ||
| + | % Silueta de la torre | ||
| + | x_sil_left = -sqrt((1 + ((z - z0) / c).^2) * Rmin^2); % Lado izquierdo | ||
| + | x_sil_right = sqrt((1 + ((z - z0) / c).^2) * Rmin^2); % Lado derecho | ||
| + | z_sil = z; % Coordenadas verticales | ||
| + | plot(x_sil_left, z_sil, 'k-', 'LineWidth', 2); % Lado izquierdo | ||
| + | hold on; | ||
| + | plot(x_sil_right, z_sil, 'k-', 'LineWidth', 2); % Lado derecho | ||
| + | |||
| + | % Representar el campo de temperatura y las flechas dentro de la torre en 2D | ||
| + | quiver(X(mask), Z(mask), Tx(mask), Tz(mask), 'b', 'LineWidth', 1, 'MaxHeadSize', 3); % Flechas azules | ||
| + | |||
| + | % Configuración de la gráfica 2D | ||
| + | xlabel('x (m)'); | ||
| + | ylabel('z (m)'); | ||
| + | title('Gradiente de Temperatura en el Plano Vertical (Vista 2D)'); | ||
| + | xlim([-Rmax - 10, Rmax + 10]); | ||
| + | ylim([0, H]); | ||
| + | grid on; | ||
| + | axis equal; | ||
| + | view(2); % Vista en 2D | ||
| + | hold off; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | === 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 === | |
| − | + | [[Archivo:Apartado7.1.jpg|450px|centro]] | |
| + | |||
| + | La imagen muestra un gráfico 2D con el gradiente de temperatura representado por flechas azules distribuidas en un plano vertical (coordenadas x y z). Las flechas están más densamente distribuidas cerca del eje central y apuntan hacia afuera, indicando que el gradiente de temperatura es mayor en el eje de simetría. Los bordes negros delimitan una forma simétrica similar a un reloj de arena, representando los límites físicos del sistema. | ||
=== Puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo === | === Puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo === | ||
| − | + | ||
| + | [[Archivo:Apartado7.2.jpg|450px|centro]] | ||
| + | |||
| + | La imagen muestra un gráfico 3D del gradiente de temperatura en un plano horizontal a la altura z=2/3H (radio mínimo de 20 m). Las flechas azules representan el campo del gradiente, apuntando radialmente hacia afuera desde el centro de la figura ovalada, indicando un aumento de temperatura hacia los bordes. El contorno magenta delimita la región donde se estudia el gradiente. | ||
| + | |||
== Animación que representa las superficies isotérmicas para varios valores de temperatura == | == Animación que representa las superficies isotérmicas para varios valores de temperatura == | ||
Una superficie isoterma es aquella en la que todos sus puntos mantienen una misma temperatura. Para representarla, se han seleccionado varias temperaturas y se han visualizado estas superficies junto con sus gradientes correspondientes. Esto permitirá visualizar cómo cambian las superficies y el gradiente asociado de manera dinámica. | Una superficie isoterma es aquella en la que todos sus puntos mantienen una misma temperatura. Para representarla, se han seleccionado varias temperaturas y se han visualizado estas superficies junto con sus gradientes correspondientes. Esto permitirá visualizar cómo cambian las superficies y el gradiente asociado de manera dinámica. | ||
| Línea 438: | Línea 535: | ||
figure; | figure; | ||
for nivel = 1:length(nivelesTemp) | for nivel = 1:length(nivelesTemp) | ||
| − | |||
| − | |||
tempNivel = nivelesTemp(nivel); | tempNivel = nivelesTemp(nivel); | ||
mascaraIso = abs(campoTemp - tempNivel) < 0.5; % Margen ±0.5 °C | mascaraIso = abs(campoTemp - tempNivel) < 0.5; % Margen ±0.5 °C | ||
Revisión actual del 23:43 9 dic 2024
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Torres de enfriamiento Hiperbólicas. Grupo 33 |
| Asignatura | Teoría de Campos |
| Curso | 2024-25 |
| Autores | Marcos Sanchez Martínez Guillermo Garrido Torres Carlos Aguado Esparrells Hector Perucho Conde |
| 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 fundamentales en la industria energética, ampliamente utilizadas desde mediados del siglo XX debido a su alta eficiencia en la transferencia de calor. Estas torres, con su distintiva forma hiperbólica, combinan propiedades geométricas y mecánicas que las hacen tanto resistentes como funcionales para optimizar los procesos de enfriamiento en plantas termoeléctricas y nucleares.
En este trabajo, se analiza el diseño y comportamiento de una torre de enfriamiento hiperbólica típica, considerando su geometría, las fuerzas inducidas por el viento en su superficie, y el campo de temperatura dentro de la estructura.
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 2/3 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 2/3H, el cual, en coordenadas cartesianas, tiene la siguiente forma:
Se pueden suponer los siguientes parámetros:
Por otro lado, el viento ejerce una presión lateral que varía a lo largo de la superficie de la torre. Considerando que la velocidad escalar del viento aumenta con la altura, podemos representarla con la función:
Donde:
- [math]V_0[/math] es la velocidad de referencia del viento a una altura [math]z_0[/math]. Para una simulación de viento, podemos fijar [math]V_0 = 15 m/s[/math] como valor de referencia.
- α es un exponente que depende del terreno; para ´areas abiertas suele ser alrededor de 0.14.
Utilizando esta velocidad del viento, la presión del viento sobre la superficie de la torre se puede modelar como:
donde ρ es la densidad del aire estándar.
Para determinar la distribución de las fuerzas laterales, calculamos el campo vectorial de las fuerzas inducidas por el viento en la superficie de la torre:
donde [math]\vec{n}[/math] es el vector normal a la superficie.
Por ultimo, Suponemos que dentro de la torre de enfriamiento se da un campo de temperatura representado mediante la ecuación:
Contenido
- 1 Encontrar los valores de a, c, [math]z_0[/math] para la ecuación de la torre
- 2 Representación de la superficie parametrizada
- 3 Ecuación de la torre como una superficie rigada
- 4 Representación del campo escalar de presión como un mapa de colores sobre la superficie parametrizada de la torre
- 5 Representación del campo vectorial de la fuerza generada por la presión del viento en la superficie de la mitad de la torre expuesta.
- 6 Representación el campo de temperatura utilizando un mapa de colores en un plano vertical que corta la torre pasando por el eje de simetría.
- 7 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 y los puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo
- 8 Animación que representa las superficies isotérmicas para varios valores de temperatura
- 9 Qué forma tendría ahora la torre de enfriamiento si suponemos que Rmax=Rmin=50m
- 10 Uso de estructuras hiperboloides en ingeniería
1 Encontrar los valores de a, c, [math]z_0[/math] para la ecuación de la torre
Con la ecuación: [math]\dfrac{x^2+y^2}{a^2} - \dfrac{(z - z_0)^2}{c^2} = 1[/math] en cartesianas, lo primero es pasar la fórmula del hiperboloide a cilíndricas que es [math]\dfrac{\rho^2}{a^2} - \dfrac{(z - z_0)^2}{c^2} = 1[/math]. Ya que en cilíndricas [math] \rho^2=x^2+y^2 [/math]
Ahora se tiene en cuenta los parámetros:
La altura (H) es 120 metros
En z=0 (la base) el radio máximo es 50 metros
En [math]z=\dfrac{2}{3} \cdot H=80[/math] el radio mínimo es 20 metros
Lo primero es saber que el hiperboloide está centrado a una altura [math]z_0[/math](dado por el enunciado), la cual se toma como el centro de simetría. Por la simetría del problema, sabemos que la curva alcanza su mínimo radio en [math]z=z_0[/math]. Esto implica que:
[math]z_0=\dfrac{2}{3} \cdot H=80m[/math]
Así que la ecuación(1) situada en el centro de simetría con los parámetros:
[math]\dfrac{20^2}{a^2} - \dfrac{(80-80)^2}{c^2} = 1 → \qquad \dfrac{20^2}{a^2}=1 → \qquad a=20 [/math]
Por otro lado tenemos la ecuación(2) situada en la base con parámetros:
[math]\dfrac{50^2}{a^2} - \dfrac{(0-80)^2}{c^2} = 1[/math]
Por último se sustituye el valor de a en (2) y se consigue el valor de c
[math]c≈34,91[/math]
Así que la ecuación de la torre en cilíndricas con los valores ya sustituidos de a,c y [math]z_0[/math] es:
[math]\dfrac{\rho^2}{20^2} - \dfrac{(z-80)^2}{34,91^2} = 1 → \qquad \dfrac{\rho^2}{400} - \dfrac{(z-80)^2}{1219} = 1[/math]
2 Representación de la superficie parametrizada
Lo primero, es parametrizar la superficie conseguida en la tarea 1 qué es: [math]\dfrac{\rho^2}{20^2} - \dfrac{(z-80)^2}{34,91^2} = 1 → \qquad \dfrac{\rho^2}{400} - \dfrac{(z-80)^2}{1219} = 1[/math]
La parametrización que le damos nosotros para la representación es:
r(u,v)=(p(v)[math]\cdot[/math]cos(u) , p(v)[math]\cdot[/math]sen(u) , v)
Donde [math]p(v)=\sqrt{400 \cdot (1+ \dfrac{(v-80)^2}{1219})}[/math]
Y u pertenece a [0,2pi] y v pertenece a [0,120]
Por lo que es la representación en matlab es:
% Parámetros de la torre
Rm=50% Parámetro a (radio max)
a = 20; % Parámetro a (radio mínimo)
z0 = 80; % Centro del hiperboloide
H = 120; % Altura total de la torre
c = sqrt(((6400*a^2)/(Rm^2-a^2))); % Parámetro c
% Dominio de los parámetros
theta = linspace(0, 2*pi, 100); % Ángulo theta [0, 2pi]
z = linspace(0, H, 100); % Altura z [0, H]
% Crear mallas para theta y z
[Theta, Z] = meshgrid(theta, z);
% Radio \rho en función de z
Rho = sqrt(a^2 * (1 + ((Z - z0).^2) / c^2));
% Coordenadas cartesianas
X = Rho .* cos(Theta); % Coordenada x
Y = Rho .* sin(Theta); % Coordenada y
% Graficar la superficie
figure;
surf(X, Y, Z, 'EdgeColor', 'none'); % Representar superficie sin bordes
colormap([0.5, 0.5, 0.5]); % Color único (gris)
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title('Superficie de la Torre de Enfriamiento');
axis equal; % Ejes proporcionales
view(3); % Vista 3DEn esta representación se puede observar la torre de enfriamiento hiperbólica cuya altura es 120 metros, cuyo Radio máximo es alcanzado en la base(z=0) como se puede observar y cuyo radio mínimo es alcanzado a 2/3H (z=80)
3 Ecuación de la torre como una superficie rigada
Una superficie rigada es una superficie generada al mover una recta a lo largo de una trayectoria. El hiperboloide de una hoja es una superficie reglada, y su representación puede expresarse como:
[math]r(u,v)=r_0(u)+v \cdot d(u)[/math]
donde [math]r_0(u)[/math] es una curva generadora, en cambio d(u) es una dirección de la recta generadora.
Para el hiperboloide:
1. Podemos parametrizar una curva generadora en [math]z_0[/math]=cte como: [math]r_0(u)= (a \cdot cos(u) , a \cdot sen(u) , z_0)[/math]
2. Una dirección de la recta generadora es: [math]d(u)= (sinh(v) \cdot cos(u) , sinh(v) \cdot sin(u) , cosh(v))[/math]
Por lo que la parametrización rigada es: [math]r(u,v)= (a \cdot cos(u)+v \cdot sinh(v) \cdot cos(u) , a \cdot sen(u)+v \cdot sinh(v) \cdot sin(u) , z_o+v \cdot cosh(v))[/math]
4 Representación del campo escalar de presión como un mapa de colores sobre la superficie parametrizada de la torre
Esta pregunta se centra en representar gráficamente el campo escalar de presión inducido por el viento en la superficie de la torre. Esto permite comprender cómo varía la presión a lo largo de la estructura en función de la altura, un factor crucial en el diseño y la estabilidad estructural.
% Parámetros de la torre
radio_max_base = 50; % Radio máximo de la base
radio_min_torre = 20; % Radio mínimo de la torre
centro_hiperboloide = 80; % Centro del hiperboloide
parametro_c = sqrt(((6400 * radio_min_torre^2) / (radio_max_base^2 - radio_min_torre^2))); % Parámetro c
altura_torre = 120; % Altura total de la torre
densidad_aire = 1.225; % Densidad del aire (kg/m^3)
vel_viento_ref = 15; % Velocidad del viento a altura de referencia (m/s)
altura_ref_viento = 10; % Altura de referencia para el viento (m)
exponente_viento = 0.14; % Exponente del perfil del viento
% Crear la malla para parametrizar la superficie
angulo = linspace(0, 2*pi, 100); % Ángulo alrededor del eje z
altura = linspace(0, altura_torre, 200); % Altura
[angulo_malla, altura_malla] = meshgrid(angulo, altura); % Crear mallas 2D para ángulo y altura
% Parametrización del hiperboloide
coord_x = radio_min_torre * cos(angulo_malla) .* sqrt(1 + ((altura_malla - centro_hiperboloide) / parametro_c).^2);
coord_y = radio_min_torre * sin(angulo_malla) .* sqrt(1 + ((altura_malla - centro_hiperboloide) / parametro_c).^2);
coord_z = altura_malla;
% Perfil del viento
vel_viento = vel_viento_ref * (altura_malla / altura_ref_viento).^exponente_viento;
% Presión del viento
presion_viento = 0.5 * densidad_aire * vel_viento.^2;
% Máscara para dividir la torre: seleccionar puntos donde coord_x + coord_y < 0
mascara_division = (coord_x + coord_y < 0);
coord_x(~mascara_division) = NaN; % Asignar NaN para ocultar la otra mitad
coord_y(~mascara_division) = NaN;
coord_z(~mascara_division) = NaN;
presion_viento(~mascara_division) = NaN;
% Representar la torre y el campo de presión
figure;
surf(coord_x, coord_y, coord_z, presion_viento, 'EdgeColor', 'none'); % Campo de presión
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title('Presión del viento en la mitad expuesta de la torre');
axis equal;
grid on;
view(3);
colormap(jet); % Representación del campo de presiones
colorbar; % Leyenda de coloresEl gráfico muestra un modelo tridimensional de la distribución de presión del viento en la mitad expuesta de una torre de enfriamiento hiperboloidal. La escala de colores indica los valores de presión, desde el azul (baja presión) hasta el rojo y el negro (alta presión). En el eje vertical (Z) se representa la altura (en metros), mientras que los ejes X y Y muestran las dimensiones horizontales (también en metros). La forma hiperboloidal característica de la torre se refleja en la distribución de presión, siendo más alta en la base y disminuyendo hacia la parte superior.
5 Representación del campo vectorial de la fuerza generada por la presión del viento en la superficie de la mitad de la torre expuesta.
En la quinta pregunta, se busca visualizar el campo vectorial de las fuerzas generadas por la presión del viento sobre la superficie de la torre. Este análisis es esencial para estudiar las cargas mecánicas que la estructura debe soportar bajo condiciones de viento.
% Parámetros de la torre
radio_max_base = 50; % Radio máximo
radio_min_torre = 20; % Radio mínimo
centro_hiperboloide = 80; % Centro del hiperboloide
parametro_c = sqrt(((6400 * radio_min_torre^2) / (radio_max_base^2 - radio_min_torre^2))); % Parámetro c
altura_torre = 120; % Altura total
densidad_aire = 1.225; % Densidad del aire (kg/m^3)
vel_viento_ref = 15; % Velocidad del viento a altura de referencia (m/s)
altura_ref_viento = 10; % Altura de referencia para el viento (m)
exponente_viento = 0.14; % Exponente del perfil del viento
% Crear la malla para parametrizar la superficie
angulo = linspace(0, 2*pi, 100); % Ángulo alrededor del eje z
altura = linspace(0, altura_torre, 200); % Altura
[angulo_malla, altura_malla] = meshgrid(angulo, altura); % Mallas 2D para ángulo y altura
% Parametrización del hiperboloide
coord_x = radio_min_torre * cos(angulo_malla) .* sqrt(1 + ((altura_malla - centro_hiperboloide) / parametro_c).^2);
coord_y = radio_min_torre * sin(angulo_malla) .* sqrt(1 + ((altura_malla - centro_hiperboloide) / parametro_c).^2);
coord_z = altura_malla;
% Crear una máscara para cortar la torre según el eje -i-j (X + Y <= 0)
mascara_corte = (coord_x + coord_y) <= 0;
coord_x_corte = coord_x .* mascara_corte;
coord_y_corte = coord_y .* mascara_corte;
coord_z_corte = coord_z .* mascara_corte;
% Crear flechas apuntando al centro (eje Z)
fuerza_x_centro = -coord_x_corte; % Componente en X hacia el centro
fuerza_y_centro = -coord_y_corte; % Componente en Y hacia el centro
fuerza_z_centro = 0 * coord_z_corte; % Sin componente en Z (paralelas al eje Z)
% Escalar las flechas según la presión del viento
factor_escala = coord_z_corte / max(coord_z_corte(:));
factor_escala(isnan(factor_escala)) = 0; % Manejar valores NaN en la base
fuerza_x_centro = fuerza_x_centro .* factor_escala;
fuerza_y_centro = fuerza_y_centro .* factor_escala;
% Filtrar las flechas para evitar puntos nulos
puntos_validos = mascara_corte & (coord_x_corte ~= 0 | coord_y_corte ~= 0);
% --------- Gráfico de las flechas ---------
figure;
hold on;
% Dibujar las flechas
quiver3(coord_x_corte(puntos_validos), coord_y_corte(puntos_validos), coord_z_corte(puntos_validos), ...
fuerza_x_centro(puntos_validos), fuerza_y_centro(puntos_validos), fuerza_z_centro(puntos_validos), ...
2, 'Color', [0.5 0.7 1]); % Azul claro (RGB: 50% rojo, 70% verde, 100% azul)
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
title('Campo vectorial de la presión del viento sobre la parte expuesta de la torre');
axis equal; % Mantener proporciones
grid on;
view(3); % Vista en 3D
hold off;El gráfico presenta un campo vectorial de la presión del viento en la mitad expuesta de una torre de enfriamiento hiperboloidal. Cada flecha representa la dirección y magnitud del gradiente de presión en diferentes puntos de la torre. Los ejes ZZZ (altura en metros) y XXX-YYY (dimensiones horizontales en metros) describen el espacio tridimensional. La distribución de flechas ilustra cómo la presión varía a lo largo de la superficie de la torre, mostrando patrones característicos debido a la forma hiperboloidal y las condiciones de viento.
6 Representación el campo de temperatura utilizando un mapa de colores en un plano vertical que corta la torre pasando por el eje de simetría.
En el apartado 6, se analiza y representa el campo de temperatura en la torre. Por un lado, se estudia cómo varía la temperatura en un plano vertical que corta la torre por el eje de simetría. Por otro lado, se examinan planos paralelos al suelo mediante una animación que permite visualizar la distribución de temperatura en diferentes niveles de la torre.
La animación en matlab es:
% Parámetros
radio_max_base = 50; % Radio máximo (m)
radio_min_torre = 20; % Radio mínimo
centro_hiperboloide = 80; % Centro del hiperboloide
parametro_c = sqrt(((6400 * radio_min_torre^2) / (radio_max_base^2 - radio_min_torre^2))); % Parámetro c
altura_torre = 120; % Altura total
temp_base = 70; % Temperatura en la base (°C)
temp_tope = 25; % Temperatura en la parte superior (°C)
delta_temp_vertical = temp_base - temp_tope; % Diferencia de temperatura vertical
delta_temp_radial = 5; % Variación máxima radial (°C)
exponente_conveccion = 1.5; % Exponente de convección
% Malla para el hiperboloide
angulo_theta = linspace(0, 2*pi, 100); % Ángulo alrededor del eje z
altura_malla = linspace(0, altura_torre, 50); % Coordenada vertical
alturas_lineas = 0:20:altura_torre; % Alturas de las líneas discontinuas
% Iniciar figura
figure;
for i = 1:length(altura_malla)
% Altura de la capa actual
altura_actual = altura_malla(i);
% Radio en esta altura
radio_capa = sqrt((1 + (altura_actual - centro_hiperboloide)^2 / parametro_c^2) * radio_min_torre^2);
% Coordenadas de la capa
coord_x_capa = radio_capa * cos(angulo_theta);
coord_y_capa = radio_capa * sin(angulo_theta);
coord_z_capa = altura_actual * ones(size(coord_x_capa));
% Temperatura en esta capa
temp_capa = temp_base - delta_temp_vertical * (altura_actual / altura_torre)^exponente_conveccion - ...
delta_temp_radial * (1 - exp(-radio_capa^2 / (radio_max_base^2 - radio_capa^2)));
% Dibujar la capa
fill3(coord_x_capa, coord_y_capa, coord_z_capa, temp_capa, 'EdgeColor', 'none');
hold on;
% Dibujar las líneas discontinuas en las alturas predefinidas
for altura_linea = alturas_lineas
radio_linea = sqrt((1 + (altura_linea - centro_hiperboloide)^2 / parametro_c^2) * radio_min_torre^2); % Radio en esta altura
coord_x_linea = radio_linea * cos(angulo_theta);
coord_y_linea = radio_linea * sin(angulo_theta);
plot3(coord_x_linea, coord_y_linea, altura_linea * ones(size(coord_x_linea)), 'm--', 'LineWidth', 1.5); % Línea discontinua magenta
end
% Mostrar el contador de la altura actual en el título
title(sprintf('Campo de temperatura a z = %.2f m', altura_actual));
% Configuración gráfica
colormap('jet');
colorbar;
caxis([temp_tope, temp_base]); % Escala de colores
xlabel('x (m)');
ylabel('y (m)');
zlabel('z (m)');
xlim([-radio_max_base, radio_max_base]);
ylim([-radio_max_base, radio_max_base]);
zlim([0, altura_torre]);
view(3);
% Pausar para animación
pause(0.1);
hold off;
endPor otro lado, el plano vertical en matlab es:
%% 2. Campo de temperatura en el plano vertical
% Parámetros
radio_max_base = 50; % Radio máximo (m)
radio_min_torre = 20; % Radio mínimo
centro_hiperboloide = 80; % Centro del hiperboloide
parametro_c = sqrt(((6400 * radio_min_torre^2) / (radio_max_base^2 - radio_min_torre^2))); % Parámetro c
altura_torre = 120; % Altura total
temp_base = 70; % Temperatura en la base (°C)
temp_tope = 25; % Temperatura en la parte superior (°C)
delta_temp_vertical = temp_base - temp_tope; % Diferencia de temperatura vertical
delta_temp_radial = 5; % Variación máxima radial (°C)
exponente_conveccion = 1.5; % Exponente de convección
figure('Name', 'Plano Vertical del Campo de Temperatura');
z = linspace(0, altura_torre, 300); % Coordenada vertical
x = linspace(-radio_max_base - 10, radio_max_base + 10, 300); % Coordenada horizontal
[X, Z] = meshgrid(x, z); % Crear malla
R = sqrt((1 + ((Z - centro_hiperboloide) / parametro_c).^2) * radio_min_torre^2); % Radio según el hiperboloide
r = abs(X); % Distancia radial
T = temp_base - delta_temp_vertical * (Z / altura_torre).^exponente_conveccion - delta_temp_radial * (1 - exp(-r.^2 ./ (radio_max_base^2 - r.^2))); % Campo de temperatura
mask = abs(X) <= R; % Máscara para limitar al hiperboloide
T(~mask) = NaN; % Fuera de la silueta, no mostrar
% Dibujar el campo de temperatura
contourf(X, Z, T, 50, 'LineColor', 'none');
colormap('jet');
colorbar;
caxis([temp_tope, temp_base]); % Escala de colores
hold on;
% Dibujar la silueta de la torre
x_sil_left = -R; % Lado izquierdo de la silueta
x_sil_right = R; % Lado derecho de la silueta
z_sil = z; % Coordenadas verticales
plot(x_sil_left, z_sil, 'k-', 'LineWidth', 2); % Silueta izquierda
plot(x_sil_right, z_sil, 'k-', 'LineWidth', 2); % Silueta derecha
% Configuración gráfica
xlabel('x (m)');
ylabel('z (m)');
title('Campo de temperatura (°C) dentro de la silueta de la torre');
xlim([-radio_max_base - 10, radio_max_base + 10]);
ylim([0, altura_torre]);
grid on;
view(2); % Vista 2D
hold off;En esta animación se puede observar,la evolución del gradiente de la temperatura a lo largo de la z, viendo como esta disminuye a medida que se acerca a la parte superior de la torre. En el eje vertical (Z) se representa la altura (en metros), mientras que los ejes X y Y muestran las dimensiones horizontales (también en metros).
7 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 y los puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo
Este apartado consiste en representar el campo del gradiente de temperatura en dos planos diferentes de una torre: un plano vertical que corta la torre pasando por su eje de simetría y un plano horizontal en el radio mínimo de la estructura. La tarea es visualizar cómo varía la temperatura en estos puntos y cómo se representa el gradiente en cada caso.
El codigo en matlab es:
% Parámetros de la torre
z0 = 80; % Altura del centro de la torre (m)
Rmin = 20; % Radio mínimo (m)
Rmax = 50; % Radio máximo (m)
H = 120; % Altura total (m)
z_horizontal = (2/3) * H; % Altura del plano horizontal
c = sqrt(((6400 * Rmin^2) / (Rmax^2 - Rmin^2))); % Parámetro c
% Parámetros térmicos
Tbase = 70; % Temperatura en la base (°C)
DeltaTz = Tbase - 25; % Variación de temperatura con la altura
DeltaTr = 5; % Variación de temperatura radial
n = 1.5; % Exponente para el perfil vertical
% Parámetros para la malla dentro del cuadrado [-60, 60] en X y Y
res_x = 50; % Resolución ajustada para X
res_y = 50; % Resolución ajustada para Y
x = linspace(-60, 60, res_x); % Rango de X de -60 a 60
y = linspace(-60, 60, res_y); % Rango de Y de -60 a 60
[X, Y] = meshgrid(x, y);
% Filtrar puntos dentro del círculo de radio Rmin
mask = X.^2 + Y.^2 <= Rmin^2; % Solo puntos dentro del radio mínimo (20 m)
X = X(mask);
Y = Y(mask);
% Flechas perpendiculares apuntando hacia abajo
Tx_grad = zeros(size(X)); % No hay componente en X
Ty_grad = zeros(size(Y)); % No hay componente en Y
Tz_grad = -0.8 * ones(size(X)); % Flechas hacia abajo, magnitud ajustada
% Representación gráfica para el plano horizontal
figure;
hold on;
% Flechas del gradiente
quiver3(X, Y, z_horizontal * ones(size(X)), Tx_grad, Ty_grad, Tz_grad, 0.5, ...
'Color', [0.3 0.5 1], 'LineWidth', 1, 'MaxHeadSize', 2);
% Contorno del círculo de radio Rmin
theta_circle = linspace(0, 2*pi, 100);
x_circle = Rmin * cos(theta_circle);
y_circle = Rmin * sin(theta_circle);
z_circle = z_horizontal * ones(size(theta_circle));
plot3(x_circle, y_circle, z_circle, 'm--', 'LineWidth', 2);
% Configuración de la gráfica
title('Gradiente de temperatura en el plano z = 2/3 H (Radio = 20 m)');
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Altura Z (m)');
axis([-60 60 -60 60 z_horizontal-20 z_horizontal+20]); % Ajuste de límites
axis equal;
grid on;
view(75, 30); % Vista 3D inclinada
hold off;
% Crear malla para el plano vertical
z = linspace(0, H, 50); % Coordenada vertical
x = linspace(-Rmax - 10, Rmax + 10, 50); % Coordenada horizontal extendida
[X, Z] = meshgrid(x, z); % Crear la malla
% Cálculo del radio según el hiperboloide
R = sqrt((1 + ((Z - z0) / c).^2) * Rmin^2); % Radio según el hiperboloide
r = abs(X); % Distancia radial en el plano (x, 0, z)
% Campo de temperatura (con corrección para evitar divisiones por cero)
epsilon = 1e-6; % Para evitar divisiones por cero
T = Tbase - DeltaTz * (Z / H).^n - DeltaTr * (1 - exp(-r.^2 ./ (Rmax^2 - r.^2 + epsilon)));
% Máscara para limitar al hiperboloide
mask = abs(X) <= R; % Máscara para la silueta
T(~mask) = NaN; % Fuera de la torre, no se muestra
% Gradientes en el plano vertical
[Tx, Tz] = gradient(T, x(2) - x(1), z(2) - z(1)); % Derivadas en x y z
% Figura 2: Gradiente de temperatura en el plano vertical desde arriba (2D)
figure('Name', 'Gradiente de Temperatura en el Plano Vertical'); % Nueva ventana
% Silueta de la torre
x_sil_left = -sqrt((1 + ((z - z0) / c).^2) * Rmin^2); % Lado izquierdo
x_sil_right = sqrt((1 + ((z - z0) / c).^2) * Rmin^2); % Lado derecho
z_sil = z; % Coordenadas verticales
plot(x_sil_left, z_sil, 'k-', 'LineWidth', 2); % Lado izquierdo
hold on;
plot(x_sil_right, z_sil, 'k-', 'LineWidth', 2); % Lado derecho
% Representar el campo de temperatura y las flechas dentro de la torre en 2D
quiver(X(mask), Z(mask), Tx(mask), Tz(mask), 'b', 'LineWidth', 1, 'MaxHeadSize', 3); % Flechas azules
% Configuración de la gráfica 2D
xlabel('x (m)');
ylabel('z (m)');
title('Gradiente de Temperatura en el Plano Vertical (Vista 2D)');
xlim([-Rmax - 10, Rmax + 10]);
ylim([0, H]);
grid on;
axis equal;
view(2); % Vista en 2D
hold off;7.1 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
La imagen muestra un gráfico 2D con el gradiente de temperatura representado por flechas azules distribuidas en un plano vertical (coordenadas x y z). Las flechas están más densamente distribuidas cerca del eje central y apuntan hacia afuera, indicando que el gradiente de temperatura es mayor en el eje de simetría. Los bordes negros delimitan una forma simétrica similar a un reloj de arena, representando los límites físicos del sistema.
7.2 Puntos de un plano que corta la torre horizontalmente en correspondencia con el radio mínimo
La imagen muestra un gráfico 3D del gradiente de temperatura en un plano horizontal a la altura z=2/3H (radio mínimo de 20 m). Las flechas azules representan el campo del gradiente, apuntando radialmente hacia afuera desde el centro de la figura ovalada, indicando un aumento de temperatura hacia los bordes. El contorno magenta delimita la región donde se estudia el gradiente.
8 Animación que representa las superficies isotérmicas para varios valores de temperatura
Una superficie isoterma es aquella en la que todos sus puntos mantienen una misma temperatura. Para representarla, se han seleccionado varias temperaturas y se han visualizado estas superficies junto con sus gradientes correspondientes. Esto permitirá visualizar cómo cambian las superficies y el gradiente asociado de manera dinámica.
La animación en matlab es :
% Parámetros geométricos y térmicos
radioBase = 20;
alturaCentro = 80;
alturaTotal = 120;
radioMaximo = 50;
radioHiperboloide = 34.17;
tempBase = 70;
tempCima = 25;
variacionTempAltura = tempBase - tempCima;
variacionTempRadial = 5;
expConveccion = 1.5;
% Discretización optimizada
theta = linspace(0, 2*pi, 50); % Menos puntos para mayor velocidad
z = linspace(0, alturaTotal, 50);
[Theta, Z] = meshgrid(theta, z);
% Radio \rho en función de z
Rho = sqrt(radioBase^2 * (1 + ((Z - alturaCentro).^2) / radioHiperboloide^2));
X = Rho .* cos(Theta);
Y = Rho .* sin(Theta);
% Campo de temperaturas en 3D
campoTemp = tempBase - variacionTempAltura * (Z / alturaTotal).^expConveccion ...
- variacionTempRadial * (1 - exp(-Rho.^2 ./ (radioMaximo^2 - Rho.^2)));
% Niveles isotérmicos optimizados
nivelesTemp = linspace(tempCima, tempBase, 20); % Menos niveles isotérmicos
% Calcular gradiente térmico
[gradTempX, gradTempZ] = gradient(campoTemp, mean(diff(X(1,:))), mean(diff(Z(:,1))));
gradTempY=gradTempX;
figure;
for nivel = 1:length(nivelesTemp)
tempNivel = nivelesTemp(nivel);
mascaraIso = abs(campoTemp - tempNivel) < 0.5; % Margen ±0.5 °C
contour3(X,Y,Z,6,'k');
xlabel('X (m)');
ylabel('Y (m)');
zlabel('Z (m)');
hold on
% Extraer puntos isotérmicos
xIso = X(mascaraIso);
yIso = Y(mascaraIso);
zIso = Z(mascaraIso);
coloresIso = campoTemp(mascaraIso);
% Superficie isotérmica
scatter3(xIso, yIso, zIso, 10, coloresIso, 'filled');
colormap('jet');
colorbar;
caxis([tempCima, tempBase]);
% Graficar el gradiente térmico en los puntos isotérmicos
quiver3(xIso, yIso, zIso, gradTempX(mascaraIso), gradTempY(mascaraIso), gradTempZ(mascaraIso), ...
'k', 'AutoScaleFactor', 0.5);
% Refrescar gráfico
drawnow;
pause(0.05); % Breve pausa para visualización
% Limpiar puntos isotérmicos del cuadro anterior
% En lugar de 'cla('reset')'
delete(findall(gca, 'Type', 'scatter'));
delete(findall(gca, 'Type', 'quiver'));
endLa animación muestra cómo evolucionan las superficies isotérmicas (donde la temperatura es constante) para diferentes valores de temperatura. Las superficies cambian dinámicamente, revelando las regiones donde el gradiente de temperatura, representado por vectores superpuestos, señala la dirección y magnitud de la variación térmica. Este gráfico ilustra cómo la temperatura y su variación espacial interactúan de manera visual e intuitiva.
9 Qué forma tendría ahora la torre de enfriamiento si suponemos que Rmax=Rmin=50m
Para saber la forma que tendría la torre con el mismo rmin y rmax a 50 m valdría con cambiar la variable ‘’a’’ del código de matlab en el apartado 3 ,al cambiarlo obtenemos esta torre.
Al observarla nos damos cuenta que se convierte en un simple cilindro de radio=50 m.
Para el cálculo de presión por unidad en cada torre supondremos que:
- El viento ejerce una presión lateral [math]V(z)=V_o(\dfrac{z}{z_o})^α [/math]
- [math]V_o = 15 m/s [/math]
- α es un exponente que depende del terreno para áreas abiertas suele ser alrededor de 0.14.
- [math]P(z) = \dfrac{1}{2} \rho V(z)^2[/math]
- \rho =1.225 kg/m3
- [math]\vec{F}(x, y, z) = -P(z) \cdot \vec{n}[/math]
9.1 Cálculos para el cilindro
Sustituyendo todas las fórmulas en la ecuación de la presión
[math]P(z) = \dfrac{1}{2} \cdot 1,225 \cdot (15 \cdot (\dfrac{z}{10})^{0,28})[/math]
Para calcular la fuerza total
[math] \int_{0}^{120} P(z) \, \text{d}z = 8,13918 \cdot 10^6 N [/math]
No obstante esa es la fuerza total , y dado que el viento solo da por un lateral (la mitad de la torre) hay que dividirla entre dos
[math]F= \dfrac{8,13918 \cdot 10^6 }{2}=4069590N[/math]
[math]Funidad=\dfrac{F}{S}=\dfrac{4069590}{\pi \cdot 50 \cdot 120}≈215,8984Pa[/math]
9.2 Cálculos para la torre hiperbólica
Dado que los cálculos para la torre hiperbólica son más complicados los vamos a hacer analicamente. Comparando las vistas laterales de las torres nos damos cuenta de que el cilindro obstruye más el paso del viento en comparación a la torre hiperbólica.
Además que la superficie de la torre hiperbólica es claramente menor.Por lo tanto podemos deducir que la fuerza por unidad también será menor.
En conclusión la torre hiperbólica es mejor ante el viento ya que opone menos resistencia ante él, por eso es mejor la torre hiperbólica.
10 Uso de estructuras hiperboloides en ingeniería
El uso de las estructuras hiperbólicas en la ingeniería civil es bastante extendido.El primero y al que se le viene a la gente a la cabeza es el de nuestro trabajo, las torres hiperbólicas. Utilizada sobre todo en centrales nucleares para dejar salir el vapor de agua , usada para enfriar el núcleo.El uso de estas torres no se limita a lo nuclear si no a depósitos de agua , torres de control en aeropuertos…Esto es dado a su eficiencia estructural son resistentes a fuerzas externas debido a su diseño optimizado, lo que les permite ser ligeras pero robustas.
También son utilizadas en tejados para evitar utilizar columnas y ahorrar materiales. Y en puentes para reforzar la estructura.
Por añadidura su aspecto visual innovador las convierte en íconos arquitectónicos,elementos estéticos al mismo tiempo de servir como elemento de soporte a la estructura.
Con materiales avanzados como acero y concreto reforzado, estas estructuras logran combinar diseño y sostenibilidad. Se utilizan ampliamente en edificios públicos, estadios, estaciones de transporte y más, priorizando eficiencia energética y resistencia sísmica
En resumen, los hiperboloides representan una confluencia de diseño innovador, eficiencia estructural y estética, siendo elementos destacados en la ingeniería moderna y la arquitectura emblemática.