%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%MÉTODO 4%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%Matriz de rigidez%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %FUNCIÓN RIGIDEZ todos=menu('¿Qué desea?','Conocer AK sólo en los puntos donde se ha medido',... 'Conocer AK en todos los puntos de la estructura'); %Extensión antisimétrica de los modos %tam_extension=128; %for i=1:m %matsin3(:,i)=wextend(1,'asymw',matsin(:,i),tam_extension,'b'); %matcon3(:,i)=wextend(1,'asymw',matcon(:,i),tam_extension,'b'); %end %--------- if todos==1 tipo_norm=menu('¿Cómo ha introducido los modos?','Normalizados con la matriz de masa',... 'Otro tipo de normalización'); if tipo_norm==1 clear K;clear Kc; K=matsin*diag(wsin.^2)*matsin'; Kc=matcon*diag(wcon.^2)*matcon'; AK=K-Kc disp('Los valores calculados de K y Kc corresponden a la matriz de flexibilidad') plot([1:1:length(max(abs(AK)))],abs(max(AK))) hold on max(AK) for p=1:1:length(max(abs(AK))) vect=[0:abs(max(AK(:,p)))/(m-1):abs(max(AK(:,p)))]; plot(p*ones(length(vect)),vect,'r-') title('Decremento de la matriz de rigidez, en cada grado de libertad') end disp('El valor máximo de esta matriz denota el grado de libertad al que quizá esté asociado un daño') xlabel('Coordenada de la línea media');ylabel('Variación de la K'); end if tipo_norm==2 conoce=menu('¿Conoce el factor de escala alfa para escalar los modos?','Si','No'); if conoce==1 clear F;clear Fc; K=(factor_escala*matsin)*diag(wsin.^2)*(factor_escala*matsin'); Kc=(factor_escala*matcon)*diag(wcon.^2)*(factor_escala*matcon'); AK=K-Kc min(AK) disp('Los valores calculados de K y Kc corresponden a la matriz de flexibilidad') plot([1:1:length(max(abs(AK)))],abs(max(AK))) hold on max(AK) for p=1:1:length(max(abs(AK))) vect=[0:abs(max(AK(:,p)))/(m-1):abs(max(AK(:,p)))]; plot(p*ones(length(vect)),vect,'r-') title('Decremento de la matriz de rigidez, en cada grado de libertad') end disp('El valor máximo de esta matriz denota el grado de libertad al que quizá esté asociado un daño') xlabel('Coordenada de la línea media');ylabel('Variación de la K'); xlabel('Coordenada de la línea media');ylabel('Variación de la F'); disp('El valor máximo de esta matriz denota el grado de libertad al que quizá esté asociado un daño') end if conoce==2 menu('El método de la flexibilidad no funciona en este caso','Seguir') end end end %%%%%%%%%%%%%%%%%%%%%%%% %OBTENEMOS AK PARA TODOS LOS PUNTOS if todos==2 tipo_norm=menu('¿Cómo ha introducido los modos?','Normalizados con la matriz de masa',... 'Otro tipo de normalización'); if tipo_norm==1 clear K;clear Kc; %Interpolamos para obtener el valor de los modos en todos los puntos tipo_interp=menu('¿Qué tipo de interpolación desea?','Cúbica','Splines(recomendada)'); [fil,col]=size(matsin); [coord_int,modosin,modocon,sdf]=modos_todo_punto(tipo_interp,matsin,matcon,coord,n_elem,nbarra,n_puntos_barra); K=modosin*diag(wsin.^2)*modosin'; Kc=modocon*diag(wcon.^2)*modocon'; AK=K-Kc; %max(abs(AF)); min(AK) %figure(1) %plot([1:1:length(max(abs(AF)))],abs(min(AF))) %hold on %for p=1:1:length(max(abs(AF))) % vect=[0:abs(min(AF(:,p)))/(m-1):abs(min(AF(:,p)))]; % plot(p*ones(length(vect)),vect,'r-') % title('Decremento de la matriz de flexibilidad, en cada grado de libertad') %end %title('Valores maximos de la variación de la flexibilidad') %xlabel('Nº de gdl') %ylabel('Variacion de la F') %figure(2) %plot(sdf,abs(min(AF))) %title('Valores maximos de la variación de la flexibilidad') %xlabel('Coordenada de la linea media') %ylabel('Variacion de la F') [s,d]=max(abs(min(AK))); danado=(d/n_elem)-.5; barra=int8(danado); disp('Probablemente el daño se haya producido en la coordenada') disp(coord_int(d)) disp('De la barra') disp(barra) disp('Los valores calculados de K y Kc corresponden a la matriz de flexibilidad') end if tipo_norm==2 conoce=menu('¿Conoce el factor de escala alfa para escalar los modos?','Si','No'); if conoce==1 clear K;clear Kc; %Interpolamos para obtener el valor de los modos en todos los puntos tipo_interp=menu('¿Qué tipo de interpolación desea?','Cúbica','Splines(recomendada)'); [fil,col]=size(matsin); [coord_int,modosin,modocon,sdf]=modos_todo_punto(tipo_interp,matsin,matcon,coord,n_elem,nbarra,n_puntos_barra); K=(factor_escala*modosin)*diag(wsin.^2)*(factor_escala*modosin'); Kc=(factor_escala*modocon)*diag(wcon.^2)*(factor_escala*modocon'); AK=K-Kc; %max(abs(AF)); min(AK) disp('Los valores calculados de F y Fc corresponden a la matriz de flexibilidad multiplicada por un cierto escalar') disp('La grafica denota AF tambien escalada') [s,d]=max(abs(min(AK))); danado=(d/n_elem)-.5; barra=int8(danado); disp('Probablemente el daño se haya producido en la coordenada') disp(coord_int(d)) disp('De la barra') disp(barra) end if conoce==2 menu('El método de la flexibilidad no funciona en este caso','Seguir') end end end e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


ANÃLISIS COMPARATIVO DE DETECCIÓN DE DAÑO EN ESTRUCTURAS MEDIANTE LA TRANSFORMADA WAVELET Y PARÃMETROS CLÃSICOS

: Feberero Moreno, Miguel A.
: Ingeniería Industrial
Contenido del proyecto: