简介:一份以理想油壶跌落为贯穿案例的ANSYS WORKBENCH与LS-DYNA联合仿真操作文档,适合正在入门瞬态动力学、碰撞冲击或金属成型等非线性仿真的工程师与学生。内容依次覆盖项目流程图、DesignModeler几何建模、材料属性设置、交互作用创建、网格划分、边界条件与初始条件、计算时间、K文件生成、LS-DYNA求解器调用以及LS-PREPOST后处理,并具体涉及油壶、润滑油和地面三类对象的建模与参数处理,配有界面截图,可边看边操作。尤其是K文件生成与求解器启动两个环节,文档给出了清晰的调用路径,能有效减少初学者在联合仿真中的常见断点。资源以1个doc文档提供,压缩包仅675KB,轻量便于查阅。该文档发布以来已有330人学习,既能帮助理解Workbench前处理与LS-DYNA显式求解的协同关系,也可为跌落、碰撞等非线性动力分析提供一套可复用的操作模板。 ANSYS Workbench和LS-DYNA这对组合,干的是有限元仿真圈里最“硬核”的那类活儿——显式动力学分析。简单说,就是研究物体在极短时间内被撞、砸、摔、炸之后会变成什么样子。比如手机掉地上的应力分布、汽车碰撞的车身变形、防护栏被冲击时的吸能表现,这些用普通静力学求解器根本算不动,但扔给LS-DYNA,十几毫秒的物理过程能给你算得明明白白。
我当初刚接触这套联合仿真的思路时,最大的困惑是:既然LS-DYNA自己有完整的前后处理工具,为什么还要再套一层Workbench?后来做了几个实际项目才反应过来,LS-DYNA传统的前处理(比如HyperMesh或者自带的LS-PrePost)确实强,但建模效率、几何处理、参数化管理这些方面,跟Workbench的图形化工作流差距不是一点半点。把两者联合起来,等于既保留了LS-DYNA强大的求解内核,又用上了Workbench的友好界面,几何修改、网格控制、载荷施加全都可以在同一个窗口里可视化完成,对于做产品研发的人来说,这套工作流能省下大量时间。
这篇内容适合正在做结构动力学分析的工程师、研究生,或者刚接触显式分析、想快速上手一套主流仿真流程的朋友。我会把环境配置、操作流程、常见报错处理都拆开讲清楚,中间补充一些我在实际项目中踩过的坑,希望能帮你少走弯路。
1. 为什么是Workbench加LS-DYNA:联合仿真的方案逻辑
1.1 两套工具各自擅长什么
先说个背景知识。ANSYS Workbench是ANSYS公司打造的集成仿真平台,它的设计目的是把几何建模(DesignModeler或SpaceClaim)、网格划分(Meshing)、求解设置、后处理全部串到一个工作流里。界面直观,操作逻辑接近Windows软件,鼠标点击为主,非常适合需要快速迭代方案的场景。
LS-DYNA则是全球知名的显式动力学求解器,发迹于汽车碰撞领域,后来扩展到跌落、冲击、爆炸、流固耦合等场景。它最大的特点是用显式时间积分算法求解高度非线性问题,不像隐式算法需要反复迭代求解方程,而是基于上一时刻的状态直接推算下一时刻,特别适合模拟毫秒级的剧烈变形过程。简单类比,隐式算法像精打细算的会计师,每一笔账都要算平;显式算法像短跑运动员,靠的是瞬间爆发力,一步一个脚印冲过去。
1.2 联合方案的优势在哪里
单独用LS-DYNA,前处理确实能做,但界面老旧,操作效率低,而且几何导入、网格质量控制、参数化优化这些环节都挺吃力。单独用Workbench,自带的分析模块虽然也能做动力学,但Explicit Dynamics模块的底层求解器在复杂接触、大变形工况下的收敛性和精度,跟专业显式代码相比还是有差距。
联合仿真就是各取所长的做法:在Workbench里完成几何准备、材料定义、网络划分、载荷边界设置,然后调用LS-DYNA求解器计算,最后再把结果导回Workbench后处理查看应力、变形、能量曲线。整个过程像一条流水线——质检和包装在Workbench完成,核心加工交给LS-DYNA这个“老师傅”。
1.3 典型应用场景参考
平时用得最多的场景有这几类:
- 电子产品跌落测试:手机、耳机、手表从1.5米高度自由落体,冲击应力是否导致屏幕碎裂;
- 汽车零部件碰撞安全性:保险杠低速碰撞、车门侧撞侵入量分析;
- 防护结构冲击响应:防撞护栏、缓冲包装受到冲击时的吸能特性;
- 机械加工中的高速切削:刀具与工件在微秒级时间内的相互作用。
如果你遇到的问题是加载速率为毫秒级、结构发生大变形甚至材料断裂,但静力学分析总是不收敛,那就可以考虑往这套联合仿真上靠了。
2. 环境准备与版本匹配:联仿能不能跑通,先看软件配置
2.1 版本兼容性怎么选
ANSYS从早期版本就集成了LS-DYNA模块,但不同版本对LS-DYNA求解器的支持方式不太一样。R17及以前版本,Workbench里的“Explicit Dynamics”模块和独立的“LS-DYNA”模块是分开的,需要单独配置求解器路径。R18之后,ANSYS把LS-DYNA集成得更深,安装ANSYS时勾选相应模块就会自动带上对应版本的LS-DYNA求解器。
我自己用的比较多的是ANSYS 2020 R2及以上版本,配带的LS-DYNA版本大概在R11-R13之间,功能完整,和Workbench的连接也稳定。总的原则是:建议直接用同一版ANSYS Installation自带的LS-DYNA,避免自行单独安装不同版本导致求解器接口对不上。网上有人问“ANSYS装配完找不到LS-DYNA模块”,多半是安装的时候只勾了Mechanical,漏掉了LS-DYNA相关组件。
2.2 安装时要注意什么
安装ANSYS时,在组件选择界面务必要勾上:
- Mechanical APDL
- LS-DYNA
- 如果是正版授权,确认许可证里包含LS-DYNA求解器功能
装完之后怎么确认能不能用?打开Workbench,在左侧Toolbox中如果能找到“Explicit Dynamics”或者“LS-DYNA”模块,说明基本框架已经就位。更保险的方式是在项目里拖一个LS-DYNA模块出来,双击Setup单元格能正常进入,说明目录配置正常。
如果打开模块后提示“License not available”或“LS-DYNA executable not found”,大概率是许可证没包含该功能,或者安装时漏装了求解器,需要去ANSYS License Manager里检查一下授权项。
2.3 我踩过的环境坑
早期我用的是ANSYS 18.2,Workbench里建好了模型、设好接触,一提交求解就报错“DynaLicense not exist”。排查了很久,最后发现是许可证服务里的“ANSYS LS-DYNA”选项没勾选,需要在License Manager的Feature配置中把LS-DYNA相关的功能项添加进去并重启服务才解决。
所以建议在正式开工前,先跑一个官方自带的简单碰撞算例做验证。Workbench安装目录下通常自带LS-DYNA的示例模型,用System Coupling或LS-DYNA模板打开跑一遍,能通就说明环境没问题,可以继续进行联合仿真。
3. 从几何到结果:Workbench+LS-DYNA完整联仿实操流程
3.1 几何准备与单位制统一
这一步最关键,也最容易被忽视——单位制统一。LS-DYNA本身没有内置单位系统,它只认数值不认单位,所以你在建模时用的毫米还是米,密度、弹性模量填的数字必须跟长度单位匹配。如果几何用毫米建,密度用kg/m³(每立方米千克),弹性模量用Pa,算出来结果能偏差好几个数量级。
我惯用的统一单位组合是:
| 物理量 | 单位 |
|---|---|
| 长度 | mm |
| 质量 | ton |
| 时间 | s |
| 力 | N |
| 应力 | MPa |
| 密度 | ton/mm³ |
| 弹性模量 | MPa |
不用觉得吨和毫米组合奇怪,这套单位制在显式分析里非常方便,因为加速度单位变成mm/s²,算出的时间步数量级合理,不容易出现数值溢出。几何导入后,第一件事就是在SpaceClaim或DesignModeler里检查单位设置,确保建模尺寸与物理实际一致。
几何简化也很重要。LS-DYNA能处理复杂的接触问题,但几何越复杂,网格量和计算成本增长得越厉害。对分析影响不大的圆角、小孔、螺纹、安装凸台等特征,在导入Workbench前尽量用SpaceClaim的“填充”或“移除”功能做去特征化处理。比如跌落仿真中,手机内部的螺钉孔、小倒角对跌落结果影响极小,删掉能把网格量降低30%以上。
3.2 材料模型与参数输入
材料参数是显式动力学的灵魂。LS-DYNA的材料库有几百种模型,Workbench里的Explicit Dynamics模块默认使用的是“Simple Hardening Plasticity”之类的简化模型,但真正做联合仿真时,更推荐直接通过关键字或Engineering Data设置LS-DYNA专用的材料卡片。
常用材料模型:
- *MAT_PIECEWISE_LINEAR_PLASTICITY(24号材料):最常用,弹塑性非线性、带应变率效应的金属材料,输入密度、弹性模量、泊松比、屈服强度、切线模量、失效应变即可;
- *MAT_JOHNSON_COOK(15号材料):考虑高应变率和温升效应的金属材料,适合高速冲击、切削仿真;
- *MAT_RIGID(20号材料):设置刚体,比如跌落地面、碰撞墙,给个密度和弹性模量就不用管它的变形了;
- *MAT_ELASTIC(1号材料):纯弹性材料,适合玻璃、陶瓷等脆性材料简化模型。
在Workbench的Engineering Data里设置完材料参数后,切换到LS-DYNA求解时,软件会自动把这些参数映射成对应的LS-DYNA关键字卡片。但如果你用的是Nu键字控制,需要在Setup前的模型树上右键选择“Insert→LS-DYNA Keywords”手工添加。
我实际做手机跌落仿真时,外壳用24号材料,输入铝合金的密度2.7e-9 ton/mm³、弹性模量71000 MPa、屈服强度276 MPa、切线模量1050 MPa,地面设置为刚体材料。这套参数配下来求解稳定性和结果合理性都不错。
3.3 网格划分:质量优先还是速度优先
显式动力学对网格非常敏感,因为计算中网格会剧烈变形,如果初始网格质量差,很容易出现负体积(Negative Volume)导致计算终止。
网格划分几个实操建议:
- 六面体网格优先。在跌落、碰撞分析中,六面体网格比四面体网格的精度和抗畸变能力强很多。Workbench的Meshing里,把Physics Preference设为“Explicit”,Element Order设为“Linear”(一阶单元),尽量避免二阶实体单元——二阶单元在显式分析中是支持不了的。
- 整体尺寸和局部细化搭配。接触区域、预测的高应力区域、可能发生大变形区域必须细化;远离关心的区域可以用粗网格控制计算量。例如做电池包跌落时,底部接触区域网格控制在1mm,顶部壳体可以用5mm。
- 控制网格畸变指标。Skewness低于0.85是基本线,高于0.9的单元在显式分析里几乎必出问题。检查工具的Path:Mesh右键→Mesh Metrics。若出现大量低质量单元,优先调整局部网格尺寸,而不是盲目全局加密。
网格数量怎么权衡?我曾经做过一个案例,总体网格从30万加密到80万,计算时间从3小时飙升到15小时,但关注点的应力结果只变化了4%左右。显式分析本质上对网格量很敏感,但也不是无脑加密就行,需要在模型标定阶段做个网格无关性验证。
3.4 接触、边界条件与载荷设置
接触设置在显式分析里的地位比静力学高得多。LS-DYNA处理接触的算法多,但Workbench里面用到最多的就是“Frictional”和“Frictionless”接触,加上“Automatic Surface to Surface”关键字类型。
设置接触时几个要点:
- 接触类型:优先用“Symmetric”对称接触,即主面和从面互相穿透都能被检测到,避免方向设置导致穿透遗漏;
- 接触刚度:显式分析中,默认的接触刚度计算方法有时偏保守,如果出现严重的节点穿透过,可以调低时间步或增强刚度算法;
- 初始穿透:模型装配时如果有微小干涉,求解器可能直接报错。几何导入后建议在接触设置里勾选“Adjust to Touch”,把初始穿透量自动消除。
边界条件和载荷的施加方式也要注意。LS-DYNA显式分析中,固定约束施加在实际工程中对应的是“夹具固定”物理环境。跌落仿真中通常给产品一个初始速度而不是施加力,比如1.5m高度跌落,根据自由落体公式v=√(2gh)≈√(2×9.8×1.5)=5.42m/s,把这个速度作为初始条件加在产品上。重力加速度用惯性载荷,在整个分析时间内持续作用。如果是冲击仿真,则需要用位移边界条件控制冲击头的运动轨迹。
3.5 求解设置与关键字文件
在Workbench里设置好所有内容后,点击Solve,Workbench会导出k文件并调用LS-DYNA求解器。求解设置主要有三个关键参数:
- End Time:分析时长。跌落仿真一般设置为0.01~0.05s,视产品回弹情况而定。碰撞仿真往往只需要0.1s甚至更短,具体看能量是否趋于稳定。
- Time Step Safety Factor:默认0.9,通常不用动。如果出现沙漏能过大或者穿透问题,可以把Time Step调小到0.6~0.7,时刻步长δt会随之减小,提升稳定性但计算时间变长。
- Mass Scaling:质量缩放。显式分析中,时间步长与最小单元尺寸相关,如果网格里有极小单元,步长会被拖得很短,计算时间指数增长。Mass Scaling技术可以通过增加极小单元的密度来放大时间步长,提高计算效率。但要注意,质量缩放会增加模型质量,增加的比例超过5%建议重新加密局部网格。
求解过程中,可以通过Setup界面底部的求解信息监视内能、动能、沙漏能曲线。这个习惯我强烈建议保留:如果沙漏能超过总内能的10%,说明零能模式下网格畸变严重,通常需要改用全积分单元公式或者细化网格;如果动能+内能不是近似守恒,那说明边界条件施加有问题。
计算结束后,Workbench的Results会自动读取LS-DYNA的d3plot文件,可以直接查看应力、应变、位移。也可以在LS-PrePost中打开d3plot做更灵活的后处理,比如做动画切片、提取单元历史曲线,两者各有用处。我通常先用LS-PrePost快速查看变形动画和能量曲线,确定大方向没问题之后,再回Workbench生成标准报告。
4. 常见问题与排查技巧实录
4.1 负体积(Negative Volume)报警
这是显式分析里遇到最多的报错,报错信息类似“negative volume in solid element”。它的本质是单元在计算过程中被过度挤压,节点翻转导致体积变成负值。常见原因和解决办法:
- 网格质量差:回头检查网格指标,尤其是高度扭曲的楔形单元;把局部细化做起来。
- 材料参数不合理:低强度高失效应变的材料在受压时容易过度变形,适当增大屈服强度或引入失效删除(Element Erosion),让过度畸变的单元自动删除。
- 时间步长过大:减小Time Step Safety Factor到0.6~0.7。
- 接触设置问题:主面与从面初始穿透过大时也会引起单元剧烈挤压,确保模型装配无干涉。
4.2 计算时间长得离谱
一个模型算几天几夜不出结果,多半是网格有极小单元或者时间步长被拖死。排查方法:查看求解信息里的Time Step值,如果小到1e-7量级(单位制mm-ton-s),基本可以断定有极小单元。处理方案:要么局部重画网格消除小尺寸,要么用Mass Scaling控制时间步长下限,比如把最小步长限制为1e-6,Quality Scaling参数设为可接受范围。
我曾分析一个带细螺纹的产品外壳,螺纹牙顶单元尺寸0.05mm,把整个模型的时间步长拖小了两个数量级。后来把螺纹特征删除,用等效的质量替换掉,总计算时间直接从40小时缩短到6小时,结果精度几乎不受影响。
4.3 其他常见报错速查表
| 报错信息 | 可能原因 | 排查建议 |
|---|---|---|
| “License not available” | LS-DYNA许可证未启用 | 检查License Manager配置,确认LS-DYNA功能已勾选 |
| “No enough memory” | 模型规模超出内存 | 增大求解内存设置,或简化网格减少单元数 |
| “Node not found in contact” | 接触定义不完整 | 检查接触对,确保主面和从面都有定义 |
| “Convergence failure” | 主要出现在隐式模块,显式较少 | 如果是显式分析,检查时间步长是否过小 |
| “Negative volume” | 单元畸变 | 网格细化、失效模型、减小时间步 |
| “Termination due to mass increase” | 质量缩放比例过大 | 增加全局网格质量,检查Mass Scaling设置 |
4.4 我总结的几条“保命”建议
工作多年的经验,这几条都是花钱买来的教训:
第一,任何模型开始批量计算之前,先跑一个粗网格、短时间的“试算”,看能量曲线是否正常、接触是否稳定。如果试算都跑不通,加密网格只是多花时间等待失败。
第二,时刻盯住沙漏能和质量增加比例。这两个指标是显式分析质量的核心,一个代表网格是否有零能模式,一个代表质量缩放是否过度。工作正常时,沙漏能不超过内能的10%,质量增加不超过5%。
第三,学会看求解器的输出文件。LS-DYNA盛产各种.msg、.out、.d3hsp文件,里面密密麻麻记录着每一时刻的单元状态、能量变化、接触力。遇到问题不要只看报错最后几行,往前翻看报错之前最近几个时间步的状态,往往能找到根因。比如我之前遇到一个模型不断报负体积,最后在d3hsp里发现报错前的100个时间步内有接触穿透逐步增大,这才知道是接触刚度不够导致的。
5. 写在最后的实际操作体会
联合仿真这套工作流,我用了好几年,从最初的对着教程一步步点,到现在能比较有把握地预估计算结果,最大的感受是“工具只是工具,真正值钱的是判断力”。同样的模型,同样的参数,不同人设置的边界条件不同,结果可能完全不一样。LS-DYNA的求解能力很强,但它不会告诉你哪些结果是物理的、哪些是数值噪音——这个判断要自己做。
如果你刚开始接触这套联合仿真,建议从最简单的跌落案例练起:一个立方体从一定高度自由落体撞击刚性地面。把网格、接触、能量曲线、单位制这些基础概念吃透,再过渡到实际产品模型,循序渐进。我最开始就是直接上了全模型,结果各种问题交织在一起,排查起来头都大了。
最后分享一个实用小技巧:Workbench里做联合仿真时,尽量把模型的单位制在项目启动前就统一好,并且在项目命名上加上单位标识,比如“Phone_Drop_test_mm_ton”这样,方便同事之间协作检查和后续版本管理。显式分析本身算的慢、模型大,前期多花10分钟做规范,后期能省下10小时去排查问题,这笔账划得来。
本文还有配套的精品资源,点击获取