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

2
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 entre corchetes 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 tiempo b= 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 sistema T= input('ingrese el periodo natural de vibración del sistema: '); %Se ingresa el amortguamiento xsi= 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 integracion a11=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)-1 V(:,i+1)=A*V(:,i)+B*[a(i); a(i+1)]; end x=V(1,:); %graficamos los registros de aceleraciones subplot(2,1,1); plot(t,a);

description

matlab

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

Page 1: 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);

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

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;