Campo de desplazamiento de una placa semicircular A4
Consideramos una placa plana que ocupa el anillo circular centrado en el origen y comprendido entre los radios 1 y 2 en el semiplano y>=0. En ella vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura \(T(x,y)\), que depende de las dos variables espaciales \((x,y)\), y los desplazamientos \(\vec u\) producidos por la acción de una fuerza determinada.
A partir de esto, estudiaremos el efecto de la temperatura dada por \(T(x,y)\) para después plantear la acción de las vibraciones \(\vec u(\rho,\theta)\) y las tensiones que éstas producen.
Contenido
- 1 Visualización de la placa
- 2 Distribución de temperaturas del sólido
- 3 Estudio del gradiente de temperaturas
- 4 Campo vectorial en los puntos del sólido
- 5 Efecto de los desplazamientos
- 6 Estudio de la divergencia [math]\nabla \cdot \vec u[/math]
- 7 Estudio del rotacional [math]|\nabla \times \vec u|[/math]
1 Visualización de la placa
h= 0.1; %paso de muestreo
%usamos coordenadas polares
r= 1:h:2;
tetha= 0:h:pi;
[rr,tt]= meshgrid(r,tetha); %mallado
%parametrizamos en cartesianas
x=rr.*cos(tt);
y=rr.*sin(tt);
clf %borramos las posibles gráficas que haya hasta ahora
mesh(x,y,0*x) %hacemos la visualización de la placa
view(2) %vemos la placa en 2D
axis ([-3,3,-1,3])
2 Distribución de temperaturas del sólido
La distribución de temperaturas en cada punto del sólido viene dada por el campo escalar:
\(T(x,y)=log{y+2}\)
Esta variación de temperaturas vendrá representada por curvas de nivel formadas por puntos que se encuentran a una misma temperatura. Considerando como foco de calor el origen de coordenadas y siendo nuestra distribución de temperaturas independiente de \(x\); observamos gráficamente que, cuanto mayor sea \(y\), menor será la temperatura.
h= 0.1; %paso de muestreo
%usamos coordenadas polares
r= 1:h:2;
tetha= 0:h:pi;
[rr,tt]= meshgrid(r,tetha); %mallado
%parametrizamos en cartesianas
x=rr.*cos(tt);
y=rr.*sin(tt);
clf
%campo temeperatura (en cartesianas)
T=log(y+2); %campo escalar de temperatura
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])
colorbar %mostramos la escala
subplot(1,2,2) %escribimos en la segunda pantalla
contour(x,y,T,40) %lineas de nivel
%VIENDO EL GRAFICO Y LA ESCALA, VEMOS QUE EL CAMPO DE TEMPERATURAS
%AUMENTA EN LA DIRECCION DE Y, LUEGO EL CAMPO ES MAXIMO EN Y=2
colorbar % mostramos las escala
axis ([-3,3,-1,3])3 Estudio del gradiente de temperaturas
Al calcular el gradiente de nuestro campo de temperaturas obtenemos el siguiente campo vectorial:
\(\grad T\)=\(1./(y+2)\vec j\)
Este campo indica la dirección en la cual la temperatura del sólido aumenta a mayor velocidad, y su módulo nos indica dicha velocidad.
h= 0.1; %paso de muestreo
%usamos coordenadas polares
r= 1:h:2;
tetha= 0:h:pi;
[rr,tt]= meshgrid(r,tetha); %mallado
%parametrizamos en cartesianas
x=rr.*cos(tt);
y=rr.*sin(tt);
% lineas nivel campo temeperatura (en cartesianas)
T=log(y+2); %campo escalar de temperatura
subplot(1,2,1) %dividimos la pantalla en dos
contour(x,y,T,40) %lineas de nivel
colorbar % mostramos las escala
axis ([-3,3,-1,3])
%gradiente temperatura (en cartesianas)
tx=inline('0','x','y'); %derivada parcial respecto de x
ty=inline('1./(y+2)','x','y'); %derivada parcial respecto de y
TX=tx(x,y);
TY=ty(x,y);
subplot(1,2,2)
h= quiver(x,y,TX,TY); %representamos el campo vectorial
axis ([-3,3,-1,3])
set(h,'maxheadsize',0.33) %cambiamos formato flechas
Según podemos observar en el gráfico obtenido, el campo de temperaturas aumenta en dirección de y, y es máximo en el punto y=2
4 Campo vectorial en los puntos del sólido
A continuación vamos a observar la deformación de la placa producida por el siguiente campo de desplazamientos:
\(\vec u(\rho,\theta)=1/5*sin(2*theta)\vec g_{\theta}\)
h= 0.1; %paso de muestreo
%usamos coordenadas polares
r= 1:h:2;
theta= 0:h:pi;
[rr,tt]= meshgrid(r,theta); %mallado
%parametrizamos en cartesianas
x=rr.*cos(tt);
y=rr.*sin(tt);
clf
u=inline('-y/5.*sin(2.*atan(y./x))','x','y');
v=inline('x/5.*sin(2.*atan(y./x))','x','y');
U=u(x,y);
V=v(x,y);
quiver(x,y,U,V)
axis ([-3,3,-1,3])
%Lo que hace el campo desplazamiento es principalmente coger los puntos
% que estan a la mitad de altura, y llevarlos hacia el centro del circulo
5 Efecto de los desplazamientos
h= 0.1; %paso de muestreo
%usamos coordenadas polares
r= 1:h:2;
tetha= 0:h:pi;
[rr,tt]= meshgrid(r,tetha); %mallado
%parametrizamos en cartesianas
x=rr.*cos(tt);
y=rr.*sin(tt);
clf
subplot(1,2,1) %sólido antes de los desplazamientos
mesh(x,y,0*x)
view(2)
axis ([-3,3,-1,3])
subplot(1,2,2) %sólido después de los desplazamientos
u=inline('-y/5.*sin(2.*atan(y./x))','x','y');
v=inline('x/5.*sin(2.*atan(y./x))','x','y');
U=u(x,y);
V=v(x,y);
X=x+U;
Y=y+V;
mesh(X,Y,0*X)
view(2)
axis ([-3,3,-1,3])
%Vemos como los puntos de los extremos están más separados,
%y que los del centro están más juntos
6 Estudio de la divergencia [math]\nabla \cdot \vec u[/math]
h= 0.1; %paso de muestreo
%usamos coordenadas polares
r= 1:h:2;
tetha= 0:h:pi;
[rr,tt]= meshgrid(r,tetha); %mallado
%parametrizamos en cartesianas
x=rr.*cos(tt);
y=rr.*sin(tt);
clf
%el campo es 1/5*sin(tetha)*g sub tetha
%como lo tenemos en cilindricas hacemos la divergencia en cilindricas
%luego pasamos a cartesianas para poder representarlo con matlab
%Divergencia en cilíndricas= 2/5*cos(2*tetha)
%pasamos a cartesianas: Divergencia en cartesianas= 2/5*cos(2*atan(y/x))
div=inline('2.*cos(2.*atan(y./x))./5','x','y');
DIV=div(x,y);
surf(x,y,DIV)
colorbar
axis ([-3,3,-1,3])
view(3)
%cambiar ejes nombre etc...
%es mayor en los extremos de la semicircuferencia.
%Como se ve en la gráfica, el valor de la divergencia en estos puntos es 0.4
%(y se ve en color rojo y más alto)
%no se aprecia mucho el cambio de volumen porque el campo no se caracteriza por
% estar expandiendose, si no que esta rotando.
%El campo tiende a comprimir los puntos en el medio del anillo
7 Estudio del rotacional [math]|\nabla \times \vec u|[/math]
h= 0.1; %paso de muestreo
%usamos coordenadas polares
r= 1:h:2;
tetha= 0:h:pi;
[rr,tt]= meshgrid(r,tetha); %mallado
%parametrizamos en cartesianas
x=rr.*cos(tt);
y=rr.*sin(tt);
%Dibujo
subplot(1,2,1);
rot=2/5*sin(2*tt);
surf(x,y,rot)
axis equal
view(2)
title('rotacional 2D')
colorbar
subplot(1,2,2);
surf(x,y,rot)
title('rotacional 3D')
colorbar
%poner el punto de mayor rotacional