ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

HJC本构模型在冲击仿真中的核心原理与LS-DYNA参数标定实战

HJC本构模型在冲击仿真中的核心原理与LS-DYNA参数标定实战 简介HJC本构模型翻译文档是面向混凝土冲击动力学和数值模拟学习者的中文译稿内容出自 Holmquist、Johnson、Cook 提出的经典混凝土动态本构模型。文档围绕大应变、高应变率和高压力问题依次介绍了等效强度表达式、损伤累积机制、塑性体积应变与静水压力的三阶段关系并给出 A、B、N、C、SMAX 等参数的物理含义及 0.048GPa 无侧限抗压强度混凝土的参数确定示例。文末保留了侵彻算例与实验数据的对比讨论便于读者理解模型的实际用法。资源为单个 doc 文件大小 654KB可直接在 Word 或 WPS 中阅读、检索和标注。目前已有 173 人学习适合土木、防护工程及弹药侵彻方向的工程师和研究生使用能省去检索英文原文和整理术语的时间快速建立 HJC 模型框架并为后续在 LS-DYNA、AUTODYN 中设置材料参数提供依据。1. 为什么HJC模型在冲击仿真里这么“吃香”做侵彻、爆炸和抗冲击仿真的人电脑里基本都存过一份HJC本构模型的资料。Holmquist、Johnson和Cook三位在1993年第14届国际弹道会议上提出的这个混凝土动态本构模型到现在仍然是LS-DYNA、AUTODYN等软件里模拟混凝土冲击响应的主力模型之一。我当时处理的那份“HJC本构模型翻译”文档目标特别明确把原始英文论文里那些公式、参数的含义和逻辑关系理顺让一个没读过原版论文的工程师拿到中文资料后也能把参数正确填进软件算出来的结果不会南辕北辙。HJC能火这么多年原因是多方面的。混凝土这类材料的行为和金属完全不同。金属在冲击下主要靠位错滑移消耗能量而混凝土是多孔、非均质的脆性材料里面有大量微裂缝和孔隙。当冲击波传进来孔隙被压塌微裂缝迅速扩展贯通材料一边被压缩一边丧失承载能力。这个过程中静水压力对强度的影响非常大——围压越高混凝土表现出的强度越高甚至可以从脆性破坏转变成延性流动。HJC模型正是抓住了这个核心特征它把材料响应拆成强度、压力-体积关系和损伤演化三块分别描述“能承受多大应力”“体积被压缩到什么程度”“损伤累计了多少”然后用一套耦合的方式把它们串起来。这个架构的妙处在于它既不像纯经验模型那样只能拟合单一工况也不像细观损伤模型那样需要海量微结构参数。HJC的参数一共十几个大部分可以通过常规材料试验加少量经验公式确定工程实用性很强。再加上原论文给出了完整参数表和验证算例很多软件直接内置了这套模型LS-DYNA的MAT_111就是典型所以它成为混凝土冲击仿真的事实标准之一并不意外。不过“内置”不等于“会用”。我见过不少人把论文里的默认参数直接搬进自己的模型算出来的弹坑深度、破坏范围跟实验对不上然后回头怀疑模型本身有问题。实际上问题多半出在没搞懂每个参数背后的物理含义和标定逻辑。这也是我当时坚持做完整“翻译”的核心原因参数不是抄进去就完事你得知道它在公式里占什么位置、改变它会牵连哪些行为。2. 强度、状态方程、损伤演化HJC模型的三块核心骨架HJC模型的主控方程可以拆成三个部分屈服面方程、状态方程和损伤演化方程。这三个方程不是孤立存在的彼此耦合在一起共同决定材料在冲击载荷下的响应。2.1 强度模型屈服面公式怎么读HJC模型的屈服面写成如下形式σ* [A×(1 - D) B×(P*)^N] × (1 C×ln ε̇*)其中σ* σ / f_c是标准化等效应力P* P / f_c是标准化静水压力ε̇* ε̇ / ε̇₀是无量纲应变率A是标准化内聚强度B是压力硬化系数N是压力硬化指数C是应变率敏感系数D是损伤变量。这个公式看着不长但信息量很大。方括号里分两块A×(1 - D)代表材料的内在粘结强度材料完好时D 0这部分贡献最大损伤发展后D趋向1粘结强度逐渐归零。B×(P*)^N代表静水压力带来的“摩擦强度”——就像沙子堆在一起围压越大砂粒之间的摩擦力越大整体越难被剪切破坏。混凝土里的微裂缝在高压下难以张开表观强度自然提升这个幂函数关系就刻画了这一点。括号外面的(1 C×ln ε̇*)描述应变率效应应变率越高强度越高但因为是取对数所以这个增益是渐进的——应变率提高10倍、100倍强度提升并不是成倍增长而是以对数规律缓慢爬升。这一项对应爆炸和侵彻这种高应变率工况格外重要静载下的强度在这里会被放大好几个量级。从物理图像上说屈服面就是材料在任意压力、任意应变率和任意损伤状态下能承受的最大偏应力。三个变量压力、应变率、损伤共同决定这个“承力上限”互相之间不是简单的线性叠加而是耦合作用。2.2 状态方程压力与体积的非线性账本混凝土受压后体积会变小但这个缩小不是线性的。HJC模型用三段式多项式状态方程来描述静水压力P和体积应变μμ ρ/ρ₀ - 1即密度变化率之间的关系。第一阶段是线弹性段P Kμ。此时压力还比较小材料内的孔隙没有被压塌体积变化基本可逆K是体积模量。第二阶段是过渡段P P_crush K_crush×(μ - μ_crush)。当压力超过P_crush混凝土内部的孔洞开始逐个压溃这时候体积大幅缩水但压力增长放缓相当于材料“变软”了。第三阶段是密实段混凝土里的孔隙基本被压光材料行为接近致密固体压力-体积关系变成三次多项式P K₁μ̄ K₂μ̄² K₃μ̄³其中μ̄是修正后的体积应变考虑了压实后的参考点变化。理解这个三段式特别重要。很多刚接触的人会把EOS简单理解成“给个体积模量就行”但HJC的高压段是强非线性的K₁、K₂、K₃的取值直接影响爆轰波和弹丸高速侵彻时的压力传播。如果只用线性EOS冲击波会被严重扭曲计算结果失真。2.3 损伤演化材料从“硬”到“垮”的记账过程损伤变量D是HJC模型的“记账本”记录材料从完好到失效的累计过程。它的增量表达式是ΔD (Δεp Δμp) / [D₁×(P* T*)^D₂]分子是等效塑性应变增量和塑性体积应变增量之和代表材料在这个载荷步里产生的不可逆变形分母是当前压力状态下材料还能承受的累计塑性变形能力。D₁、D₂是损伤常数T*是标准化最大拉伸强度。要注意分母里的P* T*压力越高分母越大材料在失效前能积累的塑性变形就越多。这从物理上解释了一个现象——高压约束下的混凝土可以出现很大的“假塑性”变形而不失效而低压拉伸状态下的混凝土非常脆积累一点点应变就彻底破碎。为了限制分母在低压下无限变小导致D疯狂增长模型设置了EFMIN这个最小断裂应变下限保证数值上不出现病态。损伤D从0累加到1D 1时材料强度完全丧失。这也意味着一旦单元损伤达到1它基本没有继续承载的能力后续变形就是“碎块飞散”的过程了。HJC对这个过程描述得比较简化不区分拉伸损伤和压缩损伤的细微差别这在某些需要精确模拟拉伸开裂的工况下是被诟病的地方也是后人对HJC做各种改进的出发点之一。3. 参数对照表文档里的英文符号在软件里到底对应什么翻译这类本构模型文档最直接的价值就是把论文里的符号、软件关键字的字段、以及中文工程习惯叫法三者对应起来。很多英文术语直接按字面翻译会让人误入歧途参数对照就得靠这里。3.1 核心参数一览与典型数值下面这张表整理的是原始论文中用于标定某48MPa抗压强度混凝土的典型参数。我把英文符号、中文释义、物理含义一次对齐方便对照查阅。参数符号LK-DYNA字段中文释义物理含义与说明ρ₀RO初始密度单位体积质量注意与软件单位制匹配GG剪切模量弹性阶段的抗剪切能力AA标准化内聚强度归一化的无围压内聚强度损伤前的主要强度来源BB压力硬化系数静水压力对强度的贡献比例CC应变率敏感系数对数应变率项的系数控制率敏感性NN压力硬化指数压力项的非线性指数通常小于1f_cFC单轴抗压强度材料的特征强度用于所有参数量纲归一化TT最大拉伸强度材料能承受的最大静水拉应力ε̇₀EPS0参考应变率通常取1.0/s用于无量纲化应变率εf_minEFMIN最小断裂应变损伤分母的下限防止低压下过早失效σ*_maxSFMAX归一化最大强度屈服面强度的上限值防止数值过大P_crushPC压碎压力孔洞开始压塌的临界静水压力μ_crushUC压碎体积应变对应P_crush的体积应变P_lockPL压实压力孔隙完全闭合的临界压力μ_lockUL压实体积应变对应P_lock的体积应变D₁、D₂D1、D2损伤常数控制损伤随压力的演化速度K₁、K₂、K₃K1、K2、K3密实段压力常数高压状态方程多项式的系数典型数值方面原始论文给的一组参数是ρ₀ 2440 kg/m³G 14.86 GPaA 0.79B 1.60C 0.007N 0.61f_c 48 MPaT 4 MPaEFMIN 0.01SFMAX 7.0PC 16 MPaUC 0.001PL 800 MPaUL 0.1D₁ 0.04D₂ 1.0K₁ 85 GPaK₂ -171 GPaK₃ 208 GPa。请注意K₂是负值这在高压段起到“软化”修正的作用不要因为它是负号就觉得填错了。3.2 LS-DYNA关键字字段顺序如果你用的是LS-DYNA模型对应关键字是*MAT_JOHNSON_HOLMQUIST_CONCRETE编号MAT_111。完整的字段顺序大致是这样*MAT_JOHNSON_HOLMQUIST_CONCRETE $# mid ro g a b c n fc 1 2440.0 14.86 0.79 1.60 0.007 0.61 48.0 $# t eps0 efmin sfmax pc uc pl ul 4.0 1.0 0.01 7.0 16.00 0.001 800.0 0.1 $# d1 d2 k1 k2 k3 0.04 1.0 85.0 -171.0 208.0注意不同版本的关键字格式可能有细微差异生成卡片时最好对照你所用版本的keyword手册确认字段顺序。另外表格里这些典型参数来自原始论文的某一种混凝土试验不是放之四海而皆准的标准答案。我之前遇到过直接把这张表塞进C40混凝土模型里的做法结果单轴压缩响应完全不合理——因为所有参数都是以f_c 48MPa为基准归一化过的换成别的标号必须重新标定。4. 把参数真正落地标定路线、软件操作与常见报警模型翻译得再明白最后还得落到仿真软件里跑通算稳。这一章节我想聊的是参数落地时最容易被忽视的几个环节。4.1 为什么拿默认参数直接算往往不准默认参数最大的问题是“基准强度不匹配”。原始论文的参数是针对抗压强度48MPa左右的混凝土标定的这是它做靶板试验的基准材料。你换一种混凝土标号f_c变了但A、B、N这些参数还是老值会导致屈服面整体走形。更隐蔽的问题是量纲一致性。以HJC模型里的压力相关参数为例PC、PL、T都是压力量纲但它们的数值必须和你在软件里用的单位制统一。同样是PC 16这个数字在kg-m-s单位制下是16帕斯卡在g-mm-ms单位制下就得写成16e-6在ton-mm-ms单位制下又是另一个数值。单位制一套错整个模型全乱。有的软件不强制单位制这其实是好事也是坏事——好事是灵活坏事是要求工程师自己对所有参数的量纲负责。4.2 我的标定路线图如果你手头有材料试验条件我的建议是分四步走第一步确定静态基础参数。做单轴抗压试验得到f_c和弹性模量E做巴西劈裂试验或直接取经验值T f_c/10。这是整个参数组的地基后面所有归一化都靠它。第二步拟合EOS参数。P_crush和μ_crush可以从单轴压缩的应力-应变曲线估出来通常P_crush大致在f_c/3附近μ_crush ≈ P_crush/E。P_lock和μ_lock需要高压试验数据比如用平板冲击或者霍普金森压杆配合横向约束装置。如果没有试验条件可以参考同类混凝土的文献数据K₁、K₂、K₃可以从岩石力学的高压数据类比得来但要用静水压力试验验证。第三步拟合强度参数。A和N可以从不同围压下的三轴压缩试验拟合得到B通常和A、N一起做多元回归。C则需要不同应变率下的动态压缩强度试验典型的用SHPB装置在双对数坐标或者半对数坐标里拟合斜率。第四步确定损伤参数。D₁、D₂是最难严格测定的因为它们描述的是损伤累计速率。常见做法是保持原始论文的D₁ 0.04、D₂ 1.0作为初值然后利用侵彻深度或弹道极限试验结果反推调整。EFMIN也有类似的经验性通常取0.005到0.01之间太小会导致单元过早失效数值发散太大会让破坏模式偏延性。4.3 软件实操中遇到的几个典型问题我实际跑过的模型里HJC最容易出的问题有这么几个。单元负体积。这个问题在爆炸近区特别常见。原因通常是高压段EOS刚度不够或者损伤后强度快速下降导致单元被过度压缩扭曲。解决思路是先检查PL和UL是否合理再看EFMIN是不是给得太小最后考虑修正SFMAX限制最大强度。拉伸飞溅。模拟爆炸自由面剥落时靠近自由面的单元容易碎成粉末飞出去破坏范围比实验偏大。这多半是拉伸强度T和损伤参数的耦合没调好。可以尝试适当提高T值或者增大EFMIN让材料在拉伸下更“耐撕”。应变率曲线跳变。如果你的载荷是从实验曲线读进来的注意应变率取值的参考值。EPS0这个参数要和你的应变率数据对齐默认1.0/s是可以的但如果实验数据用的转折应变率不同记得换算。网格敏感性。HJC模型和很多率相关损伤模型一样计算结果对网格尺寸敏感尤其是损伤演化和应变率强化耦合后。我建议在正式计算前先做网格收敛性检查固定参数只改网格尺寸找到结果不再明显变化的分界点再定最终的网格密度。否则参数标定和网格引入的误差混在一起很难排查问题根源。5. 翻译HJC文档时那些容易“翻车”的术语和处理方式最后说回“翻译”本身。翻译一本构模型的文档难点从来不在句法而在概念对应。英文术语翻译成中文时如果只看字面很容易留下隐患。5.1 几个最容易误解的概念对第一对strain rate和strain应变率和应变。看起来简单但放在公式里就有人糊涂。HJC强度公式里用的是应变率的对数项不是应变量。我之前看到过把ln ε̇*直接画成应力-应变曲线加进去的概念完全错位。翻译文档时凡是出现strain rate中文必须强调这是“率”不是“量”。第二对hydrostatic pressure和deviatoric stress静水压力与偏应力。这两个概念是理解屈服面公式的关键。静水压力只改变体积不改变形状偏应力只改变形状不改变体积。混凝土在高压下强度的提升主要来自静水压力贡献这一点如果翻译描述不到位读者很容易把P*误解成某个方向的正应力。第三对crush和compaction压碎与压实。这两个词在EOS里对应不同的压力阶段。crush指孔洞刚开始破坏的低压段compaction指孔隙接近完全闭合的高压段。有文档把两者都翻译成“压实”后面看公式时完全分不清阶段参数PC和PL的物理区别也就模糊了。第四对hardening和softening硬化与软化。强度公式里的压力硬化指的是压力升高导致强度升高而损伤D导致的强度下降本质上是软化。HJC模型把这两股相反的作用力放在同一个屈服面公式里翻译时如果不强调“硬化来自压力、软化来自损伤”读者很难理解为什么材料一边变强一边变弱。5.2 翻译本构模型文档的通用心法吃了几次亏之后我总结出三条处理原则写在这里当作参考。公式和符号一律保留原文不做“翻译”。公式是国际通用语言翻译得很勤快反而容易出事故。正确做法是公式保持原始符号旁边用中文注释每个符号的含义和量纲这样即使读者后续查阅英文原文也能无障碍对应。关键术语第一次出现时中英对照写全。比如“静水压力hydrostatic pressure”后面再出现时用中文即可。这既方便新手建立概念连接也避免因翻译习惯不同引起的歧义。翻译完成后必须做一次“反向检查”。也就是从中文翻译回英文看看能不能和原始术语对得上。我试过很多次有些词翻过去再翻回来已经完全变味了。比如把“压实”回译成compaction才发现它本来应该是crush。这个检查很笨但非常有效能抓出大量术语错位的问题。文档里出现的经验数值要特别标注来源和适用范围。原始论文的参数是针对特定混凝土试验得到的翻译文档里如果只给数值不给背景后来者极容易当成通用常数使用。我在整理参数表时特意把“典型值”“建议初值”“需要标定”三类的标注做得非常显眼就是不想让人误用。处理完这份HJC文档之后我最大的体会是翻译一份技术资料翻译的不是语言是知识结构。真正把模型吃透了中文英文只是表达形式的区别。而这个吃透的过程本身对做仿真的帮助远超预期——填参数不再心虚调模型有了方向连看别人论文里那些“采用HJC模型”之类的一笔带过都能大致猜到对方背后做了哪些功夫。本文还有配套的精品资源点击获取
返回列表