Está en la página 1de 2

clc

clear all
%datos de entrada
L0= input('Ingrese base superior(mm):');
Ln= input('Ingrese base inferior(mm):');
t=input('Ingrese espesor(mm):');
H=input('Ingrese altura(mm):');
n=input('Ingrese numero de elementos finitos:');
E=input('Ingrese modulo de elasticidad(N/mm2):');
y=input('Ingrese densidad(N/mm3):');
Po=input('Ingrese carga(N):');
G=input('indique nodo en donde corresponda la carga:');
R=sym('R');%valor incognita del apoyo
%BASES Y AREAS
no=zeros(n,1); mo=zeros(n,1); Lo=zeros(n,1); b=zeros(n,1); A=zeros(n,1);
Fe=zeros(n+1,1);
Lo(1)=L0; mo(1)=H;
for i=1:n
if n>i
no(i)=input('Ingrese longitud del elemento finito(mm):');
b(i)=(Lo(i)+Ln+(Lo(i)-Ln)*(mo(i)-no(i))/mo(i))/2;
A(i)=b(i)*t;
mo(i+1)=mo(i)-no(i);
Lo(i+1)=2*b(i)-Lo(i);
else
no(i)=mo(i);
b(i)=(Ln+Lo(i))/2;
A(i)=b(i)*t;
end

end
disp('Bases(mm):')
format shortG
disp(' base 1 base2 base3')
disp(b')
disp('Longitudes(mm):')
disp('Longitud 1 Longitud 2 Longitud 3')
disp(no')
disp('Areas(mm^2):')
disp(' Area 1 Area 2 Area 3')

disp(A')
%calculo de las fuerzas
for i=1:n
Fe(i)=y*A(i)*no(i)/2;
end
for i=1:n+1
if i==1
F(i)=Fe(i);
elseif i==n+1
F(i)=Fe(i-1);
else
F(i)=Fe(i-1)+Fe(i);
end
end
F(G)=F(G)+Po;
disp('Vector de fuerzas(N):')
disp(F')
%MATRIZ DE RIGIDEZ
k=zeros(n+1);
for i=1:n
x=zeros(n+1);
x(i,i)=1;x(i+1,i)=-1;x(i,i+1)=-1;x(i+1,i+1)=1;
k=k+(A(i)*E/(no(i)))*x;
end
disp('Matriz de rigidez es(N/mm):')
disp(k)
%calculo de desplazamientos
inv(k(2:n+1,2:n+1));
((F(2:n+1))');
Q=inv(k(2:n+1,2:n+1))*((F(2:n+1))');
Q=[0;Q];
disp('Desplazamientos de los nodos son(mm):')
disp(Q)
%calculo de la reaccion
k(1,:)*Q;
R=k(1,:)*Q-F(1);
disp('Reaccion en el extremo es:')
disp(R)
%calculo de esfuerzos
for i=1:n
e(i)=(E/(no(i)))*[-1 1]*[Q(i); Q(i+1)];
end
disp('Valores de los esfuerzos son(N/mm^2):')
disp(e');

También podría gustarte