Presa triangular. Grupo 12.

De MateWiki
Revisión del 11:23 2 dic 2024 de Fátima Mougedimy Alosman (Discusión | contribuciones) (Cálculo de energía calorífica con la Ley de Fourier)

Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Representación de campos de temperatura y deformaciones en una presa triangular (Grupo 12)
Asignatura Teoría de Campos
Curso 2024-25
Autores
  • Jaime Durá Garrido
  • Fátima Mougedimy Alosman
  • Xinkai Hu
  • Paula Monterde Garcia
  • Angela Ilagan Martinez
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

Visualización de campos escalares y vectoriales en elasticidad. Consideramos presa representada por una placa triangular plana (en dimensión 2) que ocupa la región [math](x, y) ∈ [-1, 1]×[0, f(x)][/math], donde [math]f(x)=min(3,3/2(2-x))[/math]


• Parametrizar la superficie

[math](x, y) ∈ [0, 2] × [0, f(x)][/math] con:[math]f(x) = \min(3, \frac{3}{2}(2 − x))[/math]
.

• La temperatura viene dada por la función:

[math]T(x, y) = \frac{y \cdot x^2}{2}[/math]
.

• Los desplazamientos se corresponden con el campo:

[math]\vec{u}(x, y) = \frac{2(2 − x)y \cdot \vec{i} − y \cdot \vec{j}}{50}[/math]
.

• Tomar como densidad:

[math]d(x, y) = (2 − |x − \frac{1}{2}|)(4 − y)[/math]
.


1 Dibujo del mallado que representa los puntos interiores del sólido.

Resultado de ejecución

Esta grafica muestra el mallado de la placa triangular y el código utilizado en MatLab para obtenerlo. Un breve resumen del funcionamiento del codigo seria:

  • La primera línea del código utiliza algo basico en Matlab,que es el uso del clear y el clc para que se borren todas las variables anteriormente usadas y no causen confusión
  • En las dos siguientes lineas de codigo discretizamos las variables x1 e y1.
  • En la cuarta y en la quinta línea escribimos los comandos para crear el mallado.
  • Finalmente las dos penúltimas lineas servirán para nombrar a los ejes x e y respectivamente, mientras que las últimos dos sirven para añadirle un título a nuestra gráfica y visualizar en planta nuestra placa.
clear;clc;h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
mesh(x2, y2, z2); % Gráfico de la región plana
hold on;
x_borde = x1; % Bordes de la región
y_borde = arrayfun(f, x_borde); % Límite superior según f(x)
plot3(x_borde, y_borde, zeros(size(x_borde)), 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([0 0], [0 f(0)], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2); 
plot3([2 2], [0 f(2)], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2); 
plot3([0 2], [0 0], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);  
axis equal;
axis([-1, 3, -1, 4]); % Límite de los ejes
xlabel('Eje X');
ylabel('Eje Y');
title('Mallado de la Presa');
view(2); % Vista en 2D
grid on;
hold off;
x=max(max(T)) %te da el valor máximo de la temperatura;
find(T==x) %te dice donde se encuentra este valor contando todos los valores en columnas;


2 Curvas de nivel de la temperatura

La siguiente grafica representa las curvas de nivel de la temperatura.

El gradiente de un campo vectorial es el siguiente:
[math]\nabla T(x,y) =\frac{d∂}{dx} +\frac{d∂}{dy}[/math]

en este caso sería:
[math]T(x, y) = \frac{y \cdot x^2}{2}[/math]
.

La temperatura máxima alcanzada es de 0.88 y se alcanza en los puntos (61,1) y (61,61)

%Definir la figura
h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
%Campo temperatura
T = (y2 .* x2.^2) / 2; % Función de temperatura
T(~Region) = NaN; % Filtra puntos fuera de la región
%Definir curvas de nivel
contour3(x2, y2, T, 20, 'LineWidth', 2); % Gráfico de curvas de nivel en 3D
colorbar; % Muestra la barra de colores asociada a los valores de temperatura


3 Cálculo de energía calorífica con la Ley de Fourier

%Definir la figura
h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
%Campo temperatura
Temp = (y2 .* x2.^2) / 2; % Función de temperatura
Temp(~Region) = NaN; % Filtra puntos fuera de la región
surf(x2, y2, Temp, 'EdgeColor', 'none'); % Superficie en 3D
hold on;
%Calcular los puntos máximos
[maxTemp, idx] = max(Temp(:)); % Encuentra el valor máximo y su índice
[x_max, y_max] = ind2sub(size(Temp), idx); % Convierte índice lineal a coordenadas
x_coord = x2(x_max, y_max); % Coordenada X del máximo
y_coord = y2(x_max, y_max); % Coordenada Y del máximo
plot3(x_coord, y_coord, maxTemp, 'ro', 'MarkerSize', 8, 'LineWidth', 2); % Punto rojo para el máximo
text(x_coord, y_coord, maxTemp, sprintf('  Maximo: %.2f', maxTemp), 'Color', 'r', 'FontSize', 10); % Texto del valor máximo


4 Campo de vectores en el sólido

5 Representación gráfica del desplazamiento del sólido

6 Divergencia [math]∇·\vec{u}[/math]

7 Rotacional [math]\left | ∇ \times \vec{u} \right |[/math]

8 Tensor de tensiones

9 Tensiones tangenciales al plano ortogonal a [math]\vec{i}[/math]

10 Tensión de Von Mises

11 Campo de fuerzas que actúa sobre la placa

12 Módulo del desplazamiento transversal