学习ANSYS经验总结

更新时间:2023-10-11 19:00:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第八章 修改模型

8.1简介

本章主要叙述各种修改模型的方法。主题包括:

·局部网格细化

·节点和单元的移动与拷贝 ·记录单元面和方向

·修改已划分网格的模型:清除和删除 ·理解实体模型的相互对照检查

8.2细化局部网格

通常在下面两种情形时,用户需要考虑对局部区域进行网格细化:

1)用户已经将一个模型划分了网格,但想在模型的指定区域内得到更好的网格。

或2)用户已经完成分析,同时根据结果想在感兴趣的区域得到更为精细的解。对于所有由四面体组成的面网格和体网格,ANSYS程序允许用户在指定的节点、单元、关键点、线或面的周围进行局部网格细化。由非四面体所组成的网格(例如六面体、楔形、棱椎)不能进行局部网格细化。

8.2.1如何细化网格

必须按下面的两步来细化网格:

1、选择图元(或一组图元)以便围绕着它们进行网格细化。

2、指定细化的程度(换句话说,就是在细化区域相对于原始网格所想要的尺寸)。细化后的单元总是比原来的单元小;局部网格细化过程不能提供使网格变粗的功能(LEVEL)。

8.2.1.1高级控制

如果用户想在细化过程中进行更多的控制,可以对下列的高级选项进行参数设定:

·根据已选定图元周围单元数指定网格细化区域的深度(DEPTH)。

·在原始单元被分裂开后指定后处理的类型,后处理包括进行网格光滑和清理操作,

只是光滑处理,或两者都没有(POST)。

·指定在细化全是四边形的网格时是否可以将三角形引入网格。换句话说,用户可

指定四边形单元是否一定要保留(RETAIN)。

8.2.2细化命令和菜单途径

使用下面xREFINE命令和菜单途径来选择要进行细化的图元并设置细化的控制。(细化控制在后面详细描述)

·围绕所选择的节点进行细化,使用下列方法: 命令:NREFINE

GUI: Main Menu>Preprocessor>-Meshing-Modify Mesh>-Refine

At->Nodes

·围绕所选择的单元进行细化,使用下列方法: 命令:EREFINE

GUI: Main Menu>Preprocessor>-Meshing-Modify Mesh>-Refine

At->Elements

Main Menu>Preprocessor>-Meshing-Modify Mesh>-Refine At->All

·围绕所选择的关键点进行细化,使用下列方法: 命令:KREFINE

GUI:Main Menu>Preprocessor>-Meshing-Modify Mesh>-Refine At->

Keypoints

图8-1局部网格细化的例子。

·围绕所选择的线进行细化,使用下列方法: 命令:LREFINE

GUI: Main Menu>Preprocessor>-Meshing-Modify Mesh>-Refine At->Lines ·围绕所选择的面进行细化,使用下列方法: 命令:AREFINE

GUI: Main Menu>Preprocessor>-Meshing-Modify Mesh>-Refine At->Areas

图8-1显示了一些围绕着节点〔NREFINE〕、单元〔EREFINE〕、关键点〔KREFINE〕和线〔LRERINE〕进行网格细化的例子。

图8-2举例说明了用AREFINE命令围绕面的四面体网格细化。

图8-2围绕面的四面体网格细休〔AREFINE〕

8.2.2.1指定细化的标准

使用LEVEL变量来指定细化应进行的程度。LEVEL值必须是从1到5的整数,值1提供了最小程度的细化。值5提供了最大程度的细化。当LEVEL=1时,在细化区域所得到的单元边界长度大约是原单元边界长度的1/2;当LEVEL=5时,所得到的单元边界长度大约是原单元边界长度的1/9。下表列出了LEVEL所有可能的设置以及每一种设置所得边界的近似长度。

LEVEL 变量的值 1 2 3 4 5 近似的边长 1/2 1/3 1/4 1/8 1/9 LEVEL值从1到5提供了逐渐减少的单元边界长度。但是,应该知道当RETAIN=ON时,不同的LEVEL值可以提供同样的细化网格。(要得到更多的信息,请看后面RETAIN变量的解释。)刚好在细化区域外面的那一层单元(也就是说在指定DEPTH之外)也可能被分开,目的是与细化单元过渡。

注意:所有的LEVEL值在细化区域都只生成较小的单元。局部网格细化过程不提供网格粗化功能。

8.2.2.2指定细化深度

缺省时,只对所选图元外面的一个单元进行细化(除了单元细化,它使用DEPTH=0作为缺省),而且单元被分裂一次(也就是单元边被平分成两半,因为缺省LEVEL=1)。

8.2.2.3指定细化区域的后处理操作:光滑和清理

作为细化过程的一部分,用户可指定在原始单元分裂后ANSYS还应做的后处理的类型。可以选择光滑和清理(缺省),只进行光滑操作,或两者都不选。

·如果让ANSYS做光滑和清理的工作,设置POST=CLEAN(或在GUI中选择

Cleanup&Smooth).

·如果想让ANSYS只做光滑工作,设置POST=SMOOTH(或在GUI中选择

Smooth)。

·如果后处理两项都不想做,设置POST=OFF(或在GUI中选择OFF)。 光滑:缺省时,细化区域的节点将进行光滑处理(也就是它们的位置将被调整)以改善单元的形状。节点的位置遵循下列的约束进行调整:

·节点在关键点上时不移动。 ·节点在线上时只在线上移动。 ·节点在面内时只在表面上移动。

·如果网格已经从实体模型(MODMSH,DETACH或菜单途径Main

Menu>Preprocessor> Checking Ctrls>Model Checking)中分离出来了,光滑操作就不会进行了。

用户可对正在用的细化命令设置POST=OFF,关闭对所有节点的光滑命令。(也可以这么做来关闭清理命令。)

清理:当清理选项是打开时(POST=CLEAN),ANSYS程序会对所有与受到影响的几体图元相关联的单元进行清理操作(在二维模型中)。在三维模型中,ANSYS程序只对那些在细化区域内或直接与细化区域相连接的单元执行清理命令。清理操作可以改善单元的质量。如果网格已经从实体模型中分离出来了(MODMSH,DETACH 或菜单途径Main Menu>Preprocessor>Checking Ctrls>Model Checking),那么不会进行面网格的清理操作。但对于四面体网格这个命令还是会被执行。

当用户正在细化四边形网格时,清理命令会试着从细化过渡区域删除三角形网格。如果清理操作已经完成优化单元质量后,仍留有形状不好的四边形单元,ANSYS就会把这些单元分裂成三角形。通设置RETAIN=ON(缺省)就可以防止这种情况的发生。图8-3说明了一个全是四边形网格的清理操作。

注意:用户可通过对细化命令设置POST=OFF或POST=SMOOTH来关闭清理操作。

图8─3 全是四边形网格

8.2.2.4 指定是否保留四边形单元

注意:当正在细化任何一个非四边形的网格时,ANSYS会忽略RETAIN变量。 缺省时,RETAIN=ON,这意味细化网格过程不会将三角形单元引入到全是四边形的网格中。当RETAIN=OFF和POST=SMOOTH或OFF时,所得到的细化区域可能会包含三角形单元目的是保持连续过渡。当RETAIN=OFF和POST=CLEAN时,三角形单元会达到最少;但是,它们不可能被完全删除掉─极少量的三角形单元可以留在过渡区域,目的是得到好的单元质量。

注意:如果一个面是由四边形单元和三角形单元混合划分而成,那么即使是当RETAIN=ON时细化区域内的四边形单元也不能被保留住。

因为四边形单元较三角形单元有更多的限制,因此当RETAIN=ON时增加或减少LEVEL变量的值时不一定就能得到所想要的细化水平的增加或减少。另外,即使是四边形单元可以被保留住,它们中的一些单元的形态也可能很差,特别是在LEVEL值较高时,但是,若通过设置RETAIN=OFF一些三角形单元就有可能被引入网格。这是所不希望得到的,特别是在使用低阶单元时。可以通过做到以下几点来把三角形单元保持在所感兴趣的点以外:

·用更大的DEPTH进行细化,也就是说,在所感兴趣点的更大的半径上细化。 ·用POST=CLEAN选项细化。这个POST变量的设置可使三角形单元的数量出现

得最少。

·使用另外的方法进行细化(例如,使用局部网格控制和重新划分网格)。

8.2.3属性和载荷的转换

与“父”单元相关联的单元属性会自动地转换到所有的“子”单元上。这些属性包括单元类型、材料特性、实常数和单元坐标系(若想对单元属性有更多的了解,参见§7)。

加在实体模型上的载荷和边界条件在求解开始时会转换到节点和单元上(或用SBCTRAN或DTRAN命令手工进行载荷转换)。因此实体模型载荷会正确地加到在细化期间新生成的节点和单元上。但是,加在节点和单元上的载荷和边界条件(有限元载荷)不能转换到在细化期间新生成的节点和单元上。如果在所选择的细化区域内有这样的载荷,程序将不允许细化过程的进行除非是先删除载荷。所以,如果用户预计要使用网格细化功能,那么建议只将载荷加在实体模型上而不是直接加在节点和单元上。

注意:因为实体模型加载对于显式动力分析(也就是ANSYS/LS─DYNA产品)是不可用的,所以网格细化必须在这类分析的加载之前进行。

8.2.4网格细化的其它特征

网格细化的其它特征包括以下的几点:

·细化生成新的单元和节点(包括中间节点)被投射到实体模型几何体上(见图8-4)。 ·当使用选项围绕节点细化时[NREFINE],忽略所选节点中的中间节点。

·网格细化不会超过面和体的边界。也就是说,如果指定的DEPTH超过了面或体网

格的边界后,邻接的面或体网格不会改变(见图8-5)。但是,如果选择进行细化的图元(节点、单元、关键点或线)是在边界上,或所选图元在边界两边,那么细化就会延伸到邻接的面或体内。

·网格细化只在当前所选定的单元内进行(见图8-6)。

·细化可以用在已从实体模型中分离出来的网格上(MODMSH,DETACH 或菜单途

径Main Menu>Preprocessor>Checking Ctrls>Model Checking)。在这种情况下,细化不会被面边界所终止。而且,节点和单元不会投射到实体模型上,指定POST变量的后处理选项一个也不能执行。

·在细化一个四面体网格期间,当清理选项被打开时(POST=CLEAN),ANSYS

在细化区域自动执行一个高水平的清理操作(也就是相当于VEMP,,,2的水平)。如果用户在细化期间得到形状错误信息,就关掉形状检查选项(SHPP,OFF)再执行一次细化命令〔xREFINE〕,然后再在最高级的水平之上(VIMP,,,3)进行四面体单元的改进。

图8-4节点和单元投射到几何体上

·如果用户使用LESIZE命令指定线的分割数,这些线在随后的细化过程中将受到

影响,ANSYS将会改变那些受到影响的线的分割数(也就是说,线的分割数不仅增加,而且在随后的线列表中〔LLIST〕也可显示为负数)。

图8-5网格细化不超过面边界

图8-6只细化被选择的单元

注意:如果用户在后来清除网格(ACLEAR, VCLEAR等命令或菜单途径Main Menu>Preprocessor>-Meshing-Clear>entity),则负号的存在将影响ANSYS如何处理

线的分割数。如果线的分割数是正数,则在清除操作期间,ANSYS不会删除线的分割数;若分割数是负的,ANSYS就会删除线的分割数(在随后的线列表中分割数将显示为零)。

8.2.5网格细化的限制

下面的限制针对网格细化:

·尽管局部网格细化可被用在所有的面网格中,但它只能用在由四面体单元组成体

网格上。包含非四面体单元的网格(例如,六面体、楔形体、棱椎)不能被局部细化。

·如果模型在所选的细化区域内包含有接触单元,则不能使用局部网格细化。在这

种情况下,应在定义接触单元前细化网格(或者删除接触单元,细化网格,然后再加接触单元。)

·局部网格细化不支持已有的在自由表面上生成的单元〔ESURF〕。对这些单元细

化应先删掉表面单元,细化下面的单元,然后再生成表面单元。

·如果已有梁单元存在于细化区域附近,则细化就不能进行。为了在这个面上细化,

梁单元应先被删掉,细化命令执行完后再重新定义。

·如果载荷直接加在模型的节点和单元上,细化就不能进行。在这种情况下,为了

能细化网格必须删除载荷。(为避免这种情况发生,建议用户将载荷加在实体模型上而不是加在有限元模型上)。

·如果初始条件在节点〔IC〕、耦合节点上〔CP命令族〕,或模型中存在约束方程

〔CE命令族〕,则局部网格细化不能进行。如果存在这些情况中的任一种,用户都应在细化之前先删除它们。

·对于显式动力分析模型(当使用ANSYS/LS─DYNA时),不推荐使用局部网格细

化,因为由细化所得到的小单元会极度地减小时间步长。

·不支持KSCON命令。对于任何用KSCON命令划分网格的面,当进行细化时边

中节点将被放置在边界的中间。

·如果已定义了单元或节点组元,程序会问是否继续细化。如果选择继续,就必须

更新受到影响的组元。

8.3节点和单元的移动与拷贝

在通常的实体建模过程中,用户在生成有限元网格前应先完成整个实体模型。但是,如模型中存在重复性的几何特征,用户有时会发现下面的方法更为有效:只对模型中有代表性的一部分进行建模,划分网格,然后根据需要拷贝那个已划分了网格的区域若干次以完成模型。(拷贝一个已存在的网格比生成一个新网格花费的时间要少得多)。如果用户要成功地完成这个程序,需预先计划好要拷贝的数量。

拷贝一个已划分了网格的区域的一般程序是使用命令来生成和转变面和体,这些将在下面叙述。当一个已划分了网格的实体模型图元用这些命令中的一个进行拷贝时,所有依附其上的低级图元,包括节点和单元网格,都将随同那个图元一起被拷贝。

·从模板面中生成另外的面,使用下列方法: 命令:AGEN

GUI: Main Menu>Preprocessor>-Modeling-Copy>Areas Main Menu>Preprocessor>-Modeling-Move / Modify>Areas ·从模板体中生成另外的体,使用下列方法: 命令:VGEN

GUI: Main Menu>Preprocessor>-Modeling-Copy>Volumes Main Menu>Preprocessor>-Modeling-Move / Modify>Volumes ·用对称映像由一个模板面中生成另外的面,使用下列方法: 命令:ARSYM

GUI: Main Menu>Preprocessor>-Modeling-Reflect>Areas ·用对称映像由一个模板体中生成另外的体,使用下列方法: 命令:VSYMM

GUI: Main Menu>Preprocessor>-Modeling-Reflect>Volumes ·将模板面转换到另一个坐标系下,使用下列方法: 命令:ATRAN

GUI:MainMenu>Preprocessor>-Modeling-Move/Modify>TransferCoord>

Areas

·将模板体转换到另一个坐标系统下,使用下列方法: 命令:VTRAN

GUI:MainMenu>Preprocessor>-Modeling-Move/Modify>TransferCoord>

Volumes

用户必须先计划好以确保拷贝的区域之间的接触面上的节点和节点相匹配。例如,如果用户对一个体进行自由网格划分,在右端的节点模式就不必与左端的节点模式相匹配。如果原始部分和它的拷贝正好是一部分的右端与另一部分的左端相连接起来,那么在两个不匹配接触面上就会生成一条不连续的线缝。

沿着面网格划分的边缘线制作匹配的节点模式较容易,只要指定原始部分的两边都有相同的线分割和分割间距即可。但是,对于体就没有这么简单了。在网格体的两个面上需用一个技巧生成相匹配的节点模式。在用体单元网格划分之前,用伪面单元对某一个匹配面进行网格划分,然后将划分完网格的面拷贝至另一匹配面。(依赖于用户最初是如何创建体的,此时用户可以做一些清理工作,也可不做。如果用户清除了重复的重合面,就应根据新划分网格的面重定义体,同时删除最初的体。)然后,体就可以用实体单元进行网格划分了。在体网格划分完成后,应删去伪面单元。(用户可通过使用选择ACLEAR命令或菜单路径 Main Menu>Preprocessor> -Modeling- Clear>Areas.非常干净地做到这一点)。

已经完成网格划分的区域在界面上将是相互匹配的,用户现在就可拷贝这个部分了,这样,重复的区域就会正好互相接触了。尽管这些区域在接触面上有相互匹配的节点,但这些节点的自由度仍然是独立的;也就是说,模型接触面上仍存在不连续的线缝。应运行NUMMRG,ALL来删除这个不连续的线缝。通常,在此命令后再跟着运行NUMCMP命令(菜单途径Main Menu>Preprocessor> Numbering Ctrls>Compress Numbers)是一个比较好的习惯。

图8─7 用在接触面上匹配节点模式的方法生成体网格

8.4 记录单元面和方向

如果模型中包含壳单元,并且加的是面载荷,那么用户就需要了解单元面以便能对载荷定义正确的方向。通常,壳的表面载荷将加在单元的某一个面上,并根据右手法则(按I,J,K,L节点序列方向,如下图如示)确定正向。如果用户是用对实体模型面进行网格划分的方法生成壳单元的,那么单元的正方向将与面的正方向相一致,面的正方向可用命令ALIST来确定或执行菜单途径Utility Menu>List>Areas;根据右手法则,定义面的线序列方向来定义面的法线方向。)

图8─8用右手法则定义正法线方向

有几种方法可用来进行图形检查:

·可用执行/NORMAL命令(菜单途径Utility Menu>PlotCtrls>Style>Shell

Normals),接着再执行EPLOT命令(菜单途径Utility Menu>Plot>Elements)的方法对壳单元的正法线方向进行一次快速的图形检查。

·打开PowerGraphics的选项。PowerGraphics将用不同的颜色来显示壳单元的“底”

和“顶”。

·用假定正确符号的表面载荷加到模型上,然后在执行EPLOT命令之前先打开显示

表面载荷符号的选项〔/PSF,Item,Comp,2〕以检验它们方向的正确性。

8.4.1 控制面、线和单元的法向

模型中不一致的法线方向可能会导致出现问题。例如,如果相邻的壳单元有不一致的法向方向,那么用户在对应力和应变结果进行后处理时就会碰到困难。说得更明白一些,若用户模型的某一个表面既包含壳单元的顶面又包含壳单元的底面,那么节点的平均应力和应变就有可能是不正确的。但是,PowerGraphics〔/GRAPH,POWER〕考虑到法线方向的不匹配并且能生成正确的节点应力图(当GUI打开时 PowerGraphics是缺省的)。

ANSYS提供了各种不同的工具,用户可用它们来控制面、线和单元的法向:

命令:ENORM, ANORM, ENSYM, LREVERSE, AREVERSE

GUI: Main Menu>Preprocessor>-Modeling-Move / Modify>-Elements-Shell

Normals

Main Menu>Preprocessor>-Modeling-Move / Modify>-Areas-Area

Normals

Main Menu>Preprocessor>-Modeling-Move / Modify>Reverse

Normals>of Shells

Main Menu>Preprocessor>-Modeling-Move / Modify>Reverse

Normals>of Lines

Main Menu>Preprocessor>-Modeling-Move / Modify>Reverse

Normals>of Areas

下面的部分描叙如何用这些工具完成一些操作:

·对壳单元的法向重新进行定向以便它们能与指定的单元有相一致的法向

〔ENORM〕。

·对面的法向重新进行定向以便它们能与指定的面有相一致的法向〔ANORM〕。 ·将已有壳单元的法向反向〔ENSYM〕。 ·将已有线的法向反向〔LREVERSE〕。 ·将已有面的法向反向〔AREVERSE〕。

注意:用户不能使用本节上述的工具来改变任何已经有了体载荷或面载荷的单元的法向。建议用户只有在已确信单元的法向方向是可接受的之后再加所有的载荷。

实常数(例如非均匀的壳厚度和锥形梁常数)可能会由于单元反向命令而失效。

8.4.1.1 重新定向壳单元的法向

如果用户发现模型中的单元有不一致的正法向方向,则可将它们的方向重新定义以与某个指定的单元有相一致的法向方向。(单元坐标系,如果是由I,J,K节点定义的,则也可用这个操作来重定向。)

用命令的方法来重新定向壳单元的法向,发出命令ENORM,ENOM:

·使用ENUM变量来确定单元号以便重定向的单元能与此单元有一致的法向方向。 例如,命令ENORM,3能使所有被选定的壳单元改变法向方向以便它们能与3号单元有一致的法向方向。查阅《ANSYS Commands Reference》中ENORM命令的描述可得到这个命令更详细的用法。

在GUI中,用户可通过选择菜单途径Main Menu>Preprocessor>-Modeling-Move / Modify>-Elements-Shell Normals来重定向壳单元的法向方向。当重定向壳单元法向的拾取对话框出现时,拾取目标单元以便其它重定向单元能与它有一致的法向方向,然后点击OK。

8.4.1.2 重定向面的法向

如果一组面有不一致的法向方向,用户可重定向它们的法向以与某一指定面的法向方向相一致。

用命令的方法来重定向面的法向,发出命令ANORM,ANUM,NOEFLIP:

·使用ANUM变量来确定面的编号以便使重定向的面能与此面有一致法向方向。 ·使用NOEFLIP变量来决定是否想改变已重定向面上已有单元的法向方向以便让

它们能与新的面法向方向相一致。如果想让法向方向相一致就指定此变量为0,否则为1。

例如,命令ANORM,5,0能使所有被选的面改变法线方向以便让它们能与编号为5的面有一致的法向方向。若想了解详细的用法,参见《ANSYS Commands Reference》中的ANORM命令的叙述。

在GUI中,用户可通过选择菜单途径Main Menu>Preprocessor>-Modeling-Move / Modify>-Areas-Area Normals来重定向面的法向方向。当重定向面的法向的拾取对话框出现时,拾取目标面以便使其它的重定向面能与它有一致的法向方向,点击OK。然后在“令面法向一致”的对话框中,决定是否让已有面单元的法向与新的法向方向一致,最后在对话框中点击OK。

8.4.1.3 将已有壳单元的法向反向

用命令的方法来使已有壳单元的法向方向反向,发出命令ENSYM,,,,IEL1,IEL2,IEINC:

·使用IEL1,IEL2和IEINC变量,在步长为IEINC(缺省为1),将单元号从IEL1

到IEL2(缺省为IEL1)的单元的法向反向。

例如,命令ENSYM,,,,1,50就会使从1到50的壳单元的法向反向。

在GUI中,用户可通过选择菜单路径Main Menu>Preprocessor>-Modeling-Move / Modify>Reverse Normals>of Shells来使已有的壳单元的法向反向。当壳单元的法向反向的拾取对话框出现时,拾取要进行法向反向的壳单元然后点击OK。

8.4.1.4 将已有线的法向反向

用命令的方法来使线的法向方向反向,发出命令LREVERSE,LNUM,NOEFLIP:

·使用LNUM来确定要进行线法向反向的线的号码。

·使用NOEFLIF变量来指示是否想改变线上已有单元的法向方向以便让它们能与

反向后的新法线方向相一致。如果想使法线方向一致,则指定这个变量为0,否则为1。

例如,命令LREVERSE,1,1将编号为1的线的法向反向,但没让线上的任何一个线单元的法向与新的方向相同。若想了解具体用法,参看《ANSYS Commands Reference》中LREVERSE命令的叙述。

在GUI中,用户可通过选择菜单途径Main Menu>Preprocessor>-Modeling-Move / Modify>Reverse Normals>of Lines来使线的法向反向。当线法向反向的拾取对话框出现时,拾取要进行法向反向的线,点击OK。然后在“令线法向一致”的对话框中,决定是否让已存有线单元法向与新的法向方向一致,最后在对话框中点击OK。

8.4.1.5 将已有面的法向反向

用命令的方法来使面的法向方向反向时,发出命令AREVERSE,ANUM,NOEFLIP:

·使用ANUM变量来确定要进行面法向反向的面的号码。

·使用NOEFLIP变量来指示是否想改变面上已有单元的法向方向以便让它们能与

反向后面的新法向方向一致。如果想使法线方向一致,则指定这个变量为0,否则为1。

例如,命令AREVERSE,7,0将编号为7的面的法向反向,同时面内已有单元的法向方向将与新法向方向相同。若想了解具体用法,参看《ANSYS Commands Reference》中AREVERSE命令的叙述。

在GUI中,用户可通过选择菜单路径Main Menu>Preprocessor>-Modeling-Move / Modify>Reverse Normals>of Areas来使面的法向反向。当面法向反向的拾取对话框出现时,拾取要进行法向反向的面,点击OK。然后在“面法向反向”的对话框中,决定是否让已有面单元的法向与新的法向方向一致,最后在对话框中点击OK。

8.5已划分网格模型的修改:清除和删除

因为ANSYS程序执行实体建模的交叉参照检查,用户就不能删除已划分网格的实体模型图元,也不能用EDELE或NDELE命令删除与实体模型图元有联系的单元和节点。为了能修改模型,通常需要用网格清除命令来清除实体模型图元上的网格。这些清除命令可以认为是网格生成命令的反过程。清除完模型后,就可以按需要对实体模型进行修改了。

8.5.1清除网格

网格清除命令删除与对应的实体模型图元相联系的节点和单元。当清除一个较高级的图元时,所有较低级的图元都被自动清除掉,除非这些较低级的图元本身已划分了网格。在图元边界上并与相邻图元所共享的节点在执行清除命令时不会被删去。

·删除与所选定的关键点相联系的节点和点单元。使用下列方法: 命令:KCLEAR

GUI: Main Menu>Preprocessor>-Meshing-Clear>Keypoints ·删除与所选定的线相联系的节点和线单元。使用下列方法: 命令:LCLEAR

GUI: Main Menu>Preprocessor>-Meshing-Clear>Lines ·删除与所选定的面相联系的节点和面单元,使用下列方法: 命令:ACLEAR

GUI: Main Menu>Preprocessor>-Meshing-Clear>Areas ·删除与所选定的体相联系的节点和体单元,使用下列方法: 命令:VCLEAR

GUI: Main Menu>Preprocessor>-Meshing-Clear>Volumes

在一个网格清除操作之后,程序会报告每一种图元有多少已经被清除掉了。如果图元的单元或节点已经被清除了,那么这个图元就可以认为被清除完了。

图8-9两个面的边界上的节点

如果被删除的单元/节点正好是在单元/节点表的末尾,那么下一个可用的单元/节点的ID号也就会相应地被重新设置。(用户也可用MOPT,CLEAR,OFF命令来压缩并重新设置ID号。)

如前所述,由命令TYPE,REAL,MAT和ESYS赋给实体模型的属性随着网格划分的命令〔AMESH,VMESH等〕而成为单元属性,但网格清除命令会清除掉单元属性。在列表命令〔ALIST,VLIST等〕输出结果中,这些可清除的属性用负的属性号来指出。网格清除

命令不影响用与属性相联系的命令〔AATT,VATT等〕所分配的属性。在任何情况下,发出新的与属性相联系的命令都会屏蔽先前同实体模型相联系的单元属性。

8.5.1.1修改单元属性

有几种原因会使用户在划分网格之后想修改单元属性:在对属性赋值时发生了一个错误,需要改变设计,或要将模型从一个分析项目转换到另一个分析项目(例如在一系列的热应力分析中)。下面是可用的修改单元属性的技术:

8.5.1.2强制方法

用网格清除命令清除网格;用与属性相联系的命令和诸如TYPE,REAL等的命令设置新的属性;然后使用网格划分命令划分网格。因为重新划分网格有时是很费时间的,所以如果网格本身是可接受的。就应该避免使用这种方法。注意当网格清除命令被执行时会产生什么结果:由网格划分命令(在由ALIST,VLIST等命令产生的列表中用负的属性号标识)所设置的实体模型属性将会被删掉;由与属性相联系的命令〔AATT,VATT等〕所设置的实体模型属性不会被改变。因而,如果用户最初是用属性相联系的命令对实体模型赋的值,那么由于与属性相联系的命令的级别比TYPE,REAL,MAT和ESYS命令高,因此用户就不能用TYPE,REAL,MAT和ESYS命令对实体模型的属性进行重新赋值。(这时用户需重新发出一个与属性相联系的命令。)在重新划分网格时,同实体模型图元相联系的属性会被赋值到由这些图元所产生的单元上。

直接修改单元:单元属性也可以不必用费时的重新划分网格的方法来改变:用户可先选定那些要进行修改的单元;重新设置属性(在本程序中使用TYPE,REAL,MAT和ESYS命令);运行EMODIF命令或菜单途径Main Menu> Preprocessor>-Modeling-Move / Modify>-Elements-Modify Attrib。本程序直接修改单元属性,而不影响相应的实体模型属性。本程序尽管很方便但也很危险,因为有限元模型中的单元属性将不再与实体模型中单元的属性相匹配,而且也有可能在得不到任何警告的情况下,将单元的属性改成一个不适当的值。由于这些原因,如果用户决定用直接修改单元的方法来试着改变单元的属性,那么就必须要小心地进行这一过程。

另一种直接修改指定单元的材料号的方法是使用MPCHG命令或菜单途径Main Menu>Preprocessor>Material Props>Change Mat Num。(MPCHG不象其它的修改单元命令那样必须在PREP7内才有效,它在PREP7和SOLUTION内都有效。因而,这个命令可以被用来在两次求解之间改变单元特性)。

修改属性表:另一种可能的方法是在属性表中改变图元属性,但必须在网格划分后和进入SOLUTION前。如果REAL设置或MAT设置中包含有不能用的项目(例如,为梁单元设

置的REAL特性被赋值给一个杆单元),程序就会发出一个警告。本程序不需要重新划分网格。

关于增加和删除中间节点的注意事项:对于任何这样的程序,如果用户要改变单元类型,用有中间节点的单元代替无中间节点的单元,还需要使用下列方法来增加所要求的额外的中间节点:

命令:EMID

GUI: Main Menu>Preprocessor>-Modeling-Move / Modify>-Elements-Add

Mid Nodes

EMID必须在运行MODMSH,DETACH命令或菜单途径Main Menu>

Preprocessor>Checking Ctrls>Model Checking之前运行。而且,为了删除中间节点,用户必须首先用EMID,-1命令把它们从中间节点单元中分离出来。

8.5.2 删除实体模型图元

用户可用下面描述的图元删除命令来删除实体模型图元。如果较低级的图元依附于某个较高级的图元,那么它们就不能被单独地删除。因而,如果用户已经用几何体素命令创建了一个块,那么就不能选择删除同这个块相联系的关键点,除非首先以逐层递减的顺序先删除那个关键点所依附的所有较高级的图元(线、面和体)。

·删除未进行网格划分的面,使用下列方法: 命令:ADELE

GUI: Main Menu>Preprocessor>-Modeling-Delete>Area and Below

Main Menu>Preprocessor>-Modeling-Delete>Areas Only

·删降未进行网格划分的关键点,使用下列方法: 命令:KDELE

GUI: Main Menu>Preprocessor>-Modeling-Delete>Keypoints ·删除未进行网格划分的线,使用下列方法: 命令:LDELE

GUI: Main Menu>Preprocessor>-Modeling-Delete>Line and Below

Main Menu>Preprocessor>-Modeling-Delete>Lines Only

·删除未进行网格划分的体,使用下列方法: 命令:VDELE

GUI: Main Menu>Preprocessor>-Modeling-Delete>Volume and Below

Main Menu>Preprocessor>-Modeling-Delete>Volumes Only

相反地,在LDELE,ADELE或VDELE命令中通过激活“扫掠”的选项(也就是设置KSWP=1),用户就可以指示程序自动地删除所有相联系的较低级的图元。(但是,如果有较低级的图元,同时还依附在另一个较高级的图元之上,那么它们就不能被删除)。例如,如果用户已决定要删除一个未进行网格划分的球体,那么就可以只发出一个命令VDELE,同时,设置KSWP=1,则就会删除体和体上所有的面、线和关键点。

8.5.3 修改实体模型图元

用户可通过使用下列方法来改变模型的关键点的位置,从而改变实体模型的几何结构:

命令:KMODIF

GUI: Main Menu>Preprocessor>-Modeling-Move / Modify>

-Keypoints-Set of KPs

Main Menu>Preprocessor>-Modeling-Move /

Modify>-Keypoints-Single KP

任何依附在被修改的关键点上的已划分完网格的区域都将自动地清除节点和单元。然后所有依附在被修改的关键点上的线、面和体都将自动地用当前激活的坐标系来重新定义。

未划分网格的实体模型图元也可以由重新发出最初定义它们的命令来重新定义。例如,考虑下面的命令序列,其中第二个K命令被用来修改关键点:

CSYS,0

K,1,5.0,6.0,7.0 ! Create KP 1 at X=5.0, Y=6.0, Z=7.0

操作与命令流结合起来使用,没有人会完全用命令流解决问题的,因为没有必要去记那么多命令,有些操作GUI用起来更加直观方便。一般而言,前处理熟悉使用命令流比较方便,求解控制里面使用GUI比较好。

此外,还有一点初学者也需注意,一开始学ANSYS主要是熟悉ANSYS软件,掌握处理问题的一般方法,不是用它来解决很复杂的问题来体现你的能力有多强,一心只想着找有难度的问题来着,往往容易被问题挂死在一棵树上而失去了整片森林。因此,最好多找些容易点的,涉及到不同类型问题的题来做练习。 二 一些ANSYS的使用经验

ANSYS的使用主要是三个方面,前处理--建模与网格划分,加载设置求解,后处理,下面就前两方面谈一下自己的使用经验。 (1)前处理--建模与网格划分 要提高建模能力,需要注意以下几点:

第一, 建议不要使用自底向上的建模方法,而要使用自顶向下的建模方法,充分熟悉BLC4,CYLIND等几条直接生成图元的命令,通过这几条命令参数的变化,布尔操作的使用,工作平面的切割及其变换,可以得到所需的绝大部分实体模型,由于涉及的命令少,增加了使用的熟练程度,可以大大加快建模的效率。

第二, 对于比较复杂的模型,一开始就要在局部坐标下建立,以方便

模型的移动,在分工合作将模型组合起来时,优势特别明显,同时,图纸中有几个定位尺寸,一开始就要定义几个局部坐标,在建模的过程中可避免尺寸的换算。

第三, 注重建模思想的总结,好的建模思想往往能起到事半功倍的效果,比如说,一个二维的塑性成型问题,有三个部分,凸模,凹模,胚料,上下模具如何建模比较简单了,一个一个建立吗?完全用不着,只要建出凸凹模具的吻合线,用此线分割某个面积,然后将凹模上移即可。

第四, 对于面网格划分,不需要考虑映射条件,直接对整个模型使用以下命令, MSHAPE,0,2D MSHKEY,2 ESIZE,SIZE 控制单元的大小,保证长边上产生单元的大小与短边上产生单元的大小基本相等,绝大部分面都能生成非常规则的四边形网格,对于三维的壳单元,麻烦一点的就是给面赋于实常数,这可以通过充分使用选择命令,将实常数相同的面分别选出来,用AATT,REAL,MAT,赋于属性即可。 第五, 对于体网格划分,要得到比较漂亮的网格,需要使用扫掠网格划分,而扫掠需要满足严格的扫掠条件,因此,复杂的三维实体模型划分网格是一件比较艰辛的工作,需要对模型反复的修改,以满足扫掠条件,或者一开始建模就要考虑到后面的网格划分;体单元大小的控制也是一个比较麻烦的事情,一般要对线生成单元的分数进行控制,要提高划分效率,需要对选择命令相当熟悉;值得注意的是,在生成网格时,应依次生成单元,即一个接着一个划分,否则,可能会发现有些体满足扫掠的条件却不能生成扫掠网格。

(2) 加载求解

对于有限元模型的加载,相对而言是一件比较简单的工作,但当施加载荷或边界条件的面比较多时,需要使用选择命令将这些面全部选出来,以保证施加的载荷和边界条件的正确性。

在ANSYS求解过程中,有时发现,程序并没有错误提示,但结果并不合理,这就需要有一定的力学理论基础来分析问题,运用一些技巧以加快问题的解决。对于非线性分析,一般都是非常耗时的,特别是当模型比较复杂时,怎样节约机时就显得尤为重要。当一个非线性问题求解开始后,不用让程序求解完后,发现结果不对,修改参数,又重新计算。而应该时刻观察求解的收敛情况,如果程序出现不收敛的情况,应终止程序,查看应力,变形,等结果,以调整相关设置;即使程序收敛,当程序计算到一定程度也要终止程序观看结果,一方面可能模型有问题,另一方面边界条件不对,特别是计算子模型时,数据输入的工作量大,边界位移条件出错的可能性很大,因而要根据变形结果来及时纠正数据,以免浪费机时,如果结果符合预期的话,可通过重启动来从终止的点开始计算。下面举两个例子说明:

在做非均匀材料拉伸模拟材料颈缩现象的有限元数值计算时,对一个标准试件,一端固定,另一端加一个X方向的位移,结果发现在施加X方向的位移的一排节点产生了很大的Y方向位移,使得节点依附的单元变形十分扭曲,导致程序不收敛而终止,而中间的单元并没有太多变化。显然,可以分析在实验当中施加X方向的位移的一排节点是不应有Y方向的位移的,为了与实验相符应消除Y方向的位移,可同

时施加一个Y方向的零约束,重新计算,结果得到了比较理想的颈缩现象,并可清楚的看到45度剪切带。

在做金属拉拔的塑性成型有限元模拟时,简化为一个二维的轴对称问题,相对于三维的接触问题而言是比较简单的了,建模,划网格都很顺利,求解时发现程序不收敛,就调参数和求解设置,基本上作到了该做的设置,该调的参数都试过了,程序照样不收敛,几乎到了快放弃的地步,没办法只好重新开始考虑,发现刚体只倒了一个角,而另一个倒角开始时认为没有必要倒,因此,试着重新倒角再计算,问题一下子迎刃而解,程序收敛相当快,有限元计算结果相当漂亮。 从以上两个例子也可以从中总结出一条:要把我们思考问题时的那些想当然的想法也要作为在分析问题时的检查对象。

说明:本人ANSYS的提高,主要得益于在大四期间参与了机械学院老师与三一重工的合作项目--沥青混合料转运车的CAE分析与优化,独立完成了整个项目的全部接触分析及负责了整车部分模型的建模与分网。希望有机会与广大的ANSYS爱好者交流,我的邮箱是feixin5214@163.net

CSYS,1

K,1,5.0,6.0,7.0 ! Redefine KP 1 at R=5.0, =6.0, Z=7.0

关键点1如果不属于任何较高级的图元那么它就只能用这种方法来重定义。线、面和体也可以用类似的方法重定义,条件也是它们不应属于任何较高级的图元。

用户可以使用下面所描述的操作来修改未网格划分的线。尽管这些面属于体,这些操作也将更新所属的未网格划分的面,。

·将单个的线分成两段或更多段的线,使用下列方法: 命令:LDIV

GUI: Main Menu>Preprocessor>-Modeling-Operate>-Booleans-Divide>

Line into 2 Ln\

Main Menu>Preprocessor>-Modeling-Operate>-Booleans-Divide> Line into N Ln\

Main Menu>Preprocessor>-Modeling-Operate>-Booleans-Divide> Lines w/ Options

·将相邻的线合并成一条线,使用下列方法: 命令:LCOMB

GUI: Main Menu>Preprocessor>-Modeling-Operate>-Booleans

-Add>Lines

·在两个相交线之间生个倒角线,使用下列方法: 命令:LFILLT

GUI: Main Menu>Preprocessor>-Modeling-Create>-Lines-Line Fillet

8.6 理解实体模型的相互对照检查

前几节已间接地提到了当用户修改已划分了网格的实体模型时会受几个条件的限制。这些限制的出现是由于ANSYS程序插入了相互对照检查以防止实体模型和有限元模型数据的掺混。它们可总结如下:

·划分了网格的关键点、线、面或体不能被删除或移动。

·同关键点、线、面或体相联系的节点和单元不能被移动。它们只能用网格清除命

令删除。

·包含在体内的面不能被删除或改变。

·包含在面内的线不能被删除或改变。(除非是前面所讨论的命令:LDIV, LCOMB,

或LFILLT)

·包含在线内的关键点不能被删除。它们只能用命令KMODIF移动,这个命令用来

修改和清除(若已划分网格)关键点所依附的线、面和体。

这些规则背后的基本原因可以用下面的简图形象化地表示出来。图示一个已完成的模型可以认为是一堆叠放在一起的方块,最底部的方块代表关键点,上面一个代表线,等等。如果要改变一个较低级的图元(例如一条线),就会打乱堆在它上面的图元。(当然,这个图例有些过于简化了高级图元与低级图元之间的依赖关系。)

图8─10为什么实体模型要进行相互对照检查

这些规则并不象它们显示的限制得那样死。而且,对很少出现的当这些规则完全地限制用户执行一个所需的操作时,用户可以让它们无效,就象下面将要讨论的那样。但是要知道当使这些规则无效时,用户也就失去了它们所提供的保护,因此也就增大了对模型数据库产生不可挽回的损坏的危险。

8.6.1 绕开相互对照检查(一个危险的举动)

实体模型的相互对照检查通常只提供帮助用户避免损坏模型数据库的服务。但是,当用户有很好的理由尝试一下本应禁止的操作时,程序还是提供了几个机会,MODMSH命令(菜单途径Main Menu>Preprocessor>Checking Ctrls>Model Checking)就是为这个目的而存在的,MODMSH有三个选项:DETACH,NOCHECK和CHECK。

MODMSH,DETACH命令将有限元模型从实体模型中分离出来,这样就允许使用节点和单元命令来修改有限元模型。这种分离保持数据库“干净”,在这个数据库里将不会再有数据库冲突。例如,考虑一个关键点和与它关联的节点。在MODMSH,DETACH命令之后,程序将不再认为这两个图元之间有相关性,因此现在就可以将节点移一个新的位置,而在数据库中不会产生冲突。一旦已经分离完模型,就再不能执行诸如根据实体模型选择或定义有限元模型,清除网格,或将实体模型的边界条件转换到有限元模型上去等操作了。

MODMSH,NOCHECK是一个非常危险的命令。它使所有的相互对照检查失效,并且很容易使数据库受到很大的损害,以至于几乎任何的实体建模操作都将不可用。它的用处是允许用户使用诸如EMODIF,NMODIF,EDELE,NDELE等命令来修改由网格划分命令所生成的单元和节点。激活这个选项后,无论用户是开始求解还是发出PFACT或SOLVE等命令都会引起程序发出相互对照检查被跳过的警告。只有当用户非常确信他所做的一切的时候才可以使用这个选项,由于用户使用NOCHECK选项而可能对数据库产生的严重的破坏,将使ANSYS技术支持人员几乎不可能帮助用户从用户自己造成的麻烦中恢复过来。

MODMSH,CHECK命令在相互对照检查被禁止后重新恢复它们。但是,由于在检查被关掉时,数据库完全有可能已被损坏了,因而无论用户是在开始计算还是在发出PFACT或SOLVE命令时,程序仍然还会发出警告。消除这个警告信息的唯一方法是用一个干净的模型重新开始。

学习ANSYS经验总结

一 学习ANSYS需要认识到的几点

相对于其他应用型软件而言,ANSYS作为大型权威性的有限元分析软件,对提高解决问题的能力是一个全面的锻炼过程,是一门相当难学的软件,因而,要学好ANSYS,对学习者就提出了很高的要求,

一方面,需要学习者有比较扎实的力学理论基础,对ANSYS分析结果能有个比较准确的预测和判断,可以说,理论水平的高低在很大程度上决定了ANSYS使用水平;另一方面,需要学习者不断摸索出软件的使用经验不断总结以提高解决问题的效率。在学习ANSYS的方法上,为了让初学者有一个比较好的把握,特提出以下五点建议: (1)将ANSYS的学习紧密与工程力学专业结合起来

毫无疑问,刚开始接触ANSYS时,如果对有限元,单元,节点,形函数等《有限元单元法及程序设计》中的基本概念没有清楚的了解话,那么学ANSYS很长一段时间都会感觉还没入门,只是在僵硬的模仿,即使已经了解了,在学ANSYS之前,也非常有必要先反复看几遍书,加深对有限元单元法及其基本概念的理解。

作为工程力学专业的学生,虽然力学理论知识学了很多,但对许多基本概念的理解许多人基本上是只停留于一个符号的认识上,理论认识不够,更没有太多的感性认识,比如一开始学ANSYS时可能很多人都不知道钢材应输入一个多大的弹性模量是合适的。而在进行有限元数值计算时,需要对相关参数的数值有很清楚的了解,比如材料常数,直接关系到结果的正确性,一定要准确。实际上在学ANSYS时,以前学的很多基本概念和力学理论知识都忘得差不多了,因而遇到有一定理论难度的问题可能很难下手,特别是对结果的分析,需要用到《材料力学》,《弹性力学》和《塑性力学》里面的知识进行理论上的判断,所以在这种情况下,复习一下《材料力学》,《弹性力学》和《塑性力学》是非常有必要的,加深对基本概念的理解,实际上,适当的复习

并不要花很多时间,效果却很明显,不仅能勾起遥远的回忆,加深理解,又能使遇到的问题得到顺利的解决。

在涉及到复杂的非线性问题时(比如接触问题),一方面,不同的问题对应着不同的数值计算方法,求解器的选择直接关系到程序的计算代价和问题是否能顺利解决;另一方面,需要对非线性的求解过程有比较清楚的了解,知道程序的求解是如何实现的。只有这样,才能在程序的求解过程中,对计算的情况做出正确的判断。因此,要能对具体的问题选择什么计算方法做出正确判断以及对计算过程进行适当控制,对《计算方法》里面的知识必须要相当熟悉,将其理解运用到ANSYS的计算过程中来,彼此相互加强理解。要知道ANSYS是基于有限元单元法与现代数值计算方法的发展而逐步发展起来的。因此,在解决非线性问题时,千万别忘了复习一下《计算方法》。此外,对《计算固体力学》也要有所了解(一门非常难学的课),ANSYS对非线性问题处理的理论基础就是基于《计算固体力学》里面所讲到的复杂理论。 作为学工程力学的学生,提高建模能力是非常急需加强的一个方面。在做偏向于理论的分析时,可能对建模能力要求不是很高,但对于实际的工程问题,有限元模型的建立可以说是一个最重要的问题,而后面的工作变得相对简单。建模能力的提高,需要掌握好的建模思想和技巧,但这只能治标不能治本,最重要的还是要培养较强看图纸的能力,而看图纸的能力培养一直是我们所忽视的,因此要加强对《现代工程图学》的回忆,最好能同时结合实际的操作。

以上几个方面,只是说明在ANSYS的过程中,不要纯粹的把ANSYS当

本文来源:https://www.bwwdw.com/article/cxnf.html

Top