Diferencia entre revisiones de «Placa plana Grupo 41»

De MateWiki
Saltar a: navegación, buscar
(Masa)
 
(No se muestran 107 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 
{{ TrabajoED | Deformaciones de una placa plana. Grupo 41 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC24/25|2024-25]] | Jose Andres Bello Amado <br/> Pelayo Gomez Lobo <br/> Juan Pablo Garcia-Arias Vila }}
 
{{ TrabajoED | Deformaciones de una placa plana. Grupo 41 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC24/25|2024-25]] | Jose Andres Bello Amado <br/> Pelayo Gomez Lobo <br/> Juan Pablo Garcia-Arias Vila }}
  
Consideramos una placa rectangular plana (en dimensión 2) que ocupa la región <math>(x, y) ∈ [-1 , 1] × [,]</math>.
+
Consideramos una placa rectangular plana (en dimensión 2) que ocupa la región <math>(x, y) ∈ [-1 , 1] × [0,f(x)]</math>.
 
En ella vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura <math>T(x, y)</math>, que viene dada por <center><math>T(x, y)=(1-x^4)+(\frac{1}{2}-y)</math></center> y los desplazamientos <math>u(x, y)</math> producidos por la acción de una fuerza determinada. De esta forma, si definimos <math>\vec{r_{0}}(x, y)=x\vec{i}+y\vec{j}</math> el vector de posición de los puntos de la placa antes de la deformación, la posición de cada punto <math>(x, y)</math> de la placa después de la deformación viene dada por <center><math>\vec{r}(x, y)=\vec{r_{0}}(x, y)+\vec{u}(x, y)</math></center>
 
En ella vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura <math>T(x, y)</math>, que viene dada por <center><math>T(x, y)=(1-x^4)+(\frac{1}{2}-y)</math></center> y los desplazamientos <math>u(x, y)</math> producidos por la acción de una fuerza determinada. De esta forma, si definimos <math>\vec{r_{0}}(x, y)=x\vec{i}+y\vec{j}</math> el vector de posición de los puntos de la placa antes de la deformación, la posición de cada punto <math>(x, y)</math> de la placa después de la deformación viene dada por <center><math>\vec{r}(x, y)=\vec{r_{0}}(x, y)+\vec{u}(x, y)</math></center>
 
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento ondulatorio de los puntos de la misma dado por el vector  <center><math>\vec{u}(x, y) = \frac{xy \vec{i} - yx^2 \vec{j}}{10}</math></center>
 
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento ondulatorio de los puntos de la misma dado por el vector  <center><math>\vec{u}(x, y) = \frac{xy \vec{i} - yx^2 \vec{j}}{10}</math></center>
Línea 7: Línea 7:
  
 
==Mallado del Solido==
 
==Mallado del Solido==
 +
Para dibujar el mallado que represente los puntos de la placa, parametrizamos el sólido de manera que las líneas coordenadas sean iguales a la figura. Tomamos los ejes del el rectángulo <math>(x, y) ∈ [−2, 2] × [0, 3]</math> y como paso de muestreo <math>h = \frac{1}{10}</math> para las variables <math>x</math> e <math>y</math>.
 +
 
[[Archivo:MalladoPlaca.png|thumb|400px|right|Mallado Placa Plana]]
 
[[Archivo:MalladoPlaca.png|thumb|400px|right|Mallado Placa Plana]]
 
{{matlab|codigo=
 
{{matlab|codigo=
Línea 43: Línea 45:
  
 
===Curvas de Nivel===
 
===Curvas de Nivel===
 +
 
[[Archivo:CurvasNivel.png|thumb|300px|right|CurvasNivel]]
 
[[Archivo:CurvasNivel.png|thumb|300px|right|CurvasNivel]]
 
{{matlab|codigo=
 
{{matlab|codigo=
Línea 69: Línea 72:
  
 
===Superficie de la Temperatura===
 
===Superficie de la Temperatura===
 +
 
[[Archivo:SuperficieTemperatura.png|thumb|500px|right|SuperficieTemperatura]]
 
[[Archivo:SuperficieTemperatura.png|thumb|500px|right|SuperficieTemperatura]]
 
{{matlab|codigo=
 
{{matlab|codigo=
Línea 103: Línea 107:
  
 
=== Gradiente Función Temperatura===
 
=== Gradiente Función Temperatura===
[[Archivo:CurvasNivelGradiente.png|thumb|300px|right|CurvasNivelGradiente]]
+
 
 +
[[Archivo:CurvasNivelGradiente.png|thumb|350px|right|CurvasNivelGradiente]]
 
{{matlab|codigo=
 
{{matlab|codigo=
 
% Datos y Región
 
% Datos y Región
Línea 129: Línea 134:
  
 
==Ley de Fourier==
 
==Ley de Fourier==
 +
De acuerdo a la Ley de Fourier la energía calorífica <math> \vec{Q} </math> viaja de acuerdo a la fórmula <math> \vec{Q}=−κ∇T </math>, donde  <math> κ </math> es la constante de conductividad térmica de la placa que supondremos <math> κ=1 </math>.
 +
 +
 
[[Archivo:LeyFourier.png|thumb|500px|LeyFourier]]
 
[[Archivo:LeyFourier.png|thumb|500px|LeyFourier]]
 
{{matlab | codigo=
 
{{matlab | codigo=
Línea 164: Línea 172:
  
 
==Temperatura Maxima==
 
==Temperatura Maxima==
 +
La variación de temperatura máxima se puede ver en el siguiente grafico:
 +
 
[[Archivo:DireccionMaxima.png|thumb|500px|DireccionMaxima]]
 
[[Archivo:DireccionMaxima.png|thumb|500px|DireccionMaxima]]
 
{{matlab | codigo=% Datos y Región
 
{{matlab | codigo=% Datos y Región
Línea 177: Línea 187:
 
% Cálculo de la Temperatura
 
% Cálculo de la Temperatura
 
Temperatura = (1 - X.^4) .* (1/2 - Y);  
 
Temperatura = (1 - X.^4) .* (1/2 - Y);  
%   Derivadas Parciales y Gradiente
+
% Derivadas Parciales y Gradiente
 
DerivadaX = (-4*X.^3).* (1/2 - Y);   
 
DerivadaX = (-4*X.^3).* (1/2 - Y);   
 
DerivadaY = -(1-X.^4);     
 
DerivadaY = -(1-X.^4);     
Línea 208: Línea 218:
  
 
==Campos de Desplazamientos==
 
==Campos de Desplazamientos==
 +
Se puede apreciar en el grafico que los puntos que pertenezcan a [x = 0] e [y = 0] se encuentran fijos y no hay desplazamiento.
 
[[Archivo:CamposDesplazamiento.png|thumb|500px|CamposDesplazamiento]]
 
[[Archivo:CamposDesplazamiento.png|thumb|500px|CamposDesplazamiento]]
 
{{matlab | codigo=
 
{{matlab | codigo=
Línea 239: Línea 250:
 
hold off   
 
hold off   
 
}}
 
}}
 +
 +
== Desplazamiento dado por el Campo de Vectores==
 +
 +
[[Archivo:AntesDespuesDesplazamientoo.png|thumb|600px|AntesDespuesDesplazamiento]]
 +
{{matlab | codigo=
 +
% Datos y Región
 +
x = -1:h:1;
 +
y = 0:h:3;
 +
h = 1/10;
 +
f = @(x) 2 + x.^2 ;
 +
[X, Y] = meshgrid(x,y);
 +
Region = (Y <= f(X)); 
 +
X(~Region) = NaN;
 +
Y(~Region) = NaN;
 +
% Campo Desplazamiento
 +
U = @(x, y) (x .* y)/10;           
 +
V = @(x, y) (-y .* x.^2)/10;       
 +
% Puntos iniciales
 +
X0 = X;
 +
Y0 = Y;
 +
% Puntos Desplazados
 +
XX = X0 + U(X0, Y0); 
 +
YY = Y0 + V(X0, Y0); 
 +
figure
 +
% Graficar la placa antes del desplazamiento
 +
subplot(1, 2, 1)
 +
hold on
 +
mesh(X,Y,zeros(size(X)))
 +
title('Placa antes del desplazamiento')
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
axis equal
 +
axis([-2, 2, 0, 3])
 +
grid on
 +
% Graficar la placa después del desplazamiento
 +
subplot(1, 2, 2)
 +
hold on
 +
mesh(XX,YY,zeros(size(X)))
 +
title('Placa después del desplazamiento')
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
axis equal
 +
axis([-2, 2, 0, 3])
 +
grid on
 +
}}
 +
 +
==Divergencia==
 +
 +
La divergencia de un campo vectorial en 2D está dada por:  <math>\vec{u} = \frac{\partial u_x}{\partial x} + \frac{\partial u_y}{\partial y} </math>
 +
 +
Donde el campo vectorial es:  <math>\vec{u}(x, y) = u_x(x, y) \vec{i} + u_y(x, y) \vec{j} </math>
 +
 +
En este caso, el vector de desplazamiento es:    <math>\vec{u}(x, y) = \frac{(xy \vec{i} - yx^2 \vec{j})}{10}</math>
 +
 +
Entonces tenemos:
 +
<math>u_x(x, y) = \frac{xy}{10}</math> 
 +
<math>u_y(x, y) = \frac{-yx^2}{10}</math>
 +
 +
Para calcular la divergencia, necesitamos las derivadas parciales:
 +
 +
<math>\frac{\partial u_x}{\partial x} = \frac{\partial (xy)}{\partial x} = \frac{y}{10}</math>
 +
 +
<math>\frac{\partial u_y}{\partial y} = \frac{\partial (-yx^2)}{\partial y} = \frac{-x^2}{10}</math>
 +
 +
Entonces, la divergencia es: <math>\nabla \cdot \vec{u}(x, y) = \frac{y-x^2}{10}</math>
 +
 +
[[Archivo:DivergenciaPlacaa.png|500px|thumb|DivergenciaPlaca]]
 +
{{matlab|codigo=
 +
% Datos y Región
 +
h = 1/10;
 +
x = -1:h:1; 
 +
y = 0:h:3;
 +
f = @(x) 2 + x.^2;
 +
[X, Y] = meshgrid(x,y);
 +
Region = (Y <= f(X)); 
 +
X(~Region) = NaN;
 +
Y(~Region) = NaN;
 +
% Divergencia de u(x, y)
 +
Divergencia = (Y - X.^2)/10;
 +
% Grafica de la divergencia
 +
figure;
 +
surf(X, Y, Divergencia);
 +
% Asiganación ejes y vista
 +
title('Divergencia de U en t = 0')
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
zlabel('Divergencia')
 +
axis equal
 +
axis([-2, 2, 0, 3])
 +
view(2)
 +
colorbar
 +
}}
 +
 +
==Rotacional==
 +
Sabiendo que <math>\vec{u} = \frac{(xy \vec{i} - yx^2 \vec{j})}{10}</math>
 +
 +
Por lo que esto nos lleva a que:
 +
 +
<math>u_x(x, y) = \frac {xy}{10}</math>
 +
 +
<math>u_y(x, y) = \frac {-yx^2}{10}</math>
 +
 +
<math>∇ × \vec{u}</math> = <math>\begin{vmatrix} \vec{i} & \vec{j} & \vec{k}\\  \frac{\partial }{\partial x} & \frac{\partial }{\partial y} &\frac{\partial }{\partial z} \\ \frac{xy}{10} & \frac{-yx^2}{10} & 0\end{vmatrix}  =  \frac{-2yx}{10} \vec{k}  -  \frac{x}{10} \vec{k}  =  \frac{x(-2y-1)}{10}\vec{k}; </math>
 +
 +
Y sabiendo esto a la hora de hacer el modulo para realizar esta grafica nos queda:  <math>|∇ × \vec{u}|= \frac{x(2y+1)}{10}</math>
 +
 +
[[Archivo:RotacionalPlaca.png|450px|thumb|RotacionalPlaca]]
 +
{{matlab|codigo=
 +
% Datos y Región
 +
h = 1/10; 
 +
x = -1:h:1;
 +
y = 0:h:3;
 +
[X, Y] = meshgrid(x, y); 
 +
f = @(x) 2+x.^2; 
 +
Region = (Y <= f(X)); 
 +
X(~Region) = NaN;
 +
Y(~Region) = NaN;   
 +
% Rotacional calculado
 +
Rotacion = (X.*(2.*Y+1))/10;
 +
% Asiganación ejes y vista
 +
figure
 +
surf(X,Y,Rotacion)
 +
title("Rotacional en t=0")
 +
colorbar
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
zlabel('Eje Z')
 +
}}
 +
 +
Los puntos que sufren mayor rotacional son los que se encuentren sobre las rectas [y = 0] , [y = 6] , [y = 12].
 +
 +
==Tensiones Normales==
 +
 +
Sabiendo que:      <math>\vec{u} = \frac{(xy \vec{i} - yx^2 \vec{j})}{10}</math>
 +
 +
Y que:              <math>∇ × \vec{u} = \frac{x(-2y-1)}{10}\; </math>
 +
 +
Definimos:            <math>σ = λ∇·\vec{u}1 + 2 μԐ=\begin{pmatrix}\frac{y-x^2}{10} & 0 & 0\\0 & \frac{y-x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} + \begin{pmatrix}\frac{y}{5} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{-x^2}{5} & 0\\ 0 & 0 & 0\end{pmatrix} = \begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix}</math><br><br>
 +
 +
Luego calculamos las tensiones normales en las direcciones de los ejes de coordenadas:
 +
 +
<math>\vec{i}·σ·\vec{i}=\begin{pmatrix} 1 & 0 & 0 \end{pmatrix}\begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}=\begin{pmatrix} \frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0 \end{pmatrix}\begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}=\frac{3y-x^2}{10}\vec{i}</math><br>
 +
<math>\vec{j}·σ·\vec{j}=\begin{pmatrix} 0 & 1 & 0 \end{pmatrix}\begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}=\begin{pmatrix} \frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0 \end{pmatrix}\begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}=\frac{y-3x^2}{10}\vec{j}</math><br>
 +
<math>\vec{k}·σ·\vec{k}=\begin{pmatrix} 0 & 0 & 1 \end{pmatrix}\begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}=\begin{pmatrix} 0 & 0 & \frac{y-x^2}{10} \end{pmatrix}\begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}=\frac{y-x^2}{10}\vec{k}</math><br>
 +
 +
{{matlab|codigo=
 +
% Datos y Región
 +
h = 1/10; 
 +
x = -1:h:1;
 +
y = 0:h:3;
 +
[X, Y] = meshgrid(x, y);
 +
f = @(x) 2+x.^2;
 +
Region = (Y <= f(X)); 
 +
X(~Region) = NaN;
 +
Y(~Region) = NaN;
 +
% Tensiones Normales
 +
TensionI=(3*Y-X.^2)/10;
 +
TensionJ=(Y-3*X.^2)/10;
 +
TensionK=(Y-X.^2)/10;
 +
% Configuración de la gráfica I
 +
figure(1)
 +
surf(X,Y,TensionI)
 +
axis equal
 +
view(2)
 +
colorbar
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
zlabel('Eje Z')
 +
title('Tension eje i')
 +
% Configuración de la gráfica J
 +
figure(2)
 +
surf(X,Y,TensionJ)
 +
axis equal
 +
view(2)
 +
colorbar
 +
xlabel('Eje X')
 +
ylabel('Eje y')
 +
zlabel('Eje Z')
 +
title('Tension eje j')
 +
% Configuración de la gráfica K
 +
figure(3)
 +
surf(X,Y,TensionK)
 +
axis equal
 +
view(2)
 +
colorbar
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
zlabel('Eje Z')
 +
title('Tension eje k')
 +
}}
 +
[[Archivo:TensionesNormalesI.png|315px|TensionesNormalesI]][[Archivo:TensionesNormalesJ.png|315px|TensionesNormalesJ]][[Archivo:TensionesNormalesK.png|315px|TensionesNormalesK]]
 +
 +
==Tensiones Tangenciales==
 +
Tensión tangencial al plano ortogonal a  <math>\vec{i}</math> :
 +
 +
<math> |σ·\vec{i}−(\vec{i}·σ·\vec{i})\vec{i}| = |\begin{pmatrix} \frac{3y-x^2}{10} \\ \frac{x(1-2y)}{10} \\ 0 \end{pmatrix} - \begin{pmatrix} \frac{3y-x^2}{10} \\ 0 \\ 0 \end{pmatrix}| = |\frac{x(1-2y)}{10}|</math>
 +
 +
[[Archivo:TensionesTangencialesPlaca.png|410px|thumb|TensionesTangencialesPlaca]]
 +
{{matlab|codigo=
 +
% Datos y Región
 +
h = 1/10; 
 +
x = -1:h:1;
 +
y = 0:h:3;
 +
[X, Y] = meshgrid(x, y);
 +
f = @(x) 2+x.^2;
 +
Region = (Y <= f(X)); 
 +
X(~Region) = NaN;
 +
Y(~Region) = NaN; 
 +
% Tensión
 +
tension=(X-2.*X.*Y)/10;
 +
% Asiganación ejes y vista
 +
figure
 +
quiver(X,Y,tension,tension*0)
 +
view(2)
 +
axis equal
 +
title('Tensiones tangenciales')
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
}}
 +
 +
==Von Mises==
 +
[[Archivo:VonMisesPlaca.png|410px|thumb|VonMisesPlaca]]
 +
{{matlab|codigo=
 +
% Datos y Región
 +
h = 1/10; 
 +
x = -1:h:1;
 +
y = 0:h:3;
 +
[X, Y] = meshgrid(x, y);
 +
f = @(x) 2+x.^2;
 +
Region = (Y <= f(X)); 
 +
X(~Region) = NaN;
 +
Y(~Region) = NaN;
 +
% Valores
 +
Valor1 = zeros(length(y), length(x));
 +
Valor2 = zeros(length(y), length(x));
 +
Valor3 = zeros(length(y), length(x));
 +
for i = 1:length(x)
 +
    for j = 1:length(y)
 +
        if Region(j,i)
 +
        T_ij = [(1 - X(j, i).^4) * (1/2 - Y(j, i)), 0;  0, -(1 - X(j, i).^4) * (1/2 - Y(j, i))];
 +
          AVs = eig(T_ij);
 +
          Valor1(j, i) = AVs(1);
 +
          Valor2(j, i) = AVs(2);
 +
          Valor3(j, i) = 0;
 +
        end
 +
    end
 +
end
 +
%Tensión de Von Mises
 +
VonMises = sqrt(((Valor1 - Valor2).^2 + (Valor2 - Valor3).^2 + (Valor3 - Valor1).^2) / 2);
 +
% Asiganación ejes y vista
 +
figure
 +
surf(X, Y, VonMises)
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
zlabel('Von Mises')
 +
title('Tensión de Von Mises')
 +
% Calculo y Representación Punto Maximo Valor
 +
[TensionMaxima, XX] = max(VonMises(:));
 +
[N, M] = ind2sub(size(VonMises), XX);
 +
XMaxima = X(N, M);
 +
YMaxima = Y(N, M);
 +
hold on
 +
scatter3(XMaxima, YMaxima, TensionMaxima, 100, 'r', 'filled');
 +
disp(['Valor máximo de la tensión: ', num2str(TensionMaxima)])
 +
disp(['Coordenadas del valor máximo: (x, y) = (', num2str(XMaxima), ', ', num2str(YMaxima), ')'])
 +
}}
 +
 +
Valor máximo de la tensión : 2.7605
 +
 +
Coordenadas del valor máximo : (x, y) = (-0.5, 2.2)
 +
 +
==Campo de Fuerzas==
 +
[[Archivo:CampoFuerzasPlaca.png|500px|thumb|CamposFuerzaPlaca]]
 +
{{matlab|codigo=
 +
% Paso de discretización y rango de puntos
 +
h = 1/10;
 +
x = -1:h:1;
 +
y = 0:h:3;
 +
[X, Y] = meshgrid(x, y);
 +
f = @(x) 2 + x.^2; 
 +
Region = (Y <= f(X));
 +
X(~Region) = NaN;
 +
Y(~Region) = NaN;
 +
U = (X .* Y) / 10;       
 +
V = -(Y .* X.^2) / 10;   
 +
% Gradientes de los desplazamientos
 +
[UX, UY] = gradient(U, h);
 +
[VX, VY] = gradient(V, h);
 +
% Cálculo de las fuerzas
 +
FuerzaX = UX + VX;           
 +
FuerzaY= UY + VY;           
 +
Fuerza = sqrt(FuerzaX.^2 + FuerzaY.^2); 
 +
% Valor máximo de la fuerza
 +
FuerzaMaxima = max(Fuerza(:));
 +
% Asiganación ejes y vista
 +
figure
 +
quiver(X, Y, FuerzaX, FuerzaY)
 +
axis equal
 +
axis([-2, 2, 0, 3])
 +
xlabel('Eje X')
 +
ylabel('Eje Y')
 +
title('Fuerza en la región definida')
 +
}}
 +
 +
==Masa==
 +
La masa total es de 19.43
 +
{{matlab|codigo=
 +
% Datos
 +
x1 = -1; x2 = 1;
 +
y1 = 0; y2 = f;
 +
f = @(x) 2+x.^2; 
 +
% Calculo Masa atraves Integral
 +
densidad = @(x, y) (2 - abs(x)) .* (4 - y);
 +
Masa = integral2(densidad, x1,x2,y1,y2);
 +
disp(['La masa total es: ', num2str(Masa)]);
 +
}}
 +
 +
 +
 +
 +
 +
 +
  
 
[[Categoría:Teoría de Campos]]
 
[[Categoría:Teoría de Campos]]
 
[[Categoría:TC24/25]]
 
[[Categoría:TC24/25]]

Revisión actual del 22:15 8 dic 2024

Trabajo realizado por estudiantes
Título Deformaciones de una placa plana. Grupo 41
Asignatura Teoría de Campos
Curso 2024-25
Autores Jose Andres Bello Amado
Pelayo Gomez Lobo
Juan Pablo Garcia-Arias Vila
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


Consideramos una placa rectangular plana (en dimensión 2) que ocupa la región [math](x, y) ∈ [-1 , 1] × [0,f(x)][/math].

En ella vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura [math]T(x, y)[/math], que viene dada por
[math]T(x, y)=(1-x^4)+(\frac{1}{2}-y)[/math]
y los desplazamientos [math]u(x, y)[/math] producidos por la acción de una fuerza determinada. De esta forma, si definimos [math]\vec{r_{0}}(x, y)=x\vec{i}+y\vec{j}[/math] el vector de posición de los puntos de la placa antes de la deformación, la posición de cada punto [math](x, y)[/math] de la placa después de la deformación viene dada por
[math]\vec{r}(x, y)=\vec{r_{0}}(x, y)+\vec{u}(x, y)[/math]
Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento ondulatorio de los puntos de la misma dado por el vector
[math]\vec{u}(x, y) = \frac{xy \vec{i} - yx^2 \vec{j}}{10}[/math]


1 Mallado del Solido

Para dibujar el mallado que represente los puntos de la placa, parametrizamos el sólido de manera que las líneas coordenadas sean iguales a la figura. Tomamos los ejes del el rectángulo [math](x, y) ∈ [−2, 2] × [0, 3][/math] y como paso de muestreo [math]h = \frac{1}{10}[/math] para las variables [math]x[/math] e [math]y[/math].

Mallado Placa Plana
% Datos y región
h = 1/10; 
x= -1:h:1;
y = 0:h:3;
% Mallado y limites placa
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));
Z = zeros(size(X));
X(~Region) = NaN; 
Y(~Region) = NaN;
mesh(X, Y, Z);
hold on
limx = x;
limy = arrayfun(f, limx);
%Superficie
plot3(limx, limy, zeros(size(limx)), 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([-1 -1], [0 3], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2); 
plot3([1 1], [0 3], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2); 
plot3([-1 1], [0 0], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);  
%Asignación ejes y vista
axis equal
axis([-2, 2, 0, 3])
xlabel('Eje X')
ylabel('Eje Y')
title('Mallado de la Placa')
view(2) 
grid on
hold off


2 Curvas de Nivel y Gradiente de la Temperatura

2.1 Curvas de Nivel

CurvasNivel
% Datos y región
h = 1/10;
x = -1:h:1;       
y = 0:h:3;
% Mallado y Región
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
region = (Y <= f(X)); 
Temperatura = (1 - X.^4) .* (1/2 - Y);
Temperatura(~region) = NaN;
contour3(X, Y, T, 20, 'LineWidth', 2); 
colorbar
%Asignación ejes y vista
axis equal
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Temperatura T(x, y)')
title('Curvas de Nivel de la Temperatura')
grid on
view(2)
hold off;


2.2 Superficie de la Temperatura

SuperficieTemperatura
% Datos y Región
h = 1/10;
x = -1:h:1;        
y = 0:h:3;  
% Mallado y Región
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
region = (Y <= f(X)); 
%Funcion Temperatura
Temperatura = (1 - X.^4) .* (1/2 - Y);
Temperatura(~region) = NaN; 
mesh(X, Y, Temperatura);   
hold on;
% Valores Maximos Temperatura y Coordenadas
[maxTemperatura, XX] = max(Temperatura(:)); 
[maxX, maxY] = ind2sub(size(Temperatura), XX); 
PuntoX = X(maxX, maxY); 
PuntoY = Y(maxX, maxY); 
plot3(PuntoX, PuntoY, maxTemperatura, 'ro', 'MarkerSize', 8, 'LineWidth', 2); 
text(PuntoX, PuntoY, maxTemperatura, sprintf('   %.2f', maxTemperatura), 'Color', 'r', 'FontSize', 10);
%Asignación ejes y vista
axis equal;
axis([-2, 2, 0, 3]);  
xlabel('Eje X')
ylabel('Eje Y')
title('Temperatura Superficie')
colorbar  
grid on  
hold off


2.3 Gradiente Función Temperatura

CurvasNivelGradiente
% Datos y Región
x = -1:h:1;
y = 0:h:2;
h = 1/10; 
% Función Temperatura y Gradiente
Temperatura = @(x, y) (1 - x.^4) .* (1/2 - y);
[X, Y] = meshgrid(x,y);
ValoresTemp = Temperatura(X, Y);
[Tx, Ty] = gradient(ValoresTemp, h, h); 
figure
% Grafico Gradiente
contour(X, Y, ValoresTemp, 35, 'LineWidth', 1); 
hold on
quiver(X, Y, Tx, Ty, 'r','LineWidth', 1);
% Asignación ejes y vista
axis equal 
xlabel('x')
ylabel('y')
title('Curvas de nivel de T(x, y) y gradiente ∇T')
colorbar
hold off


3 Ley de Fourier

De acuerdo a la Ley de Fourier la energía calorífica [math] \vec{Q} [/math] viaja de acuerdo a la fórmula [math] \vec{Q}=−κ∇T [/math], donde [math] κ [/math] es la constante de conductividad térmica de la placa que supondremos [math] κ=1 [/math].


LeyFourier
% Datos y Región
h = 1/10;  
x = -1:h:1;  
y = 0:h:3;  
[X, Y] = meshgrid(x, y);  
f = @(x) 2+x.^2; 
region = (Y <= f(X));  
% Gradiente Temperatura
Temperatura = (1 - X.^4) .* (1/2 - Y);  
Temperatura(~region) = NaN; 
[Tx, Ty] = gradient(Temperatura, h);  
% Aplicacion Ley Fourier
Qx = -Tx; Qy = -Ty;  
Qx(~region) = NaN;  Qy(~region) = NaN;  
SuperficieTemp = Temperatura; 
% Graficas
contour3(X, Y, SuperficieTemp, 35);  
hold on;
quiver3(X, Y, SuperficieTemp, Qx, Qy, zeros(size(Qx)), 'r');  
% Asiganación ejes y vista
axis equal  
axis([-2, 2, 0, 3, 0, 1])
xlabel('Eje X')
ylabel('Eje Y')  
zlabel('Temperatura T(x, y)')
title('Curvas de Nivel y Flujo de Energía')
colorbar
grid on
hold off
view(2)


4 Temperatura Maxima

La variación de temperatura máxima se puede ver en el siguiente grafico:

DireccionMaxima
% Datos y Región
h = 1/50;
x =-1:h:1;          
y = 0:h:3;         
[X,Y] = meshgrid(x, y);  
f = @(x) 2+x.^2;
Region = (Y <= f(X));  
Z = zeros(size(X));
X(~Region) = NaN;  
Y(~Region) = NaN;  
% Cálculo de la Temperatura
Temperatura = (1 - X.^4) .* (1/2 - Y); 
% Derivadas Parciales y Gradiente
DerivadaX = (-4*X.^3).* (1/2 - Y);  
DerivadaY = -(1-X.^4);    
gradiente = sqrt(DerivadaX.^2 + DerivadaY.^2);
% Punto Maximo Gradiente 
[MaximoGradiente, XX] = max(gradiente(:));  
[MaximaX, MaximaY] = ind2sub(size(gradiente), XX);  
PuntoMaximo = [X(MaximaX, MaximaY), Y(MaximaX, MaximaY)];  
figure;
hold on;
% Direccion Gradiente
X2 = X(1:5:end, 1:5:end);
Y2 = Y(1:5:end, 1:5:end);
DerivadaX2 = DerivadaX(1:5:end, 1:5:end);
DerivadaY2 = DerivadaY(1:5:end, 1:5:end);
% Grafico Gradiente y Punto Maximo
quiver3(X2, Y2, Z(1:5:end, 1:5:end), DerivadaX2, DerivadaY2, zeros(size(DerivadaX2)), 'LineWidth', 1, 'MaxHeadSize', 1);
plot3(PuntoMaximo(1), PuntoMaximo(2), 0, 'ro', 'MarkerSize', 10, 'LineWidth', 2); 
text(PuntoMaximo(1), PuntoMaximo(2), 0, sprintf(' %.2f', MaximoGradiente));
% Configuración de los Ejes y la Vista
axis equal
axis([-2, 2, 0, 3.1, -1, 1]);  
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Eje Z')
title('Mallado de la Superficie y Dirección de Máxima Variación de Temperatura')  
grid on
hold off


5 Campos de Desplazamientos

Se puede apreciar en el grafico que los puntos que pertenezcan a [x = 0] e [y = 0] se encuentran fijos y no hay desplazamiento.

CamposDesplazamiento
% Datos y Región
h = 1/10;
x = -1:h:1;       
y = 0:h:3;  
[X, Y] = meshgrid(x, y);  
f = @(x) 2+x.^2;  
Region = (Y <= f(X)); 
Z = zeros(size(X)); 
X(~Region) = NaN;  
Y(~Region) = NaN;  
% Campo Desplazamientos
u = (X.*Y) / 10; 
v = -(Y.*X.^2) / 10;  
% Grafica Campos Desplazamientos
figure;  
mesh(X, Y, Z); 
hold on
quiver3(X, Y, Z, u, v, zeros(size(u)), 2, 'r'); 
% Asignación ejes y vista
axis equal
axis([-2, 2, 0, 3, -0.5, 0.5]); 
xlabel('Eje X')
ylabel('Eje Y')  
zlabel('Eje Z')  
title('Campo de Desplazamientos') 
view(2)
grid on  
hold off


6 Desplazamiento dado por el Campo de Vectores

AntesDespuesDesplazamiento
% Datos y Región 
x = -1:h:1;
y = 0:h:3;
h = 1/10;
f = @(x) 2 + x.^2 ;
[X, Y] = meshgrid(x,y);
Region = (Y <= f(X));  
X(~Region) = NaN; 
Y(~Region) = NaN;
% Campo Desplazamiento
U = @(x, y) (x .* y)/10;            
V = @(x, y) (-y .* x.^2)/10;        
% Puntos iniciales
X0 = X;
Y0 = Y;
% Puntos Desplazados
XX = X0 + U(X0, Y0);  
YY = Y0 + V(X0, Y0);  
figure
% Graficar la placa antes del desplazamiento
subplot(1, 2, 1)
hold on
mesh(X,Y,zeros(size(X))) 
title('Placa antes del desplazamiento')
xlabel('Eje X')
ylabel('Eje Y')
axis equal
axis([-2, 2, 0, 3])
grid on 
% Graficar la placa después del desplazamiento
subplot(1, 2, 2)
hold on
mesh(XX,YY,zeros(size(X)))
title('Placa después del desplazamiento')
xlabel('Eje X')
ylabel('Eje Y')
axis equal
axis([-2, 2, 0, 3])
grid on


7 Divergencia

La divergencia de un campo vectorial en 2D está dada por: [math]\vec{u} = \frac{\partial u_x}{\partial x} + \frac{\partial u_y}{\partial y} [/math]

Donde el campo vectorial es: [math]\vec{u}(x, y) = u_x(x, y) \vec{i} + u_y(x, y) \vec{j} [/math]

En este caso, el vector de desplazamiento es: [math]\vec{u}(x, y) = \frac{(xy \vec{i} - yx^2 \vec{j})}{10}[/math]

Entonces tenemos: [math]u_x(x, y) = \frac{xy}{10}[/math] [math]u_y(x, y) = \frac{-yx^2}{10}[/math]

Para calcular la divergencia, necesitamos las derivadas parciales:

[math]\frac{\partial u_x}{\partial x} = \frac{\partial (xy)}{\partial x} = \frac{y}{10}[/math]

[math]\frac{\partial u_y}{\partial y} = \frac{\partial (-yx^2)}{\partial y} = \frac{-x^2}{10}[/math]

Entonces, la divergencia es: [math]\nabla \cdot \vec{u}(x, y) = \frac{y-x^2}{10}[/math]

DivergenciaPlaca
% Datos y Región
h = 1/10;
x = -1:h:1;  
y = 0:h:3;
f = @(x) 2 + x.^2;
[X, Y] = meshgrid(x,y);
Region = (Y <= f(X));  
X(~Region) = NaN; 
Y(~Region) = NaN;
% Divergencia de u(x, y)
Divergencia = (Y - X.^2)/10; 
% Grafica de la divergencia
figure;
surf(X, Y, Divergencia);
% Asiganación ejes y vista
title('Divergencia de U en t = 0')
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Divergencia')
axis equal
axis([-2, 2, 0, 3])
view(2)
colorbar


8 Rotacional

Sabiendo que [math]\vec{u} = \frac{(xy \vec{i} - yx^2 \vec{j})}{10}[/math]

Por lo que esto nos lleva a que:

[math]u_x(x, y) = \frac {xy}{10}[/math]

[math]u_y(x, y) = \frac {-yx^2}{10}[/math]

[math]∇ × \vec{u}[/math] = [math]\begin{vmatrix} \vec{i} & \vec{j} & \vec{k}\\ \frac{\partial }{\partial x} & \frac{\partial }{\partial y} &\frac{\partial }{\partial z} \\ \frac{xy}{10} & \frac{-yx^2}{10} & 0\end{vmatrix} = \frac{-2yx}{10} \vec{k} - \frac{x}{10} \vec{k} = \frac{x(-2y-1)}{10}\vec{k}; [/math]

Y sabiendo esto a la hora de hacer el modulo para realizar esta grafica nos queda: [math]|∇ × \vec{u}|= \frac{x(2y+1)}{10}[/math]

RotacionalPlaca
% Datos y Región
h = 1/10;  
x = -1:h:1; 
y = 0:h:3; 
[X, Y] = meshgrid(x, y);  
f = @(x) 2+x.^2;  
Region = (Y <= f(X));  
X(~Region) = NaN; 
Y(~Region) = NaN;    
% Rotacional calculado
Rotacion = (X.*(2.*Y+1))/10;
% Asiganación ejes y vista
figure
surf(X,Y,Rotacion)
title("Rotacional en t=0")
colorbar
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Eje Z')


Los puntos que sufren mayor rotacional son los que se encuentren sobre las rectas [y = 0] , [y = 6] , [y = 12].

9 Tensiones Normales

Sabiendo que: [math]\vec{u} = \frac{(xy \vec{i} - yx^2 \vec{j})}{10}[/math]

Y que: [math]∇ × \vec{u} = \frac{x(-2y-1)}{10}\; [/math]

Definimos: [math]σ = λ∇·\vec{u}1 + 2 μԐ=\begin{pmatrix}\frac{y-x^2}{10} & 0 & 0\\0 & \frac{y-x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} + \begin{pmatrix}\frac{y}{5} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{-x^2}{5} & 0\\ 0 & 0 & 0\end{pmatrix} = \begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix}[/math]

Luego calculamos las tensiones normales en las direcciones de los ejes de coordenadas:

[math]\vec{i}·σ·\vec{i}=\begin{pmatrix} 1 & 0 & 0 \end{pmatrix}\begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}=\begin{pmatrix} \frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0 \end{pmatrix}\begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}=\frac{3y-x^2}{10}\vec{i}[/math]
[math]\vec{j}·σ·\vec{j}=\begin{pmatrix} 0 & 1 & 0 \end{pmatrix}\begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}=\begin{pmatrix} \frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0 \end{pmatrix}\begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}=\frac{y-3x^2}{10}\vec{j}[/math]
[math]\vec{k}·σ·\vec{k}=\begin{pmatrix} 0 & 0 & 1 \end{pmatrix}\begin{pmatrix}\frac{3y-x^2}{10} & \frac{x(1-2y)}{10} & 0\\\frac{x(1-2y)}{10} & \frac{y-3x^2}{10} & 0\\ 0 & 0 & \frac{y-x^2}{10}\end{pmatrix} \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}=\begin{pmatrix} 0 & 0 & \frac{y-x^2}{10} \end{pmatrix}\begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}=\frac{y-x^2}{10}\vec{k}[/math]

% Datos y Región
h = 1/10;  
x = -1:h:1; 
y = 0:h:3; 
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));  
X(~Region) = NaN; 
Y(~Region) = NaN;
% Tensiones Normales
TensionI=(3*Y-X.^2)/10;
TensionJ=(Y-3*X.^2)/10;
TensionK=(Y-X.^2)/10; 
% Configuración de la gráfica I
figure(1)
surf(X,Y,TensionI)
axis equal
view(2)
colorbar
xlabel('Eje X')
ylabel('Eje Y') 
zlabel('Eje Z')
title('Tension eje i') 
% Configuración de la gráfica J
figure(2)
surf(X,Y,TensionJ)
axis equal
view(2)
colorbar
xlabel('Eje X')
ylabel('Eje y') 
zlabel('Eje Z')
title('Tension eje j')
% Configuración de la gráfica K
figure(3)
surf(X,Y,TensionK)
axis equal
view(2)
colorbar
xlabel('Eje X')
ylabel('Eje Y') 
zlabel('Eje Z')
title('Tension eje k')

TensionesNormalesITensionesNormalesJTensionesNormalesK

10 Tensiones Tangenciales

Tensión tangencial al plano ortogonal a [math]\vec{i}[/math] :

[math] |σ·\vec{i}−(\vec{i}·σ·\vec{i})\vec{i}| = |\begin{pmatrix} \frac{3y-x^2}{10} \\ \frac{x(1-2y)}{10} \\ 0 \end{pmatrix} - \begin{pmatrix} \frac{3y-x^2}{10} \\ 0 \\ 0 \end{pmatrix}| = |\frac{x(1-2y)}{10}|[/math]

TensionesTangencialesPlaca
% Datos y Región
h = 1/10;  
x = -1:h:1; 
y = 0:h:3; 
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));  
X(~Region) = NaN; 
Y(~Region) = NaN;  
% Tensión
tension=(X-2.*X.*Y)/10;
% Asiganación ejes y vista
figure
quiver(X,Y,tension,tension*0)
view(2)
axis equal
title('Tensiones tangenciales')
xlabel('Eje X')
ylabel('Eje Y')


11 Von Mises

VonMisesPlaca
% Datos y Región
h = 1/10;  
x = -1:h:1; 
y = 0:h:3;
[X, Y] = meshgrid(x, y);
f = @(x) 2+x.^2;
Region = (Y <= f(X));  
X(~Region) = NaN; 
Y(~Region) = NaN; 
% Valores
Valor1 = zeros(length(y), length(x)); 
Valor2 = zeros(length(y), length(x));
Valor3 = zeros(length(y), length(x)); 
for i = 1:length(x)
    for j = 1:length(y)
         if Region(j,i)
         T_ij = [(1 - X(j, i).^4) * (1/2 - Y(j, i)), 0;  0, -(1 - X(j, i).^4) * (1/2 - Y(j, i))];
          AVs = eig(T_ij);
          Valor1(j, i) = AVs(1);
          Valor2(j, i) = AVs(2);
          Valor3(j, i) = 0;
        end 
    end
end
%Tensión de Von Mises
VonMises = sqrt(((Valor1 - Valor2).^2 + (Valor2 - Valor3).^2 + (Valor3 - Valor1).^2) / 2); 
% Asiganación ejes y vista
figure
surf(X, Y, VonMises)
xlabel('Eje X')
ylabel('Eje Y')
zlabel('Von Mises')
title('Tensión de Von Mises')
% Calculo y Representación Punto Maximo Valor
[TensionMaxima, XX] = max(VonMises(:)); 
[N, M] = ind2sub(size(VonMises), XX);
XMaxima = X(N, M);
YMaxima = Y(N, M);
hold on
scatter3(XMaxima, YMaxima, TensionMaxima, 100, 'r', 'filled');
disp(['Valor máximo de la tensión: ', num2str(TensionMaxima)])
disp(['Coordenadas del valor máximo: (x, y) = (', num2str(XMaxima), ', ', num2str(YMaxima), ')'])


Valor máximo de la tensión : 2.7605

Coordenadas del valor máximo : (x, y) = (-0.5, 2.2)

12 Campo de Fuerzas

CamposFuerzaPlaca
% Paso de discretización y rango de puntos
h = 1/10;
x = -1:h:1;
y = 0:h:3;
[X, Y] = meshgrid(x, y);
f = @(x) 2 + x.^2;  
Region = (Y <= f(X)); 
X(~Region) = NaN; 
Y(~Region) = NaN;
U = (X .* Y) / 10;         
V = -(Y .* X.^2) / 10;     
% Gradientes de los desplazamientos
[UX, UY] = gradient(U, h);
[VX, VY] = gradient(V, h);
% Cálculo de las fuerzas
FuerzaX = UX + VX;             
FuerzaY= UY + VY;             
Fuerza = sqrt(FuerzaX.^2 + FuerzaY.^2);  
% Valor máximo de la fuerza
FuerzaMaxima = max(Fuerza(:));
% Asiganación ejes y vista
figure
quiver(X, Y, FuerzaX, FuerzaY)
axis equal
axis([-2, 2, 0, 3])
xlabel('Eje X')
ylabel('Eje Y')
title('Fuerza en la región definida')


13 Masa

La masa total es de 19.43

% Datos
x1 = -1; x2 = 1;
y1 = 0; y2 = f; 
f = @(x) 2+x.^2;  
% Calculo Masa atraves Integral 
densidad = @(x, y) (2 - abs(x)) .* (4 - y);
Masa = integral2(densidad, x1,x2,y1,y2);
disp(['La masa total es: ', num2str(Masa)]);