基于汉克尔矩阵 (BMIDHM) 的盲模态识别研究(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

一、汉克尔矩阵的定义与特性

二、汉克尔矩阵在盲模态识别中的应用

1. 系统辨识与传递函数

2. 模态参数识别

三、基于汉克尔矩阵的盲模态识别步骤

四、研究意义与应用前景

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

环境激励下结构模态参数的识别方法,也被称为结构的运行模态分析[3-4],一般仅根据结构的振动响应来识别模态参数。目前常用的运行模态分析方法主要包括频域类方法、时域类方法、时频分解算法和SOBI法等。在 上 述 各 种 方 法 中:频 域 类 方 法 的识别精度有待提高;时域类方法常常要用到矩阵分解技术,计算量很大;时频分解算法在计算中存在参数选择困难和边界效应等问题。模态识别的 SOBI方法[5]由于其在模态参数识别方面表现出鲁棒性强和计算效 率 高 等 优 点,受到了广泛的关注[6-7]。然而,基于SOBI的模态识别方法,只能识别出与测量自由度数相同的模态阶数,模态识别能力受到测点数目的限制,并且该方法在系统定阶方面也存在困难,限制了其在实际工程中的应用。

可以采用盲源分离(简称BSS)方法来求解模态识别问题。在BSS的各种实现算法中,基于联合近似对角化(简称JAD)技术 的 SOBI 算法在实际应用中表现出鲁棒性强和计算效率

高等优点。下面基于该方法研究结构模态参数的识别问题。 假定观测噪声是高斯白噪声,这时可以得到各观测信号间的相关函数矩阵的表达式为:

白化的目的是使各混合通道的信号经过变换后相互独立,具 有 单 位 方 差,以 避 免 优 化 过 程 出 现 零解。

基于汉克尔矩阵(BMIDHM)的盲模态识别研究是一个涉及数学、信号处理、控制系统等多个领域的复杂课题。以下是对该研究的详细探讨:

一、汉克尔矩阵的定义与特性

汉克尔矩阵(Hankel Matrix)是一种特殊的矩阵,其每一条副对角线上的元素都相等。这种矩阵在数字信号处理、数值计算、系统控制等领域有着广泛的应用。汉克尔矩阵与常对角矩阵(如Toeplitz矩阵)类似,但将汉克尔矩阵上下颠倒后,得到的不是常对角矩阵,而是每条主对角线上元素相等的矩阵。希尔伯特矩阵是一种特殊的汉克尔矩阵,具有良好的性质。

二、汉克尔矩阵在盲模态识别中的应用

盲模态识别,也称为结构的运行模态分析,通常仅根据结构的振动响应来识别模态参数,如固有频率、阻尼比和模态振型等。汉克尔矩阵在盲模态识别中扮演了重要角色,主要因为其能够有效地捕获系统的动态特性。

1. 系统辨识与传递函数

系统辨识是控制理论的一个分支,目的是通过观测到的输入输出数据来构建数学模型,以便理解和预测系统的动态行为。汉克尔矩阵在系统辨识中广泛应用,特别是在传递函数辨识中。传递函数是描述线性定常系统动态特性的关键参数,表示系统输出与输入之间的频率关系。通过构建与传递函数相关的汉克尔矩阵,并对其进行奇异值分解(SVD)或其他矩阵分解方法,可以提取出系统的动态信息,进一步推导出传递函数。

2. 模态参数识别

在盲模态识别中,汉克尔矩阵法通过将观测数据转换为汉克尔矩阵形式,并利用矩阵分解技术(如SVD)来识别系统的模态参数。这种方法不需要系统的激励信号,仅根据系统的响应数据进行分析,因此具有较高的实用性。

三、基于汉克尔矩阵的盲模态识别步骤

基于汉克尔矩阵的盲模态识别通常包括以下几个步骤:

  1. 数据预处理:对观测到的振动响应数据进行预处理,包括去噪、滤波、标准化等,以确保数据的准确性和可靠性。
  2. 构建汉克尔矩阵:根据预处理后的数据构建汉克尔矩阵。通常,需要选择适当的矩阵维度和副对角线元素,以反映系统的动态特性。
  3. 矩阵分解:对构建的汉克尔矩阵进行奇异值分解(SVD)或其他矩阵分解方法,以提取出系统的模态信息。
  4. 模态参数识别:根据矩阵分解的结果识别系统的模态参数,如固有频率、阻尼比和模态振型等。
  5. 验证与分析:对识别出的模态参数进行验证和分析,以评估其准确性和可靠性。

四、研究意义与应用前景

基于汉克尔矩阵的盲模态识别研究在理论和应用上都具有重要意义。在理论上,它丰富了模态识别的方法论体系;在应用上,它为结构健康监测、故障诊断等领域提供了有力的工具。随着信号处理技术和计算机技术的不断发展,基于汉克尔矩阵的盲模态识别方法将在更多领域得到广泛应用。

总之,基于汉克尔矩阵(BMIDHM)的盲模态识别研究是一个充满挑战和机遇的领域。通过不断深入的研究和探索,我们有望在该领域取得更多突破性的成果。

📚2 运行结果

 

 

 

 

 

部分代码:

rsp=rs(:,iplt);
h=fft(rsp).*2/lrs;
fr=[0:lrs-1].*(fs/(lrs));
tr=([1:lrs].')./fs;
%
figure(1);
subplot(3,2,1);set(gca,'fontsize',12);
hndl=plot(t,dsine_m(:,1),'k');
scale_plot(gca,5);
xlim([t(1),t(end)]);
xlabel('Time [Sec]');
ylabel('Amplitude');
title('Physical Responses: DOF 1');
subplot(3,2,2);set(gca,'fontsize',12);
hndl=plot(fd,abs(dsine_f(:,1)),'k');
scale_plot(gca,5);
xlim([0,5]);
xlabel('Frequency [Hz]');
ylabel('FFT Amplitude');
title('FFT: DOF 1');
%
subplot(3,2,3);set(gca,'fontsize',12);
hndl=plot(t,dsine_m(:,2),'k');
scale_plot(gca,5);
xlim([t(1),t(end)]);
xlabel('Time [Sec]');
ylabel('Amplitude');
title('DOF 2');
subplot(3,2,4);set(gca,'fontsize',12);
hndl=plot(fd,abs(dsine_f(:,2)),'k');
scale_plot(gca,5);
xlim([0,5]);
xlabel('Frequency [Hz]');
ylabel('FFT Amplitude');
title('DOF 2');
%
subplot(3,2,5);set(gca,'fontsize',12);
hndl=plot(t,dsine_m(:,3),'k');
scale_plot(gca,5);
xlim([t(1),t(end)]);
xlabel('Time [Sec]');
ylabel('Amplitude');
title('DOF 3');
subplot(3,2,6);set(gca,'fontsize',12);
hndl=plot(fd,abs(dsine_f(:,3)),'k');
scale_plot(gca,5);
xlim([0,5]);
xlabel('Frequency [Hz]');
ylabel('FFT Amplitude');
title('DOF 3');
%
%subplot(4,2,7);set(gca,'fontsize',12);
%hndl=plot(t,dsine_m(:,4),'k');
%scale_plot(gca,5);
%xlim([t(1),t(end)]);
%xlabel('Time [Sec]');
%ylabel('Amplitude');
%title('DOF 6');
%subplot(4,2,8);set(gca,'fontsize',12);
%hndl=plot(fd,abs(dsine_f(:,4)),'k');
%scale_plot(gca,5);
%xlim([0,5]);
%xlabel('Frequency [Hz]');
%ylabel('FFT Amplitude');
%title('DOF 6');
%
set(gcf,'paperposition',[0.2500    0.5000    8.0000    8.0000]);
print('-deps','-r600','Fig1');
print('-dtiff','-r300','Fig1');
%
%%%%%%%%%%%%%%%%%%%%%%
%
figure(2);
subplot(3,2,1);set(gca,'fontsize',12);
hndl=plot(tr,rsp(:,1),'k');
scale_plot(gca,5);
xlim([tr(1),15]);
xlabel('Time [Sec]');
ylabel('Amplitude');
title('Modal Cov. Fcn.: Mode 1');
subplot(3,2,2);set(gca,'fontsize',12);
hndl=plot(fr,abs(h(:,1)),'k');
scale_plot(gca,5);
xlim([0,5]);
xlabel('Frequency [Hz]');
ylabel('FFT Amplitude');
title('FFT: Mode 1');
%
subplot(3,2,3);set(gca,'fontsize',12);
hndl=plot(tr,rsp(:,2),'k');
scale_plot(gca,5);
xlim([tr(1),15]);
xlabel('Time [Sec]');
ylabel('Amplitude');
title('Mode 2');
subplot(3,2,4);set(gca,'fontsize',12);
hndl=plot(fr,abs(h(:,2)),'k');
scale_plot(gca,5);
xlim([0,5]);
xlabel('Frequency [Hz]');
ylabel('FFT Amplitude');
title('Mode 2'); 

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]程琳,杨杰,郑东健,任杰.基于Hankel矩阵联合近似对角化的结构模态识别[J].振动.测试与诊断,2016,36(06):1147-1152+1239.DOI:10.16450/j.cnki.issn.1004-6801.2016.06.018.

[2]A Modal Identification Algorithm Combining Blind Source Separation and State Space
Realization,” Journal of Signal and Information Processing 4(2), 173-185, 2013.

🌈4 Matlab代码实现

  • 18
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值