Sei sulla pagina 1di 3

EJERCICIO 9

>> function [C]=amortiguamiento_1 (K,zeda)


%
% Calculo de la matriz de amortiguamiento utilizando
% Algoritmo de Wilson y Penzien
%
% Por: Roberto Aguiar Falconi
% CEINCI ESPE
% -----------------------------------------------------------------
% [C]=amortiguamiento_1 (K,zeda)
% -----------------------------------------------------------------
% K Matriz de rigidez lateral del portico plano.
% M Matriz de masas.
% NP Número de pisos.
% Por pantalla se indicara las masas de cada piso.
% Previamente el usuario habra calculado la matriz de rigidez lateral
% con otro programa.
% T Periodos de vibracion.
% C Matriz de amortiguamiento.
% zeda Vector que contiene los coeficientes de amortiguamiento.
%
NP = input (' \n Numero de pisos ');
M = zeros(NP,NP); C = zeros(NP,NP);
for i=1:NP
fprintf ('Indique la masa del piso , %2d',i);
M(i,i) = input (', Valor de la masa: ');
end
[V,D]=eig(K,M); Wn=sqrt(D); W=diag(Wn);
for i=1:NP
fi=V(:,i); mi=fi'*M*fi; aux=2*zeda(i)*W(i)/mi;
C=C+aux.*M*fi*fi'*M;
end
fprintf ('\n Matriz de amortiguamiento')
C
% ---fin
EJERCICIO 11
function [q]=vlibreamortiguado(K,zeda,Xo)
%
% Vibraciones libres considerando amortiguamiento.
% Solucion por medio del exponencial de una matriz.
%
% Por: Roberto Aguiar Falconi
% CEINCI ESPE
% -----------------------------------------------------------------
% [q]=vlibreamortiguado(K,zeda,Xo)
% -----------------------------------------------------------------
% K Matriz de rigidez lateral del portico plano, viene de consola.
% M Matriz de masas.
% NP Número de pisos, igual al número de grados de libertad.
% Por pantalla se indicara las masas de cada piso.
% Previamente el usuario habra calculado la matriz de rigidez lateral
% con otro programa.
% T Periodos de vibracion.
% C Matriz de amortiguamiento.
% zeda Vector que contiene los coeficientes de amortiguamiento. viene de
% consola, sirve para calcular matriz de amortiguamiento.
% Xo Vector de condiciones iniciales, viene de consola.
% F Matriz de orden 2nx2n
% q Los n primeros valores corresponden a los desplazamientos y los
% restantes a las velocidades.
% dt Incremento de tiempo con el cual se obtiene la respuesta.
% n Número de puntos que se desean obtener en la respuesta.
% Programado para dt=0.02 y n=100
dt=0.02; n=100;
NP = input (' \n Numero de pisos ');
M = zeros(NP,NP); C = zeros(NP,NP);
% Matriz de Masas for i=1:NP
fprintf ('Indique la masa del piso , %2d',i);
M(i,i) = input (', Valor de la masa: ');
end
% Matriz de amortiguamiento mediante algoritmo de Wilson y Penzien
[V,D]=eig(K,M); Wn=sqrt(D); W=diag(Wn);
for i=1:NP

fi=V(:,i); mi=fi'*M*fi; aux=2*zeda(i)*W(i)/mi;


C=C+aux.*M*fi*fi'*M;
end
% Matriz F
CERO=zeros(NP,NP); IDENT=eye(NP,NP);MIK=(-1)*inv(M)*K; MIC=(-1)*inv(M)*C;
F=[CERO IDENT; MIK MIC];
% Valores Propios de F
[V,D] = eig(F)
% Respuesta en el tiempo
for j=1:n
t=j*dt; E=expm(F*t); EE=real(E); q=EE*Xo;
tt(j)=t; des(j)=q(NP);
end
% Dibujo para la respuesta en el tiempo del último piso
plot (tt,des) xlabel ('Tiempo (s)');
ylabel ('Desplazamiento ultimo piso');
title ('Vibracion libre considerando amortiguamiento');
% ---fin

Potrebbero piacerti anche