|
- 网上程序,可作参考
- %用ITD方法对随机减量后数据进行整体模态参数识别
- clear
- clc
- close all hidden
- for i=1:17 %共17组数据
- fni=input('ITD法模态参数识别-输入数据文件名:','s');
- fid1=fopen(fni,'r');
- x=fscanf(fid1,'%f',[8,inf]);%每组数据8个通道(有两个参考点)
- y(1+8*(i-1):8+8*(i-1),:)=x;%将各组数据逐一存入同一矩阵
- status=fclose(fid1);
- end
- y=y';
- %根据实际情况对数据矩阵重新排列
- z(:,1)=y(:,11);
- z(:,2)=y(:,13);
- z(:,3)=y(:,27);
- z(:,4)=y(:,45);
- z(:,5)=y(:,49);
- z(:,6)=y(:,61);
- z(:,7)=y(:,69);
- z(:,8)=y(:,77);
- z(:,9)=y(:,93);
- z(:,10)=y(:,101);
- z(:,11)=y(:,113);
- z(:,12)=y(:,117);
- z(:,13)=y(:,129);
- z(:,14)=y(:,3);
- z(:,15)=y(:,21);
- z(:,16)=y(:,29);
- z(:,17)=y(:,33);
- z(:,18)=y(:,41);
- z(:,19)=y(:,57);
- z(:,20)=y(:,65);
- z(:,21)=y(:,81);
- z(:,22)=y(:,89);
- z(:,23)=y(:,97);
- z(:,24)=y(:,105);
- z(:,25)=y(:,121);
- z(:,26)=y(:,119);
- z(:,27)=y(:,1);
- z(:,28)=y(:,9);
- z(:,29)=y(:,19);
- z(:,30)=y(:,37);
- z(:,31)=y(:,51);
- z(:,32)=y(:,53);
- z(:,33)=y(:,67);
- z(:,34)=y(:,75);
- z(:,35)=y(:,85);
- z(:,36)=y(:,109);
- z(:,37)=y(:,115);
- z(:,38)=y(:,123);
- z(:,39)=y(:,133);
- z(:,40)=y(:,5);
- z(:,41)=y(:,17);
- z(:,42)=y(:,25);
- z(:,43)=y(:,35);
- z(:,44)=y(:,43);
- z(:,45)=y(:,59);
- z(:,46)=y(:,73);
- z(:,47)=y(:,83);
- z(:,48)=y(:,91);
- z(:,49)=y(:,99);
- z(:,50)=y(:,107);
- z(:,51)=y(:,125);
- z(:,52)=y(:,131);
- %ITD法
- h=z';
- n=length(h(1,:));
- n1=n-2;
- mn=26; %模态阶数
- sf=100; %采样频率
- nm=2*mn; %建立特征方程阶数
- dt=1/sf;%计算时间间隔
- t=0:dt:(n1-1)*dt;%建立离散时间向量
- %计算自由振动响应矩阵
- for k=1:nm
- x0(k,:)=h(k,1:n1);
- x2(k,:)=h(k,2:n1+1);
- end
- b2=x2/x0;
- [A,V]=eig(b2);%计算特征值和特征向量
- %变换特征值对角阵为一向量
- for k=1:nm
- u(k)=V(k,k);
- end
- f1=abs(log(u'))./(2*pi*dt);%计算模态频率向量
- d1=sqrt(1./(((imag(log(u'))./real(log(u'))).^2)+1));%计算阻尼比向量
- %计算振型系数向量
- for i=1:nm
- A1(:,i)=A(:,i)/log(u(i));
- end
- s=imag(A1)*10;
- u=u';
- for k=0:n1-1
- va(:,k+1)=u.^k;
- end
- h1=real(A*va);
- for k0=1:13
- figure(k0)
- for i0=4*k0-3:4*k0
- for n0=1:4
- subplot(2,2,n0)
- plot(t,x0((k0-1)*4+n0,:),':',t,h1((k0-1)*4+n0,:));
- grid on
- end
- end
- end
复制代码
|
|