做结构仿真,很多人在 HyperMesh 里完成网格划分之后,以为下一步就是提交求解器。真正进入求解阶段,才发现问题往往不在网格,而在边界条件。尤其是固定边界条件,看起来只是一次“选点、打勾、创建”的操作,实际上它直接决定模型刚度、求解稳定性以及约束反力的合理性。
固定边界条件是有限元建模里用途最广、也最容易被误用的一类约束。它的 UI 门槛很低,低到新手十分钟就能找到入口;也正因为这样,很多人忽略了它背后的物理含义。单点约束在数学上对应刚度矩阵中自由度的消除,在物理上则代表焊接、螺栓、夹紧、底座等真实连接方式。如果你只是把六个自由度全部点亮,模型确实能算,但结果很可能不合理。
这篇文章是 Hypermesh-056 系列的第 056 篇,重点讲固定边界条件,也就是 p1 部分。我们会从自由度概念讲起,按照 HyperMesh 约束面板的完整操作流程走一遍,再延伸到 3D 网格质量检查、材料单位一致性、节点显示异常等非常容易出现的问题。读完你应该能独立完成一组可靠、可验证、可追溯的固定约束,并且知道如何通过约束反力判断边界有没有设错。
1. 固定边界条件不是“把所有勾打满”那么简单
固定边界条件,英文通常写为 Fixed Support 或 Fixed Constraint。在有限元分析中,它表现为把被约束节点的某些自由度强制设置为 0。从刚度矩阵的角度看,这相当于删除或者“罚掉”对应的自由度,让结构在外载荷作用下具有唯一解。
如果不施加任何边界条件,刚度方程[K]{u}={F}中的[K]是奇异的,求解器无法求逆。这就是很多初学者遇到的“刚度矩阵奇异”“刚体模态过多”错误的根源。网格质量影响的是局部应力精度,而边界条件影响的是整体刚度路径。约束多一个自由度,就多一条人为制造的传力路径;少一个自由度,结构就可能飞出去。两者都会让结果面目全非。
在 HyperMesh 中创建固定边界条件,本质上是做三件事:
- 告诉求解器哪些节点被约束;
- 告诉求解器这些节点的哪些自由度被约束;
- 告诉求解器被约束的自由度数值是多少,通常是 0。
因此,固定边界条件并不是越强越好,而是越“准”越好。你需要根据实际物理连接方式来决定:是焊接固定,还是螺栓连接,还是支撑在光滑平面上。不同的物理模型对应不同的自由度组合。
2. 自由度与固定约束:看懂 123456
要理解固定边界条件,必须先理解自由度。有限元模型中的节点自由度包括三个平动自由度和三个转动自由度。
| 自由度编号 | 含义 |
|---|---|
| DOF1 | 沿全局 X 方向平移 |
| DOF2 | 沿全局 Y 方向平移 |
| DOF3 | 沿全局 Z 方向平移 |
| DOF4 | 绕全局 X 轴旋转 |
| DOF5 | 绕全局 Y 轴旋转 |
| DOF6 | 绕全局 Z 轴旋转 |
所谓“固定”,就是把选定的自由度数值强制设置为 0。比如最常见的固定支撑,会写成123456,表示六个自由度全部约束。如果只约束平移、不约束旋转,那就等效于简支边界,自由度写法是123。
这里有一个非常容易被忽略的知识点:实体单元节点只有三个平动自由度,没有转动自由度。如果你用六面体或四面体网格做实体分析,固定边界条件只需要约束 DOF1、DOF2、DOF3。对实体网格同时约束 DOF4、DOF5、DOF6,HyperMesh 界面里可以显示,但求解器在内部通常不会产生实际效果,个别求解器还会给出警告。壳单元和梁单元才有完整的六个自由度。
所以在理解固定边界条件时,先别急着点“固定”按钮,而是先问自己:
- 模型用的是什么单元类型?
- 约束位置对应什么物理结构?
- 该位置是否真的限制了转动自由度?
比如一块焊接底板,底面可以处理为六个自由度全部固定;如果是对称模型的一个对称截面,那就不能直接固定 123456,而应该按对称边界条件处理。
3. HyperMesh 固定边界条件完整操作流程
下面以 HyperMesh 2021/2022 的经典界面为例,演示如何创建固定边界条件。不同版本的界面布局会有差异,但面板名称和操作逻辑基本一致。实际操作前请确保你已经完成几何清理和网格划分。
3.1 创建独立载荷集
固定边界条件不建议随意扔到默认集合里。更规范的做法是专门创建一个 Load Collector,用来存放边界条件。
操作路径:
- 在 Model 浏览器中右键空白区域;
- 选择
Create -> Load Collector; - 名称建议填写
BC_FIX_SUPPORT; - Card image 根据所用求解器选择,OptiStruct 可以直接使用空卡片;
- 颜色可以专门设置成红色或蓝色,方便后续区分。
这里的意义是后续排查时,可以快速隔离显示边界条件,而不是和载荷、接触、约束混在一起。
3.2 进入约束创建面板
在 HyperMesh 中,固定边界条件通常通过 Analysis 页面进入。
操作路径:
- 点击顶部菜单
Analysis; - 选择
constraints; - 点击
create。
就会进入约束创建面板。面板中会列出当前载荷集、约束类型、自由度设置等选项。注意,这里不要和Load Steps混淆,Load Steps 是载荷步,不是约束创建面板。
3.3 拾取约束节点
固定边界条件的本质是约束节点自由度。因此拾取节点时必须准确。
常用方法有三种:
nodes:直接在图形区点击节点;by window:用窗口框选节点;by face:选中实体面的网格后,自动提取表面节点。
实际项目中最推荐by face,尤其是实体模型底板支撑时。你只需要选择底板底面的一组面单元,HyperMesh 会自动提取这些面上的全部节点,然后再施加约束。这样可以避免漏选或不选节点。
要特别注意,实体网格如果存在自由面,节点选择可能不连续。下一节会专门讲如何检查网格质量。
3.4 选择自由度
进入自由度设置区域后,你会看到 DOF1 到 DOF6 六个开关。点击每个开关可以在“约束”和“自由”之间切换。
如果需要完全固定,点击fixed按钮,六个自由度会全部变为约束状态。如果只约束平动,就只打开 DOF1、DOF2、DOF3。
面板中还可能有value或magnitude选项。固定约束的值一般填 0。如果填一个非零位移,那就不是“固定”,而是“强制位移”或“位移载荷”,两者物理含义完全不同。
3.5 创建并检查
点击create之后,模型上会出现约束标识。HyperMesh 默认会显示自由度标记,通常是一个带方向的三角或小方块图标。
此时建议立刻做两步确认:
- 在 Model 浏览器中展开 Load Collector,确认
BC_FIX_SUPPORT里确实存在约束; - 使用
constraints面板的review或card edit功能,查看约束节点数量和自由度。
如果你使用 OptiStruct 模板,创建的固定边界条件最终会写成 SPC 卡片,类似下面的内容:
$ 文件名:model_c1.fem(示意) $ SPC 约束编号 1,节点集 101,六个自由度全部固定,值为 0 SPC 1 101 123456 0.0如果只约束平动自由度,则对应123。这套语法在 Nastran 和 OptiStruct 的求解体系中是通用的。
4. 不同求解器下的固定边界条件输出
HyperMesh 是前处理平台,本身并不求解。你创建的固定边界条件最终要转换成求解器能识别的关键字。不同求解器语法不同,但底层含义一致。
4.1 OptiStruct / Nastran
在 OptiStruct 中,固定边界条件一般使用SPC卡片。
SPC 1 101 123456 0.01是约束集合编号;101是节点集合编号;123456表示约束的自由度;0.0表示约束位移值。
在 HyperMesh 中创建时,只要选择正确的模板,导出.fem文件后就会生成类似内容。
4.2 LS-DYNA
LS-DYNA 中固定边界条件使用*BOUNDARY_SPC_SET,通常配合*SET_NODE_LIST一起使用。
*SET_NODE_LIST $# sid n1 n2 n3 n4 n5 100 *BOUNDARY_SPC_SET $# sid cid 100 $# d1 d2 d3 d4 d5 d6 1 1 1 1 1 1cid字段可以指定约束坐标系。默认情况下是全局直角坐标系,也就是 DOF1、DOF2、DOF3 分别对应全局 X、Y、Z 方向。
4.3 Abaqus
Abaqus 中固定边界使用*Boundary,自由度写法是编号区间。
*Boundary Set-FIXED, 1, 6这里Set-FIXED是节点集合名称,1, 6表示约束自由度 1 到 6。如果是实体模型,同样只需要约束前三个自由度,写成1, 3。
完整编写这段内容时要注意:创建固定边界条件前,一定要在 HyperMesh 中设置正确的求解器模板。模板选错,面板名称、卡片图像和导出关键字都会对不上,后面排查会非常痛苦。
5. 施加固定边界条件前,如何检查 3D 网格质量
固定边界条件和网格质量之间的关系,很多新手意识不到。你选底面节点施加约束时,如果实体网格存在大量自由边、重复面或者畸形单元,表面节点的选取会不连续,约束位置和真实支撑面会有偏差。
所以,最优流程是:先检查 3D 网格质量,再创建固定边界条件。
5.1 使用 Quality Index 面板
在 HyperMesh 中,Quality Index是检查网格质量的入口之一。操作路径:
- 点击顶部
Mesh菜单; - 进入
Quality Index面板; - 选择需要检查的单元类型,实体网格选择
3D; - 点击
Check,查看不合格单元数量和位置。
常见检查项包括:
| 指标 | 含义 | 一般建议 |
|---|---|---|
| Jacobian | 雅可比,反映单元映射变形程度 | 大于 0.6 较稳妥 |
| Aspect Ratio | 长宽比 | 一般小于 5 |
| Skew | 扭曲度 | 越小越好,一般小于 60° |
| Warpage | 翘曲度 | 实体面网格一般小于 15° |
| 最小体积 | 负体积单元会直接导致求解失败 | 必须大于 0 |
5.2 使用 Check Elems 面板
也可以按F10进入Check Elems面板,选择3D选项卡,点击Check。
如果发现负体积单元,需要先修复网格再继续操作。否则固定边界条件虽然能创建,求解器仍然可能直接报错。
5.3 检查自由边
实体网格不会显示自由边,但内部接触面、分割面会产生自由边。可以进入Tool -> Edges,点击Find Free Edges。如果约束面上出现红色自由边,说明网格在该位置没有完全连续,表面节点选择时会出现断裂。
在实际项目中,固定约束所在面的网格连续性非常重要。比如底板约束面,如果自由边横跨整个面,约束节点会被分隔成两块,传力路径和真实情况不一致。
6. Materials 里怎么设置单位:统一单位制是关键
很多人会问:HyperMesh 的 Materials 设置里怎么设置单位?
答案是:HyperMesh 的材料面板不会提供一个下拉菜单让你选择“毫米单位制”或“米单位制”。单位由你输入的数值隐含确定。也就是说,你必须在建模前先确定整个模型使用哪一套单位系统,然后所有几何、材料、载荷、约束都按照这一套系统来填。
常见单位系统如下:
| 单位制 | 长度 | 质量 | 时间 | 力 | 钢材弹性模量 E | 钢材密度 ρ |
|---|---|---|---|---|---|---|
| mm-N-t-s | mm | t | s | N | 210000 N/mm² | 7.85e-9 t/mm³ |
| mm-kg-ms | mm | kg | ms | N | 210000 N/mm² | 7.85e-6 kg/mm³ |
| m-kg-s | m | kg | s | N | 2.1e11 Pa | 7850 kg/m³ |
如果你选择的是mm-N-t-s单位制,那么密度是最容易出错的地方。钢铁的密度不是 7850,而应该是7.85e-9,因为质量单位是吨,长度单位是毫米。
在 HyperMesh 中创建材料的步骤通常是:
- 在 Model 浏览器中右键
Materials; - 选择
Create; - 名称填
Steel; - 在 Card Image 中选择
MAT1; - 输入弹性模量 E、泊松比 Nu、密度 Rho。
导出后对应的卡片类似:
MAT1 1 210000.0 0.3 7.85E-9这里210000.0的单位是 N/mm²,也就是 MPa;0.3是无量纲泊松比;7.85E-9是密度。
那么材料单位和固定边界条件有什么关系?
如果材料单位设置错误,弹性模量和密度会偏差多个数量级,导致结构刚度矩阵数值异常。边界条件的自由度位置不会变,但约束反力会完全失真。通常检查固定边界条件是否合理时,要看约束反力。材料单位不一致时,反力数值会明显偏离工程经验值,而且很难定位原因。
7. 节点不显示、节点小球不显示:固定约束显示问题排查
设置固定边界条件时,需要确认节点位置、节点小球、约束标识是否可见。很多使用者会遇到两个非常典型的问题:
- HyperMesh 所有的节点都不显示;
- HyperMesh 不显示节点小球。
这两个问题不完全相同。前者是整个模型的节点都不显示,后者是节点标识的小圆点不显示。
7.1 所有节点都不显示
常见原因有三个。
第一,渲染模式问题。HyperMesh 在 shaded 模式下默认不显示节点,切换到线框模式通常就能看到节点。
操作方式:在图形区右侧的视图工具栏中,点击 wireframe 模式,或者按快捷键G切换几何显示。
第二,显示掩码问题。按F5进入掩码面板,检查是否有节点被隐藏。如果当前模型被过滤到只剩单元,节点自然会消失。
第三,模型浏览器中的节点显示被关闭。在 Model 浏览器中找到有限元模型节点节点图标,确认没有被取消勾选。
7.2 不显示节点小球
节点小球是 HyperMesh 提供的节点标记,用于快速识别节点位置。如果节点实体存在,但小球不显示,通常是图形设置问题。
操作方式:
- 点击
Preferences -> Graphics; - 找到节点大小或节点标记选项;
- 将节点显示从
none改为symbol或ball。
也可以按O打开显示选项面板,在geometry或node分类中调整。
7.3 约束标识不显示
固定边界条件创建后,如果约束标识不可见,先不要急着重新创建。检查顺序是:
- 在 Model 浏览器中确认 Load Collector
BC_FIX_SUPPORT是否可见; - 按
F5检查掩码; - 点击
Display -> Loads,确认 loads 显示开关已经打开; - 右键 Load Collector,选择
Isolate,单独显示边界条件。
如果约束面板中的review能看到已经创建的约束,说明数据存在,只是显示被隐藏。
8. 固定边界条件的常见误区与最佳实践
固定边界条件看起来简单,实际项目中最容易踩坑的往往是下面几个误区。
8.1 误区一:把所有支撑面全部固定 123456
一个底面如果实际是点支撑或者简支,你却把所有节点的六个自由度全部固定,模型会变得过于刚硬,约束附近会出现严重应力集中。固定的本质是“完全刚接”,而不是“放在上面”。如果实际结构中底面通过螺栓连接,那么螺栓孔位置可以考虑约束螺栓孔的节点,而不是整个底面所有节点。
8.2 误区二:把对称面当固定面
对称边界条件不是固定边界条件。对称面上只约束法向平动,释放切向平动和面内旋转。如果你用固定边界去处理对称模型,相当于把对称截面焊死,结果会偏大或偏小。
8.3 误区三:固定边界离关注区域太近
根据圣维南原理,边界条件的影响会随距离衰减。如果你关心的应力区域就在固定约束旁边,那么约束假设会直接影响局部应力结果。最好让边界条件远离关键分析区域,或者细化网格并验证边界敏感度。
8.4 误区四:同一节点重复施加不同约束
HyperMesh 中可能出现两个 Load Collector 都包含同一个节点的约束,一个约束平动,一个约束转动。求解器很可能报多重约束错误,或者后创建的覆盖先创建的。因此建议使用独立的载荷集管理约束,并在创建后进入 Fem 文件检查重复。
8.5 固定边界条件的最佳实践清单
- 创建独立的 Load Collector,命名采用
BC_前缀; - 每个约束集合写明物理含义,比如
BC_FIX_SUPPORT、BC_SYM_X; - 固定约束前先检查网格质量和自由边;
- 实体单元只约束平动自由度,壳单元再考虑转动自由度;
- 约束区域尽量远离高应力关注区域;
- 求解前打开模型检查功能,观察是否存在自由刚体模态;
- 求解后必须查看约束反力,判断反力是否与外力平衡。
如果使用 OptiStruct,约束反力可以通过GPFORCE输出。检查总反力与总外力的关系,是验证固定边界条件是否合理的有效手段。
9. 固定边界条件常见问题与排查思路
以下是使用 HyperMesh 设置固定边界条件时比较常见的问题清单,建议收藏备用。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 求解报“刚度矩阵奇异” | 模型存在刚体位移,固定边界不足 | 检查完约束自由度覆盖 | 补齐必要约束,或使用惯性释放 |
| 固定约束图标不显示 | Load Collector 显示被关闭 | 检查 Model 浏览器和 Display | 打开 loads 显示,右键 Isolate |
| 节点全部不显示 | 渲染模式或掩码问题 | 按 G 切换几何显示,按 F5 查掩码 | 切换视图到 wireframe 模式 |
| 节点小球不显示 | 节点标记设置关闭 | Preferences -> Graphics | 将节点标记改为 symbol 或 ball |
| SPC 求解器不识别 | 模板或载荷集类型不对 | 查看 .fem 文件中的卡面 | 切换正确求解器模板,重新创建 |
| 约束反力明显偏大 | 材料单位不一致或过约束 | 检查单位制与约束数量 | 统一单位系统,释放多余自由度 |
| 选择面节点不连续 | 网格存在自由边或分块线 | Tool -> Edges 查找自由边 | 修复网格,或提取实体面后选择 |
| 实体模型约束旋转自由度无效 | 实体单元没有转动自由度 | 查看单元类型 | 只约束 DOF1、DOF2、DOF3 |
排查时有一个基本原则:先看数据是否存在,再看显示是否被关闭,最后看导出到求解器的关键字是否正确。不要一上来就删除重建,很多约束问题只是显示问题。
10. 小结与下一步
固定边界条件是 HyperMesh 中边界条件模块的起点。它看似简单,背后涉及自由度概念、单元类型、求解器关键字、网格连续性和单位系统。掌握了固定边界条件,后续接触对称边界、强制位移、惯性释放、接触初始穿透修正等内容时,会容易得多。
你可以先做一个最小模型验证:建立一个简单长方体实体网格,约束底面为固定边界,在顶面施加压力,输出约束反力,确认反力与外载荷平衡。这个流程跑通后,再去处理螺栓孔约束、焊接固定、对称模型等复杂场景。
下一步值得深入的方向是:
- 对称边界条件与固定边界条件的区别;
- 惯性释放在自由体分析中的应用;
- 固定边界条件与接触约束的共存;
- 约束反力的后处理验证。
在 HyperMesh 中创建固定边界条件最忌讳的是“无脑全固定”。多花两分钟想清楚约束的物理含义,比任何面板操作技巧都重要。希望这篇文章能帮你少走一些弯路。