Sunteți pe pagina 1din 4

%--------------------------------------------------------------------------

% PROGRAMA DE INGENIER?A CIVIL


% UNIVERSIDAD DE ANTIOQUIA
% ECUACI?N DE LOS TRES MOMENTOS
%--------------------------------------------------------------------------
% - DESCRIPCION DEL PROGRAMA : calcula los momentos en cada uno
% de los apoyos del sistema.
%
% - DESCRIPCION DATOS DE ENTRADA :
% ND : Numero de nudos del sisitema
% NE : Numero de elementos del sistema
% E : Modulo de elasticidad
% L(i) : Longitud del elemento i
% I(i) : Inercia del elemento i
% A : Matriz de coeficientes del sistema
% V(i) : Vector de momentos
% B(i) : Vector de rotaciones de los apoyos
% C : Cantidad de cargas por elemento
% TC : Tipo de cargas en el elemento
% w : Carga distribuida
% s : distancia al nudo
% P : Carga puntual
% A1,A2 : Rotaciones de los apoyos inicial y final
% TD : Tiene desplazamiento el nudo
% D : Desplazamiento del nudo
% AS : Matriz de solucion del sistema
% M1 : Vector de momentos desconocidos
% M : Vector de todos los momentos del sistema
%
% - CODIFICADO POR:
% CARLOS CESAR DOMINGUEZ VEGA
% ESTUDIANTE INGENIERIA CIVIL UDEA
% - ASESOR:
% CARLOS ALBERTO RIVEROS JEREZ
% GRUPO DE MODELAMIENTO DE SISTEMAS
% PROGRAMA DE INGENIER?A CIVIL
% UNIVERSIDAD DE ANTIOQUIA
%
% - ULTIMA IMPLEMENTACION: AGOSTO 17 / 2009

%--------------------------------------------------------------------------

clc
clear all
diary on
fprintf('\n\t\t\t | PROGRAMA DE INGENIER?A CIVIL UDEA |');
fprintf('\n\t\t\t | ECUACION DE LOS TRES MOMENTOS |');
% ------------------------- INGRESO DE DATOS ------------------------------
fprintf('\n\t\t\t |****************************************************|');
fprintf('\n\t\t\t |****************************************************|');
fprintf('\n\t\t\t |NOTA: |');
fprintf('\n\t\t\t |1- POR CADA EMPOTRAMIENTO QUE TENGA EN LOS EXTREMOS |');
fprintf('\n\t\t\t | SE LE AGREGA UN ELEMENTO Y UN NUDO |');
fprintf('\n\t\t\t |2- LOS VOLADIZOS NO SE CUENTAN COMO ELEMENTOS |');

ND = input('\n\n INGRESE EL N?MERO DE NUDOS:');

NE = input('\n\n INGRESE EL NUMERO DE ELEMENTOS:');


E = input('\n\n INGRESE EL MODULO DE ELASTICIDAD [T/m^2):');

% -------------------- INGRESO DE LONGITUDES E INERCIAS -------------------

for i=1:NE
fprintf('\n\n ELEMENTO %d: ',i);
L(i)=input('\n\n INGRESE LA LONGITUD DEL ELEMENTO [m]: ');
I(i)=input('\n INGRESE LA INERCIA DEL ELEMENTO [m^4]: ');
end
L
I
% ------------- MATRIZ DE COEFICIENTES DEL SISTEMA-INICIAL ----------------
A=zeros(NE-1,ND);
for i=1:NE-1
A(i,i)=L(i)/I(i);
A(i,i+1)=2*((L(i)/I(i))+(L(i+1)/I(i+1)));
A(i,i+2)=L(i+1)/I(i+1);
end
A

% ------------- VECTOR DE MOMENTOS


INICIALES----------------------------------------

M(1)= input('INGRESE EL MOMENTO DEL NUDO INICIAL [T.m]: ');


M(ND)=input('\n INGRESE EL MOMENTO DEL NUDO FINAL [T.m]: ');

%------------ VECTOR DE ROTACIONES EN LOS APOYOS --------------------------

B=zeros(NE-1,1);
B(1,1)=M(1)*L(1);
B(NE-1,1)=M(ND)*L(NE);
B;
for i=1:NE-1
fprintf('\n\n ECUACION %d: ',i);
fprintf('\n\n ELEMENTO %d: ',i);
C=input('\n\n EL ELEMENTO TIENE CARGAS, CUANTAS: ');
for j=1:C
fprintf('\n\t\t\t |CARGA UNIFORMEMENTE DISTRIBUIDA=1, CARGA UNIFORMEMENTE |');
fprintf('\n\t\t\t |DISTRIBUIDA PARCIAL=2, CARGA PUTUAL EN EL CENTRO=3 |');
fprintf('\n\t\t\t |CARGA PUNTUAL EN CUALQUIER PUNTO=4, OTRA CARGA=5 |');
fprintf('\n\t\t\t |SI NO TIENE CARGA=0|');
fprintf('\n\n\n CARGA %d: ',j);
TC=input('\n\n\n INGRESE EL TIPO DE CARGA: ');
if TC==1
w=input('INGRESE LA CARGA EN [T/m]: ');
B(i,1)=B(i,1)-6*(w*(L(i)^3)/(24*I(i)));
elseif TC==2
w=input('INGRESE LA CARGA EN [T/m]: ');
s=input('\n INRECE LA DISTANCIA AL NUDO IZQUIERDO [m]: ');
B(i,1)=B(i,1)-6*((w*(s^2)*((2*L(i)-s)^2)/(24*L(i)*I(i))));
elseif TC==3
P=input('INGRESE LA CARGA EN [T]: ');
B(i,1)=B(i,1)-6*(P*(L(i)^2)/(16*I(i)));
elseif TC==4
P=input('INGRESE LA CARGA EN [T]: ');
s=input('\n INRECE LA DISTANCIA AL NUDO IZQUIERDO [m]: ');
B(i,1)=B(i,1)-6*(P*s*(L(i)-s)*((L(i)-s)+L(i))/(6*L(i)*I(i)));
elseif TC==5
A1=input('INGRESE LA ROTACION DEL APOYO INICIAL: ');
A2=input('\n INGRESE LA ROTACION DEL APOYO FINAL: ');
B(i,1)=B(i,1)-6*(A1/I(i))-6*(A2/I(i));
end
end

fprintf('\n\n ELEMENTO %d: ',i+1);


C=input('\n\n EL ELEMENTO TIENE CARGAS, CUANTAS: ');
for j=1:C
fprintf('\n\t\t\t |CARGA UNIFORMEMENTE DISTRIBUIDA=1, CARGA UNIFORMEMENTE |');
fprintf('\n\t\t\t |DISTRIBUIDA PARCIAL=2, CARGA PUTUAL EN EL CENTRO=3 |');
fprintf('\n\t\t\t |CARGA PUNTUAL EN CUALQUIER PUNTO=4, OTRA CARGA=5 |');
fprintf('\n\t\t\t |SI NO TIENE CARGA=0|');
fprintf('\n\n\n CARGA %d: ',j);
TC=input('\n\n INGRESE EL TIPO DE CARGA: ');
if TC==1
w=input('INGRESE LA CARGA EN [T/m]: ');
B(i,1)=B(i,1)-6*(w*(L(i+1)^3)/(24*I(i+1)));
elseif TC==2
w=input('INGRESE LA CARGA EN [T/m]: ');
s=input('\n INRECE LA DISTANCIA AL NUDO IZQUIERDO [m]: ');
B(i,1)=B(i,1)-6*((w*(s^2)*((2*L(i+1)-s)^2)/(24*L(i+1)*I(i+1))));
elseif TC==3
P=input('INGRESE LA CARGA EN [T]: ');
B(i,1)=B(i,1)-6*(P*(L(i+1)^2)/(16*I(i+1)));
elseif TC==4
P=input('INGRESE LA CARGA EN [T]: ');
s=input('\n INRECE LA DISTANCIA AL NUDO IZQUIERDO [m]: ');
B(i,1)=B(i,1)-6*(P*s*(L(i+1)-s)*((L(i+1)-s)+L(i+1))/(6*L(i+1)*I(i+1)));
else
A1=input('INGRESE LA ROTACION DEL APOYO INICIAL: ');
A2=input('\n INGRESE LA ROTACION DEL APOYO FINAL: ');
B(i,1)=B(i,1)-6*(A1/I(i+1))-6*(A2/I(i+1));
end
end
TD=input('EL NUDO TIENE DESPLAZAMIENTO,SI=1, NO=0: ');
if TD==1
D=input('INGRESE EL DESPLAZAMIENTO DEL NUDO [m]: ');
B(i,1)=B(i,1)+6*(D*E/L(i))+6*(D*E/L(i+1));
end
end
B

%------------ SOLUCION DEL SISTEMA ----------------------------------------

AS=zeros(NE-1,ND-2);

%------------ MATRIZ DE COEFICIENTES-SOLUCION DEL SISTEMA -----------------

for i=1:ND-2
AS(:,i)=A(:,i+1);
end
AS

%-------------- VECTOR DE MOMENTOS ----------------------------------------

M1=inv(AS)*B;
for i=1:ND-2
M(i+1)=M1(i);
end
M

S-ar putea să vă placă și