Placa Plana (J52)

De MateWiki
Revisión del 15:55 27 nov 2025 de Marco.moreno (Discusión | contribuciones) (Energía calorífica(LEY DE FOURIER))

Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Placa plana. Grupo 52
Asignatura Teoría de Campos
Curso 2025-26
Autores Carlos gallego García
Arantxa Gonzales Mori
Diego Pérez Fernández
Diego Peña Ruiz
Marco Moreno González
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Introducción

Consideramos la sección longitudinal de una viga voladiza rectangular (en dimensión 2) que ocupa la región (Figura 1.) y que está fija en la pared vertical izquierda.

[math] (𝑥, 𝑦) ∈ [0, 4] × [𝑓(𝑔), 𝑔(𝑥)],𝑓(𝑥) = \frac{x}{8},𝑔(𝑥) = 2 − \frac{x}{8} [/math]

En ella vamos a suponer que tenemos definidas dos cantidades físicas: la temperatura 𝑇(𝑥, 𝑦) dada por

[math] 𝑇(𝑥, 𝑦) = (1 + (𝑦 − 1)^2)(4 - x) [/math],

y los desplazamientos 𝑢⃗(𝑥, 𝑦) producidos por la acción de una fuerza determinada que no conocemos. De esta forma, si definimos[math] 𝑟⃗0 (𝑥, 𝑦) = 𝑥⃗𝑖 + 𝑦𝑗⃗ [/math] el vector de posición de los puntos de la placa antes de la deformación, la posición de cada punto (𝑥, 𝑦) de la placa después de la deformación viene dada por

[math]𝑑(𝑥, 𝑦) = 𝑟⃗0 (𝑥, 𝑦) + 𝑢⃗(𝑥, 𝑦)[/math].

Vamos a suponer que la fuerza aplicada sobre la placa ha provocado un desplazamiento de los puntos de la misma dado por el vector

[math]𝑢⃗(𝜌, 𝜃) = −\frac{1}{20} 𝜌2cos 𝜃𝑒⃗𝜃[/math].

2 Mallado del Solido

Para dibujar el mallado,habrá que parametrizar el sólido y tomar los ejes del el rectángulo [math](x, y) ∈ [−1, 5] × [-1, 3][/math] ,además,como paso de muestreo: [math]h = \frac{1}{10}[/math] para las variables [math]x[/math] e [math]y[/math].

Figura 1
clc; clear; close all;
%Datos
h = 0.1;
u = 0:h:4;
% Para la coordenada vertical, la altura máxima de la placa es 2 por lo que 
% para mantener el paso h=0.1, necesitamos dividir esa altura en aprox 20 partes.
% y definimos un parámetro 's' que vaya de 0 a 1.
num_puntos_y=2/h; 
s=linspace(0,1,num_puntos_y + 1);
%rejilla de parámetros
[U,S]=meshgrid(u,s);

% fronteras (borde inferior y superior)
f_u=U./8;
g_u=2-U./8;

%Calcular las coordenadas físicas X e Y
% X es U
X=U;
% Y es una interpolación entre el borde inferior y superior
Y=f_u+S.*(g_u-f_u);

%Dibujar el mallado
figure(1);
clf; 
hold on;

%hacemos la rejilla y la configuramos
mesh(X,Y,zeros(size(X)),'EdgeColor',[0, 0.7, 0.7],'FaceColor','none');

%Dibujamos un contorno parecido a la imagen dada
plot(X(1,:),Y(1,:),'k','LineWidth',2)% Borde inferior
plot(X(end,:),Y(end,:),'k','LineWidth',2)% Borde superior
plot(X(:,1),Y(:,1),'k','LineWidth',2)% Borde izquierdo (pared)
plot(X(:,end),Y(:,end),'k','LineWidth',2)% Borde derecho

% Configuramos los ejes y el visionado
axis([-1 5 -1 3]);
xlabel('x');
ylabel('y');
title('Mallado de la placa plana');
view(2);
box on;
grid off;
axis equal

3 Curvas de nivel

Figure 1
clc; clear; close all;
% Definición del Mallado y Dominio
h=0.1;  %Muestreo                  
x=0:h:4;                  
y=0:h:2;           
[X,Y] = meshgrid(x, y);

% Funciones que definen la placa 
f=@(x)x./8;  % Límite inferior
g=@(x)2-x./8;  % Límite superior

% Máscara para puntos dentro de la placa
EnPlaca=Y>=f(X)&Y< g(X);

% Definición de la Temperatura y el Gradiente
% Función T(x,y) 
T=(1+(Y-1).^2).*(4-X);

% Aplicar máscara
T_plot=T;
T_plot(~EnPlaca)=NaN;

% Cálculo numérico del gradiente para los vectores (o usar fórmula exacta)
% Usamos la fórmula exacta derivada arriba para mayor precisión
U=-(1+(Y-1).^2);          % Componente x del gradiente
V=2.*(Y-1).*(4-X);    % Componente y del gradiente

% Solo mostramos vectores dentro de la placa
U(~EnPlaca)=NaN;
V(~EnPlaca)=NaN;

% Generación de la Gráfica
figure(1);
clf; % Limpiar figura
hold on;
axis equal; 
axis([-0.5 4.5 -0.5 2.5]);
grid on;
title({'Isotermas y Gradiente \nabla T', 'T(x,y) = (1+(y-1)^2)(4-x)'});
xlabel('x'); ylabel('y');

% Mapa de calor de fondo
[C_fill, h_fill] = contourf(X, Y, T_plot, 20, 'LineStyle', 'none');
colormap(jet); % Mapa de colores tipo jet
cb=colorbar;
ylabel(cb,'Temperatura T');

% Curvas de nivel
[C, h_cont]=contour(X,Y,T_plot,10,'k','LineWidth',1.5);
clabel(C,h_cont,'FontSize',9,'Color','k','FontWeight','bold');

% Campo Vectorial (Gradiente)
% Submuestreamos cada 3 puntos para que no se vea una mancha de flechas
step=3; 
quiver(X(1:step:end,1:step:end),Y(1:step:end, 1:step:end), ...
U(1:step:end,1:step:end),V(1:step:end,1:step:end), ...
1.2,'k','LineWidth',1); % '1.2' es el factor de escala de las flechas

% Dibujar bordes de la placa
plot(x,f(x),'k-','LineWidth',2); % Borde inferior
plot(x,g(x),'k-','LineWidth',2); % Borde superior
plot([0 0],[f(0) g(0)],'k-','LineWidth',2); % Pared izquierda
plot([4 4],[f(4) g(4)],'k-','LineWidth',2); % Pared derecha

% Señalar Máximo
plot(0,0,'rp','MarkerSize',12,'MarkerFaceColor','r');
plot(0,2,'rp','MarkerSize',12,'MarkerFaceColor','r');
text(0.1,0,'Max T','Color','white','FontWeight','bold');

hold off;

4 Energía calorífica(LEY DE FOURIER)

Figure 1: Flujo de Calor(Ley de Fourier)
clc; clear; close all;

% Definición del Escenario
h=0.1; 
[X,Y]=meshgrid(0:h:4,0:h:2);
f=X./8; 
g=2-X./8;
EnPlaca=Y>=f&Y<=g; % Máscara

% Cálculos y Gradiente de T
Grad_x=-(1+(Y-1).^2); 
Grad_y=2.*(Y-1).*(4-X);

% Flujo de Calor Q (Ley de Fourier)
k=1; % Constante de conductividad
Qx=-k.*Grad_x;
Qy=-k.*Grad_y;

% Borrar vectores fuera de la placa
Qx(~EnPlaca)=NaN;
Qy(~EnPlaca)=NaN;

% Visualización
figure('Name','Flujo de Calor (Ley de Fourier)');
hold on;
axis equal;axis([-0.5 4.5 -0.5 2.5]);grid on;
title({'Flujo de Calor', 'El calor viaja desde lo caliente a lo frío'});
xlabel('X'); ylabel('Y');

% Temperatura de fondo
T=(1+(Y-1).^2).*(4-X);
T(~EnPlaca)=NaN;
contourf(X,Y,T,15,'LineStyle','none','FaceAlpha',0.5);
colormap(jet);c=colorbar;ylabel(c,'Temperatura');

% Dibujar el Campo Vectorial Q
% Usamos 'step' para no pintar todas las flechas y que se vea limpio
step=3; 
idx=1:step:size(X, 1);
idy=1:step:size(X, 2);

quiver(X(idx,idy),Y(idx,idy),Qx(idx,idy),Qy(idx,idy),1.5,'k','LineWidth',0.75); 
 
% Bordes
x_b=linspace(0,4, 200);
plot(x_b,f(x_b),'k','LineWidth',2);
plot(x_b,g(x_b),'k','LineWidth',2);
plot([0 0],[0 2],'k','LineWidth',2);
plot([4 4],[0.5 1.5],'k','LineWidth',2);

% Origen del flujo
plot(0,0,'ko','MarkerFaceColor','w');
plot(0,2,'ko','MarkerFaceColor','w'); 

hold off;

5 Gradiente Térmico

6 Campo de desplazamiento

Figure 1: Campo de Desplazamientos
clc; clear; close all;

% Definición del Dominio y Mallado
h = 0.1; % Muestreo
x = 0:h:4; 
y= 0:h:2;
[X,Y]=meshgrid(x,y);

% Definición de la Placa
f=@(x)x./8;     % Límite inferior
g=@(x)2-x./8;   % Límite superior

% Máscara lógica
EnPlaca=Y>=f(X)&Y<=g(X); 

% Cálculo del Campo de Desplazamientos u
U=(1/20).*X.*Y;   % Componente horizontal
V=-(1/20).*X.^2;  % Componente vertical

% Filtrar
U(~EnPlaca)=NaN;
V(~EnPlaca)=NaN;

% Gráfica y ajuste
figure('Name', 'Campo de Desplazamientos'); 
set(gcf,'Position',[100 100 800 500]); 
hold on;
axis equal;
axis([-0.5 4.5 -1 2.5]);
grid on;
title('Campo de Desplazamientos');
xlabel('x'); ylabel('y');

% Dibujar el campo vectorial u 
quiver(X,Y,U,V,0,'r', 'LineWidth',1,'MaxHeadSize', 0.5);

% Dibujar contorno de la placa como referencia
x_borde = linspace(0,4,200);
plot(x_borde,f(x_borde),'k','LineWidth',1);
plot(x_borde,g(x_borde),'k','LineWidth',1);
plot([0 0],[f(0) g(0)],'k','LineWidth',1); % Pared izquierda
plot([4 4],[f(4) g(4)],'k','LineWidth',1); % Pared derecha

% Puntos fijos
% Buscamos puntos donde el desplazamiento sea (0,0)
% Si x=0, entonces U=0 y V=0.Por lo que toda la pared izquierda (x=0) está fija.

plot(zeros(size(y)),y,'b.','MarkerSize',15); % Puntos azules
text(0.1,1,'\leftarrow Puntos Fijos (x=0)','Color','b','FontWeight','bold');

hold off;

7 Desplazamientos

clc; clear; close all;

% Generación de la Malla
h=0.2; 
u=0:h:4; 
s=linspace(0,1,11);
[U,S]=meshgrid(u,s);

% Coordenadas Originales
f_x=U./8;
g_x=2-U./8;
X0=U;
Y0=f_x+S.*(g_x-f_x);
Z0=zeros(size(X0));

% Cálculo de la Deformación y Campo de desplazamientos u(x,y)
Ux=(X0.*Y0)./20;
Uy=-(X0.^2)./20;

% Coordenadas Deformadas
Xd=X0+Ux;
Yd=Y0+Uy;

% Visualización
figure('Name','Comparación Antes/Después','Color','w');

% ANTES
subplot(1,2,1);
mesh(X0,Y0,Z0,'EdgeColor',[0 0.7 0.9],'FaceColor','none');
hold on;
plot([0 0],[0 2],'k','LineWidth',3); % Pared fija
title('Antes del desplazamiento');
xlabel('X'); ylabel('Y');
axis equal; axis([-0.5 4.5 -1.5 2.5]); grid on;
view(2);

% DESPUÉS
subplot(1,2,2);
mesh(Xd,Yd,Z0,'EdgeColor',[0 0.7 0.9],'FaceColor','none');
hold on;
plot([0 0], [0 2],'k','LineWidth',3);
title('Después del desplazamiento');
xlabel('X'); ylabel('Y');
axis equal; axis([-0.5 4.5 -1.5 2.5]); grid on;
view(2);

8 Divergencia

La divergencia mide la variación de volumen local. El resultado del cálculo (y/20) ,indica que la placa sufre una expansión positiva que aumenta linealmente con la altura debido al estiramiento de las fibras superiores.

En la gráfica,se puede apreciar en las franjas de color: En azul esta la base,donde el volumen no cambia,degradándose progresivamente hacia el rojo intenso del borde superior donde se encuentra el punto de máxima expansión, independientemente de la posición horizontal x.

Figura 1
clc; clear; close all;
% Definir Malla y Placa
h=0.05;
[X,Y]=meshgrid(0:h:4, 0:h:2);
f=X./8;g=2-X./8; % Límites
EnPlaca=Y>=f&Y<=g; % Máscara lógica

% Cálculo de la Divergencia (div=y/20)
Div=Y./20; 
Div(~EnPlaca)=NaN;

% Visualización
figure('Name','Divergencia');clf;hold on;
axis equal; axis([-0.5 4.5 -0.5 2.5]);box on;
title('Divergencia: Cambio de Volumen');
xlabel('X'); ylabel('Y');
[C, h_cont]=contourf(X, Y, Div, 20,'LineStyle','none');
colormap(jet);
c=colorbar;ylabel(c,'Valor de Divergencia');

% Dibujar bordes negros
x_b = linspace(0, 4, 200);
plot(x_b, x_b./8,'k','LineWidth',1);
plot(x_b, 2 - x_b./8,'k','LineWidth',1);
plot([0 0],[0 2],'k','LineWidth',1);
plot([4 4],[0.5 1.5],'k','LineWidth',1);

% Señalar puntos clave
% Máxima: Ocurre en y=2 y x=0 
plot(0,2,'kp','MarkerSize',12,'MarkerFaceColor','r');
text(0.1, 2.1,'Max Expansión','FontWeight','bold');

% Nula: Ocurre en y=0 y x=0
plot(0,0,'kp','MarkerSize',12,'MarkerFaceColor','b');
text(0.1,-0.1,'Divergencia Nula','FontWeight','bold');
hold off;

9 Rotacional

clc; clear; close all;

%% Definir Malla y Placa h = 0.05;  % paso de la malla [X,Y] = meshgrid(0:h:4,0:h:2);  % malla 2D

f = X./8;  % borde inferior g = 2 - X./8;  % borde superior

EnPlaca = (Y >= f) & (Y <= g);  % máscara lógica para la placa

%% Cálculo de la Divergencia (∇·u = y/20) Div = Y./20;  % divergencia Div(~EnPlaca) = NaN;  % fuera de la placa no dibujar

%% Visualización figure('Name','Divergencia'); clf; hold on; set(gcf,'Color','w')  % fondo blanco axis equal; axis([-0.5 4.5 -0.5 2.5]); box on; title('Divergencia ∇·u: Cambio de Volumen'); xlabel('X'); ylabel('Y');

% Dibujar contornos rellenos [C, h_cont] = contourf(X,Y,Div,20,'LineStyle','none'); colormap(jet); c = colorbar; ylabel(c,'Valor de Divergencia');

%% Dibujar bordes de la placa en negro x_b = linspace(0,4,200); plot(x_b, x_b./8,'k','LineWidth',1);  % borde inferior plot(x_b, 2 - x_b./8,'k','LineWidth',1);  % borde superior plot([0 0],[0 2],'k','LineWidth',1);  % borde izquierdo plot([4 4],[0.5 1.5],'k','LineWidth',1);  % borde derecho aproximado

%% Señalar puntos clave % Máxima divergencia: borde superior y_max = g(1); x_max = 0; plot(x_max,y_max,'kp','MarkerSize',12,'MarkerFaceColor','r'); text(x_max+0.1,y_max+0.1,'Máx. Expansión','FontWeight','bold');

% Divergencia nula: aproximado en esquina inferior izquierda x_nula = 0; y_nula = 0; plot(x_nula,y_nula,'kp','MarkerSize',12,'MarkerFaceColor','b'); text(x_nula+0.1,y_nula-0.1,'Divergencia Nula','FontWeight','bold');

hold off;

10 Tensor deformaciones

11 Tensiones tangenciales

12 Tensión de Von Mises

13 Campo de Fuerzas

14 Densidad

15 Ejemplos de uso en la ingeniería

TEMPORAL CORREGIR LO QUE QUERAIS -CARLOS

Una viga en voladizo tiene grandes uso debido a su forma, además de ser muy útil por su funcionalidad. Estas vigas tienen un gran abanico de usos. Para usos arquitectónicos son usadas para balcones y terrazas, cubiertas de entradas y marquesinas, ya que se necesitan vigas que no tengan ningún apoyo vertical por debajo de esta., lo que permite hacer construcciones en el exterior sin la necesidad de columnas que puedan interferir en el diseño. Por otro lado es muy usada en maquinarias como en los brazos de grúas(tanto grúa de torre como grúas pórtico) o en palas de aerogeneradores. Para los brazos de grúa estas vigas son necesarias ya que por uno de sus extremos estará anclado a una carga y por el otro estará libre. De la misma forma se usara para las palas de un aerogenerador ya que estas estarán unidas a el buje por un extremo ( donde trasmite momentos y fuerzas al eje) y libre por el otro (donde actúa el viento y ejerce máxima deflexión). Estas vigas también tienen usos mas específicos para la ingeniería civil. La ingeniería civil ha usado en numerosas ocasiones estas vigas para puentes en voladizo donde no que no tendrán pilas de puente ni tampoco algún apoyo vertical durante el puente mas allá de los estribos y las vigas de voladura