Deformación de un semianillo plano Grupo 4-A

De MateWiki
Saltar a: navegación, buscar


Trabajo realizado por estudiantes
Título Deformación de un semianillo plano Grupo 4-A
Asignatura
Curso 2021/22
Autores Jaime Guerrero Suárez

Sergio Míguez González Pedro Michelini

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

1 Enunciado

Consideramos una placa plana que ocupa la mitad de un anillo circular centrado en el origen y comprendido entre los radios 1 y 2, en el plano y ≥ 0. En ella vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura \(T(x,y,t)\), que viene dada por [math]T(x, y) = log((x − 3)^2 + 2)[/math], y los desplazamientos \(\vec u(x,y,t)\) producidos por la acción de una fuerza determinada. De esta forma, si definimos \(r_0(x,y)\) el vector de posición de los puntos de la placa en reposo, la posición de cada punto \((x,y)\) de la placa después de la deformación viene dada por \(r(x, y) = ~r0(x, y) + ~u(x, y)\). Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector de desplazamientos [math]\vec u(ρ, θ) = ρ − 1 5 sin(θ)~eθ[/math].

2 Mallado

Comenzamos la representación del sólido definiendo un mallado siguiendo las directrices del enunciado: "Tomar los ejes (comando axis) en el rectángulo (x, y) ∈ [-3; 3] × [−1; 3] y como paso de muestreo h = 1/10 para las variables x e y. Al tratarse de una figura plana en 2D, la componente z es nula.

h= 0.1;                           %Paso de muestreo
r= 1:h:2;
tt= 0:h:pi;
[RR,TT]= meshgrid(r,tt);       %Mallado
x=RR.*cos(TT);
y=RR.*sin(TT);                                                        
mesh(x,y,0.*x)                  %Visualización de la placa
view(2)                           
axis ([-3,3,-1,3])
xlabel('Eje X')
ylabel('Eje Y')


[[Archivo:]]

3 Representación de la temperatura

Una vez tenemos bien definido el mallado (que representa al propio sólido), pasamos a la representación de la temperatura a partir de la función [math]T(x, y) = log((x − 3)2 + 2)[/math]. Para llevarla a cabo, representamos el campo escalar, donde se puede observar la posición de la Temperatura máxima (en el punto (-2,0.1). Además, hemos definido una serie de curvas de nivel para poder apreciar mejor el cambio de temperatura a lo largo de la placa.

h= 0.1;                           %Paso de muestreo
r= 1:h:2;
tt= 0:h:pi;
[RR,TT]= meshgrid(r,tt);       %Mallado
x=RR.*cos(TT);
y=RR.*sin(TT);  
T=log10((x-3).^2 + 2);
hold on
subplot(1,2,1)                %Dividimos la pantalla en dos
surf(x,y,T)                   %Representamos el campo escalar de temperaturas
view(2)
axis ([-3,3,-1,3])
xlabel('Eje X')
ylabel('Eje Y')
colorbar                      %Mostramos la escala
subplot(1,2,2)                %Escribimos en la segunda pantalla
contour(x,y,T,30)
title('Curvas de Nivel','Fontsize',16)      %Líneas de nivel
colorbar                      %Mostramos las escala
axis ([-3,3,-1,3])
xlabel('Eje X')
ylabel('Eje Y')
hold off


[[Archivo:]]

4 Gradiente de Temperatura

El siguiente paso después de observar el campo de la temperatura es calcular el gradiente de esta misma función y dibujarlo como campo vectorial. El cálculo del gradiente es sencillo y consiste en

En nuestro caso, el gradiente calculado manualmente nos da [math]\nabla T=\frac{2(x-3)}{(x-3)^2+2}\vec i\[/math]. Como sabemos, por definición el gradiente es siempre perpendicular a la función original. Una vez que lo tenemos ya calculado, podemos observarlo y confirmar que, efectivamente, se trata de un campo vectorial perpendicular a las curvas de nivel formadas por la temperatura.


[[Archivo:]]

5 Representación del campo vectorial de deformaciones

Ahora nos centraremos en el campo u de deformaciones, definido en el enunciado en coordenadas cilíndricas (factor a tener en cuenta). No necesitamos calcularlo, pero sí convertir la dirección de eθ en las direcciones \(\vec i\) y \(\vec j\) para poder representarlo sin problema en la misma cuadrícula. Aplicamos la equivalencia [math]e_θ=\frac{-x_2\vec i\+x_1\vec j\}{ρ}=-sin(θ)\vec i\+cos(θ)\vec j\[/math]. El nuevo campo \(\vec u\) nos queda de la siguiente forma: [math]\vec u=-\frac{ρ-1}{5}cos(θ)sin(θ)\vec i+\frac{ρ-1}{5}cos_2(θ)\vec j\[/math]

h= 0.1;                     %Paso de muestreo                              
rr= 1:h:2;                  %Usamos coordenadas polares.
tt= 0:h:pi;
[RR,TT]= meshgrid(rr,tt);   %Mallado
x=RR.*cos(TT);
y=RR.*sin(TT);                     
axis ([-3,3,-1,3])
a=-((RR-1)./5).*((sin(TT)).^2);
b=((RR-1)./5).*(cos(TT).*sin(TT));
w=quiver(x,y,a,b);                       %Representacion de los vectores
axis ([-3,3,-1,3])
title('Campo de vectores','Fontsize',16);
xlabel('Eje X')
ylabel('Eje Y')
set(w,'maxheadsize',0.33)


Archivo

6 Desplazamiento del mallado producido por el campo vectorial

Ya tenemos el campo vectorial del desplazamiento, por lo que vamos a poder observar la deformación en la placa antes y después de la acción del campo u:

h= 0.1;                          %Paso de muestreo                                 
rr= 1:h:2;                       %Usamos coordenadas polares
tt= 0:h:pi;
[RR,TT]= meshgrid(rr,tt);        %Mallado
x=RR.*cos(TT);
y=RR.*sin(TT);
                                 %Sólido antes de los desplazamientos
subplot(1,2,1)                  
i=mesh(x,y,0*x);
view(2)
set(i,'EdgeColor','g');
axis ([-3,3,-1,3])
xlabel('Eje X')
ylabel('Eje Y')
title('Placa no desplazada','Fontsize',16); 
                                 %Sólido después de los desplazamientos
subplot(1,2,2)                     
A=-((RR-1)./5).*((sin(TT)).^2);
B=((RR-1)./5).*(cos(TT).*sin(TT)); 
X=x+A;
Y=y+B;
j=mesh(X,Y,0*X);
view(2)
set(j,'EdgeColor','r');
axis ([-3,3,-1,3])
xlabel('Eje X')
ylabel('Eje Y')
title('Placa desplazada','Fontsize',16);


[[Archivo:]]

7 Divergencia del campo vectorial

h= 0.1;                        %Paso de muestreo
                               %Usamos coordenadas polares
rr= 1:h:2;
tt= 0:h:pi;
[RR,TT]= meshgrid(rr,tt);      %Mallado
x=RR.*cos(TT);
y=RR.*sin(TT);
DIVu=((1)./RR).*(cos(TT).*((RR-1)./5)); %Divergencia de u
surf(x,y,DIVu);
view(2);
axis ([-3,3,-1,3])
colorbar;
title('Divergencia','Fontsize',16);
xlabel('Eje X')
ylabel('Eje Y')


[[Archivo:]]

8 Rotacional del campo vectorial

h=0.1;                                       %Paso de muestreo                                
rr=1:h:2;                                    %Usamos coordenadas polares
tt=0:h:pi;
[RR,TT]= meshgrid(rr,tt);                    %Mallado
x=RR.*cos(TT);
y=RR.*sin(TT);
ROTu=abs((sin(TT)./(5.*RR)).*(2-((1)./RR))); %Modulo del rotacional de u
                                             %Rotacional en 2-D
subplot(1,2,1);
surf (x,y,ROTu);
axis equal
view(2);
colorbar;
title('Rotacional en 2-D', 'Fontsize',16);
xlabel('Eje X')
ylabel('Eje Y')
                                            %Rotacional en 3-D
subplot(1,2,2);
surf(x,y,ROTu);               
colorbar
title('Rotacional en 3-D', 'Fontsize',16);
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Eje Z')


[[Archivo:]]

9 Tensiones normales a los ejes coordenados

10 Tensiones tangenciales respecto al plano ortogonal a \(\vec i\)


[[Archivo:]]

11 Tensión de Von Mises

h=0.1;
rr=[1:h:2];
tt=[0:h:pi];
[RR,TT]=meshgrid(rr,tt); 
sigma=zeros(3,3);%%Creacion matriz sigma y de Von Mises              
VM=zeros(32,11); %Tomando cada punto del mallado (dimensiones)
for i=1:32*11
     r=RR(i)';
     t=TT(i)';
     sigma(1,1)=((r-1)/5*r)*cos(t);
     sigma(1,2)=sin(t)/10;
     sigma(2,1)=sin(t)/5;
     sigma(2,2)=(r-1)*cos(t)*((2/5)+(1/(5*r)));
     sigma(3,3)=((r-1)/5)*cos(t);
     [v,d]=eig(sigma);                           %obtenemos autovalores
     VM(i)=sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);  %Formula de Tension de Von Mises
end
                 
xx=RR.*cos(TT);         %Pasamos a cartesianas
yy=RR.*sin(TT);
surf(xx,yy,VM)
title('Tension de Von Mises')
axis([-3,3,-1,3])
xlabel('Eje X')
ylabel('Eje Y')
colorbar
view(2)


[[Archivo:]]

12 Campo de fuerzas \(\vec F\) que actúa sobre la placa


[[Archivo:]]