黄小光, 徐国强, 孙 峰, 许金泉
(1.中国石油大学(华东) a.储运与建筑工程学院; b.文学院,山东 青岛266580; 2. 上海交通大学 船舶海洋与建筑工程学院,上海 200240)
材料力学行为试验与分析是工程力学专业研究生的一门选修课程,其任务是使研究生学习并掌握材料力学行为试验与分析的基本知识和技能,培养实际操作能力和分析、解决问题的能力,为其将来走上工作岗位或者从事科学研究工作打好基础。随着材料科学的发展,各式各样的新材料不断问世,而这些材料能否满足现代工业需要、能否从实验室走向实际应用,对这些问题的探索使得评价材料性能参数的试验方法和检测技术更加必要,同时也促进材料力学行为试验与分析课程内容不断更新,以适应实验技术、分析方法的发展[1-2]。本文以材料腐蚀疲劳专题为例,结合腐蚀疲劳实验,提出了一种基于BP神经网络的腐蚀疲劳实验分析方法。
目前金属与合金的腐蚀疲劳实验标准主要包括循环失效实验与预裂纹试样裂纹扩展实验。一般而言,腐蚀疲劳具有很强的材料-环境依存性,材料类型、载荷因素(应力振幅、应力比及载荷频率、波形等)和环境因素(溶液成分、浓度及pH值)等都能很大程度影响材料的腐蚀疲劳寿命。由于影响因素较多,材料腐蚀疲劳寿命难以显式表达,至今仍未形成较为通用的预测模型。同时,由于影响因素随机性大,载荷与环境参数稍有变化,就难以根据实验数据预测相应的腐蚀疲劳寿命,大大限制了腐蚀疲劳实验结果的推广[3-6]。
人工神经网络(ANN)是由大量的人工神经元经广泛互连形成的网络,用以模拟人类神经系统的结构和功能。ANN系统具有模拟复杂的高度非线性映射的能力,目前已成功应用于结构分析和设计、模式识别、以及优化控制等研究领域。BP神经网络是一种按误差逆传播算法训练的多层前馈人工神经网络,是目前应用最广泛的神经网络模型之一。BP神经网络能学习和存贮大量的输入—输出模式映射关系,无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。理论证明,当隐层神经元数目足够多时,BP神经网络能够以任意精度逼近任何一个具有有限间断点的非线性函数。所以采用BP神经网络方法预测腐蚀疲劳寿命,只要有足够的已知数据来对网络进行训练,就可以建立诸多影响因素与腐蚀疲劳寿命之间的映射网络,相当于获得了腐蚀疲劳寿命表达式。然后设定待测试样的载荷及环境参数,输入到已训练好的神经网络中,就可以获得待测试样的腐蚀疲劳寿命[7-9]。
本文以7075铝合金材料的循环失效实验为例,分析基于BP人工神经网络的分析方法在材料腐蚀疲劳实验中的应用。实验参照金属和合金的腐蚀-腐蚀疲劳实验(GB/T20120.1—2006)[10]。腐蚀疲劳实验设备采用MTS809电液伺服高频(50~300 Hz)疲劳试验机。腐蚀疲劳实验试样采用标准的漏斗形试样,试样加载如图1所示,腐蚀溶液则采用标配的中性3.5%NaCl(pH 7.0)溶液。
图1 试样加载示意图
本次实验主要考虑最大应力、应力比、频率、加载波形等因素对腐蚀疲劳裂纹扩展的影响。实验中选取以上4个参数的组合作为载荷参数,记录对应的试样循环失效次数(寿命),共获取了7075铝合金的16组实验数据。随机选取12组样本数据作为训练数据,为便于神经网络样本输入,正弦波加载用0表示,三角波加载用1表示,如表1所示。载荷参数作为输入(其中最大应力与载荷频率数据需归一化处理),循环失效次数归一化处理后作为输出。将训练样本输入到BP神经网络进行训练。
表1 腐蚀疲劳样本
神经网络训练好之后,将剩余的4组实验数据作为测试样本,对训练好的神经网络进行仿真。获得的仿真结果与实验误差如表2所示。
Matlab及其所带的神经网络工具箱NNT(NeuralNetwork Toolbox)在实际应用中具有较大的优越性。NNT的可视化接口便于用户明确和理解神经网络的结构,同时能够很快地产生、初始化、训练和仿真神经网络[11]。但是NNT用户图形界面直观性差,NNT数据交换的能力相对较弱,对大部分学生而言可操作性不强。Visual Basic语言是最常用的编程语言之一,具有易学易用、界面可视化等优点,但VB在矩阵计算、数值分析方面的能力相对较弱。为充分发挥Matlab神经网络工具箱和VB开发图形用户界面好的优势,采用ActiveX自动化技术实现Matlab和VB混合编程方法[12-13]。以VB语言编写用户界面,从后台调用Matlab-BP神经网络工具箱,实现腐蚀疲劳样本数据的训练、测试及腐蚀疲劳寿命的预测。混合编程技术实现了样本数据操作的可视化,便于学生理解与接受;该技术实用性强,可以在类似的实验分析中进行推广应用[14-16]。
表2 网络测试结果
(1) 网络训练。输入腐蚀疲劳寿命预测模块训练样本,给出训练样本的输入层变量个数及样本组数。设置神经网络参数:网络中间层(隐含层)神经元个数一般取“2×输入层变量个数+1”;网络目标误差原则上越小越好,但不能太小,否则可能导致训练过程不收敛;网络的最大训练次数可随意选取;学习效率范围为0.01~0.90。设定好网络参数之后,点击训练,模块能自动从后台启动Matlab-BP网络工具包,将训练样本输入到BP工具包中,进行网络训练,如图2所示。
图2 模块调用Matlab-BP工具包示意图
(2) 网络测试及预测。进入网络测试模块。手动输入或从文本文件中读取测试样本,点击测试,模块自动输出腐蚀疲劳寿命,并与测试样本的实际寿命进行对比,判断测试结果的可信度。如果测试结果可以接受,可直接进行寿命预测,否则通过增加样本数量、修改网络控制参数(包括中间神经元个数、目标误差等)重新训练网络。
(3) 直接预测模块。该模块封装了BP神经网络的训练过程(包含12组训练样本)。输入所要预测的试样组数,并完成输入层样本,每组样本对应一个试样,每组样本内容应包括最大应力(归一化)、应力比、频率(归一化)和加载波形,点击预测就可以得到所需预测的每组试样的腐蚀疲劳寿命。
模块各环节数据样本输入均支持两种方法:键盘输入与打开数据文件读取样本数据。但键盘输入比较繁琐,一般都由文件读取。选择读取数据文件时,模块能自动判别训练样本的输入层变量个数及样本组数。为便于样本数据输入,可以在计算机上建立各个环节需要样本的文本文件,如果增加样本,可以直接修改文本文件,便于数据样本的更新及维护。
以上研究中腐蚀疲劳的影响因素仅考虑最大应力、应力比、频率、加载波形4个参数,如需增加其他影响因素,可以直接在数据文件中增加相关实验数据,避免分析过程中反复输入。
高科技的发展为包括材料实验在内的材料力学行为研究开辟了新的领域,也提出了更高的要求。电液伺服技术与计算机技术结合可以实现前人操作不可能完成的实验,将材料力学行为研究推进到一个新的水平。利用计算机技术建立材料性能与行为数据库及分析手段,能有效降低实验重复率,实现对材料力学性能与行为的预测、评估。人工神经网络与材料力学行为试验与分析相结合,可以在有限的实验数据中发现有用的信息,拓宽材料力学行为试验的工程应用领域。将这种方法引入到研究生的材料力学行为试验与分析课程教学中,能有效提高教学效果,激发学习兴趣,启发学生进行更深层次的思考。
[1] 王习术.先进材料力学行为实验指南[M].北京:清华大学出版社,2010.
[2] 王习术.材料力学行为试验与分析[M].北京:清华大学出版社,2007.
[3] 黄小光,腐蚀疲劳点蚀演化与裂纹扩展机理研究[D].上海交通大学,2013.
[4] Engelhardt G R, Macdonald D D. Modelling the crack propagation rate for corrosion fatigue at high frequency of applied stress[J]. Corrosion Science, 2010, 52: 1115-1122.
[5] Ishihara S, McEvily AJ, Sato M,etal. The effect of load ratio on fatigue life and crack propagation behavior of an extruded magnesium alloy[J]. International Journal of Fatigue, 2009, 31:1788-1794.
[6] 纪冬梅,周昌玉,汪 蕊.基于人工神经网络和Monte-Carlo方法的腐蚀疲劳剩余寿命及其可靠度计算[J].压力容器,2002,19(6):23-25.
JI Dong-mei, ZHOU Chang-yu, WANG Rui. Application of artificial neural network in calculation of residual life and reliability in corrosion fatigue[J]. Pressure Vessels, 2002, 19(6): 23-25.
[7] 胡金滨,唐旭清.人工神经网络的BP算法及其应用[J].信息技术,2004,28(4):1-4.
HU Jin-bin, TANG Xu-qing. BP algorithm and its application in artificial neural network[J]. Information Technology, 2004, 28(4): 1-4.
[8] 傅应强,王飞虎,陶庭先.人工神经网络在仪器分析实验数据处理中的应用[J].大学化学,2011,26(6):45-47.
FU Ying-qiang, WANG Fei-hu, TAO Ting-xian. The application of artificial neural network in experimental data processing of instrument analysis[J]. University Chemistry, 2011, 26(6): 45-47.
[9] 曹旭帆,叶 舟,万 俊,等.基于BP神经网络的函数逼近实验及Matlab实现[J].实验室研究与探索,2008,27(5):34-38.
CAO Xu-fan, YE Zhou, Wan Jun,etal. The experiment of function simulation based on backpropagation neuron network[J]. Research and Exploration in Laboratory, 2008, 27(5): 34-38.
[10] GB/T 20120.1-1998,金属与合金的腐蚀-腐蚀疲劳实验第1部分:循环失效实验[S].北京:中国标准出版社,1998.
[11] 陈 明.Matlab神经网络原理与实例精解[M].北京:清华大学出版社,20013.
[12] 程 铃,徐冬冬.Matlab仿真在通信原理教学中的应用[J].实验室研究与探索,2010,29(2):117-119.
CHENG Ling, XU Dong-dong. Application of Matlab simulation in communication principle teaching[J]. Research and Exploration in Laboratory, 2010, 29(2): 117-119.
[13] 何 强,何 英.Matlab 扩展编程[M].北京:清华大学出版社,2002.
[14] 孟力力,杨其长,闻 婧,等.MATLAB和VB在温室环境模型构建中的混合编程研究[J].中国农学通报,2012,28(6):262-268.
MENG Li-li, YANG Qi-chang, WEN Jing,etal. Hybrid programming with MATLAB and VB in building visual simulation model for thermal environment in Chinese solar greenhouse[J]. Chinese Agricultural Science Bulletin, 2012,28(6): 262-286.
[15] 梁艳萍,刘 超.基于VB 与Matlab 混合编程永磁同步电动机电磁设计方法[J].哈尔滨理工大学学报,2010,15(6):25-29.
LIANG Yan-ping, LIU Chao. Electromagnetic design method for permanent magnet synchronous motor based on Matlab and VB mixed programming[J]. Journal of Harbin University of Science and Technology, 2010, 15(6):25-29.
[16] 侍孝虎.VB与Matlab混合编程研究与实现[J].软件导刊,2012,11(9):33-35.
SHI Xiao-hu. The research and realization of hybrid programming of VB and Matlab[J]. Software Guide, 2012, 11(9): 33-35.