周 澍
(湖南省高速公路集团有限公司,湖南 长沙 410131 )
近年来,由于对结构状态评估的实时性较差,许多大型结构坍塌事件不断发生,应用结构监测技术对大型结构进行监测十分必要[1]。结构健康监测技术在工程领域得到了广泛的应用。其中,结构损伤识别是结构健康监测技术的重要内容之一。结构损伤识别分为静力检测和动力检测两种方法,在动力检测法中有模式识别、ARMA时序分析以及神经网络等方法[2]。随着计算机技术的发展,机器学习作为人工智能的技术核心,也得到了快速发展和应用,相关领域学者将机器学习很好的应用到了结构损伤识别中。袁颖[3]等提出基于广义回归神经网络(GRNN)模型的两步法,该方法展示了很好的识别能力,在添加3%以及5%噪声情况下也能有较高的识别精度,但样本信息有限可能会影响识别效果。常虹[4]等针对结构的损伤识别采用了BP神经网络进行研究,其分析结果表明该方法预测结构的损伤程度是可行的。Chathurdara[5]等通过优化人工神经网络模型提出了一种基于自动编码器的结构损伤识别框架,与传统的人工神经网络相比有更好的识别准确性和效率。
卷积神经网络是一种深度学习的模型,在处理图像、计算机视觉领域取得了重大突破,为土木工程学科的发展带来新的机遇[6]。在损伤识别领域中,Du等基于图神经网络将欧几里得结构数据的振动信号转化为图输入到CNN中进行机械故障判别,验证了CNN的可行性。Lu等将图馈入CNN中进行特征映射,再将映射的样本送入基座检测器进行故障检测,实现了轴承故障的精确识别。李子奇等为避免工程结构在建造或运营期因振动产生结构损伤,讨论了不同深度学习方法对结构损伤识别方向的利弊,并采用卷积神经网络实现了较高精度的结构损伤评估,其研究结果表明,在结构损伤数据样本有限的前提下,二维卷积神经网络相较于一维卷积神经网络对于结构损伤具有更好的表现。唐和生等为解决实际结构损伤识别中数据样本不足而造成的识别精度不高等问题,提出了结合数字孪生与深度学习相结合的结构损伤识别方法,并在建立有限元数值仿真模型的基础上利用该方法实现了结构在不同损伤工况下的动力响应,对结果进行经验模态分解且处理后,得到结果表明,基于数字孪生和深度学习相结合的结构损伤识别方法可以有效识别结构损伤情况,解决了传统卷积神经网络损伤识别中样本数据匮乏的问题。张健飞等为了提高卷积神经网络在结构损伤识别中的算法性能,提出了一种基于多头自注意力的卷积神经网络结构损伤模型,利用多头自注意力机制实现了多为数据的表征,最后根据表征信息基于卷积神经网络实现了结构损伤模式识别,发现引入多头自注意力及之后,卷积神经网络的复杂度大大降低,且识别精度得到了有效的提高。大部分CNN模型适合处理大规模数据,因此需要更多的计算资源和时间。
一维卷积神经网络是卷积神经网络的一种,主要用于时序数据的处理,可以从时序数据中自动提取出局部的特征,不需要考虑整个时序的信息,具有良好的表现性,在一定程度上降低了过拟合概率的发生。因此李世晓等直接将原始数据作为输入,成功验证了在5种不同工况下的识别能力。唐若笠等利用多尺度一维卷积神经网络端到端的方法对管道裂纹进行了识别。
为了验证卷积神经网络在结构损伤识别的应用可行性及可靠性,将一维卷积神经网络引入到结构损伤识别,通过实验验证和数值模拟验证了该模型在损伤识别中的有效性。
卷积神经网络实际上是模拟哺乳动物视觉局部感受的过程,是一种前馈神经网络,中间也有部分网络会进行反向传播。具体来说,是将原始数据经过随机抽样等方法提取到的特征输入输入层,再通过多次卷积和池化的操作,逐层提取特征,最终映射到输出层。网络模型需要通过多个训练批次的迭代更新来完成网络模型的训练。一维卷积神经网络是卷积神经网络中最基本的网络模型,其卷积核只有一个维度,无需数据维度转化的过程,可直接对时序数据进行局部特征提取,具有更少的参数量,计算复杂度相对较低。1D-CNN模型的结构由输入层、隐藏层以及输出层组成,其中隐藏层包括卷积层、池化层和全连接层。
卷积层中卷积操作的本质是在在输入数据上滑动n个长度为x固定大小的卷积核。卷积层使用高斯函数对该卷积核进行初始化。之后再通过人工规定滑动步长k,每个卷积核将按照从左到右的顺序对输入的矩阵进行横向滑动以来提取不同的特征信息。在每次滑动的过程中,卷积核对每个位置上的数据进行加权求和完成卷积计算生成一个新的特征值s。最后m×1维矩阵将转化为由s构成的[(m-x)/k+1]×n维输出矩阵S。但是,通过加权求和的过程是一个线性操作,为了提高模型的表达能力,通常会使用激活函数对生成矩阵S进行非线性变换得到矩阵A(m-x+1),并传递到下一卷积层进行矩阵更新。
激活层通常连接在卷积层之后,用于调整卷积层的输出。常见的激活函数包括ReLU和sigmoid函数等。刘致诚等通过研究对比了几种激活函数的性能,其中ReLU激活函数计算速度更快的性能更优。 ReLU的作用是将输入数据进行ReLU函数变换,其公式为
R(x)=max{0,x}
(1)
Sigmoid的作用是将输入数据进行sigmoid函数变换,其公式为
(2)
池化层的作用是对卷积层的输出进行降维和特征提取,因此池化层通常在激活层之后,通过池化操作可以有效减少参数数量,降低过拟合风险。常见的池化操作由最大池化、平均池化和自适应池化。采用最大池化层对矩阵A进行数据特征提取。
Dropout层是一种用于防止过拟合的正则化方法,它可以随机丢弃一部分神经元,在训练过程中强制要求网络学习到更加稳健和泛化的特征,从而提高模型的鲁棒性和泛化能力。
网络模型经过卷积、池化以及dropout等操作已经获得了局部特征信息的矩阵,为了后续能够更好的将输出结果做分类任务,本文将设置全连接层以及Softmax输出层进行最后的处理分析。全连接层将所有通道的特征矩阵拼接在一起,通过线性变换和激活函数最终将得到的新矩阵代入输出层。
输出层是神经网络模型的最后一层,将网络的输出转化为指定的形式,例如分类、回归、生成等。本文通过用Softmax函数对权值矩阵进行计算得到最大期望值用来处理分类任务。
1D-CNN模型的训练首先需要导入库和数据,然后再定义模型结构,接着对模型进行编译,最后进行模型的训练。想要构建最优模型则需对网络结构中的参数进行不断的修改。本网络模型将使用交叉熵损失函数,并选用Adam优化器对模型学习率进行调优。当损失值达到最小收敛时,1D-CNN完成模型构建。测试阶段需要将原始振动信号输入完成训练后的最优模型,则会输出损伤识别结果。
根据特定的损伤识别目标,1D-CNN模型需要收集来自结构振动信号的信息用于构建网络模型训练以及测试的数据集。在实际的工程应用中,可以将有限元分析和实际的现场实验相结合来采集多个测量点的加速度信号,形成原始数据集。在同一时间序列上,结构的一些关键节点之间具有较大的相关性,因此将具有片段性的信号进行连续拼接来增强1D-CNN模型的识别能力。采用有监督的方式进行损伤识别则需要将数据集中的样本信号进行标记,将标记完的数据集输入1D-CNN进行训练。
为验证所提方法的有效性及其在工程中的应用价值,以一个大型看台结构为例,验证了该方法对由连接螺栓松动引起的轻微结构损伤的识别能力。该结构是在卡塔尔大学结构实验室建造的,为从业人员提供了一个通用的试验台,以测试他们基于振动的结构损伤检测方法。钢框架由8根主梁和25根4柱支撑的填充梁组成。8根梁长4.6 m,悬臂部分的5根填充梁长约1 m,其余20根梁长为77 cm。两根长柱子的长度约为1.65 m。填充梁与主梁通过钢连接件和螺栓连接。在主梁与填充梁连接处的30个节点各安装一个加速度计,并通过松动连接处螺栓来模拟不同节点损伤。提出的算法在beam-to-girder节点(钢连接)松动造成的非常轻微的破坏情况下进行了测试,具体相关试验过程及详细数据可查阅文献。
本次算例选择了该试验在网上公开的数据集中的1种健康工况(标签为0)和10种损伤工况(标签为1~10)的加速度时程曲线作为构造训练集、验证集和测试集的原始数据。其中每个工况加速度时程曲线的采样时间为256 s,每条信号的长度为262 144。为了构造模型训练所需要的大样本数据集,对单条信号进行切片处理,通过一个长度为1 024的窗口,步长为500沿着加速度数据滑动,每多生成一个样本的只需要增加500个数据点数。切片后的单个传感器的数据集大小为500×1 024× 1,健康加上10种损伤模式下总的数据集的大小为5 500×1 024×1。将数据集按照3∶1∶1的比例随机分为训练集、验证集和测试集,得到数据集的大小分别为3 300×1 024×1、1 100×1 024×1和1 100×1 024×1。
构造完数据集后,根据前述的相关理论训练用于结构损伤识别的卷积神经网络模型,具体的网络结构详情见表1。在CNN训练中,选用Adam优化器,初始学习率为0.000 2,每个批处理大小设为32,每个故障诊断网络训练50批次,网络的收敛过程如图1和图2所示。从图1和图2可知,在训练到50批次的时候,网络的识别精度已经较高。表2给出了测试集的最终识别结果。从表2可知,所建立的损伤识别模型的平均准确率达到92.36%。
图1 建模过程Loss值变化情况
图2 训练过程准确率变化情况
表1 卷积神经网络结构参数详情
表2 损伤识别混淆矩阵
建立了用于结构损伤识别的一维卷积神经网络模型,对数据预处理、网络结构参数等进行了详细介绍。采用卡塔尔大学看台试验数据集验证了该模型用于结构损伤识别的可行性及可靠性。识别结果表明:所建立的模型的损伤识别平均准确率大于90%,满足工程结构健康监测精度要求。