💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
摘要:本文提出了一种数据驱动的结构健康监测(SHM)方法,用于进行原位评估结构健康状态,即损伤位置和程度,在其中利用了选定位置的引导式兰姆波响应。该方法由离线和在线两个阶段组成。离线阶段的目标是进行数据维度降低,并建立传感器数据与损伤状态之间的映射关系。首先,通过高保真有限元方法(ABAQUS软件)进行模拟,建立了全面的数据库,以确定在各种预先确定的结构损伤条件下的引导式兰姆波响应(例如,位移和加速度)。然后,应用适当正交分解(POD)方法从每个模拟情况下提取关键特征。最后,开发了基于神经网络的代理模型,以将损伤状态与POD的模态系数相关联。在线阶段的目标是利用有限的传感器测量量来量化损伤位置和程度。采用间隙适当正交分解(GPOD)来基于有限的传感器数据重建全场信息。随后,利用离线阶段开发的代理模型推导出相关的损伤程度和位置。提出的数据驱动型SHM方法利用从梁和板示例中获取的模拟数据进行了全面验证。评估值与实际损伤值之间的最大误差在10%以内。还进行了参数研究,以探究使用不同传感器布置和传感器类型进行损伤检测的效果。总之,提出的方法可能成为航空航天结构的高效损伤检测技术。
关键词:结构健康监测(SHM)引导式兰姆波 适当正交分解(POD)间隙POD 神经网络 损伤估计
不同的结构已经被广泛应用于航空航天、汽车、民用以及机械领域。航空航天结构展现出多种多样的结构类型,包括梁、板、壳体等。它们受到动态载荷的作用,这会导致内部缺陷在某一点生长并合并。这可能导致系统级的灾难性失败。此外,撞击事件也会对航空航天结构造成损伤。这些损伤模式随着撞击条件而变化。它们会改变结构的材料或几何属性,并影响系统的整体性能。通常,损伤以裂纹、孔洞、分层或连接处的不连续形式存在。在许多情况下,视觉检查无法在其初始阶段检测到小的损伤。因此,需要结构健康监测(SHM)技术来检测损伤、评估健康状态并预测航空航天结构的寿命周期。本次努力的新颖之处包括:(1)将POD、传感器布置优化、神经网络和GPOD技术应用于具有大数据量的时间相关信号中,整个时间域内的动态数据作为损伤检测和识别的整体特征。这与之前的工作形成鲜明对比,之前的工作绕过了逆向损伤问题(即,损伤定位和严重程度检测),而是利用静态测量数据,例如静态应变(Mainini和Willcox 2015)作为推断指标;以及(2)采用引导式兰姆波响应来进行有效的损伤检测,使用数据驱动建模方法,而不是传统的损伤三角定位方法。如前所述,传统的基于波的SHM方法广泛用于根据飞行时间(TOF)和波速计算进行实时工程应用中的损伤检测。因此,选择这些波响应来展示所提出的用于原位损伤检测的数据驱动方法。
结论
本文开发了一种基于数据驱动的结构健康监测(SHM)新方法,利用导波(Lamb波)响应实现。该方法分为离线和在线两个阶段。在离线阶段,通过高保真有限元仿真生成梁和板结构中的导波响应(即位移和加速度),以构建全面的数据库。基于POD(Proper Orthogonal Decomposition,正交分解)的代理模型被开发出来,用于在低维度中表示大量的波传播数据。只需要少数几个主要的POD模态即可准确重构波传播响应。在梁结构中,共提取了101个POD模态,其中只有前18个模态被保留用于准确的数据重构。类似地,在板结构中,只有11个POD模态被用于数据重构。相应地,开发了神经网络代理模型,以关联这些POD模态系数与梁和板结构中的损伤位置和程度。
在在线阶段,利用稀疏传感器数据通过GPOD方法重构全场测量数据。最终,通过应用离线阶段开发的代理模型,并结合添加了10%噪声的仿真响应,我们能够推断损伤的位置和程度。推断值与实际值之间的最大误差在10%以内。总之,所提出的基于数据驱动的SHM方法展示了在航空航天结构中实现实时损伤检测的潜力。
📚2 运行结果
部分代码:
% EXPERIMENT INFORMATION
fl = 3; % 1: one 0.5cm hole
% 2: one 0.75cm hole
% 3: two 0.75cm holes
% SWA INFORMATION
fn = 20:1:800; % Frequencies
k = (2:2:1000).'; % Wavenumbers for dispersion curves
sns = 1:1:17; % Sensors to use (1:17 is the largest range)
% LOCALIZATION INFORMATION
W = 0.75; % Window size around defect
Nx = 400; % Number of pixels in x direction
Ny = 400; % Number of pixels in y direction
% WINDOWING INFORMATION
vwin = 2000; % Velcoity (in m/s) for velocity window
c = 5110.83; % Velocity for delay and sum
%%
% ---------------------------------------------
% GET DATA
% ---------------------------------------------
% DETERMINE THE DATA
basename = 'data_20121029_localize_baseline';
if fl == 1, dataname = 'data_20121029_localize_hole_05cmC';
elseif fl == 2, dataname = 'data_20121029_localize_hole_075cmC';
elseif fl == 3, dataname = 'data_20121029_localize_2holes_075cmC';
end
% GET DATA (BUILD A MAT FILE IF NOT AVAILABLE)
if exist([basename '.mat'],'file')
load([basename '.mat']);
else
[metab, cfgb] = extract_data(str2func(basename), 1:34);
save([basename '.mat'], 'metab', 'cfgb');
end
if exist([dataname '.mat'],'file')
load([dataname '.mat']);
else
[metas, cfgs] = extract_data(str2func(dataname), 1:34);
save([dataname '.mat'], 'metas', 'cfgs');
end
metab = filter_tn(filter_rn(metab, sns), sns);
metas = filter_tn(filter_rn(metas, sns), sns);
%%
% ---------------------------------------------
% GET DISPERSION CURVES
% ---------------------------------------------
% COMPUTE DISTANCES BETWEEN SENSORS
Sx = metas.Sx; % Hole location
Tx = arrayfun(@(ii) (metab.Tx{ii}.'*ones(1,size(metab.Rx{ii},1))).', 1:numel(metab.Rx), 'UniformOutput', false); % Transmitter locations
d = diag(dist(cell2mat(metab.Rx), cell2mat(Tx.').')); % Distance between each reciever and transmitter
% PRE-PROCESS SIGNALS
xb = cell2mat(metab.x.'); % Baseline signal
xb = xb - mean(xb,2); % Remove means
xb(1:110,:) = 0; % Remove cross-talk
xb = velwindow(xb, d, vwin/metab.Fs); % Velocity-based window
Xb = fft(xb); % Fourier transform
xs = cell2mat(metas.x.'); % Signal with target
xs = xs - mean(xs,2); % Remove means
xs(1:110,:) = 0; % Remove cross-talk
xs = velwindow(xs, d, vwin/metab.Fs); % Velocity-based window
Xs = fft(xs); % Fourier transform
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。