首页/文章/ 详情

热-弹-黏塑性晶体塑性模型文章推荐

3月前浏览879
文章名称《A three dimensional (3D) thermo-elasto-viscoplastic constitutive model for FCC polycrystals
DOI:10.1016/j.ijplas.2015.04.001

在铝合金、镁合金等轻质材料成形过程中,温度往往不是一个可以忽略的因素。尤其是在温成形条件下,材料的流动应力、硬化能力、延性、应变率敏感性以及弹性回复都会发生明显变化。传统室温本构模型通常需要依赖大量不同温度、不同加载路径下的实验数据进行拟合,很难真正解释“温度如何影响晶体滑移和多晶塑性响应”。

Cyr 等人针对这一问题提出了一个三维热-弹-黏塑性晶体塑性模型,即 TEV 模型,用于描述 FCC 多晶材料,特别是 AA5754 铝合金在升温条件下的力学行为。该模型的核心思想是:材料变形不仅包含弹性变形和晶体塑性滑移,还需要显式考虑热膨胀变形。因此,总变形梯度被分解为弹性/刚体转动部分、热变形部分和塑性变形部分。

在本构层面,作者保留了 FCC 晶体的 12 个 {111}<110> 滑移系,并采用幂律型滑移率方程描述率相关塑性流动。与常规晶体塑性模型不同的是,该模型把温度效应系统地引入到多个关键物理量中:首先,单晶弹性常数 C11、C12、C44 随温度变化;其次,滑移阻力引入热软化函数,用来描述温度升高后滑移更容易发生的现象;再次,单滑移硬化参数也被写成温度函数,包括参考临界分切应力、初始硬化率和硬化指数。

这个模型的优势在于,它不是简单地给宏观应力-应变曲线加一个温度修正系数,而是从晶体滑移层面描述温度对材料响应的影响。换句话说,它可以同时分析宏观应力变化、微观滑移活动、织构演化、局部应变集中和热软化机制。因此,它比普通经验型热塑性模型更适合用于多晶材料温成形模拟。

作者首先利用 AA5754 铝合金在 25 ℃、148 ℃、204 ℃ 和 232 ℃ 下的单轴拉伸实验数据标定温度相关硬化参数。随后,又预测了 177 ℃ 和 260 ℃ 下的拉伸响应。结果表明,在 25–232 ℃ 范围内,模型能够较好描述温度升高导致的流动应力降低和硬化行为变化;在 260 ℃ 时,模型在较小应变范围内仍能较好预测,但高应变阶段会出现偏差,这可能与动态回复、动态再结晶等高温变形机制有关,而这些机制并未被该模型显式考虑。

为了验证模型的可迁移性,作者进一步进行了不同温度下的简单剪切模拟。重要的是,剪切模拟没有重新标定材料参数,而是直接使用单轴拉伸得到的温度相关硬化关系。结果显示,模型能够较好预测 25 ℃、148 ℃ 和 232 ℃ 下的归一化剪切应力-剪切应变曲线,说明该硬化参数体系不仅适用于拉伸,也可以推广到其他加载路径。

文章还给出几个有价值的结论。第一,温度相关硬化参数可以较好预测 AA5754 在温成形范围内的变形行为。第二,温度对织构演化的影响并不显著,因此在未发生明显动态回复或再结晶之前,室温织构演化规律可近似用于高温模拟。第三,热软化函数中指数参数取 4 时,能够较好描述 AA5754 的温度软化行为。第四,温度相关弹性常数虽然在大塑性应变阶段影响有限,但会明显影响弹性加载、初始屈服和回弹相关问题。

基于该模型思想,后续可以设计一个数值案例:建立 FCC 多晶 RVE,在不同温度下进行单轴拉伸或模拟,对比等温条件、外部温度场条件以及考虑热软化后的应力-应变响应。同时输出滑移活动、局部应变集中、温度相关硬化参数和织构演化结果,用于展示 TEV 晶体塑性模型在高温成形模拟中的优势。

初始模型如下:
在step中使用热力耦合分析步,在子程序中引入温度相关的变形梯度
边界条件设置:初始温度场293K,同时设定Y+方向为393K,所有热相关参数均使用文章的相关参数,左侧固定,右侧施加位移边界条件,并使用C3D8T单元进行网格离散。
变形结束后的应力分布情况:
变形结束后的累计剪切滑移:
变形结束后的温度场分布:
来源:我的博士日记
化机材料
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-05-07
最近编辑:3月前
此生君子意逍遥
博士 签名征集中
获赞 62粉丝 130文章 153课程 0
点赞
收藏
作者推荐

pinn求解三维固体力学问题(pytorch)

pinn求解三维固体力学问题(pytorch)论文名称《An introduction to programming Physics-Informed Neural Network-based computational solid mechanics》 问题描述 几何模型:完整立方体边长 。利用对称性,仅建模立方体的八分之一(如右图),以降低计算成本。载荷条件:在立方体顶部和底部表面 ( 和 ) 施加沿z方向的分布力 。载荷函数为: 边界条件:位移边界条件 (在对称面上施加): 材料属性:杨氏模量 泊松比 为平面应力问题,Lamé常数 由 和 通过公式计算得到。神经网络架构设计该PINN模型采用多个独立的前馈神经网络来近似位移场。设计要素 具体配置 模型输入三维空间坐标 模型输出三个方向的位移分量 网络架构三个独立 的全连接前馈神经网络 (Fully Connected Neural Network, FNN) 单个FNN结构包含 4 层(输入层、隐藏层、输出层),每层有 20 个神经元 激活函数使用 tanh 函数(在FNN()函数中默认设置) 参数初始化使用 LeCun 初始化方案(在Input_Info()函数中定义) 训练采样点在计算域内生成 9261 个 均匀分布的样本点(间距 ) 物理信息嵌入与损失函数主要物理约束:平衡方程 (在计算域 内): 力边界条件 (在力边界 上): 位移边界条件 (在位移边界 上): 损失函数类型:在此3D案例中,论文仅使用了配点损失函数 (Collocation Loss Function) 进行求解。能量基损失函数 (Energy-based Loss Function) 可以通过修改程序实现,但3D示例中未使用。**损失函数构建 (Collocation)**:损失函数是平衡方程残差和力边界条件残差的均方误差 (MSE) 之和: 其中, 是域内样本点总数, 是力边界上的样本点数。边界条件精确施加:对于固定的位移边界条件(如 ),采用了硬边界的方法来精确满足,而非将其作为损失项。这简化了损失函数,降低了训练复杂度。具体方法为: ,其中 是原始FNN输出, 是固定边界位置。数值实现流程一些关键问题由于在三维问题下,采样点会指数增加,例如采用 ,不可避免有内存超限问题。训练阶段def closure(self): self.optimizer.zero_grad() x, x1u, x1b, x2u, x2b, x3u, x3b = self.x_train ### 第1段:平衡方程残差(内域点) Gex, Gey, Gez = self.pinn.forward_ge(x) l1 = Loss_GE(Gex, Gey, Gez) l1.backward() l1_val = l1.item() del Gex, Gey, Gez ### 第2段:x面边界条件 s11u, s121u, s131u, s121b, s131b = self.pinn.forward_bc_x(x1u, x1b) l_x = Loss_BC_x(s11u, s121u, s131u, s121b, s131b) l_x.backward() l_x_val = l_x.item() del s11u, s121u, s131u, s121b, s131b ### 第3段:y面边界条件 s22u, s122u, s232u, s122b, s232b = self.pinn.forward_bc_y(x2u, x2b) l_y = Loss_BC_y(s22u, s122u, s232u, s122b, s232b) l_y.backward() l_y_val = l_y.item() del s22u, s122u, s232u, s122b, s232b ### 第4段:z面边界条件 s33u, s133u, s233u, s133b, s233b = self.pinn.forward_bc_z(x3u, x3b) l_z = Loss_BC_z(s33u, s133u, s233u, s133b, s233b, self.y_train) l_z.backward() l_z_val = l_z.item() del s33u, s133u, s233u, s133b, s233b ### 汇总 loss 数值 loss_val = l1_val + l_x_val + l_y_val + l_z_val return torch.tensor(loss_val) 将一次大的 forward+backward 拆分为4段独立计算,每段算完立即 backward 释放计算图。由于 zero_grad() 只在开头调用一次,4次 backward() 的梯度自动累积,数学上完全等价。后处理阶段n = xyz.shape[0]batch_size = 2000s1_list, s2_list, s3_list = [], [], []s12_list, s13_list, s23_list = [], [], []for i in range(0, n, batch_size): xyz_b = torch.tensor(xyz[i:i+batch_size], dtype=torch.float32, requires_grad=True).to(device) # 只需一组微分 + 一次 Material 调用 U_x, U_y, U_z, U_xx, U_xy, U_xz, U_yy, U_yz, U_zz = pinn.dif_x(xyz_b) V_x, V_y, V_z, V_xx, V_xy, V_xz, V_yy, V_yz, V_zz = pinn.dif_y(xyz_b) W_x, W_y, W_z, W_xx, W_xy, W_xz, W_yy, W_yz, W_zz = pinn.dif_z(xyz_b) _, _, _, _, _, _, s1_t, s2_t, s3_t, s12_t, s23_t, s13_t, _, _, _ = Material( U_x, U_y, U_z, V_x, V_y, V_z, W_x, W_y, W_z, U_xx, U_xy, U_xz, U_yy, U_yz, U_zz, V_xx, V_xy, V_xz, V_yy, V_yz, V_zz, W_xx, W_xy, W_xz, W_yy, W_yz, W_zz, pinn.E, pinn.mu) # detach() 断开计算图,只保留数值 s1_list.append(s1_t.detach().cpu().numpy()) s2_list.append(s2_t.detach().cpu().numpy())s1 = np.concatenate(s1_list)# ... 拼接其余分量 每个批次中:detach() 将结果从计算图断开,只保留纯数值下一轮循环中变量(xyz_b, U_x, s1_t 等)被重新赋值,旧对象的引用计数归零Python 引用计数机制立即回收旧对象,关联的计算图跟随释放 二维物理问题描述模型: 几何与建模:方板边长 利用几何对称性,仅建模方板的四分之一(如图12(b)),以降低计算成本载荷条件:在板的右侧( )施加沿x方向的分布力 载荷函数为: 边界条件:位移边界条件 (在对称面上施加): 力(牵引力)边界条件:已由 在右侧边界施加材料属性:杨氏模量 泊松比 为平面应力问题,Lamé常数 由以下公式计算: 来源:我的博士日记

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈