Visualización de campos escalares y vectoriales en elasticidad (Grupo 2C)

De MateWiki
Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Visualización de campos escalares y vectoriales en elasticidad
Asignatura Teoría de Campos
Curso 2013-14
Autores {{{4}}}
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

Se considera una placa rectangular plana que ocupa la región [math] [-1/2,1/2] \times [0,2][/math]. En ella se tienen definidas dos magnitudes físicas: la temperatura [math]T(x,y,t)[/math] y los desplazamientos [math]\vec u(x,y,t)[/math], ambos dependientes de las variables espaciales [math](x,y)[/math] y del tiempo [math]t[/math]. Definimos el vector de posición en el instante inicial como [math]\vec r_0(x,y)[/math], la posición de cada punto [math](x,y)[/math] de la placa en cada tiempo t viene dada por: [math] \vec r (x,y,t)= \vec r_{0}(x,y)+\vec u(x,y,t). [/math] Sobre la placa se ha aplicado una fuerza que ha provocado una vibración de forma que los desplazamientos vienen dados por la onda [math] \vec u(x,y,t) = \vec a \sin(\vec b \cdot \vec r_0-ct), [/math], donde [math]\vec a[/math] es la amplitud, [math]\vec b[/math] la fase que indica la dirección de propagación y [math]c/|\vec b|[/math] la velocidad de propagación. En este caso: [math] \vec a=\frac{\vec j}{10}, \qquad \vec b= \pi \vec j, \qquad t=0. [/math] por tanto [math]\vec u(x,y)=\frac{\sin(\pi y)}{10}\vec j[/math].

Como función temperatura se toma [math]T(x,y)=e^{-y}[/math]

1 Placa

Para obtener el mallado de la placa rectangular se discretiza la placa según los ejes x e y (longitudinal y transversal)con los valores dados en el dominio y mediante la función meshgrid se obtiene la retícula.

 1 x=-0.5:0.1:0.5;                   %Discretización de la placa en el sentido transversal
 2 y=0:0.1:2;                        %Discretización de la placa en el sentido longitudinal
 3 [X,Y]=meshgrid(x,y);              %Obtención de la retícula rectangular(rejilla) 
 4 subplot(1,2,1)                    %Subventana 1
 5 mesh(X,Y,0*X)                     %Representación superficial con líneas entrecruzadas
 6 axis([-0.75,0.75,-0.75,2.75])     %Establecimiento de valores mínimos y máximos en los ejes representados
 7 view(2)                           %Definición del punto de observación(azimut=0,elevación=90)
 8 xlabel('EJE X(TRANSVERSAL)')      %Rótulo del eje x
 9 ylabel('EJE Y(LONGITUDINAL)')     %Rótulo del eje y
10 title('MALLADO DE LA PLACA RECTANGULAR PLANA')%Título del gráfico
11 subplot(1,2,2)                    %Subventana 2
12 mesh(X,Y,0*X)                     %Representación superficial con líneas entrecruzadas
13 view(2)                           %Definición del punto de observación(azimut=0,elevación=90)
14 axis image                        %Ejes proporcionados igualmente y ajustados al gráfico
15 xlabel('EJE X')                   %Rótulo del eje x
16 ylabel('EJE Y')                   %Rótulo del eje y


Representacionplaca.jpg

En el gráfico se observa la representación de la placa plana de forma rectangular sobre la que se aplican la temperatura y las deformaciones definidas anteriormente.


2 Temperatura

La temperatura de la placa no es la misma en todos los puntos, sino que depende de la función [math]T(x,y)=e^{-y}[/math]. Por ser una función que únicamente depende de la variable [math]y[/math], la temperatura será la misma para todos los puntos de igual componente longitudinal. El foco está situado en el origen de coordenadas, por lo que la temperatura será mayor en los puntos de más baja ordenada, e irá disminuyendo conforme aumente la ordenada de los puntos tomados.

 1 x=-0.5:0.1:0.5;             %Discretización de la placa en el sentido longitudinal
 2 y=0:0.1:2;                  %Discretización de la placa en el sentido longitudinal
 3 [X,Y]=meshgrid(x,y);        %Obtención de la retícula rectangular(rejilla) 
 4 T=exp(-Y);                  %Función temperatura
 5 subplot(1,2,1)              %Subventana 1
 6 surf(X,Y,T);                %Representación superficial con escala de colores
 7 axis([-0.75,0.75,-0.5,2.5]) %Establecimiento de valores mínimos y máximos en los ejes representados
 8 view(2)                     %Definición del punto de observación(azimut=0,elevación=90)
 9 xlabel('EJE TRANSVERSAL')   %Rótulo del eje x
10 ylabel('EJE LONGITUDINAL')  %Rótulo del eje y
11 title('TEMPERATURA DE LA PLACA')%Título del gráfico
12 axis equal                  %Ejes proporcionados con la misma escala
13 subplot(1,2,2)              %Subventana 2
14 surf(X,Y,T);                %Representación superficial con escala de colores
15 xlabel('EJE X')             %Rótulo del eje x
16 ylabel('EJE Y')             %Rótulo del eje y
17 title('INTERPRETACIÓN ESPACIAL')%Título del gráfico
18 axis equal                  %Ejes proporcionados con la misma escala


Para representar la distribución de la temperatura , se discretiza la placa y se obtiene su retícula. A continuación, se define la función temperatura y se calcula dicha función sobre la placa dada. La temperatura puede visualizarse en 2 y en 3 dimensiones.

Temperaturaplaca.jpg

En los gráficos se observa como los puntos de menos ordenada son los que mayor temperatura tienen, y como de forma progresiva esta va disminuyendo hasta alcanzar el extremo opuesto de la placa, que es donde se encuentra la menor temperatura.

A continuación, calculamos el gradiente de la temperatura para ver la dirección en la que se produce el mayor crecimiento de la función en cada punto de la placa.

[math] \vec u=\frac {d\vec u}{dx} \vec i+\frac {d\vec u}{dy} \vec j+\frac {d\vec u}{dt} \vec k = -e^{-y} [/math]

 1 u=inline('0*x','x');              %Variación nula de la temperatura de la placa en el eje tranversal 
 2 v=inline('-exp(-y)','y');         %Función que define la variación de la temperatura de la placa en el eje longitudinal
 3 x=-0.5:0.1:0.5;                   %Discretización de la placa en el sentido transversal
 4 y=0:0.1:2;                        %Discretización de la placa en el sentido longitudinal
 5 [X,Y]=meshgrid(x,y);              %Obtención de la retícula rectangular(rejilla) 
 6 U=u(X);                           %Componente transversal del grad(T)
 7 V=v(Y);                           %Componente longitudinal del grad(T)
 8 hold on
 9 quiver(X,Y,U,V)                   %Visualización del campo vectorial grad(T)
10 plot3(0,0,0,'*r')                 %Representación del foco de calor
11 
12 %Curvas de Nivel
13 T=exp(-Y);                        %Función temperatura
14 contour(X,Y,T,30,'r')             %Representación de las curvas de nivel
15 axis([-0.5,0.5,0,2])              %Establecimiento de valores mínimos y máximos en los ejes representados
16 xlabel('EJE X(TRANSVERSAL)')      %Rótulo del eje x
17 ylabel('EJE Y(LONGITUDINAL)')     %Rótulo del eje y
18 title('GRADIENTE Y CURVAS DE NIVEL DE LA TEMPERATURA')%Título del gráfico
19 hold off


Para la representación en matlab se define la función temperatura en función de la variable x, que en este caso es nula, y en función de la variable y. A continuación de define el dominio al que pertenecen estas variables y se obtiene la retícula. Sobre estos datos se visualiza el campo vectorial constituido por el gradiente y las curvas de nivel.

Gradientetemperatura.jpg

El gradiente es perpendicular a las curvas de nivel de la temperatura.


3 Desplazamientos

 1 u=inline('0*x','x');            %Variación nula del desplazamiento de la placa en 
 2                                 %el eje tranversal 
 3 v=inline('(sin(pi*y))/10','y'); %Función que define la variación del desplazamiento 
 4                                 %de la placa en el eje longitudinal
 5 x=-0.5:0.1:0.5;                 %Discretización de la placa en el sentido transversal
 6 y=0:0.1:2;                      %Discretización de la placa en el sentido longitudinal
 7 [X,Y]=meshgrid(x,y);            %Obtención de la retícula rectangular(rejilla) asociada 
 8                                 %a los vectores x e y a partir de la discretización considerada 
 9 U=u(X);                         %Componente transversal del desplazamiento
10 V=v(Y);                         %Componente longitudinal del desplazamiento
11 quiver(X,Y,U,V)                 %Visualización del campo vectorial desplazamiento(u)
12 axis([-0.5,0.5,0,2])            %Establecimiento de valores mínimos y máximos
13                                 %en los ejes representados
14 xlabel('EJE X(TRANSVERSAL)')    %Rótulo del eje x
15 ylabel('EJE Y(LONGITUDINAL)')   %Rótulo del eje y
16 title('CAMPO VECTORIAL u (DESPLAZAMIENTOS)')%Título del gráfico


Sobre la placa se producen desplazamientos definidos por el campo vectorial [math]\vec u[/math]. Para representarlo se definen las funciones de este campo en las direcciones transversal (nula) y longitudinal. Se hace el mallado y se observa como el campo de desplazamiento afecta a los puntos de la placa.

CampoU 4.1.jpg

A continuación se puede ver la diferencia entre la posición de la placa en el instante inicial y tras el desplazamiento.


 1 x=-0.5:0.1:0.5;         %Discretización de la placa en el sentido transversal
 2 y=0:0.1:2;              %Discretización de la placa en el sentido longitudinal
 3 [X,Y]=meshgrid(x,y);    %Obtención de la retícula rectangular(rejilla) asociada 
 4                          %a los vectores x e y a partir de la discretización considerada   
 5 
 6 %Sin desplazamiento
 7 subplot(1,2,1)          %Subventana 1
 8 mesh(X,Y,0*X)           %Representación superficial con líneas entrecruzadas
 9 view(2)                 %Definición del punto de observación(azimut=0,elevación=90)
10 xlabel('EJE X(TRANSVERSAL)')%Rótulo del eje x
11 ylabel('EJE Y(LONGITUDINAL)')%Rótulo del eje y
12 title('SIN DESPLAZAMIENTO')%Título del gráfico
13 axis image              %Ejes proporcionados igualmente y ajustados al gráfico
14 
15 %Con desplazamiento
16 UX=0*X;                 %Desplazamiento nulo de la placa en sentido transversal
17 UY=0.1.*sin(pi*Y);      %Desplazamiento de la placa en sentido longitudinal
18 subplot(1,2,2)          %Subventana 1
19 mesh(X+UX,Y+UY,0*X);    %Representación superficial con líneas entrecruzadas
20                         %de los desplazamientos producidos en la placa
21 view(2)                 %Definición del punto de observación(azimut=0,elevación=90)
22 xlabel('EJE X(TRANSVERSAL)')%Rótulo del eje x
23 ylabel('EJE Y(LONGITUDINAL)')%Rótulo del eje y
24 title('CON DESPLAZAMIENTO')%Título del gráfico
25 axis image              %Ejes proporcionados igualmente y ajustados al gráfico


Para ello se discretiza la placa y se observa cómo queda antes del desplazamiento y cómo una vez que se ha dejado actuar el campo sobre ella.

Desp Etapas 5.jpg


En el gráfico obtenido se puede observar cómo ha afectado el desplazamiento a cada uno de los puntos de la placa. Los puntos de la parte central han sufrido la máxima compresión, mientras que los del extremo son los que más estiramiento han tenido. Entre el centro y los extremos hay puntos cuya deformación ha sido intermedia o incluso nula.

En este caso cuesta apreciar la deformación de la placa porque la función que define el campo de desplazamientos implica una deformación muy pequeña, pero si esta se multiplicara por un número mayor los resultados de la deformación serían mucho más visibles.

Al calcular la divergencia del campo [math]u[/math] en cada punto de la placa, ésta nos indica el nivel de compresion o expansión que dicho punto ha experimentado.

[math] \vec u=\frac {d u_1}{dx}+\frac {d u_2}{dy}+\frac {d u_2}{dt} [/math]

 1 x=-0.5:0.1:0.5;     %Discretización de la placa en el sentido transversal
 2 y=0:0.1:2;          %Discretización de la placa en el sentido longitudinal
 3 [X,Y]=meshgrid(x,y);%Obtención de la retícula rectangular(rejilla) asociada 
 4                      %a los vectores x e y a partir de la discretización considerada   
 5 
 6 figure(1)           %Primer gráfico
 7 subplot(1,2,1)      %Subventana 1
 8 fy=(pi*cos(pi*Y))/10;%Divergencia del campo vectorial u de desplazamientos
 9 surf(X,Y,fy)        %Representación superficial con escala de colores
10 axis([-0.75,0.75,-0.5,2.5])%Establecimiento de valores mínimos y máximos
11                     %en los ejes representados
12 view(2)             %Definición del punto de observación(azimut=0,elevación=90)
13 xlabel('EJE TRANSVERSAL')%Rótulo del eje x
14 ylabel('EJE LONGITUDINAL')%Rótulo del eje y
15 title('DIVERGENCIA DESPLAZAMIENTOS')%Título del gráfico
16 axis equal          %Ejes proporcionados con la misma escala
17 subplot(1,2,2)      %Subventana 2
18 surf(X,Y,fy);       %Representación superficial con escala de colores
19 xlabel('EJE X')     %Rótulo del eje x
20 ylabel('EJE Y')     %Rótulo del eje y
21 title('INTERPRETACIÓN ESPACIAL')%Título del gráfico
22 axis equal          %Ejes proporcionados con la misma escala
23 
24 %Considerando el valor absoluto
25 figure(2)           %Segundo gráfico
26 subplot(1,2,1)      %Subventana 1
27 fy1=abs((pi*cos(pi*Y))/10);%Valor absoluto de la divergencia del campo 
28                     %vectorial u de desplazamientos
29 surf(X,Y,fy1)       %Representación superficial con escala de colores
30 axis([-0.75,0.75,-0.5,2.5])%Establecimiento de valores mínimos y máximos
31                     %en los ejes representados
32 view(2)             %Definición del punto de observación(azimut=0,elevación=90)
33 xlabel('EJE TRANSVERSAL')%Rótulo del eje x
34 ylabel('EJE LONGITUDINAL')%Rótulo del eje y
35 title('DIVERGENCIA u (VALOR ABSOLUTO)')%Título del gráfico
36 axis equal          %Ejes proporcionados con la misma escala
37 subplot(1,2,2)      %Subventana 2
38 surf(X,Y,fy1);      %Representación superficial con escala de colores
39 xlabel('EJE X')     %Rótulo del eje x
40 ylabel('EJE Y')     %Rótulo del eje y
41 title('INTERPRETACIÓN ESPACIAL')%Título del gráfico
42 axis equal          %Ejes proporcionados con la misma escala


Para obtener su visualización definimos la placa y se representa la divergencia sobre ella. En este caso se ha obtenido la gráfica de la divergencia y de su valor absoluto.

DivU 6.jpg


En el gráfico de los valores normales se observa como los puntos del centro, que son los de mayor compresión, son también los que menor divergencia tienen, y los puntos de los extremos, que son los más expandidos, coinciden con los mayores valores de la divergencia. En el resto de puntos se obtienen valores intermedios, siendo la divergencia nula en los puntos que no han sufrido deformación.

DivU 6 abs.jpg

En la gráfica de los valores absolutos la divergencia coincide para los extremos y el centro, ya que el nivel de deformación ha sido el mismo, aunque en un caso ha sido positivo y en el otro negativo.

Sin embargo, si calculásemos el rotacional del campo de desplazamientos obtendríamos que éste es nulo. Esto se debe a que los desplazamientos que tienen lugar sobre la placa no implican torsiones ni rotaciones, sino que se trata de una deformación longitudinal.

[math]\nabla \times \vec u=\begin{bmatrix} i & j & k \\ \frac{d}{dx} & \frac{d}{dy} & \frac{d}{dz} \\ 0 & \vec u (y) & 0 \end{bmatrix}=0[/math]

4 Tensiones sobre la placa

En un medio lineal, isótropo y homogéneo como es nuestra placa, la ecuación de Lamé permite identificar la tensión para cada punto en función de su deformación.

La ecuación de Lamé relaciona la deformación y la tensión sobre un sólido utilizando dos variables [math]λ[/math] y [math]μ[/math] que son los coeficientes de Lamé y que en este caso ambos son iguales a 1.

De esta forma, la tensión sobre los puntos de la placa se define como:

[math]\sigma_{ij}=λ \cdot \nabla \vec u δ_{ij} + 2\cdotμ\cdotΕ_{ij}[/math]

Donde [math]Ε_{ij}[/math] es la parte simétrica del campo [math]\vec u[/math], [math]Ε_{ij}=\frac {(\nabla \vec u + \nabla \vec u ^t)}{2}[/math]

Conociendo esta ecuación y sus coeficientes se puede determinar el valor de la tensión en la dirección longitudinal, transversal y la acción conjunta de ambas.

[math]\nabla \vec u=Ε_{ij}=\begin{bmatrix} 0 & 0 & 0 \\ 0 & \frac{\pi}{10}\cdot cos(\pi y) & 0 \\ 0 & 0) & 0 \end{bmatrix}[/math]


[math]\sigma=\begin{bmatrix} \frac{\pi}{5}\cdot cos(\pi y) & 0 & 0 \\ 0 & \frac{\pi}{10}\cdot cos(\pi y) & 0 \\ 0 & 0 & \frac{\pi}{5}\cdot cos(\pi y) \end{bmatrix}[/math]


Tensión transversal:

[math]i \cdot \sigma \cdot i=(1, 0, 0) \cdot \begin{bmatrix} \frac{\pi}{5}\cdot cos(\pi y) & 0 & 0 \\ 0 & \frac{\pi}{10}\cdot cos(\pi y) & 0 \\ 0 & 0 & \frac{\pi}{5}\cdot cos(\pi y) \end{bmatrix} \cdot i=\frac{\pi}{10}\cdot cos(\pi y) i[/math]


 1 %Componente en x de las Tensiones Normales
 2 
 3 u=inline('0.1*pi*cos(pi*x)','x');   %Componente de las tensiones normales en 
 4                                     %el eje transversal
 5 v=inline('0*y','y');                %Componente de las tensiones normales en 
 6                                     %el eje longitudinal
 7 x=-0.5:0.1:0.5;                     %Discretización de la placa en el sentido transversal
 8 y=0:0.1:2;                          %Discretización de la placa en el sentido longitudinal
 9 [X,Y]=meshgrid(x,y);                %Obtención de la retícula rectangular(rejilla) asociada 
10                                     %a los vectores x e y a partir de la discretización 
11                                     %considerada 
12 U=u(X);                             %Componente transversal de las tensiones normales
13 V=v(Y);                             %Componente longitudinal de las tensiones normales
14 hold on
15 mesh(X,Y,0*X)                       %Representación superficial con líneas entrecruzadas
16 axis([-0.5,0.5,0,2])                %Establecimiento de valores mínimos y máximos en los 
17                                     %ejes representados
18 view(2)                             %Definición del punto de observación(azimut=0,elevación=90)
19 quiver(X,Y,U,V,'k')                 %Visualización del campo vectorial generado por las 
20                                     %tensiones normales
21 hold off
22 xlabel('EJE X(TRANSVERSAL)')        %Rótulo del eje x
23 ylabel('EJE Y(LONGITUDINAL)')       %Rótulo del eje y
24 title('TENSIONES NORMALES DIRECCIÓN EJE X')%Título del gráfico


Tens Norm x 8.jpg


Tensión longitudinal:

[math]i \cdot \sigma \cdot i=(0, 1, 0) \cdot \begin{bmatrix} \frac{\pi}{5}\cdot cos(\pi y) & 0 & 0 \\ 0 & \frac{\pi}{10}\cdot cos(\pi y) & 0 \\ 0 & 0 & \frac{\pi}{5}\cdot cos(\pi y) \end{bmatrix} \cdot j=\frac{\pi}{10}\cdot cos(\pi y) j[/math]

 1 %Componente en x de las Tensiones Normales
 2 
 3 u=inline('0.*x','x');               %Componente de las tensiones normales en el eje 
 4                                     %transversal
 5 v=inline('0.2*pi*cos(pi*y)','y');   %Componente de las tensiones normales en 
 6                                     %el eje longitudinal
 7 x=-0.5:0.1:0.5;                     %Discretización de la placa en el sentido transversal
 8 y=0:0.1:2;                          %Discretización de la placa en el sentido longitudinal
 9 [X,Y]=meshgrid(x,y);                %Obtención de la retícula rectangular(rejilla) asociada 
10                                     %a los vectores x e y a partir de la discretización 
11                                     %considerada 
12 U=u(X);                             %Componente transversal de las tensiones normales
13 V=v(Y);                             %Componente longitudinal de las tensiones normales
14 hold on
15 mesh(X,Y,0*X)                       %Representación superficial con líneas entrecruzadas
16 axis([-0.5,0.5,0,2])                %Establecimiento de valores mínimos y máximos en los 
17                                     %ejes representados
18 view(2)                             %Definición del punto de observación(azimut=0,elevación=90)
19 quiver(X,Y,U,V,'k')                 %Visualización del campo vectorial generado por las 
20                                     %tensiones normales
21 hold off
22 xlabel('EJE X(TRANSVERSAL)')        %Rótulo del eje x
23 ylabel('EJE Y(LONGITUDINAL)')       %Rótulo del eje y
24 title('TENSIONES NORMALES DIRECCIÓN EJE Y')%Título del gráfico


Tens Norm y 8.jpg

Y a continuación se muestra la suma de las tensiones normales:


 1 u=inline('0.1*pi*cos(pi*x)','x');   %Componente de las tensiones normales en 
 2                                     %el eje transversal
 3 v=inline('0.2*pi*cos(pi*y)','y');   %Componente de las tensiones normales en 
 4                                     %el eje longitudinal
 5 x=-0.5:0.1:0.5;                     %Discretización de la placa en el sentido transversal
 6 y=0:0.1:2;                          %Discretización de la placa en el sentido longitudinal
 7 [X,Y]=meshgrid(x,y);                %Obtención de la retícula rectangular(rejilla) asociada 
 8                                     %a los vectores x e y a partir de la discretización 
 9                                     %considerada 
10 U=u(X);                             %Componente transversal de las tensiones normales
11 V=v(Y);                             %Componente longitudinal de las tensiones normales
12 hold on
13 mesh(X,Y,0*X)                       %Representación superficial con líneas entrecruzadas
14 axis([-0.5,0.5,0,2])                %Establecimiento de valores mínimos y máximos en los 
15                                     %ejes representados
16 view(2)                             %Definición del punto de observación(azimut=0,elevación=90)
17 quiver(X,Y,U,V,'k')                 %Visualización del campo vectorial generado por las 
18                                     %tensiones normales
19 hold off
20 xlabel('EJE X(TRANSVERSAL)')        %Rótulo del eje x
21 ylabel('EJE Y(LONGITUDINAL)')       %Rótulo del eje y
22 title('SUMA DE TENSIONES NORMALES') %Título del gráfico


Tensiones Sum 8.jpg


Si se calculan las tensiones tangenciales a los planos ortogonales a [math]\vec i[/math] y [math]\vec j[/math] se obtiene que ambas son nulas. Esto es consecuencia de la deformación longitudinal a la que está sometida la placa. Las tensiones en las direcciones de los ejes [math]\vec i[/math] y [math]\vec j[/math] se compensan de forma que no se producen esfuerzos de corte.

[math] \sigma \cdot i - (i \cdot \sigma \cdot i)i=0 [/math]

[math] \sigma \cdot j - (j \cdot \sigma \cdot j)j=0 [/math]