%复指数法模态参数识别
%%%%%%%%%%%%%%%%%%%%%
clear
clc
close all hidden
format long
%%%%%%%%%%%%%%%%%%%%%
fni=input(‘复指数法模态参数识别-输入数据批文件名:’,‘s’);
fid=fopen(fni,‘r’);
mn =fscanf(fid,’%d’,1); %模态阶数
%定义输入实测数据类型:
%ig=1 时域数据如冲击响应、自由振动、互相关函数、随机减量法处理结果
%ig=2 频域数据如频响函数实部虚部数据
ig = fscanf(fid,’%d’,1);
%ig=1时f为采样频率sf,ig=2时f为频率间隔df
f = fscanf(fid,’%f’,1);
fno = fscanf(fid,’%s’,1); %输出数据文件名
b = fscanf(fid,’%f’,[ig,inf]);%实测时域或频域数据
status=fclose(fid);
%建立复指数函数的阶数(为模态阶数的2倍)
nm=2mn;
if ig==1 %实测时域数据
sf=f;
n=fix(length(b)/2);
h=b(1,1:2n)’;
%计算时间间隔
dt=1/sf;
%建立离散时间向量
t=0:dt:(2*n-1)*dt;
else %实测频域数据
%取实测频响函数的长度
df=f;
n=length(b(1,:));
%建立离散频率向量
f=0:df:(n-1)df;
%建立对应正负频率的实测频响