深度学习从传感器数据自动损伤识别新方法

深度学习算法实在是太火了,而且与多年前曾经红极一时的传统“人工神经网络(ANN)”相比(从概念上讲,深度学习也属于神经网络的一种),又具有很强的可靠性,已经在金融、互联网、机器人等领域有了实质性的进步。因此,虽然依旧是“黑箱技术”,但已经可以在解决具体问题的时候将其视为一种靠谱的选择了。

作为一种新技术,深度学习也会给土木工程领域提供新的解决方案,之前咱们分享过在裂缝观测桥型选择方面的尝试,今天再分享由暨南大学马宏伟教授课题组提出的桥梁监测新方法:利用深度学习从传感器数据中自动进行损伤识别。

Lin Y Z, Nie Z H, Ma H W. Structural Damage Detection with Automatic Feature‐Extraction through Deep Learning[J]. Computer‐aided Civil & Infrastructure Engineering, 2017(6). (作者为:林逸洲,聂振华马宏伟)

问题的提出

大型桥梁作为重要的公共基础设施,在运营期间的安全性是非常关键的指标。因此,为了确保其在服役期间的结构完整性,对大桥结构进行及时的、准确的检测就是一件非常重要的工作。

目前常见的措施,是在桥梁施工期间就在结构内部安装足够数量和类型的多种传感器,在桥梁运营期间不断地获取桥梁的动力响应数据。这项工作会在长时间内收集到海量数据,然而很多时候,这些看起来很让人有成就感的时间历程曲线,对得到真实结构损伤状态来说,并没有太大的用处

这首先是传感器得到的数据精度和存在大量“噪音”,许多科学家致力于解决这两方面问题,但效果还不是太理想。

因此在大多数的实际工作中,对数据处理的最重要的工作,就是进行特征提取。当把低层次传感器信号转换为重要的损伤敏感的特征,下一步的工作就相对容易实现了。

特征提取的一种方法是计算结构的动态特征,随后通过监控这些特征的变化来进行损伤检测。自振频率是一个主流的研究对象,但这有个局限,带有多种损伤的实际结构的自然震动很难提取到合适的特征值,而且结构损伤通常都是局部损伤,而自振频率又是一个描述结构整体属性的量。

另一个思路,是振型。相对于自振频率,振型对局部损伤更敏感,且对环境因素,如温度等,相对于自振频率不敏感。因此近年来许多研究倾向于将损伤和振型联系起来。例如作为振型的二阶导数,振型曲率在局部损伤定位方面有不错的表现。

然而,就目前来看,伴随加速度传感器量测全过程的噪音,则始终得不到解决,这实际上给后续的分析工作带来了许多麻烦,也降低了结果的可靠性。

“正常”!2017年12月2日13时16分,捷克首都伏尔塔瓦河上一座人行桥梁上的感应器最后一次发回信号后, 桥面突然坍塌,断成数截。桥面上至少4名行人掉入河中,其中两人重伤——这说明桥梁健康监测系统也不一定能成为桥梁”护身符“

为什么要引入深度学习

再换一个思路,采用另一种“数据驱动”的思想:“可否只从传感器的扰动数据中读取损伤敏感特性,而不再需要结构的模型?”,比如传感器中检测到信号突然的变化,是否意味着某些位置产生了损伤?

在损伤识别领域,人工神经网络(ANN)已经有了很多年的应用,虽然取得了不错的效果,但是神经网络的性能几乎完全取决于所选取的输入特征数据,输入数据的缺陷将导致神经网络的性能变差——如何选择输入数据,这需要具有丰富经验的科学家/工程师,然而这是稀缺资源,你懂的。

为了突破这个局限,采用深度学习领域中的卷积神经网络,convolutional neural network (CNN),这将无需人工干预,直接从传感器的原始信号中得到所需的结果。深度学习的优势是根据大数据可以进行自我的进化,自我修正。

因此,当引入深度学习算法,可以把之前比较困难的工作自动化,这就非常有意义了。

如何实现

先来看一下流程图

数据获取

深度学习需要大量数据,这些数据最好覆盖各种桥型、各种工况,然而这在实际工程中是无法做到的——起码我们无法收集到大桥经历轻微损伤→严重损伤→濒临倒塌的这个损伤发展全过程的数据,实测得到的数据全部都是在很接近理想状态的“轻微损伤”下得到的。

因此,需要用数值模型来作为数据源:

这是一个简支梁,利用MATLAB建立有限元模型,定义好模型的几何参数、材料参数以及进行单元划分。

利用调整目标单元的高度和刚度来模拟损伤,考虑6种工况,其中一个为结构完整状态,另5个为模拟10%、20%、30%、40%、50%五个级别的损伤程度。对1~9个节点,施加符合高斯分布的随机瞬时激励。

由已知属性的有限元模型、已知的损伤程度和位置参数进行的每一个组合,都可得到相对应的结构响应——这就是训练深度学习网络的基础数据库。

数据增广

然而深度学习需要的数据量实在太大,而且需要更完整。于是需要进行数据的增广:

训练深度学习网络

将训练好的数据,放入深度学习网络中进行网络训练。

作者利用Python的Tensorflow和Keras包在GPU上建立深度学习网络,硬件部分则用了Inter Core i7-4720HQ and NVIDA GTX970M。

对比验证

深度学习网络的结构损伤识别效果究竟如何?这需要和一种公认可行的方法进行对比,作者选择了小波分析。即用同一组数据,两种方法进行计算,并进行结果对比。

结果如何

这篇文章的篇幅很长,我在这里只借用几幅图来说明:

首先考虑深度学习和小波分析之间的精度对比,根据Table 5,Fig 9中的1、3为是否考虑噪声情况下的深度学习精度,2、4为对应情况下的小波分析结果精度,事实证明深度学习完胜。

即便对于更复杂,也是更符合实际情况的多点损伤的判断,深度学习网络的精度也很高:

深度学习甚至还自己学习出来了结构的三阶振型:

还可以分析出损伤的位置:

就此,可以下结论了,深度学习网络比当前常用的小波分析法更精准,效果更好,获得的分析结论更符合实际情况。

彩蛋

通常情况下,提出一种新方法并验证其准确之后,这篇文章就可以写完了,然而作者还是补充讨论了一个问题:如何看待深度学习网络的黑箱问题?

作者用调整计算参数的办法,试图把黑箱可视化,解释深度学习网络私下里都做了些什么事儿:

作者认为,神经网络学习到的是一个个带通滤波器,独立学习到了结构模态的概念。

要知道,深度学习算法是一种数据处理算法,本质上是没有物理意义的,但在具体问题上,作者针对训练好的网络,解释出了其学习的机理,这个思路非常值得借鉴!

另一个彩蛋,则是作者提出的一个课题:上面都说过了,实际结构中得到的数据是不完整的,要想训练深度学习网络,只能借用有限元模型来帮忙,然而模型和实际结构在损伤分布方面毕竟是有差异的,那这个问题又该如何解决呢?

 

 

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注