基于机器学习的曲梁设计与优化:应用于多稳态结构与超材料

基于机器学习的曲梁设计与优化:应用于多稳态结构与超材料

摘要

曲线梁因其双稳态特性,已被广泛应用于微机电系统(MEMS)器件和能量吸收材料中。以往研究中的曲线梁几乎都具有恒定厚度。尽管改变厚度分布(例如采用等强度梁)可以实现更优的性能,但设计和优化工具的缺乏限制了变厚度曲线梁的发展与应用。本文展示了一种基于机器学习来设计和优化曲线梁的新方法。机器学习因其处理大数据的能力已在许多领域取得成功,该能力亦可应用于结构设计与优化。这种基于机器学习的模型能够实现对非线性结构-属性关系的精确预测。以不同优化目标(如刚度、正向突弹跳变力、反向突弹跳变力)的优化设计得以高效、精确地获得。我们对具有优化轮廓的试件进行了实验测试,这些试件采用高分辨率多材料3D打印机制造。实验结果验证了计算结果。本文开发的基于机器学习的优化方法,可为基于梁的结构和机械超材料的设计与优化提供一个前景广阔的工具。

1. 引言

梁作为一种结构元件,已被研究多年,并在不同尺度的各个工程领域中得到广泛应用。在许多大型结构中,梁被用作水平结构来承受竖向荷载,例如船舶结构中的龙骨和桥梁结构中的主梁。在微观结构领域,曲线梁则因其双稳态特性,被用于构建用于能量捕获的架构超材料[1-5]。从矩形截面梁到工字梁,从等截面梁到变截面梁,从直梁到曲梁,工程师通过改变梁的形式和形状来实现不同的目标。新近发展的制造技术为制造具有复杂几何形状的结构提供了先进的工具[6-8]。与此同时,快速发展的工业对结构提出了新的要求,例如轻量化和抗疲劳性。因此,如何利用这些工具来实现各种优化目标变得至关重要。

对于一个给定的结构,其力学性能可以通过实验测试或数值模拟获得。然而,其逆问题——即寻找能实现目标性能的结构——则并非易事,因为设计空间过于庞大,难以进行广泛探索。为解决这一逆问题,人们开发了各种优化技术,如密度法[9]、水平集法[10]和进化方法[11]。这些技术不仅在机械设计问题中取得了巨大成功,也应用于流体、声学等其他物理学科[12,13]。然而,仍然存在诸多挑战,包括高昂的计算成本、方法主要适用于柔度最小化问题而应用范围有限,以及难以施加更多的几何与物理约束[14]。

“机器学习”这一术语最初由亚瑟·塞缪尔在20世纪50年代提出,当时他创建了一个可以自我学习的跳棋程序[15]。随着计算机硬件的快速进步和新型机器学习方法的发展,机器学习已在图像识别[16]、语音识别[17]、医学预测[18]和推荐引擎[19]等领域取得了巨大成功。机器学习的核心能力在于,它能从大规模数据集中发现并重构输入与输出变量之间复杂的内部关联。因此,原则上,结构的形状与其性能之间的关联也可以通过机器学习来获得。此外,在建立起这种关联之后,相应地优化结构形状也变得容易。这一思路已经启发研究人员将机器学习应用于不同物理系统中的若干优化问题[20-26]。例如,研究人员已利用NN和CNN等机器学习方法实现了石墨烯剪纸结构的逆向设计。“机器学习”这一术语最初由亚瑟·塞缪尔在20世纪50年代提出,当时他创建了一个可以自我学习的跳棋程序[15]。随着计算机硬件的快速进步和新型机器学习方法的发展,机器学习已在图像识别[16]、语音识别[17]、医学预测[18]和推荐引擎[19]等领域取得了巨大成功。机器学习的核心能力在于,它能从大规模数据集中发现并重构输入与输出变量之间复杂的内部关联。因此,原则上,结构的形状与其性能之间的关联也可以通过机器学习来获得。此外,在建立起这种关联之后,相应地优化结构形状也变得容易。这一思路已经启发研究人员将机器学习应用于不同物理系统中的若干优化问题[20-26]。例如,研究人员已利用NN和CNN等机器学习方法实现了石墨烯剪纸结构的逆向设计。

在本工作中,我们专注于具有可变厚度分布的曲线梁设计,以及对三个力学目标:刚度(E)、正向突弹力(S)和反向突弹力(B)的优化。我们提出了一种使用全连接神经网络和优化形状生成器的逆向设计方法。首先,我们描述了曲线梁的一般力学性能以及通过厚度调制改变其性能的概念。接着,我们讨论了机器学习模型输入训练数据的创建以及输出训练数据的分布。之后,我们提出了构建机器学习模型的流程,并探讨了训练过程、验证过程和优化过程。然后,我们展示了机器学习模型的训练和优化结果,并给出了针对不同优化目标的梁的优化轮廓。最后,我们使用高分辨率多材料3D打印机制造了具有优化轮廓的梁试件,并对试件进行了验证测试。

2. 弯曲梁的力学性能

双稳态机构广泛用于设计微机电系统(MEMS)中的阀门和开关等设备,因为这些装置需要两个稳定位置来实现其功能。此外,双稳态机构还被用于构建用于能量捕获的建筑超材料。一种典型的双稳态结构是受压直梁,这在日常生活中非常常见,例如具有两个稳定位置的压缩扑克牌。受压直梁的双稳态是通过预施加应力实现的,但这很难制造。另一方面,具有预成形曲率的弯曲梁,通过仔细选择几何形状,可能具有双稳态特性。如图1(a)所示,弯曲梁的初始形状为:

w(x)=h2[1cos(2πxl)](1)w(x)=\frac{h}{2}\left[1-\cos\left(2\pi\frac{x}{l}\right)\right] \tag{1}

其中 ll 是梁的跨度,hh 是梁的顶点高度。在图1(a)所示的边界条件下,并约束第二模态,该弯曲梁的典型载荷-位移曲线如图1(b)中的蓝线所示。高度非线性的载荷-位移曲线分为3个阶段:第1阶段力增加,第2阶段力减小,第3阶段力再次增加,这可以通过弯曲和压缩能量的变化来解释。可以从载荷-位移曲线中提取弯曲梁的三个力学特性:刚度(EE),由载荷-位移曲线的初始斜率确定;正向突跳力(SS),由第1阶段末端的最大力确定;反向突跳力(BB),由第2阶段末端的最小力确定。如果反向突跳力的值小于0,则弯曲梁是双稳态的。初始形状的影响,例如曲率,对弯曲梁力学性能的影响已在先前的研究中被探讨。然而,力学性能也可以通过改变梁的厚度分布来控制和调节。这里有一个例子:如图1(a)所示的一种厚度变化的弯曲梁。为了比较恒定厚度梁与变化厚度梁的力学性能,两梁的初始形状和质量保持一致。图1(b)分别展示了两条载荷–位移曲线。显然,通过改变厚度分布,刚度、正向突跳力和反向突跳力都可以被调节。现在的问题是:如何安排厚度分布以实现期望的力学性能?

3. 机器学习模型

在本节中,将构建一个基于机器学习的模型,并基于该模型进行优化。图2展示了一个用于构建基于机器学习模型的四步工作流程。第一步是创建一个数据库,包含两部分:梁轮廓(输入数据)和力学性能(输出数据)。用于优化的参考梁具有以下归一化几何参数:l=60l=60t=2t=2,和h=8h=8。通过将常数tt改为变化的t(x)t(x),存在无限多种梁轮廓。为了避免梁的某些部分厚度过薄,我们添加一个约束 tmax/tmin2t_{\text{max}}/t_{\text{min}} \leq 2,这意味着在设计空间中的每个梁,其最厚部分的厚度不能超过最薄部分厚度的2倍。请注意,这个数字可以根据需要更改。由于对称边界条件,考虑半个梁模型。然后将半个梁模型离散为30个区段。用一个包含30个数字的数组来表示所有30个区段的相对厚度,用以描述梁的轮廓。最薄的区段有 ti=1t_i = 1,而其他区段有 ti{1.0,1.1,1.2,,2.0}t_i \in \{1.0, 1.1, 1.2, \cdots, 2.0\}。半个梁模型、离散梁和相对厚度数组如图2(a)所示。用于训练ML模型的输入数据是相对厚度数组。输出数据,即不同轮廓梁的力学性能,是通过使用Abaqus的有限元(FE)模拟结果获得的。变厚度梁的刚度可以解析求得 [31]。然而,对于具有复杂轮廓的梁的高度非线性力学性能,很难找到解析解。注意,相对厚度数组必须转换为有限元模拟中的真实厚度数组。为确保所有的梁与参考梁质量相同,转换过程如下进行:

tio=tii=130ti302(2) t_i^o = \frac{t_i}{\sum_{i=1}^{30} t_i} \cdot 30 \cdot 2 \tag{2}

其中 tiot_i^o 是真实厚度数组,tit_i 是相对厚度数组。每个可能的梁轮廓有 30 个区段,每个区段有 11 种可能的相对厚度值。因此,总共有约 113011^{30} 种可能的梁轮廓,这是一个巨大的设计空间。在此,我们随机生成 10510^5 个梁轮廓作为输入数据,并通过有限元模拟计算出 10510^5 个对应的力学响应作为输出数据。这些就是用于训练机器学习模型的数据集。

获得数据库后,第二步是构建一个机器学习模型,并使用第一步得到的数据库来训练该模型,如图 2(b) 所示。我们使用开源神经网络库 Keras [32] 来构建机器学习模型。首先,模型的类型被认为是顺序的。在这项工作中,考虑了两种类型的模型:一个序列模型和卷积神经网络模型[32]。本工作中使用的ML模型具有单个输入层,大小为30×130\times1,单个输出层,大小为11,以及几个不同大小的隐藏层。隐藏层的数量和大小通过不同数字进行测试。然后,损失函数,即均方误差和平均绝对百分比误差[32]的组合,被确定。在训练过程中,一个合适的优化器被用来塑造和遵循模型到更稳定的形式。在训练过程中,需要确定一个适当的优化器。随机梯度下降优化器和Adam优化器[32]在本工作中被采用。最后,我们尝试了几种激活函数用于隐藏层和输出层:ReLU激活函数,sigmoid激活函数,和线性激活函数[32]。此时,由于多种组合,可以构建一组模型。在训练过程中,我们测试每个模型的表现并确定一个模型,该模型给出最令人满意的结果。此外,我们最小化理想值的权重矩阵,权重矩阵用于定义每层之间的连接强度,以构建模型。最终,一个训练良好且经过验证的模型可以被构建和训练,该模型可以很好地表示训练数据集中的梁轮廓和力学性能之间的关系。

前一步中训练的ML模型不能直接用于优化,因为潜在的过拟合问题。如前所述,整个设计空间比训练数据集大得多。ML模型旨在适应训练数据集。因此,一个适合训练数据集的ML模型可能不适用于整个设计空间。因此,另一个独立于训练数据集的数据集被创建,称为随机数据集,用于验证训练好的ML模型。我们使用两种方法来预测10410^4个随机梁轮廓的力学性能:有限元模拟和训练的ML模型,见图2(c)。两个输出的差异和训练过程也被用来确定训练好的模型是否可以被验证,如果计算的损失值很小,就像在训练数据集中计算的损失一样。

在最后,训练和验证过的ML模型被用来执行优化。我们遵循[23]提出的通用优化程序。优化的流程图如图2(d)所示。随机数据集用于ML模型。训练数据集的前10%梁轮廓在第一次优化循环中被用作初始轮廓。在后一次循环中,10410^4个样本是基于前一次循环的评估结果生成的,包括三部分。第一部分是从前一次循环中生成的9000个梁轮廓中随机选择的。第二部分是来自前一次循环的100个最佳样本。第三部分是基于前一次循环中10%最佳样本的出现生成的900个样本。通过几次优化循环,可以获得具有更好力学性能的梁。

结果与讨论

如第一步所述,我们随机生成了10^5个梁轮廓,并计算了有限元模拟得到的相应力学性能。在本工作中,每次模拟在Intel Xeon E5-1650中央处理器(CPU)上耗时约12秒。我们有三个优化目标:刚度(E)、正向突跳力(S)和反向突跳力(B)。这三个目标的直方图数据如图3所示,所有结果都通过参考梁(恒定厚度梁)的对应值进行了归一化处理。这三个目标都大致呈正态分布。优化的目标是找到刚度更高、正向突跳力更大、反向突跳力更小的梁。如图3(a-b)所示,在刚度和正向突跳力方面,训练数据集中大多数梁的值低于恒定厚度梁。考虑到刚度和正向突跳力的分布情况,分布在右侧尾部区域的优化目标难以实现。图3(c)显示,反向突跳力的分布中,反向突跳力值小于0的梁为双稳态梁,用绿色标记。尽管恒定厚度梁不是双稳态梁,但通过改变梁的厚度分布,可以实现双稳态。

利用训练数据集,我们尝试了不同的机器学习模型,参数如上所述。网格搜索用于寻找预测最准确的模型的最优参数。在对隐藏层数量(3个值)、隐藏层大小(10个值)和激活函数(2个值)进行网格搜索后,我们得到了一个最优的机器学习模型,该模型给出了最令人满意的结果,如图4(a)所示。它有一个大小为960的隐藏层。隐藏层和输出层使用的激活函数分别是ReLU函数和线性函数。损失函数是均方误差,优化器是Adam优化器,学习率为0.001。训练使用了100个epoch。训练过程耗时约40分钟,而基于训练好的模型进行的每次预测仅需约10410^{-4}秒,这比有限元模拟快约100000倍。通过有限元模拟计算的力学性能与机器学习模型预测的力学性能之间的比较如图4(b-d)所示。训练数据集的结果用黄色点表示,这些点散布在直线y=xy=x附近,这证明机器学习模型对训练数据集具有很高的预测精度。同时,测试数据集的结果(蓝色点)也散布在直线y=xy=x附近,这表明机器学习模型没有过拟合问题,可以用于整个设计空间的预测和优化。需要注意的是,一个简单的线性回归模型也可以用来预测结构-性能关系,但它无法达到机器学习模型所实现的高精度。经过10次和100次优化循环后,前100个高性能设计的结果分别用粉色和深红色点表示。对于10次优化循环后的结果,所有结果都位于高性能范围内,但与训练数据集有一些重叠。对于100次优化循环后的结果,力学性能进一步提高,并且与训练数据集没有重叠。这表明我们用训练数据集训练的机器学习模型确实学会了具有更好性能的设计。基于我们使用的参数,可以得到一个刚度比参考梁高1.15倍、正向突跳力高1.1倍的梁设计。刚度和正向突跳力的提升并不十分显著,然而,归一化后的反向突跳力值从1变为-1(经过100次优化循环后)。因此,通过改变厚度分布,曲梁的双稳态特性可以被显著调节。

图5展示了采用基于机器学习的优化方法得到的具有优化轮廓的梁及其相应的力-位移曲线结果。力通过参考梁的正向突跳力进行归一化,位移通过梁顶点高度的2倍(2h)进行归一化。第一根梁(红色)优化了正向突跳力,第二根梁(绿色)优化了刚度。两者具有相似的厚度分布模式:两端较厚,中间较薄。然而,这两种模式之间存在细微差异。对于优化正向突跳力的梁,厚度从厚到薄逐渐变化,过渡区域较长。对于优化刚度的梁,厚段在很短的区域内急剧变细。由于在测试中是在小变形下获得刚度,因此在梁的两端可以发现高应力集中。优化E设计在两端有较厚的区域,这可以减少应力集中,从而增加刚性。然而,在大挠度下,优化E设计中厚度的突然变化可能会产生其他应力集中点,因此与优化S的梁相比,正向突跳力更低。注意,优化刚度和优化正向突跳力的梁都具有正值的反向突跳力,表明它们不是双稳态梁。第三根梁(蓝色)被优化为具有最低的反向突跳力值。与前两根梁相反,优化的双稳态梁在中间部分较厚,两端较薄。梁的双稳态机制可以通过变形过程中的结构能量变化来解释。梁中存储的能量包括弯曲能量和压缩能量。弯曲能量单调增加。当梁几乎伸直时,压缩能量增加到最大值,然后减少。对于参考梁,压缩能量的减少慢于弯曲能量的增加,总能量持续增加。因此,参考梁不是双稳态的。然而,对于优化反向突跳力的梁,在变形过程中,梁的两端具有较高的应力集中。通过减小两端的厚度,弯曲能量的增加被降低。因此,弯曲能量的增加慢于压缩能量的减少,总能量正在减少。这导致反向突跳力为负值和双稳态。注意,图5中的设计是通过进行100次优化循环获得的。很有可能在进行更多次优化循环后可以找到更好的设计。这些设计不是真正的最优设计,但在100次优化循环的结果收敛后,它们非常接近。

为了验证优化结果,使用Objet Connex260多材料3D打印机(Stratasys, Ltd)制作了参考梁和所有3个优化梁的试样,如图5(c)所示。支撑框架使用刚性塑料材料VeroWhite,梁使用橡胶状柔性材料Shore 95A打印。使用MTS力学测试仪(C43框架)和1 kN载荷传感器进行压缩试验,试验速率为8 mm/min。为了便于比较,压缩试验的载荷-位移曲线以与图5(a)相同的方式进行归一化。显然,图5(a)中的有限元模拟曲线与图5(d)中的实验结果吻合良好并得到验证。一致的是,优化E设计具有最高的刚度,优化S设计具有最高的正向突跳力,优化B设计具有最低的反向突跳力(为负值)。

总结

在本文中,我们开发了一种基于机器学习优化技术的曲梁设计方法。详细讨论了基于机器学习的优化完整流程。我们创建了一个包含描述梁轮廓的输入数据集和描述力学性能的输出数据集的数据信。构建了多种机器学习模型,并从中选择了结果最令人满意的模型。利用训练和测试数据集对该模型进行训练和验证。基于此模型,采用了一种自学习优化方法来预测分别优化刚度、正向突跳力和反向突跳力的梁的轮廓。通过高分辨率多材料3D打印机制造了具有优化轮廓的梁试件,并进行了测试。优化结果得到了实验验证。本研究中的机器学习模型能够通过有限数量的训练数据集捕捉整个设计空间固有的高度非线性结构-性能关系,这使得基于机器学习模型的优化速度远快于传统方法。此外,该优化方法对不同的优化目标几乎具有普适性。我们的研究表明,基于机器学习的模型可以为结构和机械超材料的设计与优化提供一种有前景的工具。需要指出的是,本文演示的优化过程是单目标优化。然而,结合加权求和法、ε-约束法等传统方法,我们相信机器学习同样有望成为多目标优化的有力工具。


图1

图1为曲梁的示意图及典型荷载 - 位移曲线。(a) 恒定厚度和变厚度曲梁的几何形状及标注。(b) 典型荷载 - 位移曲线以及三个力学性能:刚度(EE)、正向突跳力(SS)和反向突跳力(BB)。(关于本图图例中颜色引用的解释,读者请参考本文的网络版。)

图2

图2. 基于机器学习的曲梁厚度分布优化的四步工作流程。(a) 训练数据库的创建。(b) 机器学习模型的训练过程。(c) 机器学习模型的预测与验证过程。(d) 优化过程的流程图。

图3

图3. 训练数据集中三个归一化优化目标的直方图:(a) 刚度( E );(b) 正向突跳力( S );(c) 反向突跳力( B )。(关于本图图例中颜色引用的解释,读者请参考本文的网络版。)

图4

图4. 训练并验证的机器学习模型及其优化结果。(a) 给出最满意结果的最佳机器学习模型。(b)–(d) 基于机器学习模型针对三个优化目标的预测和优化结果。(关于本图图例中颜色引用的解释,读者请参考本文的网络版。)

图5

图5. 优化结果及实验验证测试。(a) 恒定厚度 t 的参考梁和3个优化梁的优化力 - 位移曲线。(b) 3个优化梁对应的梁轮廓。(c) 具有优化反向突跳力( B )的3D打印梁试件。(d) 所有4根梁的实验力 - 位移曲线。(关于本图图例中颜色引用的解释,读者请参考本文的网络版。)