Professional Documents
Culture Documents
Funciones asociadas
• PlaneTrussElementLength
• PlaneTrussElementAngle
• PlaneTrussElementStiffness
• PlaneTrussAssemble
• PlaneTrussElementForce
• PlaneTrussElementStress
clear
close
clc
1
PREPROCESAMIENTO
Modulo = 29.5e6;
Area = 1.0;
conectividad = 4×2
1 2
2 3
1 3
3 4
coordenadas nodales
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,:))
%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
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
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
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
array2table([(1:NumeroElementos)',u(:,1),u(:,2),u(:,3),u(:,4)],...
"VariableNames", {'Elemento','Ui[pulg]','Vi[pulg]','Uj[pulg]','Vj[pulg]'})
8
t = table.init(vars,nrows,rownames,nvars,varnames);
array2table([(1:NumeroElementos)',f,S/1e6],...
"VariableNames",{'Elemento','Fuerza[lb]','Esfuerzo[psi]'})