Está en la página 1de 7

Resolución de una estructura reticulada plana con

fuerzas y desplazamientos impuestos


Jose David Pinos

Funciones asociadas

• PlaneTrussElementLength
• PlaneTrussElementAngle
• PlaneTrussElementStiffness
• PlaneTrussAssemble
• PlaneTrussElementForce
• PlaneTrussElementStress

Limpia la ventana de comandos

clear
close
clc

1
PREPROCESAMIENTO

Parametros del modelo

Modulo Elastico

Modulo = 200e9; % E Acero

Area

Area = 10e-4;

Matriz de conectividad

Conectividad = [[1, 2];... % Elemento 1


[2 ,3]] % Elemento 2

Conectividad = 2×2
1 2
2 3

Coordenadas Nodales

Coordenadas = [[0, 0];... % Nodo 1


[4, 0];... % Nodo 2
[0, 3]] % Nodo 3

Coordenadas = 3×2
0 0
4 0
0 3

PROCESAMIENTO

NUmero de Elementos y de nodos

[NumeroElementos,NodosElemento] = size(Conectividad)

NumeroElementos = 2
NodosElemento = 2

[NumeroNodos,~] = size(Coordenadas)

NumeroNodos = 3

Matrices de Rigidez de los Elementos

2
L = zeros(NumeroElementos,1) % Inicializar un vector de longitudes

L = 2×1
0
0

Angulo = zeros(NumeroElementos,1) % Inicializar un vector de ángulos

Angulo = 2×1
0
0

K = zeros(2*NumeroNodos) % Incializar la matriz de rigidez global

K = 6×6
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

for Elemento = 1:NumeroElementos

% Especificar la conectividad de cada uno de los elementos


i = Conectividad(Elemento,1); % Identificador del primer nodo del elemento, nodo i
j = Conectividad(Elemento,2); % Identificador del segundo nodo del elemento, nodo j

% Determinar la longitud de los elementos


L(Elemento) = PlaneTrussElementLength(Coordenadas(i,:),Coordenadas(j,:))

% Determinar los angulos de orientacion de los elementos


Angulo(Elemento) = PlaneTrussElementAngle(Coordenadas(i,:),Coordenadas(j,:))

3
% Matriz de rigidez de los elementos
k = PlaneTrussElementStiffness(Modulo,Area,L(Elemento),Angulo(Elemento))

% Ensamblaje de la matriz de rigidez global (estructura)


K = PlaneTrussAssemble(K,k,Conectividad(Elemento,:))

end

L = 2×1
4
0
Angulo = 2×1
0
0
k = 4×4
50000000 0 -50000000 0
0 0 0 0
-50000000 0 50000000 0
0 0 0 0
K = 6×6
50000000 0 -50000000 0 0 0
0 0 0 0 0 0
-50000000 0 50000000 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
L = 2×1
4
5
Angulo = 2×1
0
143.1301
k = 4×4
107 ×
2.5600 -1.9200 -2.5600 1.9200
-1.9200 1.4400 1.9200 -1.4400
-2.5600 1.9200 2.5600 -1.9200
1.9200 -1.4400 -1.9200 1.4400
K = 6×6
107 ×
5.0000 0 -5.0000 0 0 0
0 0 0 0 0 0
-5.0000 0 7.5600 -1.9200 -2.5600 1.9200
0 0 -1.9200 1.4400 1.9200 -1.4400
0 0 -2.5600 1.9200 2.5600 -1.9200
0 0 1.9200 -1.4400 -1.9200 1.4400

Matriz de rigidez particionada

4
Ka = K(3,3)

Ka = 75600000

Desplazamiento impuesto

U4 = -10e-3

U4 = -0.0100

Fuerzas Conocidas

Fa=-500e3 -K(3,4)*U4

Fa = -692000

Calculo de los desplazamientos incógnitas

U3 = Ka\Fa

U3 = -0.0092

Desplazamientos nodales globales

U = [0; 0; U3; U4; 0; 0]

U = 6×1
0
0
-0.0092
-0.0100
0
0

POSTPROCESAMIENTO

Fuerzas nodales globales

F = K*U

F = 6×1
105 ×
4.5767
0
-5.0000
0.3175
0.4233
-0.3175

5
F/1000 % Para expresar la fuerza en KN

ans = 6×1
457.6720
0
-500.0000
31.7460
42.3280
-31.7460

Inicializar las variables secundarias

u = zeros(NumeroElementos, 2*NodosElemento)

u = 2×4
0 0 0 0
0 0 0 0

f = zeros(NumeroElementos,1)

f = 2×1
0
0

S = zeros(NumeroElementos,1)

S = 2×1
0
0

for Elemento = 1:NumeroElementos

% Especificar la conectividad de cada uno de los elementos


i = Conectividad(Elemento,1);
j = Conectividad(Elemento,2);

% Desplazamiento nodales
unodal = [U(2*i-1), U(2*i), U(2*j-1), U(2*j)]
u(Elemento,:) = unodal;

% Fuerzas en los elementos


f(Elemento) = PlaneTrussElementForce(Modulo, Area, L(Elemento), Angulo(Elemento), unodal');

6
% Esfuerzos en los elementos
S(Elemento) = PlaneTrussElementStress(Modulo,L(Elemento), Angulo(Elemento), unodal')

end

unodal = 1×4
0 0 -0.0092 -0.0100
S = 2×1
108 ×
-4.5767
0
unodal = 1×4
-0.0092 -0.0100 0 0
S = 2×1
108 ×
-4.5767
-0.5291

Resumen de los resultados

Tabla de desplazamientos nodales de los elementos

array2table([(1:NumeroElementos)', u(:,1)*1000, u(:,2)*1000, u(:,3)*1000, u(:,4)*1000],...


"VariableNames",{'Elemento', 'Ui[mm]', 'Vi[mm]', 'Uj[mm]', 'Vj[mm]'})

ans = 2×5 table


Elemento Ui[mm] Vi[mm] Uj[mm] Vj[mm]

1 1 0 0 -9.1534 -10
2 2 -9.1534 -10 0 0

Tabla de fuerzas y esfuerzos en las barras

array2table([(1:NumeroElementos)', f/1000, S/1e6],...


"VariableNames",{'Elemento', 'Fuerza[KN]', 'Esfuerzo[MPa]'})

ans = 2×3 table


Elemento Fuerza[KN] Esfuerzo[MPa]

1 1 -457.6720 -457.6720
2 2 -52.9101 -52.9101

También podría gustarte