ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Workbench网格节点施加载荷全攻略:从命名选择到APDL命令流

Workbench网格节点施加载荷全攻略:从命名选择到APDL命令流 做结构仿真时Workbench里施加载荷的常规操作是从几何体上选面、选边或者选顶点。但真正干活多了就会碰到一类问题手上只有一份网格模型没有原始CAD几何或者要在某个焊点、螺栓位置上模拟局部受力而那个位置分明在结构内部面、边、点根本点不中。这时候你就需要直接在网格节点上施加载荷。下面就把这套操作从原理到实操摊开说清楚内容包括什么时候必须用节点载荷、如何准确选中节点、用命名选择打包施加以及三套不同档位的实现方法——界面操作的Named Selection法、工程上更稳的Remote Point法还有自由度最高的Command命令流法。1. 为什么非要在网格节点上施加载荷1.1 常规几何载荷的局限性Workbench里默认的Force、Pressure、Moment等载荷都是依附在几何对象上的。你在图形窗口点一个面施加压力点一条边施加力点一个顶点施加集中力。这个流程在大多数规则模型上非常顺滑但在两类情况下会直接卡住。第一类是纯网格模型。比如从外部拿回来一份.cdb、.inp或者.msh格式的网格文件里面只有节点和单元没有实体几何。这种情况下几何选择器里根本没有东西可选常规Force的第一栏“Geometry”会处于不可操作状态。第二类是载荷位置不在模型表面。比如模拟焊点受力焊点可能在上下两块板的夹层位置那块区域没有对应的几何特征你用面选、边选都选不到。还有多物理场耦合的场景CFD算完的壁面节点力、电磁场算完的节点电磁力这些数据本来就是按节点存储的你要把它们映射到结构网格上最合理的做法也是直接在节点上加载。1.2 必须用节点载荷的典型场景根据我的实际使用经验下面这几类需求基本绕不开节点载荷外部网格文件导入模型只有网格没有几何所有载荷和约束都必须通过节点或单元来选。焊点、螺栓、铆接等局部连接点模拟结构内部的受力点无法用几何特征表达但节点坐标是现成的。多物理场数据传递CFD壁面力、电磁力、热分析节点温度等映射到结构网格时天然是节点级数据。频响分析和瞬态分析中的集中质量点、阻尼器连接点这些连接点本质上也是某个区域节点的集合。理解这一点以后你会发现节点载荷并不是一个冷门技巧而是做工程仿真必须具备的基本功。它本质上把载荷从“几何层面”解耦到了“网格层面”让你可以直接控制力的作用位置和分布方式。2. 准备工作先把节点选稳2.1 网格与节点信息的查看在Workbench里选节点前提是网格已经生成。在Mechanical界面左侧的树形菜单里点击Mesh在Details面板里就能看到Nodes和Elements的数量比如Nodes: 45872Elements: 112500。这个数字很有用后面用APDL计算每个节点受力时需要通过它做换算。另一个很实用的工具是Selection Information。在图形窗口空白处右键勾选“Selection Information”或者用菜单“Display”打开当你选中节点时它会实时显示选中的节点数量、最小节点编号和最大节点编号。我第一次用的时候没开这个面板框选一片节点后完全不知道选了多少个结果加载时力的大小全靠猜后来养成习惯每次框选后都先看这个数字再继续下一步。另外为了让节点选择更精确有时需要先对网格做局部细化。节点载荷的精度和网格密度强相关如果加载区域的网格太粗力作用处会出现明显的应力集中局部结果会失真。所以我在施加载荷之前通常会先对关注区域做一次Body Sizing或者Face Sizing让加载位置附近的网格至少加密2到3层。2.2 用命名选择把节点“打包”命名选择Named Selection是Workbench里一个非常核心的功能它可以把你选中的几何、单元、节点保存成一个集合之后在加载荷、约束、结果提取时反复使用。创建命名选择的入口有两个在树形菜单里的Model上右键选择Insert - Named Selection。在图形窗口上方的工具栏里找到Named Selection图标一个带星形的标签图标点击后就可以开始框选。创建时要特别留意一个地方选择过滤器。Workbench图形窗口上方有一个下拉选项默认可能是“Geometry”你要把它切换成“Mesh”。否则框选时选中的是几何体表面而不是网格节点。切换成Mesh之后再用鼠标点击就能选中单个节点用框选Box Select或者圆形区域选择Circle Select就能批量选中一片节点。选好以后回到Details面板把Scope类型确认为Nodes然后给这个命名选择起个名字比如LoadNodes。我一般习惯用英文命名不用中文在后续的APDL命令流和跨模块传递时更稳定不会出现编码问题。3. 核心操作用Named Selection在节点上施加载荷3.1 三步把力加在节点集上这一步是整个流程的关键我直接按操作顺序写第一步在Mechanical树形菜单里的Static Structural上右键选择Insert - Force。这时会在环境树下出现一个Force对象Details面板里有Geometry、Definition、Direction等设置项。第二步在Geometry这一栏点击右侧的Apply按钮然后在图形窗口里选中之前创建好的Named Selection。注意一个细节选中的命名选择会在Geometry栏里显示为“1 Named Selection”名字是LoadNodes如果显示的是0说明没有选中需要重新点Apply再选一次。第三步设置力的方向和大小。Define By选择ComponentsCoordinate System保持默认的Global Coordinate System然后在X Component、Y Component、Z Component里输入对应分力。比如你想沿Y轴负方向加1000N就在Y Component里输入-1000。这里我推荐使用Components而不是Vector虽然Vector也可以定义方向和大小但Components可以直接看到三个方向的分量排查方向问题时更直观。设置完成后建议立刻做一个校验动作在Solution下插入一个Probe - Reaction Force然后把求解跑一遍查看反作用力的大小和方向是否与施加值一致。这个习惯帮我发现了不少方向填错、单位填错的问题。3.2 关键细节总力和单节点力的关系这里有个新手极易踩坑的点当你在多节点上施加力时Workbench界面里输入的力值按整个选择集的总力来解释程序会自动把这个总力平均分配到选中的所有节点上。比如你选中了60个节点在Force里输入3600N每个节点实际受力是60N。整体反力会保持3600N。我之前见过一个同事选中一片节点后以为输入的是每个节点的力直接填了一个很大的值结果整个模型做得飞起反力是设计值的几十倍。所以加载之前先看清楚你选中的节点数量再确认你填的是总力还是每节点力。那怎么确认当前是总力还是每节点受力我常用的办法是求解之后看Reaction Force。如果反力约等于你输入的值说明是按总力处理如果反力等于输入值乘以节点数说明载荷被当成每节点力施加了。一旦发现第二种情况就把输入值除以节点数重新加一遍。3.3 载荷方向与坐标系的配合节点力的方向默认沿着全局笛卡尔坐标系的X、Y、Z方向。如果你的加载方向恰好是水平的或垂直的直接用全局坐标很方便。但工程中经常遇到斜向载荷比如模拟斜拉杆的力、带角度的螺栓预紧力这时就要先建立局部坐标系。在Model下右键选择Insert - Coordinate System然后在Details面板里定义坐标原点再通过Axis和Orientation确定方向。定义完成后在Force的Details面板中把Coordinate System从Global Coordinate System切换成你新建的局部坐标系然后再输入分量。这么做的好处是力的大小和方向一目了然不需要手算角度分量。Moment弯矩载荷的操作和Force完全一致只是改成在Moment里设置分量即可。4. 进阶方案用Remote Point加载远程力4.1 Remote Point背后的传力逻辑直接节点力用起来方便但也有一个明显的短板局部应力奇异。力集中作用在单个或少数节点上时节点附近会产生不真实的应力峰值这个峰值会随网格细化不断增大属于数学奇异性不是真实的物理响应。为了解决这个问题同时模拟更真实的连接方式Workbench提供了Remote Point远程作用点。Remote Point的原理很简单你在模型某个区域上建立一个虚拟点这个点与选定区域里的所有节点通过约束方程建立联系然后把力施加在这个虚拟点上它再按照约束方程把力等效传递到区域节点上。这相当于用一个“主节点”控制一片区域的受力行为。Remote Point里有两个Behavior选项Rigid和Deformable。Rigid表示区域内的节点相对位置保持不变像一个刚体垫块适合模拟刚性连接Deformable则允许区域发生变形传力更真实适合做应力考核。我个人的倾向是结构分析中如果没有特殊的刚性装配需求优先选Deformable避免人为地把局部刚度过分放大。4.2 实操步骤与参数设置在Model下右键选择Insert - Remote Point然后选择一片区域。这个区域可以是一个面、一组边也可以是之前创建好的命名选择。如果载荷是施加在一个螺栓连接的垫片位置我会直接用命名选择选中垫片接触区域的节点然后让Remote Point绑定这个节点组。Remote Point创建好之后在Static Structural下插入Remote ForceGeometry选择Remote Point然后输入分量。这里要注意Remote Force的Location就是Remote Point的位置你可以通过修改Remote Point的坐标来调整力的作用点这比直接节点力灵活得多因为作用点不必真的在某个节点上。求解之后同样可以用Reaction Force来验证。实际使用时Remote Force对网格的敏感度比直接节点力小很多局部结果也更平滑这是我在做支架强度分析时最喜欢用它模拟螺栓连接的原因。4.3 Remote Force和直接节点力的取舍为了让你更清楚怎么选我整理了一个对比对比项目直接节点力Remote Force操作门槛低几步就能加上中需要先建Remote Point局部应力奇异容易出现明显减轻载荷作用位置必须落在节点上可定义在任意空间点适用场景简单节点受力、数据映射螺栓、垫片、偏心加载与网格的耦合关系网格变了要重新确认节点组绑定区域后网格变化影响较小后处理反力验证直接看Reaction Force同样可以看Reaction Force在我看来如果是模拟多物理场数据映射比如CFD导出的节点力直接使用命名选择加力就够了但如果是做结构强度校核想要一个相对真实的连接效果优先考虑Remote Force。很多看起来“载荷大小没问题但结果发散”的情况换用Remote Force之后能稳定不少。5. 硬核路线Command对象直接写APDL5.1 在Workbench哪里插入命令当界面操作满足不了需求时比如要施加随坐标变化的力、不同节点不同大小的力、或者要在某个特定分析步切换载荷就要用到Command对象。Workbench里可以插入Commands位置一般在Static Structural的环境下或者在Solution下右键选择Insert - Commands。插入后会生成一个Command Snippet里面是一段APDLANSYS参数化设计语言代码模板。Community里经常有人把这一段称为“命令流”它会在当前分析步执行。需要注意的是Command Snippet的执行顺序和插入位置有关放在Environment下的命令会在求解前执行放在Solution下的命令会在求解过程中或求解后执行。对于施加载荷来说放在Static Structural下面或者直接写在Solution前的Commands里都可以但原则是必须在求解开始前完成载荷定义。5.2 用F命令施加节点力APDL里施加节点力最常用的命令是F命令基本格式是F, 节点, 方向, 大小。比如给节点编号1000加一个Y方向的-500N力写法就是F, 1000, FY, -500但工程上很少只对一个节点加载往往是选中一片区域。这时需要NSEL命令选出目标节点再配合F命令批量加载。需要注意的是F命令如果作用于一组节点它是对每个节点都施加相同大小的力而不是把这组节点作为一个整体施加总力。这一条和界面操作的逻辑不同非常容易用错。假设你在模型的X坐标0~20范围内有一组节点想在这组节点上总共施加1000N的Y向力可用的命令流如下! 选择X坐标0~20范围内的所有节点 ! 具体坐标范围根据你的模型单位调整 NSEL, S, LOC, X, 0, 20 ! 把当前选中节点定义成组件 CM, LoadZone, NODE ! 获取当前选中节点的数量 *GET, nNodes, NODE, 0, COUNT ! 计算每个节点应该分到的力 ForcePerNode -1000 / nNodes ! 重新选择节点组然后施加节点力 NSEL, ALL NSEL, S, LOC, X, 0, 20 F, ALL, FY, ForcePerNode ! 全选恢复默认状态 ALLSEL这里*GET是一个很实用的命令它把当前选中的节点数量读出来然后用总力除以节点数得到每个节点分到的力。F, ALL, FY, ForcePerNode这行代码会对当前选中的所有节点施加Fy方向大小为ForcePerNode的力。5.3 用SF和BF命令施加压力和体载荷除了集中力节点上还可以施加面载荷和体载荷。SF命令用来在节点表面施加压力它的常见格式是SF, 节点范围, PRES, 压力值。比如在节点上施加1.5MPa的压力! 假设当前单位制下压力单位是N/mm²1.5MPa 1.5 N/mm² NSEL, S, LOC, Y, -0.5, 0.5 SF, ALL, PRES, 1.5 ALLSELBF命令用来施加体载荷比如温度、热生成率等。给整组节点加载温度BF, ALL, TEMP, 85这两个命令在做热应力耦合或者某些特殊工况时特别有用。比如你拿到一批温度数据想模拟结构上某个区域的温度均匀升高85度直接在节点组上BF一下就行比在几何面上加载更方便特别是几何缺失时。5.4 常见坑坐标与单位APDL命令流里最让我头疼的永远是坐标系和单位问题。先说单位。Workbench的当前单位制决定了命令流里数值的单位。比如当前单位制是mm、N、s、MPa这一套你输入的压力值是1.5就代表1.5 N/mm²。如果不小心按国际单位制思考输入1500000那就直接多了100万倍。我养成的习惯是写命令流之前在注释里标清楚当前单位制和数值含义。再说坐标。F命令里FX、FY、FZ的方向是按照节点当前坐标系来确定的。默认情况下节点坐标系和全局笛卡尔坐标系一致所以F, ALL, FY, -1000就是往全局Y负方向加载。但如果之前有人用NROTAT把节点坐标系旋转过力的方向会跟着变很容易出现“力加载了但方向不对”的问题。排查这类问题最快的办法就是先ALLSEL再用NROTAT或者LOC检查一下当前节点坐标系的设置实在不行就退回界面操作配合局部坐标系更直观。另外在APDL里用组件名CM命令定义的名称加载时要注意组件名不能太长也不要包含中文。我习惯用LoadZone、PresZone这种简短名称避免Workbench解析时出现问题。6. 常见问题与排查实录6.1 节点总是选不中或选多最普遍的问题是选择方式不对。图形窗口上方的过滤器还在“Geometry”状态点到的都是面不是节点。解决方法是把过滤器切到“Mesh”模式下再配合框选或圆形选择。另外要打开Selection Information面板实时看选中数量。框选的时候由于透视图会包含背后节点经常出现“我就想选外表面一层结果选了好几层”的情况。这时建议把视角切换到正视图并使用Box Select配合局部放大再多选几次看看计数。如果框选很难精确控制还有一个更稳妥的办法在Named Selection的Details面板里切换到Worksheet用坐标条件筛选。比如加一条规则X在0到20之间Workbench会自动把满足坐标范围的节点全部筛选出来。这个方法对网格重划后的模型尤其友好因为它是按坐标规则评估的不依赖某个具体的节点编号。6.2 网格更新后命名选择失效这是很多人在优化分析里撞过的问题第一次网格划分很顺利命名选择也建好了载荷也加上了但改了几何参数重新生成网格后命名选择里的节点编号全变了载荷也不翼而飞。解决办法有两个方向。一个是重新框选节点并更新命名选择适合一次性分析。另一个是在Named Selection里使用Worksheet规则用坐标范围筛选比如0 X 20这样每次网格重划后Excel表格一样的Worksheet会重新评估自动选中最新的节点。推荐在参数优化分析中使用第二种能省掉大量重复工作。6.3 求解后应力大得离谱如果你在单个节点上施加了很大的集中力求解之后发现局部应力高到离谱往往是应力奇异造成的并不代表结构真的要破坏。这种奇异响应会随着网格加密不断变大而且不会收敛。解决方式是查看应力结果时避开加载点附近两三个单元的距离关注承载路径上的整体应力分布。如果确实需要加载点附近的应力结果建议换用Remote Force让载荷通过约束方程分散到更大区域或者把集中力改成在几个节点上分散施加。另一个需要注意的点是大变形分析中力方向会跟随结构变形而改变如果你期望力方向在变形过程中保持恒定需要留意Workbench中的Direction设置必要时通过命令流更新加载方向。6.4 从外部网格导入后无法用几何加载外部网格导入Workbench后通常只有网格没有几何体。此时插入Force时Geometry栏无法选择任何几何对象。解决办法就是本文前面讲的先选中节点创建命名选择然后把命名选择施加到Force或Remote Force上。如果导入的网格比较大框选会很卡建议先把显示范围缩放到目标区域再进行框选。还有一个小技巧是导入后先把Mesh的统计信息看清楚比如总节点数、总单元数确认网格的坐标系和单位对不对。很多时候外部网格导入后单位是错的后续加载的力会偏离预期好几个数量级我就遇到过导入模型后长度单位变成m结果所有力都要重新换算的情况。个人经验是节点施加载荷这件事并不一定非要用最高级的命令流。优先考虑Remote Force和命名选择绝大部分工程问题都能覆盖。只有需要精细化控制节点载荷分布时再上APDL命令流。另外无论选了哪种方法加载完先别急着求解花十几秒把节点选择信息、总力大小、坐标方向确认一遍再放一个Reaction Force探针这个习惯能帮你避开绝大多数载荷加载错误。
返回列表