You are on page 1of 9

Resolución de una estructura reticulada plana con

fuerzas y desplazamientos impuestos


Santiago Quezada Luna

Funciones asociadas

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

Limpia la ventana de comandos

clear
close
clc

1
PREPROCESAMIENTO

Modulo = 29.5e6;

Area = 1.0;

conectividad = [[1,2];... %elemento 1


[2,3];... %elemento 2
[1,3];... %elemento 3
[3,4]] %elemento 4

conectividad = 4×2
1 2
2 3
1 3
3 4

coordenadas nodales

Coordenadas= [[0,0];... %nodo1


[40,0];... %nodo2
[40,30];... %nodo3
[0,30]] %nodo4

Coordenadas = 4×2
0 0
40 0
40 30
0 30

PROCESAMIENTO

[NumeroElementos,NodosElemento] = size(conectividad)

NumeroElementos = 4
NodosElemento = 2

[NumeroNodos,~] = size(Coordenadas)

2
NumeroNodos = 4

Matrices de rigidez

L=zeros(NumeroElementos,1)

L = 4×1
0
0
0
0

Angulo=zeros(NumeroElementos,1)

Angulo = 4×1
0
0
0
0

K=zeros(2*NumeroNodos)

K = 8×8
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 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);
j=conectividad(Elemento,2);

%Determinar la longitud
L(Elemento)= PlaneTrussElementLength(Coordenadas(i,:),Coordenadas(j,:))

%Determinar los angulos


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

%matriz de rigidez
k=PlaneTrussElementStiffness(Modulo,Area,L(Elemento),Angulo(Elemento))

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

end

L = 4×1
40
0

3
0
0
Angulo = 4×1
0
0
0
0
k = 4×4
737500 0 -737500 0
0 0 0 0
-737500 0 737500 0
0 0 0 0
K = 8×8
737500 0 -737500 0 0 0
0 0 0 0 0 0
-737500 0 737500 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
L = 4×1
40
30
0
0
Angulo = 4×1
0
90
0
0
k = 4×4
105 ×
0 0 0 0
0 9.8333 0 -9.8333
0 0 0 0
0 -9.8333 0 9.8333
K = 8×8
105 ×
7.3750 0 -7.3750 0 0 0 0 0
0 0 0 0 0 0 0 0
-7.3750 0 7.3750 0 0 0 0 0
0 0 0 9.8333 0 -9.8333 0 0
0 0 0 0 0 0 0 0
0 0 0 -9.8333 0 9.8333 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
L = 4×1
40
30
50
0
Angulo = 4×1
0
90.0000
36.8699
0
k = 4×4
105 ×
3.7760 2.8320 -3.7760 -2.8320
2.8320 2.1240 -2.8320 -2.1240
-3.7760 -2.8320 3.7760 2.8320
-2.8320 -2.1240 2.8320 2.1240
K = 8×8

4
106 ×
1.1151 0.2832 -0.7375 0 -0.3776 -0.2832 0 0
0.2832 0.2124 0 0 -0.2832 -0.2124 0 0
-0.7375 0 0.7375 0 0 0 0 0
0 0 0 0.9833 0 -0.9833 0 0
-0.3776 -0.2832 0 0 0.3776 0.2832 0 0
-0.2832 -0.2124 0 -0.9833 0.2832 1.1957 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
L = 4×1
40
30
50
40
Angulo = 4×1
0
90.0000
36.8699
180.0000
k = 4×4
737500 0 -737500 0
0 0 0 0
-737500 0 737500 0
0 0 0 0
K = 8×8
106 ×
1.1151 0.2832 -0.7375 0 -0.3776 -0.2832 0 0
0.2832 0.2124 0 0 -0.2832 -0.2124 0 0
-0.7375 0 0.7375 0 0 0 0 0
0 0 0 0.9833 0 -0.9833 0 0
-0.3776 -0.2832 0 0 1.1151 0.2832 -0.7375 0
-0.2832 -0.2124 0 -0.9833 0.2832 1.1957 0 0
0 0 0 0 -0.7375 0 0.7375 0
0 0 0 0 0 0 0 0

Matriz
incognitas = [3,5,6] % incognitas en los desplzamientos

incognitas = 1×3
3 5 6

datos = [4] % desplazamientos

datos = 4

Ka = K(incognitas, incognitas)

Ka = 3×3
106 ×
0.7375 0 0
0 1.1151 0.2832
0 0.2832 1.1957

Kc = K(incognitas, datos)

Kc = 3×1
105 ×

5
0
0
-9.8333

fuerzas y desplazamiento impuesto

Fa=[20000; 0; -25000]

Fa = 3×1
20000
0
-25000

Uc= [-0.12]

Uc = -0.1200

Calculo
Ua= Ka\(Fa-Kc*Uc)

Ua = 3×1
0.0271
0.0323
-0.1272

U = [0;0;Ua(1);Uc;Ua(2);Ua(3);0;0]

U = 8×1
0
0
0.0271
-0.1200
0.0323
-0.1272
0
0

6
POSTPROCESAMIENTO

F=K*U

F = 8×1
104 ×
0.3833
1.7875
2.0000
0.7125
-0.0000
-2.5000
-2.3833
0

inicializar las variables

u=zeros(NumeroElementos,2*NodosElemento);
f=zeros(NumeroElementos,1);
S=zeros(NumeroElementos,1);

for Elemento=1:NumeroElementos

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

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

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

S(Elemento)=PlaneTrussElementStress(Modulo,L(Elemento),Angulo(Elemento),unodal')
end

unodal = 1×4
0 0 0.0271 -0.1200
f = 4×1
104 ×
2.0000
0
0
0
S = 4×1
104 ×
2.0000
0
0

7
0
unodal = 1×4
0.0271 -0.1200 0.0323 -0.1272
f = 4×1
104 ×
2.0000
-0.7125
0
0
S = 4×1
104 ×
2.0000
-0.7125
0
0
unodal = 1×4
0 0 0.0323 -0.1272
f = 4×1
104 ×
2.0000
-0.7125
-2.9792
0
S = 4×1
104 ×
2.0000
-0.7125
-2.9792
0
unodal = 1×4
0.0323 -0.1272 0 0
f = 4×1
104 ×
2.0000
-0.7125
-2.9792
2.3833
S = 4×1
104 ×
2.0000
-0.7125
-2.9792
2.3833

init(vars, numRows, rowLabels, numVars, varnames, varDimName)

array2table([(1:NumeroElementos)',u(:,1),u(:,2),u(:,3),u(:,4)],...
"VariableNames", {'Elemento','Ui[pulg]','Vi[pulg]','Uj[pulg]','Vj[pulg]'})

Error using table.init (line 401)


'Ui[pulg]' is not a valid variable name.

Error in array2table (line 64)

8
t = table.init(vars,nrows,rownames,nvars,varnames);

array2table([(1:NumeroElementos)',f,S/1e6],...
"VariableNames",{'Elemento','Fuerza[lb]','Esfuerzo[psi]'})

You might also like