图片缩略图

使用自动化si - cov算法进行运行模态分析

版本2.5(2.28 MB)由 大肠Cheynet
采用基于环境振动数据的si - cov算法自动识别线状结构的模态参数
4.9
13评级

45下载

更新2021年2月4日

来自GitHub

查看版本历史记录

在github上查看许可证

##总结

SSICOV的函数。M旨在仅利用环境振动自动识别线状结构的固有频率、模态振型和阻尼比。采用协方差驱动的随机子空间识别方法(si - cov)结合聚类算法对稳定图进行自动分析。

该算法由Magalhaes等人使用的算法启发。[1]。它已应用于Lysefjord Bridge [2]的环境振动监测,并与频域分解技术进行比较[3]。最后,发现该算法足以使桥梁特征频率的演变与温度[4]可视化。

## 内容

提交文件包括:
—数据文件BridgeData.mat
-Matlab实时脚本Example1.mlx演示了算法的应用。
- Matlab Live脚本examplude1_notoolbox.mlx,它examplude1,但使用函数ssicov_notoolbox。
- 是SSICov的函数,它是自动SSI-COV算法。
-函数SSICOV_noToolbox,这是自动化的SSI-COV算法,但不使用统计学和机器学习工具箱。将Linkage算法替换为[5]的PHA_Clustering函数,将cluster函数替换为[6]衍生的Cluster2函数。
—函数plotStabDiag。M,绘制稳定图。

欢迎任何问题,建议或评论。

# #引用

[1] 马加里斯,F.,库尼亚,A.,和卡埃塔诺,E.(2009)。大跨度拱桥模态参数的在线自动识别。机械系统与信号处理,23(2),316-329。

[2] Cheynet E., Jakobsen J. B., & Snæbjörnsson, J.(2016)。复杂地形条件下悬索桥的抖振响应。土木工程学报,2018,474 -487。

[3] Cheynet E., Jakobsen J. B., & Snæbjörnsson, J.(2017)。大型风敏感结构的阻尼估计。工程科学学报,199,2047 -2053。

[4]张晓东,张晓东,张晓东(2017)。温度对悬索桥模态特性的影响。土木结构动力学,第2卷(第87-93页)。施普林格。

[5] 永刚(2021).快速层次聚类法-PHA(//www.tianjin-qmedu.com/matlabcentral/fileexchange/46134-fast-hierarchical-clustering-method-pha.),MATLAB中央文件交换。检索日期:2021年2月4日。

[6]埃里克ogier(2021)。分层群集(//www.tianjin-qmedu.com/matlabcentral/fileexchange/56844-hirearchical-clustering.),MATLAB中央文件交换。检索日期:2021年2月4日。

引用

Cheynet,E.使用自动SSI-COV算法进行操作模态分析。Zenodo,2020,Doi:10.5281 / Zenodo.3774061。

查看更多的风格

评论和评级(33.

光徐

法昆nicuesa

HenryHoare

非常酷的东西!谢谢你的分享。

Fahime Sokhangou

非常感谢你

安娜·巴纳斯

非常感谢。我根本没有注意到它。现在该计划工作很好。谢谢你的快速答案和真正的伟大计划 - 它帮助了我很多。

大肠Cheynet

嗨,安娜,
可以使用可选的参数“ts”来减少协方差矩阵中的最大滞后。如果时间滞后太大,则在线203的卷积矩阵的构造将太耗时。一个大的时间滞后不适合识别目的。您可以自定义号码TS。拇指的规则是TS可以是近似等于3 x结构的最长的特征期。假设第一个特征频率为10 Hz,这意味着提纲期为0.1秒。所以ts = 3x0.1 = 0.3秒,这是180个时间步长。如果选择TS = 10秒,即6000个时间步骤,则该函数将难以计算Toeplitz矩阵,同时为识别算法提供不太好的数据。

安娜·巴纳斯

谢谢你的回复。我也这么认为,但我做了一些测试,不幸的是,这种关系对我来说并不那么简单。我的信号的总点数是15631,采样率是600赫兹(26秒).对于较长的信号和较低的采样率,我认为较大的矩阵计算速度非常快。即使在测试示例中,信号采样的数量也比我的要大。重要的是频率约为40 Hz。我可以将信号降采样到120 Hz,但可能我做错了什么。

大肠Cheynet

嗨,安娜,
如果同时具有长记录和600 Hz的采样频率,则在函数SSICOV中创建的互协方差矩阵将太大,无法在Matlab中处理。如果您研究的结构具有较低的振动频率(例如,约1 Hz),则可以大幅降低采样频率(例如,10-20 Hz),并且仍然使用较长的记录持续时间。如果您的结构的振动频率在50 Hz或100 Hz左右,那么它可能足够好,可以有较短的记录持续时间,例如,仅几分钟。

安娜·巴纳斯

你好,我非常喜欢你的节目,它非常有用。但是,我有一件事有问题。我的数据不是很长,但是当我将我的采样设置为600Hz时,需要很长时间才能计算,然后我获得与内存相关的错误。你能告诉我如何解决它吗?

Benu

因为我是OMA的新手,所以我想逐行学习这个算法,
在modalID函数(第335-339行)中,
确定Fn,zeta,phi,从a的eig
这些参考资料是什么?

Benu

大肠Cheynet

注:与Itachi的问题是私下讨论解决的。主要结论是:(1)输入必须是动态加速度或位移响应,而不是自由衰减响应(2)沿线状结构的响应必须记录在至少两个不同的位置。

Itachi

我得到这个错误,我有一个8秒的信号,dt=0.005。请问,我怎样才能解决这个问题?

使用SSICOV/blockHankel时出错(第196行)
IRF必须是3D矩阵,尺寸

SSICOV错误(95行)
[u,s,v] = blockhankel(IRF);

EX中的错误(第59行)
[fn0, zeta0 phi0 paraPlot] = SSICOV (Y, t (1));

穆罕默德福尔斯科宁

很好!

莫代尔分析师

从统计和机器学习工具箱需要“链接”和“群集”。

亚历克斯

我曾经使用过的最好的方法。

有时测量数据被记录为列向量。如何在第82行中放置这些线路?

如果是Nyy > N
y = y';
[nyy,n] =尺寸(y);
结尾

马蒂斯著名ullah

谢谢你回复。我正在使用Matlab 2015版本。

大肠Cheynet

嗨mati ullah,
我不能重现你得到的错误。编译在Matlab 2018B中没有崩溃而运行。我不知道您使用的MATLAB版本,但是过于旧版本可能是错误消息的可能原因。

马蒂斯著名ullah

我运行了example1。mlx的默认数据和得到以下错误,E. Cheynet先生请帮助我消除这些错误,因为我是新的matlab。
SSICOV中的错误(第149行)
[fn3, zeta3 phi3] = myClusterFun (fn, zetaS,φ,mac);

例子中的错误(第34行)
[Fn0,Zeta0,Phi0,段册] = SSICOV(RZ,DT,'nmin',2,'nmax',50,'TS',15);

马兹卢米

谢谢你的回答
如果我降低采样频率约100倍(Fs=1e-4),则该代码是工作的。

大肠Cheynet

嗨mmazloumi,
通过设置1E-6秒的时间步长设置0.1秒的最大滞后,您可以创建一个[M x m x 1e5]的协方差矩阵,其中m是传感器的数量。得到的块Toeplitz矩阵太大而无法由Matlab处理。为避免崩溃的MATLAB,您需要的数字远低于1E5。

马兹卢米

我有一个长度为0.1秒,时间为1e-6的信号。
当我= 0.1秒时,那么有一个错误:
“使用零时出错
内存不足。为您的选项输入帮助记忆。

SSICOV / BLOCKHANKEL中的错误(第205行)
t1 =零(m * n1);

SSICOV错误(97行)
[U,S,V]=布洛克汉克尔(IRF);”

当我放入1秒或更大时,还有另一个错误:
“指数超过矩阵维度。

SSICOV/NExT中出错(第270行)
IRF(OO,JJ,:) = H0(1:M);

SSICOV错误(95行)
[IRF,~]=NExT(y,dt,p.Results.Ts,p.Results.methodCOV);”

问题是什么,我怎样才能得到真正的结果。

问候

悟空赵

米哈伊尔·萨穆塞夫

我明白了,谢谢你的解释,
在文章中,“Cardoso R.,Cury A.,Barbosa F.,2015年 - 在SHM的自动模态识别的进步上,他们在模式估计之间尝试了类似的非归一化距离,但现在包括它以任意常量缩放的MAC用[Hz]单位,也许你可以看一下这是为了灵感。也许,普通用户粘贴到其中一个选择的距离指标,但是对于高级用户能够在少数甚至更好地选择,将自己的距离功能加载为可选参数。类似于Matlab自己的“Pdist”的实施。

大肠Cheynet

嘿mihhail,

说得好!我将尝试看看我是否可以更严格地实现pos = fn0(:)+1-MAC0(:)的MAC数;在提交的进一步版本中。

如果未包含MAC号码,则基于标准'EPS_CLUSTER'选择群集。我不知道,直到哪一点群集分析将在不使用MAC号码作为额外标准的情况下正常工作。到目前为止,我已经能够使用低值为“EPS_CLUSTER”来区分仅为0.3公里长的跨度桥分隔的模式。

米哈伊尔·萨穆塞夫

谢谢你的答案,
另一个问题,如果在距离中未使用MAC,则可以检测紧密间隔的模式。我看到,由于它们的频率接近,因此它们将聚集在一起,Mac可能有用避免它?

大肠Cheynet

嗨mihhail,

这是一个非常好的观点!我最初将变量“pos”定义为一个与频率维度相同的量,因为这样使用标准“eps_cluster”更直观。我忘记在以前版本的SSICOV函数中删除“1-MAC0(:)”。这个函数仍然工作得很好,因为在嵌套函数中研究的数据集已经对应了稳定极点,因此1-MAC0几乎为零。

在Magalhaes等[1]的论文中,确实没有尺寸的变量POS。在更新的版本中,我使用了参考文献中使用的定义。[1]。然而,因为现在相对距离用于聚类分析,所以在更新的功能中,标准“EPS_CLUSTER”在更大的情况下大得多。我认为POS = FN0(:)的选择仍然可以接受,因为MAC号对集群分析有限。使用“POS = FN0(:)”的另一个参数是避免在标准“EPS_CLUSTER”和“EPS_MAC”之间引入依赖性。

米哈伊尔·萨穆塞夫

您好,非常感谢您的贡献,
我有一个关于第450行SSICOV函数的问题,
聚类时,首先使用以下方法计算位置:

pos = fn0(:) + 1-mac0(:);

纸上的Magalhaes [1]使用相同的距离,但频率是归一化的,所以它的实现是一个错误,或者你的意思是使用这个距离?

无论如何,非常感谢你们的工作,它有助于为我的大学开发结构健康监测工具箱
https://se.mathworks.com/matlabcentral/fileexchange/68988-shmtoolbox

大肠Cheynet

嗨新哲元,
可能触发错误,因为跨协方差矩阵未正确构建。我将更新功能以提供更强大的T1定义。但是,它可能无法解决您的问题,但只需触发新的错误。我建议您检查作为输入使用的时间滞后(请参阅可选参数)是合适的。

Itachi

Xinzhe元

嗨,我收到了一个错误:
未定义函数或变量'T1'。

SSICOV / BlockHankel的错误(第207行)
如果或(任何(Isinf(t1(:))),任何(isnan(t1(:)))),

如果你可以看一下,就会读。

蒂亚戈

MATLAB版本兼容性
创建R2018b
与R2014b至R2019b兼容
平台兼容性
窗户 macOS Linux.
致谢

灵感来自:分层聚类快速层次聚类法

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始打猎吧!