Diferencia entre revisiones de «Presa triangular. Grupo 12.»
(→Rotacional \left | ∇ \times \vec{u} \right |) |
|||
| Línea 537: | Línea 537: | ||
title('campo de fuerzas'); | title('campo de fuerzas'); | ||
hold off}} | hold off}} | ||
| − | |||
| − | |||
=Masa total de la placa triangular= | =Masa total de la placa triangular= | ||
Revisión del 13:09 5 dic 2024
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Representación de campos de temperatura y deformaciones en una presa triangular (Grupo 12) |
| Asignatura | Teoría de Campos |
| Curso | 2024-25 |
| Autores |
|
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Visualización de campos escalares y vectoriales en elasticidad. Consideramos presa representada por una placa triangular plana (en dimensión 2) que ocupa la región [math](x, y) ∈ [-1, 1]×[0, f(x)][/math], donde [math]f(x)=min(3,3/2(2-x))[/math]
• Parametrizar la superficie
• La temperatura viene dada por la función:
• Los desplazamientos se corresponden con el campo:
• Tomar como densidad:
Contenido
- 1 Dibujo del mallado que representa los puntos interiores del sólido.
- 2 Gradiente y curvas de nivel de la temperatura
- 3 Cálculo de energía calorífica con la Ley de Fourier
- 4 Variación de la Temperatura
- 5 Campo de vectores en el sólido
- 6 Representación gráfica del desplazamiento del sólido
- 7 Divergencia [math]∇·\vec{u}[/math]
- 8 Rotacional [math]\left | ∇ \times \vec{u} \right |[/math]
- 9 Tensor de tensiones
- 10 Tensiones tangenciales al plano ortogonal a [math]\vec{i}[/math]
- 11 Tensión de Von Mises
- 12 Campo de fuerzas que actúa sobre la placa
- 13 Masa total de la placa triangular
1 Dibujo del mallado que representa los puntos interiores del sólido.
Esta grafica muestra el mallado de la placa triangular y el código utilizado en MatLab para obtenerlo. Un breve resumen del funcionamiento del codigo seria:
- En las primeras dos lineas de codigo discretizamos las variables x1 e y1.
- En la tercera y en la cuarta línea escribimos los comandos para crear el mallado.
- Finalmente las dos penúltimas lineas servirán para nombrar a los ejes x e y respectivamente, mientras que las últimos dos sirven para añadirle un título a nuestra gráfica y visualizar en planta nuestra placa.
h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
mesh(x2, y2, z2); % Gráfico de la región plana
hold on;
x_borde = x1; % Bordes de la región
y_borde = arrayfun(f, x_borde); % Límite superior según f(x)
plot3(x_borde, y_borde, zeros(size(x_borde)), 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([0 0], [0 f(0)], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([2 2], [0 f(2)], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
plot3([0 2], [0 0], [0 0], 'Color', [0.2, 0.4, 0.6], 'LineWidth', 2);
axis equal;
axis([-1, 3, -1, 4]); % Límite de los ejes
xlabel('Eje X');
ylabel('Eje Y');
title('Mallado de la Presa');
view(2); % Vista en 2D
grid on;
hold off;
2 Gradiente y curvas de nivel de la temperatura
La temperatura viene dada por la siguiente función:Y particularizado a este caso queda de la siguiente forma:
2.1 Representación curvas de nivel de temperatura
La siguiente gráfica representa las curvas de nivel de temperatura de nuestra presa calculadas a partir del código expuesto.
%Definir la figura
h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
%Campo temperatura
T = (y2 .* x2.^2) / 2; % Función de temperatura
T(~Region) = NaN; % Filtra puntos fuera de la región
%Definir curvas de nivel
contour3(x2, y2, T, 20, 'LineWidth', 2); % Gráfico de curvas de nivel en 3D
colorbar; % Muestra la barra de colores asociada a los valores de temperatura
2.2 Representación de temperatura y punto máximo
El siguiente código de Mathlab define el campo de temperaturas del modelo simplificado de la presa. Además, devuelve el valor máximo y localiza donde se produce. La temperatura máxima alcanzada es de 0.88.
%Definir la figura
h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
%Campo temperatura
Temp = (y2 .* x2.^2) / 2; % Función de temperatura
Temp(~Region) = NaN; % Filtra puntos fuera de la región
surf(x2, y2, Temp, 'EdgeColor', 'none'); % Superficie en 3D
hold on;
%Calcular los puntos máximos
[maxTemp, idx] = max(Temp(:)); % Encuentra el valor máximo y su índice
[x_max, y_max] = ind2sub(size(Temp), idx); % Convierte índice lineal a coordenadas
x_coord = x2(x_max, y_max); % Coordenada X del máximo
y_coord = y2(x_max, y_max); % Coordenada Y del máximo
plot3(x_coord, y_coord, maxTemp, 'ro', 'MarkerSize', 8, 'LineWidth', 2); % Punto rojo para el máximo
text(x_coord, y_coord, maxTemp, sprintf(' Maximo: %.2f', maxTemp), 'Color', 'r', 'FontSize', 10); % Texto del valor máximo
2.3 Gradiente de T
Se ha diseñado un código de Mathlab para calcular el gradiente de la función de temperatura y dibujarlo junto a sus curvas de nivel.
En este problema en concreto, el gradiente es sencillo de calcular y se resuelve de manera inmediata analíticamente.
%Definir la figura
h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
%Campo temperatura
T = (y2 .* x2.^2) / 2; % Función de temperatura
T(~Region) = NaN; % Filtra puntos fuera de la región
%Campo de Gradiente
[Tx, Ty] = gradient(T, h); % Calcula el gradiente de T(x, y)
Tx(~Region) = NaN; % Filtra los componentes del gradiente fuera de la región
Ty(~Region) = NaN;
%Dibujar el campo de Curvas de nivel y dibujar curvas de nivel
z_surface = T; % Superficie para representar las curvas de nivel
contour3(x2, y2, z_surface, 20, 'LineWidth', 2); % Curvas de nivel en 3D
hold on;
scale = 2;
%gradiente
quiver3(x2, y2, z_surface, scale*Tx, scale*Ty, zeros(size(Tx)), 'r', 'LineWidth', 1.5); % Vectores del gradiente
axis equal;
axis([0, 2, 0, 3, 0, 1]); % Límites de los ejes
xlabel('Eje X');
ylabel('Eje Y');
zlabel('Temperatura T(x, y)');
title('Curvas de Nivel y Gradiente de la Temperatura');
colorbar; % Barra de colores para la escala de temperatura
grid on;
hold off;3 Cálculo de energía calorífica con la 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]. Para poder calcular la energía calorífica, primero debemos de calcular el gradiente de la temperatura, que viene dada por:El gradiente un campo escalar se obtiene derivando parcialmente respecto de cada coordenada, por lo que el gradiente del campo es:
y por lo tanto, la energía calorífica [math] \vec{Q} [/math] es:
Una vez calculado, se procede a dibujarlo utilizando Matlab:
clear all
%Definir la figura
h = 1/10; % Paso de muestreo
x1 = 0:h:2;
y1 = 0:h:3;
[x2, y2] = meshgrid(x1, y1); % Crea una malla 2D para las coordenadas x e y
f = @(x) min(3, (3/2) * (2 - x)); % Función límite
Region = (y2 <= f(x2)); % Condición para estar dentro de la región
z2 = zeros(size(x2)); % Altura (en este caso, z es plano en 0)
x2(~Region) = NaN; % Puntos fuera de la región se descartan
y2(~Region) = NaN;
%Campo temperatura
T = (y2 .* x2.^2) / 2; % Función de temperatura
T(~Region) = NaN; % Filtra puntos fuera de la región
%Campo de Gradiente
[Tx, Ty] = gradient(T, h); % Calcula el gradiente de T(x, y)
Tx(~Region) = NaN; % Filtra los componentes del gradiente fuera de la región
Ty(~Region) = NaN;
%Campo de energía
[Tx, Ty] = gradient(T, h); % Gradiente de T(x, y)
Qx = -Tx; % Componente x del flujo de energía calorífica
Qy = -Ty; % Componente y del flujo de energía calorífica
Qx(~Region) = NaN; % Filtra los valores fuera de la región
Qy(~Region) = NaN;
%Dibuja curva de nivel
z_surface = T; % Superficie para representar las curvas de nivel
contour3(x2, y2, z_surface, 20, 'LineWidth', 2); % Curvas de nivel en 3D
hold on
%Vector de flujo de energía
scale = 1.5;
quiver3(x2, y2, z_surface, scale*Qx, scale*Qy, zeros(size(Qx)), 'r', 'LineWidth', 1.5);
%Dibujar la grfica de calor
axis equal;
axis([0, 2, 0, 3, 0, 1]); % Límites de los ejes
xlabel('Eje X');
ylabel('Eje Y');
zlabel('Temperatura T(x, y)');
title('Curvas de Nivel y Flujo de Energía Calorífica en 3D');
colorbar; % Muestra una barra de colores asociada a la temperatura
grid on;
hold off;4 Variación de la Temperatura
5 Campo de vectores en el sólido
Se tiene que:
A continuación se adjunta el resultado gráfico, así como el código utilizado en Matlab:
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
% Crear el mallado
[Mx, My] = meshgrid(x1, y1);
My(My > f(Mx)) = NaN; % sive para que no se dibujen los puntos de fuera del triangulo ya que meshgrid lo pone al ser un mallado
% Campo vectorial
uy= ((-My./ 25).*Mx);
ux = ((1/25.*(2-Mx)).* My);
hold on
axis([-0.5, 2.5, -0.5, 3.5]);
mesh(Mx, My, 0*Mx);
quiver(Mx, My, ux, uy, 1.5, 'b'); % Campo vectorial
hold off;
%El único pto fijo es (0,0) por que se anulan los despazamientos.
6 Representación gráfica del desplazamiento del sólido
A continuación se incluye la representación del sólido previa al movimiento y después del movimiento, así como una figura que contiene la representación del sólido previa y tras el desplazamiento, para lo que se ha utilizado el comando subplot. Se han utilizado datos definidos en el apartado anterior. También se adjunta el programa de Matlab utilizado para la representación.
subplot(1,2,1)
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
% Crear el mallado
[Mx, My] = meshgrid(x1, y1);
My(My > f(Mx)) = NaN; % Sive para que no se dibujen los puntos de fuera del triángulo
figure(2)
subplot(1,2,1)
hold on
grid on
axis([-0.5, 2.5, -0.5, 3.5]);
mesh(Mx, My, 0*Mx);
view(2)
axis equal
title('Antes del desplazamiento')
xlabel('Eje x')
ylabel('Eje y')
% Cálculo del desplazamiento
uy= ((-My./ 25).*Mx);
ux = ((1/25.*(2-Mx)).* My);
Mx_desplazado = Mx + ux; % Nuevo mallado desplazado en x
My_desplazado = My + uy; % Nuevo mallado desplazado en y
subplot(1,2,2)
mesh(Mx_desplazado, My_desplazado,0.*Mx); % Mallado desplazado
axis([-0.5, 2.5, -0.5, 3.5]);
view(2)
axis equal
xlabel('Eje x')
ylabel('Eje y')
title('Después del desplazamiento')
7 Divergencia [math]∇·\vec{u}[/math]
Para calcular la divergencia usaremos la siguiente formula: [math]\ \nabla \cdot \vec u =\frac{\partial \vec u_1}{\partial x} + \frac{\partial \vec u_2}{\partial y} + \frac{\partial \vec u_3}{\partial z} [/math] usada para calcular la divergencia en campos escalares.
Siendo en [math]t=0[/math]:
Obtenemos:
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
% Crear el mallado
[Mx, My] = meshgrid(x1, y1);
My(My > f(Mx)) = NaN; % sive para que no se dibujen los puntos de fuera del triangulo ya que meshgrid lo pone al ser un mallado
% Cálculo de la divergencia
D=(-2.*My/50)-(1/50);
surf(Mx,My,D);
view(0,90);
axis equal
axis([-0.5, 2.5, -0.5, 3.5]);
colorbar
title('DIVERGENCIA')
% Obtención de máximos y mínimos
Dmax=max(max(D));
Dmin=min(min(D));
8 Rotacional [math]\left | ∇ \times \vec{u} \right |[/math]
Para calcular el rotacional usaremos la siguiente formula: [math]∇ × \vec{u}= \begin{vmatrix}\vec{i} & \vec{j}& \vec{k}\\ \frac{\partial }{\partial x} & \frac{\partial }{\partial y}& \frac{\partial }{\partial z}\\ u_{1}& u_{2}& u_{3} \end{vmatrix}[/math] Usada para calcular el rotacional en campos escalares.
Siendo en [math]t=0[/math]:
Buscamos el modulo: [math]|∇ × \vec{u}|= \frac{-2(2-x)}{50}[/math]
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
%Mallado
[Mx,My]=meshgrid(x1,y1);
My(My > f(Mx)) = NaN; % Sive para que no se dibujen los puntos de fuera del triángulo
%Rotational
Rui=0*My;
Ruj=0*My;
Ruk= (-(2 - Mx))./25;
%Graficar
quiver3(Mx,My,My*0,Rui,Ruj,Ruk);
hold on
mesh(Mx, My, 0*Mx);
hold off
axis equal
axis([-0.5, 2.5, -0.5, 3.5]);
title('Rotacional');
xlabel ('Eje de las X');
ylabel('Eje de las Y');
zlabel('Eje de las Z');
9 Tensor de tensiones
Para la realización de este apartado introduciremos dos nuevos conceptos: el tensor de deformaciones, Ԑ, y el tensor de tensiones, σ, definidos a continuación,donde Ԑ será la parte simétrica del tensor [math]∇·\vec{u}[/math]; 1 es el tensor identidad en [math]R^3[/math], y ([math]λ[/math], [math]µ[/math]) son los llamados coeficientes de Lamé, que determinan las características elásticas de cada material. Para este caso tomaremos que [math]λ=µ=1[/math]. Se hallaran las tensiones normales en la dirección de los ejes cartesianos, y se graficarán en caso de ser no nulas.
Recordando el vector
previamente definido, el primer paso será calcular su gradiente:
Con estos resultados, calculamos el tensor de deformaciones:
Con la divergencia del campo hallada previamente definimos el tensor de tensores, para luego calcular las tensiones normales a los ejes.
[math]\vec{i}·σ·\vec{i}=\begin{pmatrix} 1 & 0 & 0 \end{pmatrix}\begin{pmatrix} - \frac{3y}{25}-\frac{1}{50} & \frac{2-x}{25} & 0\\ \frac{2-x}{25} & - \frac{y}{25}-\frac{3}{50} & 0\\ 0 & 0 & - \frac{y}{25}-\frac{1}{50}\end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}=\begin{pmatrix} 1 & 0 & 0 \end{pmatrix}\begin{pmatrix} -\frac{3y}{25}-\frac{1}{50} \\ \frac{2-x}{25} \\ 0 \end{pmatrix}= -\frac{3y}{25}-\frac{1}{50}[/math]
[math]\vec{j}·σ·\vec{j}=\begin{pmatrix} 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} - \frac{3y}{25}-\frac{1}{50} & \frac{2-x}{25} & 0\\ \frac{2-x}{25} & - \frac{y}{25}-\frac{3}{50} & 0\\ 0 & 0 & - \frac{y}{25}-\frac{1}{50}\end{pmatrix} \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}=\begin{pmatrix} 0 & 1 & 0 \end{pmatrix}\begin{pmatrix} \frac{2-x}{25} \\ -\frac{y}{25}-\frac{3}{50} \\ 0 \end{pmatrix}=-\frac{y}{25}-\frac{3}{50}[/math]
[math]\vec{k}·σ·\vec{k}=\begin{pmatrix} 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} - \frac{3y}{25}-\frac{1}{50} & \frac{2-x}{25} & 0\\ \frac{2-x}{25} & - \frac{y}{25}-\frac{3}{50} & 0\\ 0 & 0 & - \frac{y}{25}-\frac{1}{50}\end{pmatrix} \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix}=\begin{pmatrix} 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} 0 \\ 0 \\ -\frac{y}{25}-\frac{1}{50}\end{pmatrix}= -\frac{y}{25}-\frac{1}{50}[/math]
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
%Mallado
[Mx,My]=meshgrid(x1,y1);
My(My > f(Mx)) = NaN; % Sive para que no se dibujen los puntos de fuera del triángulo
T_normal_i=(-3.*My)./25-1/50;%tensión normal dirección i
T_normal_j=-My./25-3/50;%tensión normal dirección j
T_normal_k=-My./25-1/50;%tensión normal dirección k
%Representación en 2D
subplot(1,3,1) %Tensión normal en i
surf(Mx,My,T_normal_i)
shading interp
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
view(2)
colorbar
title('Tensión normal en i')
subplot(1,3,2) %Tensión normal en j
surf(Mx,My,T_normal_j)
shading interp
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
view(2)
colorbar
title('Tensión normal en j')
subplot(1,3,3) %Tensión normal en k
surf(Mx,My,T_normal_k)
shading interp
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
view(2)
colorbar
title('Tensión normal en k')10 Tensiones tangenciales al plano ortogonal a [math]\vec{i}[/math]
Buscaremos analizar las tensiones que sufre la placa con respecto a la dirección especificada, en t = 0. Para ello, definiremos esta tensión como [math] |σ·\vec{i}−(\vec{i}·σ·\vec{i})\vec{i}|[/math]. Recordando el resultado obtenido anteriormente, [math]\vec{i}·σ·\vec{i}=0[/math], concluimos que la tensión buscada es igual a [math]σ·\vec{i}[/math]. Continuando el desarrollo,
A continuación presentamos una representación gráfica del resultado hallado.
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
% Crear el mallado
[Mx, My] = meshgrid(x1, y1);
My(My > f(Mx)) = NaN; % sive para que no se dibujen los puntos de fuera del triangulo ya que meshgrid lo pone al ser un mallado
T_tan=(2-Mx)./25;%Función de la tensión tangencial
%Representación en 2D
surf(Mx,My,T_tan)
shading interp
axis equal
xlabel('x')
ylabel('y')
zlabel('z')
view(2)
colorbar
title('Tensión tangencial a la dirección de i')
11 Tensión de Von Mises
La Tensión de Von Mises es una magnitud física escalar usada en campos como la ingeniería estructural, calculada a partir de los valores de las tensiones principales de cada punto del espacio, la cual indica la tensión a aplicar a cada punto de un material para que éste inicie su comportamiento plástico.
Sea la Tensión de Von Mises [math] \sigma_{VM} [/math], calculada para un punto P de un sólido deformable, y sean las tensiones principales del tensor tensión para dicho punto [math]\sigma_1, \sigma_2, \sigma_3[/math], correspondientes a los autovalores de [math] \sigma_{ij} [/math], entonces se comprueba que la Tensión de Von Mises viene dada por la siguiente expresión:
Repetimos el código como en anteriores apartados, añadiendo esta vez la función de Von Mises ([math]VonMises[/math]). Asimismo añadimos un bucle donde asignamos los valores de la tensión en cada punto, y finalmente representamos la gráfica.
clear all
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
% Crear el mallado
[Mx, My] = meshgrid(x1, y1);
% sive para que no se dibujen los puntos de fuera del triangulo ya que meshgrid lo pone al ser un mallado
M_VonMises=0.*My;
% Definimos la función de Von Mises siendo
% T1,T2 y T3 las tensiones elementales.
VonMises=inline('(((T1-T2)^2+(T2-T3)^2+(T3-T1)^2)/2)^(1/2)','T1','T2','T3');
[a,b]=size(Mx);
% Se ha de asignar a la matriz "M_VonMises" los valores
% de la tensión de Von Mises en cada punto de la presa triangular.
for i=1:a
for j=1:b
%Introducimos la Matriz Tensión
MTension=[[((-6.*My(i,j)-1)./50);(2-Mx(i,j)./25);0],[(2-Mx(i,j)./25);((-2.*My(i,j)-6)./50);0],[0;0;((-2.*My(i,j)-1)./50)]];
%Calculamos los autovalores de la Matriz Tensión
Lamb=eig(MTension);
T1=Lamb(1,1);
T2=Lamb(2,1);
T3=Lamb(3,1);
%¿Sustituye el diagonal por autovalores de Matriz tensión?
M_VonMises(i,j)=VonMises(T1,T2,T3);
end
end
My(My > f(Mx)) = NaN;
axis equal
% Von Mises.
surf(Mx,My,M_VonMises);
shading flat
% Se pone título a la gráfica.
title('Von Mises');
% Se da nombre a los ejes.
xlabel('Eje de las X');
ylabel('Eje de las Y');
% Se da equidistancia a los ejes.
axis equal;
% Se define el rango de visión de la gráfica.
axis([-0.5, 2.5, -0.5, 3.5]);
% Se le aplica una barra con colores en función
% de la tension de Von Mises en cada punto.
colorbar;
view(2)
12 Campo de fuerzas que actúa sobre la placa
h = 1/10; % Paso de muestreo
x1 = 0:h:2; % Eje x
f = @(x1) min(3, 3/2 * (2 - x1));
y1 = 0:h:max(f(x1));
%Mallado
[Mx,My]=meshgrid(x1,y1);
My(My > f(Mx)) = NaN; % Sive para que no se dibujen los puntos de fuera del triángulo
Fi=Mx.*0;
Fj=Mx.*0;
% Cálculo de F
Fj=-(1/25+Fj);
%graficar
figure
hold on
mesh(Mx,My,0.*Mx)
quiver(Mx,My,Fi,Fj)
view (2)
xlabel('Eje x')
ylabel('Eje y')
axis([-0.5, 2.5, -0.5, 3.5]);
title('campo de fuerzas');
hold off
13 Masa total de la placa triangular
Para calcular la masa de una sección de la presa se procede a realizar la integración de la función de densidad dada en el enunciado a través de dicha superficie.
Se recuerda la parametrización de la superficie:
Se realizan las siguientes operaciones intermedias:
[math]\vec{r'_u}=\vec{j}[/math]
[math]\vec{r'_v}=\vec{i}[/math]
Se ha tomado como densidad:
Y tomando las variables [math]u[/math] y [math]v[/math] nos queda:
Se calcula la siguiente integral:
El resultado de la integral, y por tanto la masa de la placa es de 18 unidades
