资源简介
随机子空间算法,用于模态参数识别,可以学习
代码片段和文件信息
%利用随机子空间法进行结构整体模态参数识别
tic
clear
clc
% YDataz=textread(‘G:\ssi\sanxiaba5.txt‘);%输入列向量
% YDataz=textread(‘G:\ssi\sxdq.txt‘);%输入列向量
% YDataz=textread(‘G:\ssi\lxwlb.txt‘);%输入列向量
YDataz=textread(‘G:\ssi\lxwlb.txt‘);%输入列向量
% YDataz=textread(‘G:\ssi\jb4.txt‘);%输入列向量
% YDataz=textread(‘G:\ssi\lxwdwy95lb.txt‘);%输入列向量
YData1=YDataz‘;%YData 必须是m×n格式形式
YData=YData1;
% YData=YData1(1:7:);
Fs=100;
dt=1/Fs;
sampling_step=dt;
[my ny]=size(YData);
%%%改变hankel总行数,即mi1的值,模态阶数保持不变,利用稳定图得到真实模态参数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate hankel matrix
% for mi1=8:2:24
mi1=42; %hankel总行数
mi2=mi1/2; %past与future分界线
mj=4096-mi1;%hankel总列数
for jj1=1:mi1 %构造块Hankel矩阵,每块是个列向量,包含了m个测点
for jj2=1:mj
for jj3=1:my
Y_1_mi1(jj3+(jj1-1)*myjj2)=YData(jj3jj2+jj1-1);
end
end
end
Yp=Y_1_mi1(1:my*mi2:)./sqrt(mj);%分离出Yp
Yf=Y_1_mi1((my*mi2+1):my*mi1:)./sqrt(mj);%分离出Yf
%对Y_1_mi1做qr分解
[Q R]=qr(Y_1_mi1‘);
RL=R‘;%转为下三角
QT=Q‘;%Y_1_mi1值等于RL*QT
R21=RL((my*mi2+1):my*mi1(1:my*mi2));%提取数据
Q1T=QT((1:my*mi2):);%提取数据
% 求投影矩阵(非加权主分量算法)
OI=R21*Q1T;
% OI=Yf*Yp‘*pinv(Yp*Yp‘)*Yp;
%将OI做奇异值分解
[USV]=svd(OI);
SS1=diag(S);
Sum_SS1=sum(SS1);
Length_SS1=length(SS1);
%根据奇异熵增量来确定模态阶次
deteE=zeros(1Length_SS1);
E=0;
for i=1:Length_SS1
deteE(1i)=-(SS1(i)/Sum_SS1)*log(SS1(i)/Sum_SS1);
E1(1i)=E+deteE(i);
E=E1(i);
end
figure;
n=10; %模态阶次调试值
Length_Rank_S=2*n;
plot(deteE(1:Length_Rank_S));
xlabel(‘阶次‘);
ylabel(‘奇异熵增量‘);
grid on
axis tight
S1=S(1:Length_Rank_S1:Length_Rank_S);%构造奇异值非0的方阵
U1=U(1:my*mi21:Length_Rank_S);
V1T=V(1:Length_Rank_S:);
%可观矩阵TI
T_i=U1*(S1^0.5);
%卡尔曼预测值,第i时刻
X_i=pinv(T_i)*OI;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%同以上原理,计算第i+1时刻卡尔曼预测值
R21_new=RL((my*mi2+my+1):my*mi1(1:my*mi2));%提取数据
Q1T_new=QT((1:my*mi2):);%提取数据
%求投影矩阵(非加权主分量算法)
OI_new=R21_new*Q1T_new;
%可观矩阵TI
T_i_new=T_i(1:(mi2-1)*my:);
%卡尔曼预测值,第i+1时刻
X_i_new=pinv(T_i_new)*OI_new;
[m n]=size(X_i_new);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%求系统矩阵A和C,采用最小二乘法求解
AC=[X_i_new;Y_1_mi1((my*mi2+1):(my*mi2+my)1:mj)]*pinv(X_i);
WV=[X_i_new;Y_1_mi1((my*mi2+1):(my*mi2+my)1:mj)]-AC*X_i;
[m1 n1]=size(AC);
A=AC(1:(m1-my)1:n1);
C=AC((m1-my+1):m1:);
%对A做特征值分解
[Eigen_Vector_A1Eigen_Value_A1]=eig(A‘nobalance‘);
% [Eigen_Vector_A1Eigen_Value_A1]=eig(A);
A1_diag=diag(Eigen_Value_A1);
%
% for iii=1:length(A1_diag)
% lamd(iii)=log(A1_diag(iii))/dt;
% a=real(lamd(iii));
% b=imag(lamd(iii));
% omiga(iii)=sqrt(a^2+b^2);
% omiga2(iii)=omiga(iii)/(2*pi);
% delt(iii)=-a/sqrt(a^2+b^2);
% end
% F1=omiga2;
% D1=delt;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%求模态参数
% 计算模态频率向量
F1=abs(log(A1_diag‘))./(2*pi*dt);
% 计算阻尼比向量
D1=sqrt(1./(((imag(log( A1_diag‘))./real(log( A1_diag
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3758 2010-06-09 12:54 ssi.m
----------- --------- ---------- ----- ----
3758 1
- 上一篇:Crack dsp builder 11.1
- 下一篇:人工势场法进行机器人路径规划
相关资源
- 随机子空间方法的模态参数识别
- ssim衡量两幅图像相似度的指标
- 多个目标定位的基本算法仿真
- Synthetic Aperture Radar Signal Processing wit
- 图像的灰度直方图计算Matlab代码一
- matlab RSSI 算法
- 使用BP神经元网络、ELM分类分类实例(
- 最优阵列处理随书程序 (optimum arra
- BP神经网络进行多分类matlab代码 (c
- function Energy Efficiency
- RSSI的无线定位matlab代码
- matlab的随机子空间算法
- 透射反射曲线(transmission line )求解
- ARIMA ARIMA模型全称为差分自回归移动平
- modulationClasssify 高阶累积量的调制格式
- 改进后的海森矩阵算法(Hessian )代码
- Gaussian-process-regression 高斯过程回归及
- CompressiveAndApplications 《压缩感知与应
- matlab_code_for_video_compression
- MIMO和Massive MIMO信号检测算法仿真程序
- classification_toolbox 用于分类的matlab代码
- svd图像压缩(SVD_comprecession)
- 雷达数据处理概述 Radar-Data-Processing
- passage-3 本程序是mazen.O的经典论文:
- frangi_hessian 多尺度海森矩阵血管增强
- ssim_index 图片结构相似度评价
- Matlab-ECG-Processing 非常实用的基于Mat
- PDE_in_image_processing (1)MATLAB程序:其
- CVPR10-LLC \“Locality-constrained Linear Cod
- image_processing 本程序是基于Matlab的米粒
评论
共有 条评论