1、1目录1 如何定制 Beam188/189单元的用户化截面 .12 ANSYS 查询函数(Inquiry Function) .23 ANSYS是否具有混合分网的功能? 45 利用 ANSYS随机振动分析功能实现随机疲劳分析 56 膜元 Shell41是否能作大变形分析? 77 耦合及约束方程讲座一、耦合 .78 耦合及约束方程讲座二、约束方程 .99 巧用 ANSYS的 Toolbar1210 如何得到径向和周向的计算结果? .1412 如何考虑结构分析中的重力 .1513 如何实现壳单元的偏置 1614 如何使用用户定义用户自定义矩阵 .1815 如何提取模态质量 1816 ANSYS的几
2、种动画模式 .2017 如何正确理解 ANSYS的节点坐标系 2118 为什么在用 BEAM188和 189单元划分单元时会有许多额外的节点?可不可以将它们删除? .2120 用 ANSYS分析过整个桥梁施工过程 2221 用单元死活模拟浇铸过程中的温度分布 .2222 在 ANSYS5.6中如何施加函数变化的表面载荷 .2523 在 ANSYS中怎样给面施加一个非零的法向位移约束? 2624 在任意面施加任意方向任意变化的压力 .2611 如何定制 Beam188/189单元的用户化截面ANSYS 提供了几种通用截面供用户选用,但有时不能满足用户的特殊需求。为此,ANSYS 提供了用户创建截
3、面(库)的方法。如果你需要创建一个非通用横截面,必须创建一个用户网格文件。具体方法是,首先创建一个 2-D 实体模型,然后利用SECWRITE 命令将其保存(Main MenuPreprocessorSections -Beam-Write Sec Mesh)。该过程的细节如下:1. 创建截面的几何模型(二维面模型)。 2. 对所有线设置单元份数或者单元最大尺寸 (Main MenuPreprocessor -Meshing-Size Cntrls-Lines-Picked Lines 或使用 MeshTool)。记住:保证模型中的区格(cell)数目不能超过 250 个。 3. 选择菜单 M
4、ain MenuPreprocessorSections-Beam-Write Sec Mesh,弹出一个拾取窗口,单击 Pick All 拾取包含区格的所有面。 4. ANSYS 自动在所有面上创建区格。在划分网格时,ANSYS 可能显示单元形状差的消息,也可以被忽略不显示,但是总能看到一条消息“Unable to mesh area”。如果已经完成上述工作,你清除所有面上的单元(Main MenuPreprocessor-Meshing-Clear Areas),并重复第 2、3、4 步,即必须重新控制网格密度。 5. 如果第 4 步成功则弹出 Write Section Library
5、File 对话框,File Name 域填入一个未用过 SECT 文件名,Drives 域指定一个截面文件存放驱动器,Directories域指定一个截面文件存放目录,然后单击按钮 OK,完成用户截面文件建立。如果在第3 步中给线指定太多单元份数,区格和节点的数目可能超过限制范围,必须清除所有面上的单元 24 步,直到获得合适数量的区格和节点。 一旦完成上述工作,用户可以在以后分析中读取用户网格文件 (Main Menu Preprocessor Sections -Beam-Read Sect Mesh),定义成适当的截面 ID 号,就与通用梁完全一致。要想检查用户截面,只要绘制截面(网格)
6、图(Main MenuPreprocessorSectionsPlot Section)或者列表截面属性(Main MenuPreprocessorSectionsList Sections)。 22 ANSYS 查询函数(Inquiry Function)在 ANSYS 操作过程或条件语句中,常常需要知道有关模型的许多参数值,如选择集中的单元数、节点数,最大节点号等。此时,一般可通过*GET 命令来获得这些参数。现在,对于此类问题,我们有了一个更为方便的选择,那就是查询函数 Inquiry Function。Inquiry Function 类似于 ANSYS 的 *GET 命令,它访问 A
7、NSYS 数据库并返回要查询的数值,方便后续使用。ANSYS 每执行一次查询函数,便查询一次数据库,并用查询值替代该查询函数。假如你想获得当前所选择的单元数,并把它作为*DO 循环的上界。传统的方法是使用*GET 命令来获得所选择的单元数并把它赋给一个变量,则此变量可以作为*DO 循环的上界来确定循环的次数*get, ELMAX,elem,count*do, I, 1, ELMAX*enddo现在你可以使用查询函数来完成这件事,把查询函数直接放在*DO 循环内,它就可以提供所选择的单元数*do, I, ELMIQR(0,13)*enddo这里的 ELMIQR 并不是一个数组,而是一个查询函数,
8、它返回的是现在所选择的单元数。括弧内的数是用来确定查询函数的返回值的。第一个数是用来标识你所想查询的特定实体(如单元、节点、线、面号等等),括弧内的第二个数是用来确定查询函数返回值的类型的(如选择状态、实体数量等)。同本例一样,通常查询函数有两个变量,但也有一些查询函数只有一个变量,而有的却有三个变量。查询函数的种类和数量很多,下面是一些常用、方便而快速快捷的查询函数1 AREAarinqr(areaid,key)areaid查询的面,对于 key=12,13,14 可取为 0;key标识关于 areaidr 的返回信息=1, 选择状态=12,定义的数目=13,选择的数目=14,定义的最大数=
9、-1,材料号=-2,单元类型=-3,实常数=-4,节点数=-6,单元数3arinqr(areaid,key)的返回值对于 key=1=0, areaid 未定义=-1,areaid 未被选择=1, areaid 被选择2 KEYPOINTSkpinqr(kpid,key)kpid查询的关键点,对于 key=12,13,14 为 0key 标识关于 kpid 的返回信息=1,选择状态=12,定义的数目=13,选择的数目=14,定义的最大数目=-1,数料号=-2,单元类型=-3,实常数=-4,节点数,如果已分网=-7,单元数,如果已分网kpinqr(kpid,key)的返回值对于 key=1=-1
10、,未选择=0,未定义=1, 选择3 LINElsinqr(lsid,key)lsid查询的线段,对于 key=12,13,14 为 0key标识关于 lsid 的返回信息=1, 选择状态=2, 长度=12,定义的数目=13,选择的数目=14,定义的最大数=-1,材料号=-2,单元类型=-3,实常数=-4,节点数=-6,单元数4 NODEndinqr(node,key)node节点号,对于 key=12,13,14 为 0key标识关于 node 的返回信息=1, 选择状态=12,定义的数目=13,选择的数目4=14,定义的最大数=-2,超单元标记=-3,主自由度=-4,激活的自由度=-5,附着
11、的实体模型ndinqr(node,key)的返回值对于 key=1=-1,未选择=0,未定义=1, 选择5 VOLUMESvlinqr(vnmi,key)vnmi查询的体,对于 key=12,13,14 为 0key标识关于 vnmi 的返回信息=1,选择状态=12,定义的数目=13,选择的数目=14,定义的最大数目=-1,数料号=-2,单元类型=-3,实常数=-4,节点数=-6,单元数=-8,单元形状=-9,中节点单元=-10,单元坐标系vlinqr(vnmi,key)的返回值对于 key=1=-1,未选择=0,未定义=1, 选择3 ANSYS是否具有混合分网的功能?ANSYS 具有混合网格
12、剖分的功能。例如两个粘在一起的面,可以对一个面进行三角形划分,再对另一个面进行四边形划分。过程见下列命令:/prep7et,1,42rect,1,1rect,1,2,1aglue,allmshape,0,2d5amesh,1mshape,1,2damesh,35 利用 ANSYS随机振动分析功能实现随机疲劳分析 ANSYS 随机振动分析功能可以获得结构随机振动响应过程的各种统计参数(如:均值、均方根和平均频率等),根据各种随机疲劳寿命预测理论就可以成功地预测结构的随机疲劳寿命。本文介绍了 ANSYS 随机振动分析功能,以及利用该功能,按照 Steinberg 提出的基于高斯分布和 Miner
13、线性累计损伤定律的三区间法进行 ANSYS 随机疲劳计算的具体过程。 随机疲劳现象普遍存在 在工程应用中,汽车、飞行器、船舶以及其它各种机械或零部件,大多是在随机载荷作用下工作,当它们承受的应力水平较高,工作达到一定时间后,经常会突然发生随机疲劳破坏,往往造成灾难性的后果。因此,预测结构或零部件的随机疲劳寿命是非常有必要的。 2ANSYS 随机振动分析功能介绍 ANSYS 随机振动分析功能十分强大,主要表现在以下方面: 1. 具有位移、速度、加速度、力和压力等 PSD 类型; 2. 能够考虑 a 阻尼、 阻尼、恒定阻尼比和频率相关阻尼比; 3. 能够定义基础和节点 PSD 激励; 4. 能够考
14、虑多个 PSD 激励之间的相关程度:共谱值、二次谱值、空间关系和波传播关系等; 5. 能够得到位移、应力、应变和力的三种结果数据: 1 位移解,1 速度解 和 1 加速度解; 3利用 ANSYS 随机振动分析功能进行疲劳分析的一般原理6在工程界,疲劳计算广泛采用名义应力法,即以 S-N 曲线为依据进行寿命估算的方法,可以直接得到总寿命。下面围绕该方法举例说明 ANSYS 随机疲劳分析的一般原理。当应力历程是随机过程时,疲劳计算相对比较复杂。但已经有许多种分析方法,这里仅介绍一种比较简单的方法,即 Steinberg 提出的基于高斯分布和Miner 线性累计损伤定律的三区间法(应力区间如图 1
15、所示): 应力区间 发生的时间 -1 +1 68.3%的时间 -2 +2 27.1%的时间 -3 +3 4.33%的时间 99.73% 大于 3 的应力仅仅发生在 0.27%的时间内,假定其不造成任何损伤。在利用 Miner 定律进行疲劳计算时,将应力处理成上述 3 个水平,总体损伤的计算公式就可以写成:其中: :等于或低于 1 水平的实际循环数目(0.6831 ) ;7:等于或低于 2 水平的实际循环数目(0.271 ) ;:等于或低于 3 水平的实际循环数目(0.0433 ) ;, , :根据疲劳曲线查得的 1、2 和 3 应力水平分别对应许可循环的次数。综上所述,针对 Steinberg
16、 提出的基于高斯分布和 Miner 线性累计损伤定律的三区间法的ANSYS 随机疲劳分析的一般过程是:(1) 计算感兴趣的应力分量的统计平均频率( 应力速度/ 应力 );(2) 基于期望(工作)寿命和统计平均频率,计算 1 , 2 和 3 水平下的循环次数 、 和 ;(3) 基于 S-N 曲线查表得到 、 和 ;(4) 计算疲劳寿命使用系数。显然,根据其他随机疲劳分析方法和 ANSYS 随机振动分析结果,我们还可以进行许多类似的疲劳分析计算。 6 膜元 Shell41是否能作大变形分析?膜元 Shell41 可以用于大变形分析。但是膜元 shell41 在处理大变形问题时必须采用三角形单元,因
17、为四边形单元会产生跷曲(warping) ,所以在划分网格时请选 Tri。7 耦合及约束方程讲座一、耦合当需要迫使两个或多个自由度取得相同(但未知)值,可以将这些自由度耦合在一起。耦合自由度集包含一个主自由度和一个或多个其它自由度。典型的耦合自由度应用包括: 模型部分包含对称; 在两重复节点间形成销钉、铰链、万向节和滑动连接; 迫使模型的一部分表现为刚体。 如何生成耦合自由度集1. 在给定节点处生成并修改耦合自由度集8命令:CPGUI: Main MenuPreprocessorCoupling / CeqnCouple DOFs在生成一个耦合节点集之后,通过执行一个另外的耦合操作(保证用相同
18、的参考编号集)将更多节点加到耦合集中来。也可用选择逻辑来耦合所选节点的相应自由度。用 CP 命令输入负的节点号来删除耦合集中的节点。要修改一耦合自由度集(即增、删节点或改变自由度标记)可用CPNGEN 命令。 (不能由 GUI 直接得到 CPNBGEN 命令) 。 2. 耦合重合节点。CPINTF 命令通过在每对重合节点上定义自由度标记生成一耦合集而实现对模型中重合节点的耦合。此操作对“扣紧” 几对节点(诸如一条缝处)尤为有用。命令:CPINTFGUI: Main MenuPreprocessorCoupling / CeqnCoincident Nodes 3. 除耦合重复节点外,还可用下列
19、替换方法迫使节点有相同的表现方式: o 如果对重复节点所有自由度都要进行耦合,常用 NUMMRG 命令(GUI:Main MenuPreprocessorNumbering CtrlsMerge Items)合并节点。 o 可用 EINTF 命令(GUI:Main Menu PreprocessorCreate Elements At Coincid Nd)通在重复节点对之间生成 2 节点单元来连接它们。 o 用 CEINTF 命令(GUI:Main MenuPreprocessor Coupling/Ceqn Adjacent Regions)将两个有不相似网格模式的区域连接起来。这项操作使
20、一个区域的选定节点与另一个区域的选定单元连接起来生成约束方程。 生成更多的耦合集一旦有了一个或多个耦合集,可用这些方法生成另外的耦合集:1. 用下列方法以相同的节点号但与已有模式集不同的自由度标记生成新的耦合集。命令:CPLGENGUI: Main MenuPreprocessorCoupling / CeqnGen w/Same Nodes 2. 用下列方法生成与已有耦合集不同(均匀增加的)节点编号但有相同的自由度标记的新的耦合集:命令:CPSGENGUI: Main MenuPreprocessorCoupling / CeqnGen w/Same DOF 使用耦合注意事项1. 每个耦合的
21、节点都在节点坐标系下进行耦合操作。通常应当保持节点坐标系的一致性。 2. 自由度是在一个集内耦合而不是集之间的耦合。不允许一个自由度出现在多于一个耦合集中。 3. 由 D 或共它约束命令指定的自由度值不能包括在耦合集中。 94. 在减缩自由度分析中,如果主自由度要从耦合自由度集中选取,只有主节点的自由度才能被指定为主自由度。 5. 在结构分析中,耦合自由度以生成一刚体区域有时会引起明显的平衡破坏。不重复的或不与耦合位移方向一致的一个耦合节点集会产生外加力矩但不出现在反力中。 8 耦合及约束方程讲座二、约束方程约束方程提供了比耦合更通用的联系自由度的方法。有如下形式: 这里 U(I)是自由度,N
22、 是方程中项的编号。如何生成约束方程1. 直接生成约束方程 o 直接生成约束方程:命令:CEGUI: Main MenuPreprocessorCoupling / CeqnConstraint Eqn下面为一个典型的约束方程应用的例子,力矩的传递是由 BEAM3 单元与PLANE42 单元(PLANE42 单元无平面转动自由度)的连接来完成的:图 12-1 建立旋转和平移自由度的关系如果不用约束方程则节点 2 处表现为一个铰链。下述方法可在梁和平面应力单元之间传递力矩,自由度之间满足下面的约束方程:ROTZ2 = (UY3 - UY1)/100 = UY3 - UY1 - 10*ROTZ2
23、相应的 ANSYS 命令为:CE,1,0,3,UY,1,1,UY,-1,2,ROTZ,-10 o 修改约束方程在 PREP7 或 SOLUTION 中修改约束方程中的常数项:命令:CECMODGUI: Main MenuPreprocessorCoupling / CeqnModify ConstrEqn10Main MenuPreprocessorLoadsOtherModify ConstrEqnMain MenuSolutionOtherModify ConstrEqn如果要修改约束方程中的其它项,必须在求解前在 PREP7 中用使 CE 命令(或相应 GUI 途径)。 2. 自动生成约
24、束方程 o 生成刚性区域CERIG 命令通过写约束方程定义一个刚性区域。通过连接一主节点到许多从节点来定义刚性区。(此操作中的主自由度与减缩自由度分析的主自由度是不同的)命令:CERIGGUI: Main MenuPreprocessorCoupling / CeqnRigid Region将 CERIG 命令的 Ldof 设置为 ALL(缺省),此操作将为每对二维空间的约束节点生成三个方程。这三个方程在总体笛卡尔空间确定三个刚体运动(UX、UY、ROTZ)。为在二维模型上生成一个刚性区域,必须保证 XY 平面为刚性平面,并且在每个约束节点有 UX、UY 和 ROTZ 三个自由度。类似地,此操
25、作也可在三维空间为每对约束节点生成六个方程,在每个约束节点上必须有(UX、UY、UZ、ROTX、ROY 和 ROTZ)六个自由度。输入其它标记的 Ldof 域将有不同的作用。如果此区域设置为 UXYZ,程序在二维(X,Y)空间将写两个约束方程,而在三维空间(X、Y、Z)将写三个约束方程。这些方程将写成从节点的平移自由度和主节点的平移和转动自由度。类似地,RXYZ 标记允许生成忽略从节点的平移自由度的部分方程。其它标记的Ldof 将生成其它类型的约束方程。总之,从节点只需要由 Ldof 标记的自由度,但主节点必须有所有的平移和转动自由度(即二维的 UX、UY 和 ROTZ;三维的UX、UY、UZ
26、、ROTX、ROTY、ROTZ)。对由没有转动自由度单元组成的模型,应当考虑增加一个虚拟的梁单元以在主节点上提供旋转自由度。 o 将疏密不同的已划分网格区域连在一起可将一个区域(网格较密)的已选节点与另一个区域(网格较稀)的已选单元用 CEINTF 命令(菜单途径 Main MenuPreprocessorCoupling / CeqnAdjacent Regions)连起来生成约束方程。这项操作将不相容网格形式的区域“系”在一起。在两区域的交界处,从网格稠密的区域选择节点 A,从网格粗糙区域选择单元 B,用区域 B 单元的形函数,在相关的区域 A 和 B 界面的节点处写约束方程。ANSYS
27、允许这些节点位置使用11两公差准则。节点在单元之外超过第一公差就认为节点不在界面上。节点贴近单元表面的距离小于第二公差则将节点移到表面上,见下图。对 CEINTF 命令有些限制:应力或热通量可能会不连续地穿过界面。界面区域的节点不能指定位移。可用每节点有六个自由度的单元接合 6 自由度实体。 o 从已有约束方程集生成约束方程集可用 CESGEN 命令从已有约束方程集生成约束方程。那么已有约束方程集内的节点编号将增加以生成另外的约束方程集。另外约束方程集的标记和系数保持与原集的一致。命令:CESGENGUI: Main MenuPreprocessorCoupling / Ceqn Gen w/
28、same DOF 使用约束方程的注意事项 所有的约束方程都以小转动理论为基础。因此,它应用在大转动分析中NLGEOM应当限制在约束方程所包含的自由度方向无重大变化的情况。 约束方程的出现将产生不可预料的反力和节点力结果。 由于相邻区域网格疏密不同,边界上的相容性仍然存在。但是当网格越密,这种不相容的危害就越小。129 巧用 ANSYS的 Toolbar ANSYS 在图形界面方面的最大特点是用户可以根据自己的目的定制自己的图形界面。尽管 ANSYS 提供了专门的菜单开发工具 UIDL 语言,但毕竟只有少数熟练的用户能很好地使用。但有一种方法特别适合初学者使用,那就是通过 ANSYS 提供的 T
29、oolbar,把 ANSYS 常用的命令和宏定制成按钮,这样需要反复地点取菜单来执行的常用命令,通过点击一次 Toolbar 按钮就可以完成了。定制按钮的方法有两种:菜单方式与命令方式。菜单方式就是直接点菜单Utility MenuMacroEdit Abbreviations 或 Utility MenuMacroEdit Toolbar ;而命令方式就是直接执行命令*ABBR(Abbreviation 的缩写)。ANSYS的 db 文件自动保存你所增加的按钮,但是每次重新开始新的分析,都需要重新定义每个按钮。如果想要在每次启动 ANSYS 或开始新的分析时都能自动加载这些快捷按钮,通常是把
30、这些按钮对应的*ABBR 命令放在 ANSYS 的启动文件star56.ans(对 ANSYS5.6)中,ANSYS 在每次启动时会自动加载这些命令。ANSYS 的启动文件 star56.ans 在 ANSYS 安装目录下的 DOCU 目录中,如c:ansys56docustar56.ans,它是一个文本文件,可以用通用的文本编辑器打开和编辑它。其实该文件提供了一个内容很丰富的模板,它收集了许多 ANSYS 常用命令的缩略,只不过都把它们注释掉了,你只需去掉前面的注释符(!),就可以在进入 ANSYS 后在 Toolbar 中看到它们。你也可以把所有的*ABBR 命令放在一个单独的文件中,然后
31、在启动文件中加入一条命令 ABBRES,用 ABBRES 命令的好处是你在任何时候都可以加载这些快捷按钮,这对于你如果使用由别人建的模型,而他用的是不同的 Toolbar,这是因为 Toolbar 是保存在模型文件中(jobname.db),你可以发现采用这样的方法给你带来很大的方便。我承认我是一个 Toolbar 迷,把许多命令和宏放在 Toolbar 中使我的工作更快和更有效率。在我的 Toolbar 中,大多数按钮是直接执行 ANSYS 命令和宏,其中也有一些按钮是用来调入新的 Toolbar 实现一些新的功能。通过将一个 Toolbar嵌入到另一个 Toolbar 中,可以将 Tool
32、bar 分成前处理和后处理等大类,也可以列出一些特别的信息有助于工作。不过我个人的倾向不赞成用太多的嵌套Toolbar,因为点三到四层按钮与点三到四级菜单差不多。宁可在一个 Toolbar 中有许多按钮,也不要有许多嵌套 Toolbar。 包含 43 个按钮的 toolbar 13减少了 11 个按钮的 toolbar 尽管最好能把所有需要的按钮一次全部调进来,但有时发现这也不是好事。有一天我数了一下 Toolbar 中的按钮,竟然发现有 43 个按钮,尽管这不是一个世界记录,但这确实太多了,此时我才意识到我这个 toolbar 迷困扰于过多的按钮混乱中。得想办法结束这种状态。我决定摆脱这种按
33、钮迷的状态,开始精简我的 toolbar,去掉那些不太常用的按钮。我开始研究 toolbar,结果发现没有一个按钮在工作中不太常用。我几乎每天都要用到所有这些命令,少了任何一个,我都要花时间到菜单堆里去找这些命令。我想保持原有 toolbar 中的所有功能,但我要把按钮数减下来,我能做得到吗?再瞧一下 toolbar,我发现打开和关闭六种实体(keypoints,lines,areas,volumes,和 elements)的编号显示共用了 12 个按钮,此外,还有许多按钮用来打开和关闭显示节点和单元坐标系,线的方向和局部坐标系等;还有我用单独的按钮控制矢量模式和光栅模式显示。结果发现有 22
34、 个按钮用来决定实体的编号和符号以及显示模式的开关。如果我能把每组开和关的按钮用一个按钮来代替,那么我可以把按钮数减少 11 个,这是一个很可观的数字。我决定写一个宏,它能够确定当前的设置,然后翻转该设置,我给它取名叫numtog.mac。在确定了程序的框架后,我开始查看关于*GET 命令的帮助文档,看看是否能得到/PNUM,/PSYMB 和显示模式的设置状态。令我失望的是,我发现尽管*GET 命令可以设置显示模式,但不能得到关于/PNUM 和/PSYMB 的设置,没有它我就无法实现我的宏,失望之感油然而生。非常时候会有非常手段,文档中没有说明由*GET 得到的量并不表示一定不可以获得,也许通
35、过我的努力可以得到。我决定从其它地方找,在这以前我经常用此办法找到其它信息,我想到了控制 ANSYS 菜单系统的文件,因为 ANSYS 在建立关于/PNUM 和/PSYMB 的设置时也需要相关的信息,也许它以未公开的方式使用。我开始查找 UIFUNC1.GRN 和 UIFUNC2.GRN,果然在 UIFUNC2.GRN 文件中找到了我要的信息,在该文件中我找到了控制编号和符号显示的命令,它也是由*GET 命令获得,只不过时以一种特殊的方式,我就把相关的命令拷贝和粘帖到我的宏文件中,以节省时间。尽管不推荐使用此类*GET 命令,但有些高级的 APDL 编程人员经常使用。问题是未公开的*GET 命
36、令在 5.6 中能使用,但不能保证在 5.7 中也一定能使用,这只有等你试了以后才知道。让我们来看一个例子,它用来确定 keyponits 编号的设置状态,格式如下:*get,ar20,common,d3com,int,104从这个命令格式我们可以推断一些信息:其中的“Common”是指储存在公共数据块中的数据,“D3com”是该公共数据块的名字,“Int”指数值数据以整数14格式存储,“104”是我们所要数据存储的位置。所以上面这条命令是告诉ANSYS 提取在公共数据块“D3com”104 位置的整型数据,并把它赋给变量ar20,通过试验知道,当 keypoints 编号显示为关闭时 ar2
37、0 为 0,而开时为1,即用 1 和 0 表示开和关。我的新 toolbar 已用了几星期了,很方便,它比旧的 toolbar 减少了 25%的按钮。现在我的 toolbar 小多了,我还可以增加其它一些命令,如控制/EDGE的开和关等等。相信你会得到一些收益。 10 如何得到径向和周向的计算结果? 在圆周对称结构中,如圆环结构承受圆周均布压力。要得到周向及径向位移,可在后处理/POST1 中,通过菜单 General PostprocOptions for OutpRsysGlobal cylindric 或命令 Rsys,1将结果坐标系转为极坐标,则 X 方向位移即为径向位移,Y 向位移即
38、为周向位移。 11 如何加快计算速度 在大规模结构计算中,计算速度是一个非常重要的问题。下面就如何提高计算速度作一些建议: 1. 充分利用 ANSYS MAP 分网和 SWEEP 分网技术,尽可能获得六面体网格,这一方面减小解题规模,另一方面提高计算精度。 2. 在生成四面体网格时,用四面体单元而不要用退化的四面体单元。比如 95 号单元有 20节点,可以退化为 10 节点四面体单元,而 92 号单元为 10 节点单元,在此情况下用 92号单元将优于 95 号单元。 153. 选择正确的求解器。对大规模问题,建议采用 PCG 法。此法比波前法计算速度要快 10倍以上(前提是您的计算机内存较大)
39、。对于工程问题,可将 ANSYS 缺省的求解精度从 1E-8 改为 1E-4 或 1E-5 即可。 12 如何考虑结构分析中的重力 在结构分析中,如何模拟结构自重和设备重量是一个经常遇到的问题,对于结构自重有两点要注意:1 在材料性质中输入密度,如果不输入密度,则将不会产生重力效果。2 因为 ANSYS 将重力以惯性力的方式施加,所以在输入加速度时,其方向应与实际的方向相反。对于结构上的设备重量可以用 MASS21 单元来模拟,该单元为一个空间“点”单元。设备重量可通过单元实常数来输入。下面附上一个小例子(设重力方向向下)。/prep7et,1,42et,2,21r,2,10,10,10mp,
40、ex,1,2e5mp,nuxy,1,0.3mp,dens,1,1rect,10,1esize,.5amesh,alltype,2real,2e,node(5,1,0)fini/soludk,1,alldk,2,uy,acel,10solvefini/post1plnsol,u,sum,2 1613 如何实现壳单元的偏置 在构建诸如汽车车身、飞机引擎罩、发动机气道以及其他薄壁结构的有限元模型时通常选用壳单元,ANSYS 提供的 SHELL43、SHELL63、SHELL93 以及 5.5版开始新增加的 SHELL143 和 SHELL181 单元都能很方便地用于薄壁结构的建模,并能得到精确的结果
41、,同时避免了采用实体单元构建此类结构所带来的复杂性和规模的庞大。像 SOLID45 和 SOLID95 之类的实体单元,其厚度由节点的位置所决定,而壳单元的厚度是由实常数决定的。由于壳单元的厚度独立于几何模型,因此可以很方便地进行参数化和优化设计。此外,建立一个用于生成壳单元的面几何模型要比建一个三维实体几何模型简单得多。 尽管使用壳单元有许多优点,但也有一些缺点在使用时需要加以注意。首先,壳单元只适合某几种结构类型,因为它假设弯曲应力沿壳单元厚度方向线性变化;其次,为了得到理想的结果,壳单元必须建在实体结构的中心层或中面上。图 1 显示了如何用壳单元构建一个工字截面梁,左边是实体模型,右边是
42、对应的壳单元模型。如果壳单元用实体模型的顶面或底面生成,那么有限元模型的刚度与实际结构的刚度将相差很大。 图 1. 工字型梁的三维实体和中面壳单元模型 与模型的复杂程度有关,有的时候很难或不可能得到中面,许多时候分析人员只能用模型的顶面或底面,希望壳单元的偏置影响较小可以忽略,这样做有的场合可以,有时则不行。而且,分析人员从来不知道这样做带来的误差有多大。关于这类问题的一种解决办法是用 SHELL91 层状壳单元替代标准壳单元。SHELL91 主要用于复合材料分析,当然也可以用于传统材料的分析。采用SHELL91 的好处是可以通过 keyopt(11)来控制厚度朝单元的顶面或底面偏置。比如:当
43、 SHELL91 的 keyopt(11)=1 时表示朝单元底面偏置,而当 keyopt(11)=2 时朝单元顶面偏置,而当 keyopt(11)=0 时则表示不发生偏置。 由于 SHELL91 也带中间节点,因此它可以直接替换 SHELL93 单元。为了评价按这种方式使用 SHELL91 的效果,我分别用 SOLID95、SHELL93 和 SHELL91 来分析不同壁厚的弯管如图 2 所示,注意只改变管的厚度,而管的直径和弯肘半径保持不变。比值 t/r,即壁厚/弯管半径用来表示中面偏置的程度。由 SOLID95所得到的结果作为基准来归一化 SHELL93 和 SHELL91 模型得到的结果
44、。所有情况都受两个载荷步:第一步在管的顶端受一个分布拉力,方向偏离固定端,使17得在肘的内侧产生很大的拉应力,这个载荷条件用于确定 ANSYS 计算的应力是否正确;第二个载荷步是在同方向施加一个加速度,用它可以确定用带偏置的SHELL91 单元时 ANSYS 能否正确考虑质量。图 2. 弯管实体模型及对应的 SOLID95 划分的有限元模型由图 3 的结果显示可知:当 SHELL93 和 SHELL91 放在中面上时,对不同的t/r 值所得结果的误差与用 SOLID95 单元相同。当壳单元用管的外侧生成时,SHELL93 预计的误差随 t/r 的增加而减少,而由 SHELL91 在激活 key
45、opt(11)使向内偏置时得到与 SOLID95 相同的结果,同样,当壳单元用管的内侧生成时,SHELL93 预计的误差随 t/r 的增加而增加,而由 SHELL91 在激活 keyopt(11)使向外偏置时得到与 SOLID95 相同的结果。最大的平均 Von Mises 应力(PLNS,S,EQV)发生在肘管的内侧,如图 4 所示,随着 t/r 的增大,SHELL93 用在管的内侧和外侧时得到结果的精度显然没有用 SHELL91 采用合适的偏置所得到的结果好。在第二载荷步施加加速度所的结果与载荷步一时的情况相同,由此可以得出结论:在中面得不到的情况下,用 SHELL91 替代 SHELL9
46、3 处理比较好。由于我经常用 CAD 软件来得到我使用的几何模型,而很少有 CAD 软件能直接提取中面,因此使用带偏置的 SHELL91 单元是我经常采用的办法。 图 3. 不同单元产生的变形误差 图 4. 不同单元产生的应力误差14 如何使用用户定义用户自定义矩阵 18Matrix 27 用户定义用户自定义矩阵,由单元选项控制定义质量、刚度或阻尼矩阵,你只要在同一组接点,分别定义三次 MATRIX27 单元(KEYOPT(2)分别为 2,4,5)即可,然后在定义实常数时,分别定义三种单元对应的质量、刚度、阻尼矩阵系数。15 如何提取模态质量模态分析过程中打开振型型则化开关(MODOPT 命令
47、的 Nrmkey 设置为 ON),ANSYS程序将自动将每阶模态的最大位移单位化,就可以提取模态质量。计算方法如下:1、利用 SSUM 对 ETABLE 动能数据求和获得结构总动能();2、将结构总动能除以得到 ,其中 是系统的角频率。下面是ANSYS Verification Manual中 VM89.DAT 稍加修改后提取模态质量的例子: /PREP7/TITLE, VM89, NATURAL FREQUENCIES OF A TWO-MASS-SPRING SYSTEMC* VIBRATION THEORY AND APPLICATIONS, THOMSON, 2ND PRINTING,
48、 PAGE 163,EX 6.2-2ET,1,COMBIN14,2ET,2,MASS21,4R,1,200 ! SPRING CONSTANT = 200R,2,800 ! SPRING CONSTANT = 800R,3,.5 ! MASS = .5R,4,1 ! MASS = 1N,1N,4,1FILLE,1,2 ! SPRING ELEMENT (TYPE,1) AND K = 200 (REAL,1)TYPE,2REAL,3E,2 ! MASS ELEMENT (TYPE,2) AND MASS = .5 (REAL,3)TYPE,1REAL,2E,2,3 ! SPRING ELEME
49、NT (TYPE,1) AND K = 800 (REAL,2)TYPE,2REAL,4E,3 ! MASS ELEMENT (TYPE,2) AND MASS = 1 (REAL,4)TYPE,1REAL,1E,3,4 ! SPRING ELEMENT (TYPE,1) AND K = 200 (REAL,1)19M,2,UX,3OUTPR,BASIC,1D,1,UY,4D,1,UX,4,3FINISH/SOLUANTYPE,MODAL MODOPT,subspa,2,2,ONMXPAND,2,YESSOLVEFINISH/post1set,1,1etabl,kene,kenessum *get,keneval1,ssum,item,kene*get,freqval1,mode,1,freqeigen1=(2*3.14159*freqval1)*2pmass1=2*keneval1/eigen1set,1,2etabl,kene,kenessum*get,keneval2,ssum,item,kene*get,freqval2,mode,2,freqeigen2=(2*3.14159*fr