Visualización de campos escalares y vectoriales en elasticidad (Grupo 4B)
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Deformaciones de un sólido de sección semicircular. Grupo 4-B |
| Asignatura | Teoría de Campos |
| Curso | 2020-21 |
| Autores | Miguel Ángel Díaz Hernández John Cuenca Uyaguari Jesús Navarro Amador Antoni Capó Villalonga |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
El trabajo a realizar consta del estudio de la transformación que un sólido sufre.Se trata de un desplazamiento.
Se tienen definidas dos cantidades físicas que dependen de las variables [math]ρ[/math] y [math]θ[/math]:
- La temperatura \(T(ρ,θ)\).
- El campo de desplazamientos [math]\vec u(ρ,θ)[/math] producido por la acción de una fuerza determinada. Para dicho campo observaremos su gradiente, divergencia y rotacional.
Más adelante veremos las tensiones a las que el cuerpo ha sido sometido
Contenido
- 1 Introducción del sólido
- 2 Temperatura y gradiente
- 3 Calculo de campo de desplazamientos
- 4 Campo de desplazamientos
- 5 Placa antes y después del desplazamiento
- 6 Divergencia del campo desplazamientos
- 7 Rotacional del campo desplazamientos
- 8 Tensiones
- 9 Tensiones Tangenciales
- 10 Tensión de Von Mises
- 11 Círculo de Mohr
- 12 Cálculo de la masa total de la placa
1 Introducción del sólido
Suponemos el siguiente cuerpo. Para poder observar las fuerzas de desplazamiento que ocurren sobre este tomaremos una sección conveniente. En este caso es preferible cortar por un plano perpendicular al eje del cilindro.
El resultado de la sección es el anillo circular centrado en el origen y comprendido entre los radios [math]1[/math] y [math]2[/math], es decir [math]1≤x^2+y^2≤4[/math], y en el plano [math]y≥0[/math], que en coordenadas cilíndricas equivale a la región [math](ρ,θ)∈[1,2]×[0,π][/math].
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
%Dibujamos el mallado
mesh(X,Y,0*X)
axis([-3,3,-1,3]);
view(2);
title('Mallado y placa')
2 Temperatura y gradiente
Pasamos a analizar la primera de las cantidades físicas del proyecto, la temperatura \(T(ρ,θ)\)
Ésta viene dada por el campo escalar:
- [math]T(x,y)=ln(y^2+2)[/math].
Así mismo, el gradiente de la temperatura \(T(x,y)\) es el campo vectorial:
- [math]\nabla T(x,y) =\frac{2y}{y^2+2} \vec j[/math].
Temperatura:
La imagen de la izquierda muestra las curvas de nivel, en las cuales la temperatura es constante.
En la imagen de la derecha, podemos ver como la temperatura crece sobre la placa y va aumentando a medida que subimos por esta, hasta alcanzar su máximo, con una temperatura de [math] 1,8 [/math]°C ,
Gradiente:
Para visualizar el gradiente de la temperatura \(T(x,y)\) en MatLab hemos creado tres subventanas.
En las vistas 2D podemos apreciar la dirección del campo según [math]\vec j[/math] y una vista en planta del mismo
El gradiente nos indica la dirección en la que la temperatura varía más rápidamente.
En nuestro caso, podemos observar que a más altura, mayor es el gradiente, y por tanto, más varía la temperatura sobre la placa. Se puede apreciar también la ortogonalidad del gradiente respecto a las curvas de nivel.
Código matlab temperatura
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
%CAMPO ESCALAR DE TEMPERATURAS
Temperatura=log((Y.^2)+2);
Maximo=max(max(Temperatura));
%Representación de la malla en 2D en la subventana primera
subplot(1,2,1)
hold on
view(2)
axis([-3,3,-1,3]);
axis equal;
title('Lineas de nivel de temperatura en 2D')
contour(X,Y,Temperatura,10)
hold off
subplot(1,2,1)
%Representación de la malla en 3D en la subventana segunda
subplot(1,2,2);
surf(X,Y,Temperatura);
colorbar;
axis([-3,3,-1,3]);
axis vis3d
title('Temperatura en 3D')
Código matlab gradiente
%Inicializamos las variables
rho = [1:0.3:2];
h = round(pi/0.2);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
%GRADIENTE
Grad=(2*Y)./((Y.^2)+2);
%CAMPO ESCALAR DE TEMPERATURAS
Temperatura=log((Y.^2)+2);
%Creación de la subventana primera: gradiente en el campo de temperaturas
subplot(2,2,1)
hold on
surf(X,Y,Temperatura);
axis([-3,3,-1,3]);
%Dibujo del gradiente
quiver3(X,Y,Temperatura,0*X,Grad,0*Temperatura);
axis([-3,3,-1,3]);
axis vis3d
view([-60,10])
title('Gradiente 3D')
hold off
subplot(2,2,3)
hold on
surf(X,Y,Temperatura);
axis([-3,3,-1,3]);
%Dibujo del gradiente
quiver3(X,Y,Temperatura,0*X,Grad,0*Temperatura);
axis([-3,3,-1,3]);
axis vis3d
view([-90,0])
title('Gradiente 2D (vista lateral)')
hold off
%Creación de la segunda subventana: campo vectorial del gradiente
subplot(2,2,2)
quiver(X,Y,0*X,Grad);
colorbar
axis([-3,3,-1,3]);
title('Gradiente 2D')
hold on
view(2)
axis([-3,3,-1,3]);
axis equal;
title('Lineas de nivel de temperatura en 2D')
contour(X,Y,Temperatura,10)
hold off
3 Calculo de campo de desplazamientos
Ahora tendremos que evaluar la otra magnitud. Para hallar el campo de desplazamientos [math] \vec u(ρ,θ) [/math] deberemos tener en cuenta la siguiente ecuación:
- [math]\vec u(ρ,θ) = senθ f(ρ) \vec g_θ [/math]
Tendremos que hallar f(ρ).
Que los puntos en ρ=1 no sufren desplazamiento significa que
- [math]\vec u(ρ,θ) = senθ f(1) \vec g_θ = 0 ; f(1) = 0 [/math] ;
- [math]\nabla×\vec u(ρ,θ) = \frac{1}{ρ}\left|\begin{matrix} \vec g_ρ & \vec g_θ & \vec g_z \\ \frac{\partial}{\partial ρ} & \frac{\partial}{\partial θ} & \frac{\partial}{\partial z} \\ 0 & ρ^2f(ρ)senθ & 0 \end{matrix}\right| = \frac{1}{ρ}(ρ^2f(ρ))´senθ · \vec g_z[/math].
Vamos a suponer que la función [math]ρ^2f(ρ) [/math] es creciente, [math] (ρ^2f(ρ))´≥0[/math].
- [math]|\nabla×\vec u(ρ,θ)| =\frac{1}{ρ}(ρ^2f(ρ))´senθ = \frac{2ρ - 1}{10}senθ[/math].
Procedemos a integrar para resolver la EDO:
[math] (ρ^2f(ρ))´= \frac{2ρ - 1}{10} ↔ ρ^2f(ρ) = \frac{2ρ^3}{30} - \frac{ρ^3}{20} +c ↔ f(ρ) = \frac{2ρ}{30} - \frac{1}{20} + \frac{c}{ρ^2} [/math].
Imponemos la condicón [math] f(1) = 0 [/math]
[math] f(1) = \frac{2}{30} - \frac{1}{20} + c = 0 ↔ c = -\frac{1}{60} [/math]
[math] f(ρ) = \frac{ρ}{15} - \frac{1}{20} + \frac{1}{60ρ^2} [/math]
Finalmente queda que el campo de desplazamientos es:
- [math] \vec u(ρ,θ) = ( \frac{ρ}{15} - \frac{1}{20} + \frac{1}{60ρ^2} ) senθ \vec g_θ [/math]
4 Campo de desplazamientos
Para visualizar el campo de desplazamientos [math]\vec u(ρ,θ)[/math] en MatLab hemos sustituido el valor de [math] \vec g_θ [/math] :
- [math]\vec u(ρ,θ) =(\frac{ρ}{15}-\frac{1}{20}-\frac{1}{60ρ^2}) \vec g_θ = (\frac{ρ}{15}-\frac{1}{20}-\frac{1}{60ρ^2})[-ρsenθ\vec i + ρcosθ \vec j] [/math]
Así mismo observamos las dos componentes del campo vectorial:
- [math]Fx = (\frac{ρ}{15}-\frac{1}{20}-\frac{1}{60ρ^2})[-ρsenθ\vec i] [/math]
- [math]Fy = (\frac{ρ}{15}-\frac{1}{20}-\frac{1}{60ρ^2})[ρcosθ \vec j][/math]
En la siguiente imagen vemos el desplazamiento que sufrirá la placa.
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
%CAMPO VECTORIAL DE DESPLAZAMIENTOS
%Componente x(X,Y) del campo vectorial
FX=(RHO/15-1/20-1./(60*(RHO.^2))).*(sin(THETA)).*(-Y);
%Componente y(X,Y) del campo vectorial
FY=(RHO/15-1/20-1./(60*(RHO.^2))).*sin(THETA).*X;
%Representamos el campo vectorial de desplazamientos
quiver(X,Y,FX,FY)
axis([-3,3,-1,3]);
view(2)
xlabel('Eje x')
ylabel('Eje y')
title('Campo de desplazamientos sobre la placa')
5 Placa antes y después del desplazamiento
En esta imagen podemos comprobar que la zona central de la placa es la que más se desplaza, por el contrario, en la parte inferior de la placa el desplazamiento es mínimo.
u = [1:0.1:2];
h = round(pi/0.1);
v = linspace(0,pi,h);
[RHO,THETA]=meshgrid(u,v);
x = RHO.*cos(THETA);
y = RHO.*sin(THETA);
z = RHO.*0;
b =(RHO/15-1/20-1./(60*(RHO.^2))).*(sin(THETA)).*(-y);
c =(RHO/15-1/20-1./(60*(RHO.^2))).*sin(THETA).*x;
xd = x+b;
yd = y+c;
%PLACA CON DESPLAZAMIENTO
subplot(2,1,2)
j = mesh(xd,yd,z);
set(j,'EdgeColor','r');
hold on
axis([-3 3 -1 3]);
view(0,90)
title('Placa Desplazada');
hold off
%PLACA CON DESPLAZAMIENTO Y CAMPO
subplot(2,1,1)
hold on
m = mesh(x,y,z);
set(m,'EdgeColor','b');
axis([-3 3 -1 3]);
view(0,90)
title('Desplazamiento de la placa');
%CAMPO VECTORIAL DE DESPLAZAMIENTOS
%Componente x(X,Y) del campo vectorial
FX=(RHO/15-1/20-1./(60*(RHO.^2))).*(sin(THETA)).*(-y);
%Componente y(X,Y) del campo vectorial
FY=(RHO/15-1/20-1./(60*(RHO.^2))).*sin(THETA).*x;
%Representamos el campo vectorial de desplazamientos
quiver(x,y,FX,FY,'k')
hold off
6 Divergencia del campo desplazamientos
6.1 Cálculo de la divergencia
Con la divergencia mediremos la diferencia entre el flujo saliente y el entrante del campo vectorial de desplazamiento. Más adelante en la imagen podremos ver la tendencia que tiene la superficie a desviarse de su posición de partida
La divergencia del campo de desplazamientos [math]\vec u(ρ,θ)[/math] viene dada por el campo escalar:
- [math]\nabla · \vec u(ρ,θ) = \frac{1}{ρ} \frac{\partial}{\partial θ}(ρ(\frac{ρ}{15}-\frac{1}{20}-\frac{1}{60ρ^2})senθ)=(\frac{ρ}{15}-\frac{1}{20}-\frac{1}{60ρ^2})cosθ[/math].
6.2 Visualización de la divergencia
%Inicializamos las variables
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
%Divergencia
subplot(1,2,1)
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
%Función de divergencia
f=(RHO/15-1/20-1./(60*(RHO.^2))).*cos(THETA);
%Dibujamos la función de divergencia
surf(X,Y,f)
axis([-3,3,-1,3]);
colorbar;
%Vista y título de la gráfica
axis vis3d
title('Divergencia del campo de desplazamiento')
subplot(1,2,2)
surf(X,Y,f)
axis([-3,3,-1,3]);
colorbar;
%Vista y título de la gráfica
view(2)
title('Divergencia del campo de desplazamiento')
6.2.1 Comparación desplazamiento con divergencia
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
z = RHO.*0;
subplot(1,3,1)
%Dibujamos el mallado
mesh(X,Y,0*X)
axis([-3,3,-1,3]);
view(2);
title('placa')
b =(RHO/15-1/20-1./(60*(RHO.^2))).*(sin(THETA)).*(-Y);
c =(RHO/15-1/20-1./(60*(RHO.^2))).*sin(THETA).*X;
xd = X+b;
yd = Y+c;
%PLACA CON DESPLAZAMIENTO
subplot(1,3,2)
j = mesh(xd,yd,z);
set(j,'EdgeColor','r');
title('placa desplazada')
view(2)
axis([-3,3,-1,3]);
f=(RHO/15-1/20-1./(60*(RHO.^2))).*cos(THETA);
%Dibujamos la función de divergencia
subplot(1,3,3)
surf(X,Y,f)
axis([-3,3,-1,3]);
title('DIVERGENCIA')
7 Rotacional del campo desplazamientos
7.1 Cálculo del rotacional
El rotacional del campo de desplazamientos [math]\vec u(ρ,θ)[/math] viene dado por el campo vectorial:
- [math]\nabla×\vec u(ρ,θ) = \frac{1}{ρ}\left|\begin{matrix} \vec g_ρ & \vec g_θ & \vec g_z \\ \frac{\partial}{\partial ρ} & \frac{\partial}{\partial θ} & \frac{\partial}{\partial z} \\ 0 & ρ^2f(ρ)senθ & 0 \end{matrix}\right| = \frac{1}{ρ}(ρ^2f(ρ))´senθ · \vec g_z[/math].
Por lo tanto su módulo será igual a:
- [math]|\nabla×\vec u(ρ,θ)| =\frac{1}{ρ}(ρ^2f(ρ))´senθ = \frac{2ρ - 1}{10}senθ[/math].
7.2 Visualización del módulo del rotacional
La imagen siguiente muestra el valor absoluto del rotacional.
El rotacional nos permite ver la tendencia que tiene un campo vectorial a inducir rotación alrededor de un punto.
![]()
En nuestro ejercicio, la placa tendrá mayor rotacional en la parte superior central; mientras que la zona inferior no tendrá prácticamente rotacional.
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
%Función del rotacional
rot=abs((2*RHO-1)/10.*sin(THETA));
%Dibujamos la función del MÓDULO del rotacional
subplot(1,2,1)
surf(X,Y,rot)
axis([-3,3,-1,3]);
colorbar;
%Vista y título de la gráfica
axis vis3d
title('Rotacional del campo de desplazamiento')
subplot(1,2,2)
surf(X,Y,rot)
axis([-3,3,-1,3]);
colorbar;
%Vista y título de la gráfica
view(2)
title('Rotacional del campo de desplazamiento')
7.2.1 Comparación desplazamiento con rotacional
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
z = RHO.*0;
subplot(1,3,1)
%Dibujamos el mallado
mesh(X,Y,0*X)
axis([-3,3,-1,3]);
view(2);
title('placa')
b =(RHO/15-1/20-1./(60*(RHO.^2))).*(sin(THETA)).*(-Y);
c =(RHO/15-1/20-1./(60*(RHO.^2))).*sin(THETA).*X;
xd = X+b;
yd = Y+c;
%PLACA CON DESPLAZAMIENTO
subplot(1,3,2)
j = mesh(xd,yd,z);
set(j,'EdgeColor','r');
title('placa desplazada')
view(2)
axis([-3,3,-1,3]);
rot=(2*RHO-1)/10.*sin(THETA);
%Dibujamos la función de divergencia
subplot(1,3,3)
surf(X,Y,rot)
axis([-3,3,-1,3]);
title('rotacional')
8 Tensiones
Para el cálculo de las tensiones que el sólido sufre [math]σ[/math] vamos a tener en cuenta que disponemos del siguiente croquis de un sólido cualquiera
La tensión [math]σ[/math] se debe expresar a través de la sección que el plano produce, nuestra placa. Para dicho plano se toman en cuenta la tensión expresada en dos direcciones. La tensión normal y la tensión tangencial.
Analizaremos las tensiones en tres direcciones, es decir, las expresaremos en la base en la base {[math]\vec g_ρ,\frac{\vec g_θ}{ρ},\vec g_z[/math]}
8.1 Cálculo del tensor de deformaciones y de tensiones
- [math]\frac{\partial \vec u}{\partial ρ}=(\frac{1}{15}+\frac{1}{30ρ^3})senθ \vec g_θ + (\frac{ρ}{15} - \frac{1}{20} - \frac{1}{60ρ^2})senθ \frac{\partial \vec g_θ }{\partial ρ} = (\frac{1}{15}+\frac{1}{30ρ^3})senθ \vec g_θ + (\frac{ρ}{15} - \frac{1}{20} - \frac{1}{60ρ^2}) )senθ \frac{\partial \vec g_θ }{ρ} =[/math]
- [math]=(\frac{ρ}{15}+\frac{1}{30ρ^2})senθ \vec w_θ + (\frac{ρ}{15} - \frac{1}{20} - \frac{1}{60ρ^2}))senθ \vec w_θ [/math].
- [math]\frac{\partial \vec u}{\partial θ}=(\frac{ρ}{15} - \frac{1}{20} - \frac{1}{60ρ^2})cosθ \vec g_θ + (\frac{ρ}{15} - \frac{1}{20} - \frac{1}{60ρ^2})senθ \frac{\partial \vec g_θ }{\partial θ} = (\frac{ρ}{15} - \frac{1}{20} - \frac{1}{60ρ^2})cosθ \vec g_θ + (\frac{ρ}{15} - \frac{1}{20} - \frac{1}{60ρ^2})senθ \vec g_ρ =[/math]
- [math]=(\frac{ρ}{20}+\frac{1}{60ρ} - \frac{ρ^2}{15})senθ \vec w_ρ + (\frac{ρ^2}{15} - \frac{ρ}{20} - \frac{1}{60ρ}))cosθ \vec w_θ [/math].
Se define el tensor de deformaciones [math]e(\vec u(ρ,θ))[/math] como la parte simétrica del tensor [math] \nabla{\vec u(ρ,θ)} [/math], llamado también gradiente del campo de desplazamientos [math]\vec u(ρ,θ) [/math]:
- [math]e(\vec u(ρ,θ)) =\frac{\nabla{\vec u(ρ,θ)}+(\nabla{\vec u(ρ,θ)})^t}{2}[/math].
Para ello se calculan [math]\nabla{\vec u(ρ,θ)}[/math] y [math](\nabla{\vec u(ρ,θ)})^t[/math].
- [math]\nabla{\vec u(ρ,θ)}= \left(\begin{matrix} 0 & (\frac{ρ}{20}+\frac{1}{60ρ}-\frac{ρ^2}{15})senθ & 0 \\ (\frac{2ρ}{15}-\frac{1}{20}+\frac{1}{60ρ^2})senθ & (\frac{ρ^2}{15}-\frac{ρ}{20}-\frac{1}{60ρ})cosθ & 0 \\ 0 & 0 & 0 \end{matrix}\right)[/math].
- [math](\nabla{\vec u(ρ,θ)})^t = \left(\begin{matrix} 0 & (\frac{2ρ}{15}-\frac{1}{20}+\frac{1}{60ρ^2})senθ & 0 \\ (\frac{ρ}{20}+\frac{1}{60ρ}-\frac{ρ^2}{15})senθ & (\frac{ρ^2}{15}-\frac{ρ}{20}-\frac{1}{60ρ})cosθ & 0 \\ 0 & 0 & 0 \end{matrix}\right)[/math].
Por lo tanto el tensor de deformaciones será igual a:
- [math]e(\vec u(ρ,θ))= \left(\begin{matrix} 0 & (-\frac{ρ^2}{30}+\frac{11ρ}{120}-\frac{1}{40}+\frac{1}{120ρ}+\frac{1}{120ρ^2})senθ & 0 \\ (-\frac{ρ^2}{30}+\frac{11ρ}{120}-\frac{1}{40}+\frac{1}{120ρ}+\frac{1}{120ρ^2})senθ & (\frac{ρ^2}{15}-\frac{ρ}{20}-\frac{1}{60ρ})cosθ & 0 \\ 0 & 0 & 0 \end{matrix}\right)[/math].
En un medio elástico lineal, isótropo y homogéneo los desplazamientos permiten escribir el tensor de tensiones [math]\sigma(ρ,θ)[/math] a través de la fórmula:
- [math]\sigma(ρ,θ) = λ(\nabla · \vec u(ρ,θ))I+2μe(\vec u(ρ,θ)) [/math].
Donde [math]λ[/math] y [math]μ[/math] son conocidos como coeficientes de Lamé que dependen de las propiedades elásticas de cada material.
Concretamente:
- [math] λ=\frac{Eν}{(1+ν)(1-2ν)}, 2μ=\frac{E}{(1+ν)} [/math],
siendo [math]E[/math] el módulo de Young y [math]ν[/math] el parámetro de Poisson.
El tensor de tensiones quedaría como:
- [math]\sigma_{ij}(ρ,θ)=\begin{pmatrix}( \frac{ρ}{15}- \frac{1}{20} - \frac{1}{60ρ^2})cosθ& (-\frac{ρ^2}{15} +\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ& 0 \\ (-\frac{ρ^2}{15} +\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ & (\frac{2ρ^2}{15} -\frac{ρ}{30}-\frac{1}{20}-\frac{1}{30ρ}-\frac{1}{60ρ^2})cosθ & 0 \\ 0 & 0 & ( \frac{ρ}{15}- \frac{1}{20} - \frac{1}{60ρ^2})cosθ \end{pmatrix}[/math].
8.2 Cálculo de las tensiones normales
Vamos a comenzar por las tensiones en la dirección normal al plano. De acuerdo a nuestro croquis podemos apreciar que se trata de la proyección de la tensión [math] \vec σ[/math] al eje normal del plano, que tiene dirección:
- [math]\vec n[/math].
La proyección no es más que el tensor:
- [math] T = \vec n\otimes\vec n · \vec σ[/math]
8.2.1 Tensiones normales en la dirección que marca el vector [math]\vec g_ρ [/math] y [math] \vec g_z [/math]
Las tensiones normales en la dirección que marca el vector [math]\vec g_ρ [/math] y [math] \vec g_z [/math] que son de la misma magnitud, se obtienen a partir de la expresión:
- |[math](σ·\vec g_ρ))\vec g_ρ| = [/math]|[math]( \frac{ρ}{15}- \frac{1}{10} - \frac{1}{60ρ^2})cosθ\vec g_ρ + (-\frac{ρ^2}{15} +\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ\vec g_θ = ( \frac{ρ}{15}- \frac{1}{20} - \frac{1}{60ρ^2}) cosθ[/math]|
8.2.2 Tensiones normales en la dirección que marca el vector [math]\frac{\vec g_θ}{ρ} [/math]
Las tensiones normales en la dirección que marca el vector [math]\frac{\vec g_θ}{ρ} [/math] se obtienen a partir de la expresión:
- |[math](σ·\vec g_θ))\vec g_θ| = [/math]|[math] (-\frac{ρ^2}{15} +\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ\vec g_θ + (\frac{2ρ^2}{15} -\frac{ρ}{30}-\frac{1}{20}-\frac{1}{30ρ}-\frac{1}{60ρ^2})cosθ \vec g_θ = (\frac{2ρ^2}{15} -\frac{ρ}{30}-\frac{1}{20}-\frac{1}{30ρ}-\frac{1}{60ρ^2})cosθ[/math]
Para el cálculo de las tensiones normales hemos utilizado el tensor de tensiones calculado anteriormente [math]\sigma(ρ,θ)[/math] respecto de la base {[math]\vec g_ρ,\frac{\vec g_θ}{ρ},\vec g_z[/math]}.
8.3 Visualización de las tensiones normales
La primera imagen muestra el módulo de las tensiones que marca el vector [math]\vec g_ρ [/math] y [math]\vec g_z [/math].
La segunda imagen muestra el módulo de las tensiones que marca el vector [math]\frac{\vec g_θ}{ρ} [/math].
Las tres tensiones son debidas a la deformación de la placa.
Como podemos ver, las tensiones normales en la dirección [math] \frac{\vec g_θ}{ρ} [/math] son mayores que en la dirección de [math]\vec g_ρ [/math] y [math]\vec g_z [/math].
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
subplot(2,2,1)
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
t=abs((RHO./15-1/20-1./(60*RHO.^2)).*cos(THETA));
surf(X,Y,t)
colorbar;
axis([-3,3,-1,3]);
view(2);
title('Tensiones normales en la dirección g sub rho y g sub z')
subplot(2,2,2)
mesh(X,Y,t)
colorbar;
axis([-3,3,-1,3]);
view([0,0]);
title('Tensiones normales en la dirección g sub rho y g sub z')
subplot(2,2,3)
tt=abs((2*RHO.^2/15-RHO./30-1/20-1/30.*RHO-1/60.*RHO.^2).*cos(THETA));
surf(X,Y,tt)
colorbar;
axis([-3,3,-1,3]);
view(2);
title('Tensiones normales en la dirección g sub theta/rho')
subplot(2,2,4)
mesh(X,Y,tt)
colorbar;
axis([-3,3,-1,3]);
view([0,0]);
title('Tensiones normales en la dirección g sub theta/rho')
9 Tensiones Tangenciales
Las tensiones en la dirección tangencial, de acuerdo a nuestro croquis, es la proyección de la tensión [math]\vec σ [/math] al plano, que tiene dirección:
- [math]\vec t[/math].
La proyección no es más que el tensor:
- [math] T = (\vec σ - \vec n\otimes\vec n [/math]·σ)[math]\vec t[/math]
9.1 Cálculo del módulo de las tensiones tangenciales
9.1.1 Módulo de la tensiones tangenciales con respecto a los planos ortogonales a {[math]\vec g_ρ,\frac{\vec g_θ}{ρ}[/math]}
- |[math]σ·\vec g_ρ-(\vec g_ρ·(σ·\vec g_ρ))\vec g_ρ|=( \frac{ρ}{15}- \frac{1}{10} - \frac{1}{60ρ^2})cosθ\vec g_ρ + (-\frac{ρ^2}{15} +\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ\vec g_θ - ( \frac{ρ}{15}- \frac{1}{10} - \frac{1}{60ρ^2})cosθ\vec g_ρ = (-\frac{ρ^2}{15}+\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ [/math]
- |[math]σ·\vec g_ρ-(\vec g_ρ·(σ·\vec g_ρ))\vec g_ρ| = (-\frac{ρ^2}{15}+\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ [/math]
- |[math]σ·\vec g_ρ-(\vec g_ρ·(σ·\vec g_ρ))\vec g_ρ| = (-\frac{ρ^2}{15}+\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ [/math]
9.1.2 Módulo de la tensiones tangenciales con respecto a los planos ortogonales a {[math]\vec g_z[/math]}
- |[math]σ·\vec g_z-(\vec g_z·(σ·\vec g_z))\vec g_z[/math]| = 0
9.2 Visualización de las tensiones tangenciales
%Inicializamos las variables
rho = [1:0.1:2];
h = round(pi/0.1);
theta= linspace(0,pi,h);
%Creamos el mallado y la parametrización
[RHO,THETA]=meshgrid(rho,theta);
X=RHO.*cos(THETA);
Y=RHO.*sin(THETA);
subplot(2,1,1)
t=abs(-RHO.^2/15+11*RHO./60-1/20+1./(60*RHO)+1./(60*RHO.^2)).*sin(THETA);
surf(X,Y,t)
colorbar;
axis([-3,3,-1,3]);
view(2);
title('Tensiones tangenciales de g sub rho respecto al plano g sub rho y g sub theta')
subplot(2,1,2)
surf(X,Y,t)
colorbar;
axis([-3,3,-1,3]);
axis vis3d
title('Tensiones tangenciales de g sub rho respecto al plano g sub rho y g sub theta')
10 Tensión de Von Mises
10.1 Cálculo de la tensión de Von Mises
La tensión de Von Misses se define por la fórmula:
- [math]\ σ_{VM}= \sqrt {\frac{(σ_1-σ_2)^2+(σ_2-σ_3)^2+(σ_3-σ_1)^2}{2}}[/math],
donde [math]\ σ_1,σ_2,σ_3, [/math] son los autovalores del tensor de tensiones [math]σ(ρ,θ)[/math], cuya matriz de componentes respecto de la base {[math]\vec g_ρ,\frac{\vec g_θ}{ρ},\vec g_z[/math]} es:
- [math]\sigma_{ij}(ρ,θ)=\begin{pmatrix}( \frac{ρ}{15}- \frac{1}{20} - \frac{1}{60ρ^2})cosθ& (-\frac{ρ^2}{15} +\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ& 0 \\ (-\frac{ρ^2}{15} +\frac{11ρ}{60}-\frac{1}{20}+\frac{1}{60ρ}+\frac{1}{60ρ^2})sinθ & (\frac{2ρ^2}{15} -\frac{ρ}{30}-\frac{1}{20}-\frac{1}{30ρ}-\frac{1}{60ρ^2})cosθ & 0 \\ 0 & 0 & ( \frac{ρ}{15}- \frac{1}{20} - \frac{1}{60ρ^2})cosθ \end{pmatrix}[/math].
Se trata de una magnitud escalar que se suele usar como indicador para saber cuando un material inicia un comportamiento plástico y no elástico puro.
10.2 Visualización de la tensión de Von Mises
La tensión de Von Mises representa la máxima tensión que puede soportar la placa antes de iniciar un comportamiento plástico.
En el ejercicio esta tensión máxima tiene un valor de 0,31667, y se alcanza en la zona externa inferior de la placa, concretamente en [math]x=-2[/math] y [math]x=2[/math].
%tension de von misses
rho = 1:0.1:2;
h = round(pi/0.1);
theta = linspace(0,pi,h);
[RR,TT]=meshgrid(rho,theta);
xx=RR.*cos(TT);
yy=RR.*sin(TT);
M11 = @(R,T) (R/15-1/20-1/(60*R^2))*cos(T);
M12 = @(R,T) (-R^2/15+11*R/60-1/20+1/(60*R)+1/(60*R^2))*sin(T);
M22 = @(R,T) (2*R^2/15-R/30-1/20-1/(30*R)-1/(60*R^2))*cos(T);
%matriz de tensiones
sig = [];
vm = zeros(length(theta), length(rho));
for i = 1:length(theta)
for j = 1:length(rho)
sig(1,1) = M11(RR(i,j),TT(i,j));
sig(1,2) = M12(RR(i,j),TT(i,j));
sig(1,3) = 0;
sig(2,1) = M12(RR(i,j),TT(i,j));
sig(2,2) = M22(RR(i,j),TT(i,j));
sig(2,3) = 0;
sig(3,1) = 0;
sig(3,2) = 0;
sig(3,3) = M11(RR(i,j),TT(i,j));
[w,d] = eig(sig);
vm(i,j) = sqrt(((d(1,1)-d(2,2))^2+(d(2,2)-d(3,3))^2+(d(3,3)-d(1,1))^2)/2);
end
end
subplot(1,3,2);
surf(xx,yy,vm);
axis([-3,3,-1,3])
axis vis3d
colorbar;
xlabel('Eje x')
ylabel('Eje y')
zlabel('Eje z')
title('Tensión de Von Mises');
subplot(1,3,3)
hold on
m = vm(1:size(vm,1), 11);
e = xx(1:length(xx),11);
surf(xx,yy,vm);
view(0,0)
axis([-3,3,-1,3])
colorbar;
title('XOZ');
maxvm = max(m);
for k = 1:length(m)
if m(k) == maxvm
plot3(e(k),0,maxvm,'xr','markersize',10)
end
end
xlabel('Eje x')
zlabel('Eje z')
txt= ['valor max = ' num2str(maxvm)];
text(-1.85,maxvm+0.03,0.33,txt)
hold off
subplot(1,3,1)
surf(xx,yy,vm);
view(2)
axis([-3,3,-1,3])
colorbar;
title('Tensión de Von Mises');
11 Círculo de Mohr
El círculo de Mohr de tensiones es un círculo dibujado en el plano σ-τ en el que cada punto de su circunferencia representa las tensiones normales y cortantes en un plano AB con una inclinación cualquiera.
El círculo de Mohr se utiliza como recurso gráfico para el análisis de las tensiones en estados tensionales biaxiales.
Gracias a esto, podemos definir cuales son las direcciones de las tensiones principales.
En este caso, calculamos las tensiones en el punto (U(ρ,θ)[2,π/4]).
11.1 Cálculo del círculo a partir de las tensiones
%Mohr en el punto (U(ρ,θ)[2,π/4])
clc
%DATOS(tensiones)%pasando de cartesianas a cilindricas%metiendo el punto dentro de las formulas obtenidas anteriormente%%
RHO=2;
THETA=pi/4;
tensionx=abs((RHO./15-1/20-1./(60*RHO.^2)).*cos(THETA));
tensiony=abs((2*RHO.^2/15-RHO./30-1/20-1/30.*RHO-1/60.*RHO.^2).*cos(THETA));
ttangen=abs(-RHO.^2/15+11*RHO./60-1/20+1./(60*RHO)+1./(60*RHO.^2)).*sin(THETA);
%centro
sigma = (tensionx+tensiony)/2;
%radio[R]
R = (((tensionx-tensiony)/2)^2+ttangen^2)^0.5;
tau1 = +R;
tau2 = -R;
%tension principal
sigma1 = sigma + R;
sigma2 = sigma - R;
%angulo phi[phi_p]
phi_p = 0.5*atan(2*ttangen/((tensionx-tensiony)))*180/(pi);
%angulo complementario a phi_p
phi_s = 0.5*atan(-((tensionx-tensiony)/(2*ttangen)))*180/(pi);
%datos circulo
x0 = sigma; % x centro circulo
y0 = 0; % y centro circulo
N = 500; % numero de puntos
%
Theta = linspace(0,2*pi,N);
r = R * ones(1,N);
%pasamos a cartesianas
[x, y] = pol2cart(Theta, r);
%centrado
x = x + x0;
y = y + y0;
%%%%%%%%%%%%%%%%%%%%%%Linea phi%%%%%%%%%%%%%%%%%%%%%%%%%%%
x1 = sigma2:0.25:sigma1+0.25;
y1 =(ttangen/(R-sigma))*x1 - (ttangen/(R-sigma))*sigma;
x2= sigma2:0.15:sigma1;
y2=0;
x3=sigma;
y3= -R:0.15:R;
%dibujo
plot(x,y,'b-',x1,y1,'r-', x2,y2,'k.', x3 ,y3, 'k.');
title('CÍRCULO DE MOHR')
xlabel('\sigma \rightarrow ')
ylabel('\tau^{cw} \rightarrow ')
txt4 = ['\leftarrow RADIO = ' num2str(R)];
text(tau1+x0-0.05,0.5,txt4)
grid on
axis equal
%
txtC='\sigma';
text(sigma,0,txtC)
%Sigma 1
txt1 = '\leftarrow \sigma_{1}';
text(sigma1,0,txt1)
%Sigma 2
txt2 = '\leftarrow \sigma_{2}';
text(sigma2,0,txt2)
%%%%%punto de interseccion circulo%%%%%
x3 = R;
y3 = ttangen;
txt3 = 'R, \tau_{xy}';
text(x3,y3,txt3)
11.2 Interpretación del resultado
12 Cálculo de la masa total de la placa
Si la placa tiene como densidad [math]d(x,y)=1+(xy)ln(1+x+y^2)[/math], para calcular la masa de dicha placa se procede de la siguiente manera:
- Se parametriza la superficie en coordenadas cartesianas:
[math]\ x(u,v)=ucosv[/math], [math]\ y(u,v)=usenv[/math], [math]\ z(u,v)=0[/math], [math]\ u∈[1,2] [/math] y [math]\ v∈[0,π][/math].
- Se calculan las coordenadas cilíndricas de la placa:
[math]\ ρ(u,v)= \sqrt {(x(u,v))^2+(y(u,v))^2}=u [/math], [math]\ θ(u,v)=arctg(\frac{y(u,v)}{x(u,v)})=v[/math], [math]\ z(u,v)=z(u,v)=0[/math], [math]\ u∈[2,3] [/math] y [math]\ v∈[0,π][/math]. De manera que la parametrización de la placa en coordenadas cilíndricas será igual a: [math]\vec r(u,v)=u\vec g_ρ+v\vec g_θ\ [/math].
- Se calculan los vectores tangentes a la placa:
[math]\vec r_u(u,v)=\frac{\partial \vec r(u,v)}{\partial u}=\vec g_ρ[/math], [math]\vec r_v(u,v)=\frac{\partial \vec r(u,v)}{\partial v}=\vec g_θ[/math].
- Se calcula el vector normal a la placa:
[math]\vec n(u,v)=\vec r_u(u,v)×\vec r_v(u,v)=ρ(u,v)\vec g_z=u\vec g_z[/math],
cuyo módulo es: [math]|\vec n(u,v)|=|\vec r_u(u,v)×\vec r_v(u,v)|=u[/math].
La masa de la placa vendrá dada por la integral:[math]\int_{S} ddS=\int_{0}^{π}\int_{1}^{2}d(u,v)|\vec n(u,v)|dudv=\int_{0}^{π}\int_{1}^{2}d(u,v)|\vec r_u(u,v)×\vec r_v(u,v)|dudv=[/math]
[math]=\int_{0}^{π}\int_{1}^{2}u(1+(x_1(u,v)x_2(u,v))ln(1+x_1(u,v)+(x_2)^2)(u,v))dudv=9,3273 [/math] u.
Como en este caso, la primitiva es difícil de calcular, se ha utilizado, como método numérico, el siguiente programa para aproximar la integral.
%Calculo de la masa con un programa de matlab. Queremos hacernos una idea
%del resultado que obtendremos. Aqui he utilizado que sin
%(2T)=2sin(T)*cos(T)
f=@(R,T) R.*(1+R.^2.*abs(sin(2*T))/2.*log(1+R.*abs(cos(T))+(R.*sin(T)).^2));
res=integral2(f,1,2,0,pi)
%Ahora la vamos a calcular utilizando la aproximación numérica mas
%sencilla. Hago una malla en [1,2]x[0,pi]
%obtendré hxk rectángulo en esa malla. Creo una matriz A de ceros y en cada
%elemento de esa matriz guardo el valor del volumen del paralelepÃpedo
%formado por el rectángulo y el valor del integrando en uno de los
%extremos del rectángulo. Por fin sumo todos los elementos de la matriz y
%obtengo un valor aproximado de la integral
%Calculo de la masa
h=1/100; k=pi/300;
r=1:h:2;
t=0:k:pi;
A=zeros(length(r)-1,length(t)-1);
for i=2:length(r)
for j=2:length(t)
A(i,j)=h*k*r(i)*(1+r(i)^2*abs(sin(2*t(j)))/2*log(1+r(i)*abs(cos(t(j)))+(r(i)*sin(t(i)))^2));
end
end
masa=sum(sum(A))
Con nuestra aproximación la masa sería M=9,2185 u.


