Algoritmo Que Nos Permite Hayar La Respuesta de Un Sistema de 1gdl

Post on 13-Jan-2016

11 views 0 download

description

matlab

Transcript of Algoritmo Que Nos Permite Hayar La Respuesta de Un Sistema de 1gdl

ALGORITMO QUE NOS PERMITE HAYAR LA RESPUESTA DE UN SISTEMA DE 1GDL

% Respuesta del sistema de un grado de libertad% Repuesta1GDL

%Se ingresan los valores de la matriz de aceleraciones descargada entrecorchetes para que%se transforme en un vector y poder usarla.a= input('ingresa los valores descargados entre corchetes: ');a= a';a= a(:);a=a';%Se ingresa el intervalo de tiempo en el que fueron tomadas las%aceleraciones para poder formar el vector de tiempob= input('ingrese el intervalo de tiempo de las aceleraciones del suelo:');c= length(a);d= b*c;t= [b:b:d];dt=b;%Se ingresa el periodo natural del sistemaT= input('ingrese el periodo natural de vibración del sistema: ');%Se ingresa el amortguamientoxsi= input('ingrese la razón de amortiguamiento: ');%Hallamos el vector desplazamiento con la funcion dada:w=2*pi/T;wd=w*sqrt(1-xsi^2);u=0;v=0;x=zeros(length(t),1);E=exp(-xsi*w*dt);S=sin(wd*dt);C=cos(wd*dt);% Parametros del metodo de integraciona11=E*(xsi*w*S/wd+C);a12=E*S/wd;a21=-w^2*E*S/wd;a22=E*(C-xsi*w*S/wd);b11=E*(((2*xsi^2-1)/(w^2*dt)+xsi/w)*S/wd+(1/w^2+2*xsi/(w^3*dt))*C)-2*xsi/(w^3*dt);b12=-E*(((2*xsi^2-1)/(w^2*wd*dt))*S+2*xsi*C/(w^3*dt))+2*xsi/(w^3*dt)-1/w^2;b21=E/(w^2*dt)*(-C-(xsi/sqrt(1-xsi^2)+w*dt/sqrt(1-xsi^2))*S)+1/(w^2*dt);b22=E/(w^2*dt)*(C+xsi/sqrt(1-xsi^2)*S)-1/(w^2*dt);A=[a11 a12; a21 a22];B=[b11 b12; b21 b22];V=zeros(2,length(t));for i=1:length(t)-1V(:,i+1)=A*V(:,i)+B*[a(i); a(i+1)];

endx=V(1,:);

%graficamos los registros de aceleracionessubplot(2,1,1);plot(t,a);

title('Registro de aceleraciones del suelo');xlabel('tiempo (s)');ylabel('aceleración (cm/s^2)');grid;%graficamos la respuesta de desplazamientos del sistemasubplot(2,1,2);plot(t,x);title('Respuesta del sistema de 1GDL');xlabel('tiempo (s)');ylabel('desplazamientos (cm)');grid;%determinamos la aceleracion maxima del suelo y su tiempo[amax,pmax]=max(a);[amin,pmin]=min(a);pmax=pmax*b;pmin=pmin*b;if (amax>-amin)

fprintf('la maxima aceleracion del suelo es(cm/s^2): %f\n',amax);fprintf('ocurre en el tiempo(s): %f\n',pmax);

elseamax=amin;fprintf('la maxima aceleracion del suelo es(cm/s^2): %f\n',amax);fprintf('ocurre en el tiempo(s): %f\n',pmin);

end;%determinamos el desplazamiento maximo y su tiempo[xmax,imax]=max(x);[xmin,imin]=min(x);imax=imax*b;imin=imin*b;if (xmax>-xmin)

fprintf('el maximo desplazamiento del sistema es(cm): %f\n',xmax );fprintf('ocurre en el tiempo(s): %f\n',imax);

elsexmax=xmin;fprintf('el maximo desplazamiento del sistema es(cm): %f\n',xmax);fprintf('ocurre en el tiempo(s): %f\n',imin);

end;%limpiamos las constantesclear;