Visualización de campos escalares y vectoriales. Grupo 29.

De MateWiki
Revisión del 14:03 5 dic 2023 de Alejandra Martin (Discusión | contribuciones) (Desplazamiento)

Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Visualización de campos escalares y vectoriales. Grupo 29
Asignatura Teoría de Campos
Curso 2023-24
Autores

Oliver Prada Sanchidrián; Rafael Garcia Lopez; Gonzalo Ramirez Mateo; Alejandra Martin Moreno; Carlos de Ana de Miguel

Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Introducción

El propósito de este artículo es analizar el desplazamiento experimentado por una pieza después de aplicar una fuerza.
Para ello, se tienen dos cantidades físicas dependientes de las variables x e y:

  • La temperatura T(x,y)
  • El campo de desplazamientos [math]\vec u(x,y)[/math], producido por la acción de una fuerza.

Para ello, se utilizará el software de programación y cálculo numérico Matlab/Octave.

2 Presentación de la placa

Para simplificar las operaciones, se va a tomar una sección del objeto a estudiar, esta es la resultante de intersecar a la pieza con un plano ortogonal a su eje axial, lo que resulta una placa rectangular plana, centrada en el origen. A continuación se muestra la sección de la placa.

Mallado de nuestra placa rectangular plana


El código empleado para dibujar la placa es el siguiente:

%MALLADO
%Región de la placa
h=2/10
x=[-1:h:1];
y=[0:h:12];
%Mallado con las matrices Mx e My
[Mx,My]=meshgrid(x,y);
mesh(Mx,My,0*My);
%Ejes
axis([-5,5,-0.5,12.5])
%Region del dibujo
title(‘Mallado de la placa’);
xlabel(‘Eje X’);
ylabel(‘Eje y’);
view(2);


3 Temperatura

La temperatura viene determinada por la siguiente función:

[math] T(x,y)=3log(1+(x-1)^2)+log(1+(y-8)^2)[/math]


Curvas de nivel


Esta fórmula nos proporciona la siguiente representación gráfica. La primera imagen muestra por colores la variación en el recinto observable, y la segunda representa las curvas de nivel del campo de temperaturas.

Curvas de nivel del campo de temperaturas


En las gráficas anteriores se aprecia, como la zona mas fría está concentrada en la parte superior derecha. Según se aleja del foco de frío la placa va aumentando la temperatura, el punto en el que alcanza su valor máximo es el (-1,0).

El código empleado para dibujar las ls gráficas anteriores es el siguiente:

%CURVAS DE NIVEL Y TEMPERATURA DE LA PLACA
x=-1:0.2:1
y=0:0.2:12
[X,Y]=meshgrid(x,y)
%Definición de la temperatura
T=3*log(1+(X-1).^2)+log(1+(Y-8).^2);
%Representación de curvas de nivel
hold on 
subplot(1,2,1)
surf(X,Y,T)
view(2)
title(“Temperatura”) 
xlabel(“Eje X”)
ylabel(“Eje Y”)
colorbar
subplot(1,2,2)
contour(X,Y,T,0)
colorbar
axis([-1,1,0,12])
title(“Curvas de nivel de la temperatura”)
xlabel(“Eje X”)
ylabel(“Eje Y”)
hold off


Gradiente de la temperatura

Para realizar el cálculo del gradiente, se emplea su respectiva expresión en cartesianas:

[math]\nabla T(x,y,z) =\frac{d∂}{dx} +\frac{d∂}{dy} + \frac{d∂}{dz}[/math]


En este caso particular:

[math]\nabla T(x,y) =\frac{d∂}{dx} +\frac{d∂}{dy}=\gt3*\frac{2(x-1)}{1+(x-1)^2} \vec i + \frac{2(y-8)}{1+(y-8)^2} \vec j [/math]


A continuación se presenta una representación del gradiente de la temperatura. (…como se puede apreciar este es ortogonal a las curvas de nivel de la temperatura ya que marca la dirección de máximo crecimiento de la misma. Para este caso se observa que la temperatura crece en la dirección -[math]\vec i[/math]…)

El gradiente de temperatura


El código empleado para dibujar las gráficas anteriores es el siguiente:

%Gradiente de Temperatura
h=0.2;
u=-1:h:1;
v=0:h:12;
[Mx,My]=meshgrid(u,v);
Temp=3*log(1 +(X-1).^2)+log(1+(Y-8).^2);
contour(Mx,My,Temp,30);
%Añadimos al dibujo de las líneas de nivel del gradiente de temperatura
hold on
[Px,Py]=gradient (Temp,0.1,0.1);
quiver(u,v, Px, Py)
axis([-1,1,0,12]);
colorbar
hold off
xlabel('Eje X')
ylabel('Eje Y')
title ('Gradiente de la Temperatura')


4 Ley de Fourier

La ley de Fourier, conocida también como la ley calorífica [math]\vec Q[/math],
afirma que existe una proporcionalidad entre el flujo de la energía y el gradiente de la temperatura, viaja de de acuerdo la fórmula:

[math]\vec Q = -k *\nabla T[/math]

(siendo k una constante con valor 1)


Esta ley aplicada a nuestro caso particular, proporciona un campo vectorial. Este campo se asemeja al obtenido en el apartado anterior, pero con la dirección opuesta.

Ley de Fourier aplicada


Esta gráfica adjunta corresponde al siguiente código de programación:

%LEY DE FOURIER
h=0.2;
u=-1:h:1;
v=0:h:12;
[Mx,My]=meshgrid(u,v);
Temp=3*log(1 +(X-1).^2)+log(1+(Y-8).^2);
contour(Mx,My,Temp,30);
%Añadimos al dibujo de las líneas de nivel del gradiente de temperatura
hold on
[Px,Py]=gradient (Temp,0.1,0.1);
quiver(u,v, -1.*Px, -1.*Py)
axis([-1,1,0,12]);
colorbar
hold off
xlabel('Eje X')
ylabel('Eje Y')
title ('LEY DE FOURIER')


5 Desplazamiento

Campo de vectores de desplazamientos

El campo de desplazamiento corresponde al campo de vectores generado en los puntos de mallado del sólido, cuando el tiempo es nulo, es decir, t=0.

Campo de vectores de desplazamientos


El código correspondiente es:

%CAMPO DE DESPLAZAMIENTOS
h=0.2;
u=-1:h:1;
v=0:h:12;
[Mx,My]=meshgrid(u,v);
%Definimos vector desplazamiento
Ux= (Mx/3).*sin((pi*My)/12);
Uy= zeros(size(Mx));
%Representamos campo vectorial
quiver(Mx,My,Ux,Uy);
axis([-1,1,0,12]);

xlabel('Eje X')
ylabel('Eje Y')
view(2)
title ('Campo de desplazamientos')


Sólido antes y después del desplazamiento

El campo de deformaciones mencionado anteriormente, podemos asumir que se generarán ondas a lo largo de la placa. Por ello, para observar la variación, será necesario la realización de la placa antes y después del desplazamiento.

Sólido antes y después del desplazamiento


El código empleado para llevar a cabo la comparación se expone a continuación:

%SOLIDO ANTES Y DESPUÉS DEL DESPLAZAMIENTO

h=0.2;
u=-1:h:1;
v=0:h:12;
[Mx,My]=meshgrid(u,v);
Ux= (Mx/3).*sin((pi*My)/12);
Uy= zeros(size(Mx));
figure(1)
%ANTES
subplot(2,2,1)
mesh(Mx,My,0*Mx);
axis([-1,1,0,12]);

title('Antes del desplazamiento');
view(2)
xlabel('Eje X')
ylabel('Eje Y')
%DESPUÉS
subplot(2,2,2)
mesh(Ux+Mx ,Uy+My,0*Ux);
axis([-1,1,0,12]);

title('Después del desplazamiento')
view(2)
xlabel('Eje X')
ylabel('Eje Y')
%COMPARACIÓN
subplot(2,2,3)
plot3(Mx,My,Mx*0);
hold on
plot3(Ux+Mx,Uy+My,0*Ux);
hold off
view(2)
axis([-1,1,0,12]);

title ('Comparación')
hold off
xlabel('Eje X')
ylabel('Eje Y')