资源描述
ANSYS 高级分析技术指南
子模型
5-1
第五章 子模型
何为子模型?
子模型是得到模型部分区域中更加精确解的有限单元技术。在有限元分析 中往往出现这种情况, 即对于用户关心的区域, 如应力集中区域, 网格太疏不能 得到满意的结果, 而对于这些区域之外的部分, 网格密度已经足够了。 见图 5- 1。
图 5- 1 轮毂和轮辐的子模型 a)粗糙模型, b)叠加的子模型
要得到这些区域的较精确的解, 可以采取两种办法: (a)用较细的网格重新 划分并分析整个模型,或(b)只在关心的区域细化网格并对其分析。显而易见, 方法 a 太耗费机时,方法b 即为子模型技术。
子模型方法又称为切割边界位移法或特定边界位移法 。切割边界就是子模 型从整个较粗糙的模型分割开的边界。整体模型切割边界的计算位移值即为子模 型的边界条件。
子模型基于圣维南原理,即如果实际分布载荷被等效载荷代替以后,应力 和应变只在载荷施加的位置附近有改变。这说明只有在载荷集中位置才有应力集 中效应, 如果子模型的位置远离应力集中位置, 则子模型内就可以得到较精确的 结果。
ANSYS 程序并不限制子模型分析必须为结构(应力)分析。子模型也可以 有效地应用于其他分析中。 如在电磁分析中, 可以用子模型计算感兴趣区域的电 磁力。
除了能求得模型某部分的精确解以外,子模型技术还有几个优点:
o 它减少甚至取消了有限元实体模型中所需的复杂的传递区域。
o 它使得用户可以在感兴趣的区域就不同的设计 (如不同的圆角半径) 进 行分析。
o 它帮助用户证明网格划分是否足够细。
使用子模型的一些限制如下:
只对体单元和壳单元有效。
子模型的原理要求切割边界应远离应力集中区域。用户必须验证是否满足这
ANSYS 高级分析技术指南
子模型
5-2
个要求。
如何作子模型分析
子模型分析的过程包括以下步骤:
1. 生成并分析较粗糙的模型。
2. 生成子模型。
3. 提供切割边界插值。
4. 分析子模型。
5. 验证切割边界和应力集中区域的距离应足够远。
第一步:生成并分析较粗糙的模型
第一个步骤是对整体建模并分析。 (注-为了方便区分这个原始模型, 我们 将其称为粗糙模型。 这并不表示模型的网格划分必须是粗糙的, 而是说模型的网 格划分相对子模型的网格是较粗糙的。)
分析类型可以是静态或瞬态的,其操作与各分析的步骤相同。下面列出了 其他的一些要记住的方面。
文件名——粗糙模型和子模型应该使用不同的文件名。这样就可以保证文 件不被覆盖。 而且在切割边界插值时可以方便地指出粗糙模型的文件。 用下列方 法指定文件名:
Command: /FILNAME
GUI: Utility Menu>File>Change Jobname
单元类型——子模型技术只能使用块单元和壳单元。分析模型中可以有其 他单元类型(如梁单元作为加强筋) ,但切割边界只能经过块和壳单元。
一种特殊的子模型技术,称为壳到体子模型技术,允许用户用壳单元建立 粗糙模型而用三维块单元建立子模型。本技术在后面还要讨论。
建模——在很多情况下,粗糙模型不需要包含局部的细节如圆角等,见下 图。但是,有限元网格必须细化到足以得到较合理的位移解。这一点很重要,因 为子模型的结果是根据切割边界的位移解插值得到的。
图 5-2 粗糙模型可以不包括一些细节部分
文 件 — — 结 果 文 件 ( Jobname.RST,Jobname.RMG 等 ) 和 数 据 库 文 件 (Jobname.DB,包含几何模型)在粗糙模型分析中是需要的。在生成子模型前应
ANSYS 高级分析技术指南
子模型
5-3
存储数据库文件。用下列方法存储数据库:
Command: SAVE
GUI: Utility Menu>File>Save as
Utility Menu>File>Save as Jobname.db
第二步:生成子模型
子模型是完全依靠粗糙模型的。因此在初始分析后的第一步就是在初始状 态清除数据库(另一种方法是退出并重新进入 ANSYS)。用下列方法清除数据库:
Command: /CLEAR
GUI: Utility Menu>File>Clear&Start New
同时,应记住用另外的文件名以防止粗糙模型文件被覆盖。用下列方法指 定文件名:
Command: /FILNAME
GUI: Utility Menu>File>Change Jobname
然后进入 PREP7 并建立子模型。应该记住下列几点:
使用与粗糙模型中同样的单元类型。 同时应指定相同的单元实参 (如壳厚) 和材料特性。 (另一种子模型技术 —— 壳到体技术—— 允许从粗糙模型的壳单元 转换为体单元,见后。)
子模型的位置(相对全局坐标原点)应与粗糙模型的相应部分相同,见图 5-3。
图 5-3 叠加在粗糙模型上的子模型
指定合适的结点旋转位移。切割边界结点的旋转角在插值步骤一写入结点 文件时不应改变(见第三步:生成切割边界插值) 。用下列方法指定结点旋转:
Command:NROTAT
GUI: Main Menu>Preprocessor>Create>Nodes>-Rotate Node CS-To Active CS
Main Menu>Preprocessor>Move/Modify>-Rotate Node CS-To ACtive CS
注意结点旋转角会因为施加结点约束,传递线上约束或面上约束等操作而 改变,同样也会为更加明显的操作如[NROTAT 和 NMODIF]等改变。
粗糙模型中结点旋转角的出现或缺省并不影响子模型。
子模型的载荷和边界条件将在后面两步中施加。
第三步:生成切割边界插值
ANSYS 高级分析技术指南
子模型
5-4
本步是子模型的关键步骤。用户定义切割边界的结点, ANSYS 程序用粗糙 模型结果插值方法计算这些点上的自由度数值(位移等)。 对于子模型切割边界 上的所有结点, 程序用粗糙模型网格中相应的单元确定自由度数值, 然后这些数 值用单元形状功能插值到切割边界上。
在切割边界插值中有下面几步操作:
1.指定子模型切割边界的结点并将其写入一个文件(缺省为 Jobname.NODE) 中。可以在 PREP7 中选择切割边界的结点,用下列命令将其写入文件:
Command: NWRITE
GUI: Main Menu>Preprocessor>Create>Nodes>Write Node File
下面是一个 NWRITE 命令的例子:
NSEL,... NWRITE
!选择切割边界上的结点
!将其写入 Jobname.NODE
图 5-4 子模型切割边界
在这里讨论一下温度插值的问题。 在包含特性随温度变化的材料的分析中, 或热-应力耦合分析中, 粗糙模型和子模型中的温度分布是相同的。 在这种情况 下, 必须将粗糙模型的温度插值到子模型中的所有结点上。 要完成这步操作, 要 选择子模型中所有结点并写入另外一个文件中, 使用 NWRITE,Filename,Ext。 记 住必须另外指定一个文件名, 否则切割边界结点文件将被覆盖! 第 7 步中说明了 关于温度插值的命令。
2.重新选择所有结点并将数据库存入 Jobname.DB 中, 然后退出 PREP7。 必 须将数据库写入文件,因为在后面子模型分析中要使用到。
用下列命令重新选择所有结点:
Command: ALLSEL
GUI: Utility Menu>Select>Everything
用下列命令存储数据库:
Command: SAVE
GUI: Utility Menu>File>Save as Jobname.db
3.要进行切割边界插值 (和温度插值), 数据库中必须包含粗糙模型的几何 特征。因此要用下列一种方法读入粗糙模型数据库:
Command: RESUME
GUI: Utility Menu>File>Resume from
如,粗糙模型文件名为 COARSE,就输入命令 RESUME,COARSE,DB。
4.进入 POST1,即通用处理器(/POST1 或 Main Menu>General Postproc)。 插值只有在 POST1 中进行。
5.指向粗糙模型结果文件(FILE 或 Main Menu>General Postproc>Data &
File Opts)。
6.读入结果文件中相应的数据 (SET 或 Main Menu>General Postproc>-Read
ANSYS 高级分析技术指南
子模型
5-5
Results-option)。
7.开始切割边界插值。用下列方法完成本步操作:
Command: CBDOF
GUI: Main Menu>General Postproc>Submodeling>Interpolate DOF
缺省状态下, CBDOF 命令假定切割边界结点在文件 Jobname.NODE 中。ANSYS 程序将计算切割边界的 DOF 数值并用D 命令的形式写入文件Jobname.CBDO 中。
用下列方法作温度插值,但要保证文件包含所有子模型结点: Command: BFINT
GUI: Main Menu>General Postproc>Submodeling>Interp Body Forc 温度插值以 BF 命令的格式写入文件Jobname.BFIN 中。
注——如果数据包括实部和虚部的话, 步骤 6 和 7 就要作两遍。先用 SET 命 令读入实部的数据并作插值[CBDOF 和/或 BFINT],然后用 SET 命令将域设为 1 读 入虚部的数据并重新进行插值,但这次将虚部插值写入另一个文件。
8.至此,所有的插值任务完成,退出 POST1[FINISH]并读入子模型数据库 (RESUME 或 Main Menu>File>Resume from)。
第四步:分析子模型
在本步中,用户指定分析类型和分析选项,加入插值的 DOF 数值(和温度 数值) ,施加其他的载荷和边界条件,指定载荷步选项,并对子模型求解。
第一步是进入求解器(/SOLU 或 Main Menu>Solution)。
然后定义分析类型(一般为静态)和分析选项。
要施加切割边界自由度约束,用下列命令读入 CBDOF 命令生成的由 D 命令 组成的文件:
Command: /INPUT
GUI: Utility Menu>File>Read Input from
要施加温度插值, 用下列命令读入 BFINT 命令生成的由 BF 命令组成的文件: Command: /INPUT
GUI: Utility Menu>File>Read Input from
如果数据有实部和虚部,先读入实部数据文件,指定自由度约束数值和(/ 或)结点体载荷是否计算,然后读入虚部数据文件。
用下列方法指定计算自由度约束数值:
Command: DCUM,ADD
GUI: Main Menu>Preprocessor>Loads>-Loads-Settings>Contraints Main Menu>Solution>-Loads-Settings>Constraints
用下列方法指定计算结点体载荷数值:
Command: BFCUM,ADD
GUI: Main Menu>Preprocessor>Loads>-Loads-Settings>Nodal Body Ld Main Menu>Solution>-Loads-Settings>Nodal Body Ld
注意在执行 DCUM 和 BFCUM 命令时要先将其初始状态设为初始值。
重要的一点是要将粗糙模型上所有其他载荷和边界条件复制到子模型上。 比如对称边界条件,面力,惯性载荷(如重量),集中力等(见图 5-5)。
图 5-5 子模型的载荷
ANSYS 高级分析技术指南
子模型
5-6
然后指定载荷步选项(如输出控制)并开始计算:
Command: SOLVE
GUI: Main Menu>Solution>Current LS
Main Menu>Solution>Run FLOTRAN
在求解完成后,退出 SOLUTION。 [FINISH]
子模型的数据流向(无温度插值)见图 5-6。
图 5-6 子模型分析(无温度插值)的数据流向
第五步:验证切割边界和应力集中位置的距离是否足够
最后一步是验证子模型切割边界是否远离应力集中部分。可以通过比较切 割边界上的结果 (应力, 磁通密度等) 与粗糙模型相应位置的结果是否一致来验 证。如果结果符合得很好,证明切割边界的选取是正确的。如果不符合的话,就 要重新定义离感兴趣部分更远一些的切割边界重新生成和计算子模型。
ANSYS 高级分析技术指南
子模型
5-7
一个比较结果的有效方法是使用云图显示和路径显示,见图 5-7 和 5-8。
图 5-7 比较结果时的云图显示
图 5-8 比较结果时的路径显示
输入示例
下面列出了一个子模型分析的输入示例:
!开始子模型分析
/FILNAME,coarse
!工作文件名为 coarse
/PREP7
!进入 PREP7
....
....
!生成粗糙模型
FINISH
/SOLU
!进入求解器
ANTYPE,...
!分析类型和分析选项
...
D,
....
!载荷和载荷步选项
DSYMM,...
ACEL,...
...
ANSYS 高级分析技术指南
子模型
5-8
SAVE
SOLVE
FINISH
!生成子模型
/CLEAR
入)
/FILNAME,submod
/PREP7
...
...
!进行切割边界插值
NSEL,...
NWRITE
ALLSEL
NWRITE,temp,node
SAVE
FINISH
RESUME,coarse,db
/POST1
FILE,coarse,rst
SET,...
CBDOF
BFINT,temps,node
FINISH
RESUME
/SOLU
ANTYPE,...
...
/INPUT,submod,cbdo
/INPUT,submod,bfin
DSYMM,...
ACEL,...
...
SOLVE
FINISH
!粗糙模型数据库文件 coarse.db !求解粗糙模型
!结果在文件 coarse.rst(或 rmg 等)
!清除数据库(或退出 ANSYS 并重新进
!新工作文件名为 submod
!重新进入 PREP7
!生成子模型
!选择切割边界上的结点
!将其写入文件 submod.node
!读入所有实体
!将所有结点写入文件 temp.node(用于 温度插值)
!存储子模型数据库文件 submod.db
!读入粗糙模型数据库(coarse.db) !进入 POST1
!使用粗糙模型结果文件
!读入需要的结果数据
!从 submod.node 中读入切割边界结点并 将 D 命令写入 submod.cbdo
!从 temps.node 中读入所有子模型结点 并将 BF 命令写入文件 submod.bfin(用 于温度插值)
!结束插值过程
!读入子模型数据库(submod.db)
!进入求解器
!分析类型和选项
!切割边界自由度
!温度插值
!其他载荷和载荷步选项
!子模型求解
ANSYS 高级分析技术指南
子模型
5-9
/POST1
...
...
FINISH
!进入 POST1
!验证子模型数据
壳到体子模型
在壳到体子模型技术中,粗糙模型为壳模型而子模型为三维实体模型。图 5-9 所示为三维实体子模型添加到粗糙壳模型上的例子。
图 5-9 3-D 实体模型叠加到壳单元模型上
壳到体子模型分析与体对体子模型分析大致一致。 下面的几点是要记住的:
壳 到 体 子 模 型 分 析 是 将 DBDOF 命 令 ( Main Menu>General Postproc>Submodeling>Interpolate DOF ) 和 BFINT 命 令 ( Main Menu>General>Submodeling>Interp Body Forc)中 KSHS 域设为 1 实现的。 本 特性不适用于 SHELL91 或 SHELL99 (KEYOPT (11)不等于 0)。
子模型切割边界应为垂直于壳平面的端面(见图 5-10)。切割边界上的结 点 写 入 文 件 中 [NWRITE](Main Menu>Preprocessor>Create>Node>Write Node File)。
要确定切割边界上结点的自由度数值[CBDOF],程序首先将结点延伸到壳平 面的最近的单元上, 该延伸结点的自由度数值就插值并赋值给相应的结点。 温度 插值是由计算最近壳单元的中面平均温度得到的。
注-切割边界上的结点位置必须在最近壳单元平均厚度的 0.75 倍之间, 见 图 5-10。也就是说,子模型应大致在粗糙模型的中间。
图 5- 10 结点旋转: a)CBDOF 命令之前, b)CBDOF 命令之后
ANSYS 高级分析技术指南
子模型
5-10
在结构分析中,切割边界结点只计算平动自由度,但其数值是根据延伸结 点的平动和转动自由度得到的。而且,结点旋转以使结点的 UY 自由度始终垂直 于壳平面,见图 5-10。 UY 自由度只有当结点在壳平面平均厚度的 10%之内时 才计算。这防止了子模型在反向的过度位移。
由 CBDOF 命令写的.CBDO 文件包括两个部分: (1)一组 NMODIF 命令(表示结 点旋转角度)和 DDELE 命令(删除 UY 约束), (2)一组 D 命令(施加自由度插值) 。 这两个部分用/EOF 命令和一个:CBnn 标记分开(nn 为结果序列迭代次数)。
用户必须将.CBDO 文件读入PREP7 中,因为 NMODIF 命令只能在PREP7 中适 用。要完成这步操作,进入前处理器,然后用下列命令:
Command: /INPUT
GUI: Utility Menu>File>Read Input from
同时,要读入.CBDO 文件两次,因为两个命令部分被/EOF 命令分开了。在 第二次读入文件时,用/INPUT 命令的 LINE 域指定程序从:CBnn 处开始读入,见 下:
/PREP7
/INPUT,,cbdo
/INPUT,dbdo,,:cb1
子模型分析实例(命令行格式)
!.CBDO 文件必须在PREP7 中读入
!读入 Jobname.cbdo 到/EOF 处
!从:cb1 处读入同一文件
问题描述
求解矩形平板中心开孔, 承受横向拉力时的应力集中情况。 材料特性和模型 的几何形状见下图。
/FILNAM,coarse
/PREP7
smrt,off
/TITLE, STRESS CONCENTRATION AT A HOLE IN A PLATE
/NOPR
ANTYPE,STATIC ! 静力分析
ET,1,PLANE2
MP,EX,1,30E6
MP,NUXY,1,0.3
ANSYS 高级分析技术指南
子模型
5-11
K,1,6
K,2,6,6
K,3,,6
K,4,,.5
K,5,.5
K,6
L,1,2
L,2,3
L,3,4 LESIZE,3,,,4,.25 LARC,4,5,6,0.5 LESIZE,4,,,6 L,5,1 LESIZE,5,,,4,4 AL,1,2,3,4,5 ESIZE,,4
AMESH,ALL /AUTO,1 /PLOPTS,INFO,0
! 关键点
! 定义线 3 的分段数
! 定义线 4 的分段数
! 定义线 5 的分段数
! 每条线分为 4 段
ANSYS 高级分析技术指南
子模型
5-12
/PLOPTS,WINS,0
/WINDOW,,LTOP
LSEL,S,LINE,,3,5,2
DL,ALL,,SYMM
LSEL,S,LINE,,1
NSLL,,1
SF,ALL,PRES,- 1000.
LSEL,ALL
NSEL,ALL
CSYS,1
FINISH
/SOLU
SOLVE
FINISH
SAVE
/POST1
SET,1,1
NSORT,S,X,,,3
PRNSOL,S,COMP
/WINDOW,1,OFF
/NOERASE
/DSCALE,2,1
/WINDOW,2,RTOP
PLNSOL,S,X
! 施加拉力
! 存储文件 VM142.DB
*GET,CRSESTR,NODE,18,S,X
*STATUS
*DIM,LABEL,CHAR,1,2
*DIM,VALUE,,1,3
LABEL(1,1) = 'MX STR '
LABEL(1,2) = 'CRS MODEL'
*VFILL,VALUE(1,1),DATA,3018
*VFILL,VALUE(1,2),DATA,CRSESTR
*VFILL,VALUE(1,3),DATA,ABS(CRSESTR/3018)
SAVE,TABLE_ 1
FINISH
/CLEAR, NOSTART ! CLEAR THE DATABASE
/FILNAM,SUBMODEL ! 定义子模型文件名
/PREP7
smrt,off
/NOPR
/TITLE, STRESS CONCENTRATION AT A HOLE IN A PLATE
ANTYPE,STATIC
ET,1,PLANE42
MP,EX,1,30E6
ANSYS 高级分析技术指南
子模型
5-13
MP,NUXY,1,0.3
CSYS,1
K,10,.5,45
K,11,.5,90
K,12,1.5,45
K,13,1.5,90
A,10,12,13,11
ESIZE,,8
MSHK,1
MSHA,0,2D
AMESH,1
/WINDOW,2,OFF
/NOERASE
/PLOPTS,INFO,0
/PLOPTS,WINS,0
/WINDOW,1,LTOP
/USER
! 用户定义的比例
/DIST,1,3.3
/FOCUS,1,3,3
EPLOT
LSEL,S,LINE,,1,2
NSLL,,1
! 选择切割边界的结点
NWRITE
! 将结点写入文件 SUBMODEL.NODE
LSEL,ALL
NSEL,ALL
FINISH
SAVE
! 存储子模型数据库文件 SUBMODEL.DB
/POST1
RESUME,coarse,db
FILE,coarse,rst
CBDOF,,,,,,,0,,0
!激活边界条件插值
FINISH
/PREP7
smrt,off
RESUME
!从文件 SUBMODEL.DB 中读入子模型
/NOPR
/INPUT,,cbdo,,:cb1 /GOPR
! 从文件 SUBMODEL.CBDO 中读入插值边界条件
LSEL,S,LINE,,3
! 施加其余的边界条件
DL,ALL,,SYMM
FINISH
/SOLU
SOLVE
FINISH
ANSYS 高级分析技术指南
子模型
5-14
/POST1
SET,1,1
NSORT,S,X,,,3
PRNSOL,S,COMP
/WINDOW,1,OFF
/AUTO,3
/WINDOW,3,BOT
/NOERASE
/PLOPTS,MINM,1
/USER,3
/DIST,3,.2
/FOCUS,3,.2,.5
/CONTOUR,3,,AUTO
PLNSOL,SX
*GET,SUBSTR,NODE,18,S,X
*DIM,LABEL,CHAR,1,2
*DIM,VALUE,,1,3
LABEL(1,1) = 'MAX STRS'
LABEL(1,2) = ' SUBMOD'
*VFILL,VALUE(1,1),DATA,3018
*VFILL,VALUE(1,2),DATA,SUBSTR
*VFILL,VALUE(1,3),DATA,ABS(SUBSTR/3018 )
SAVE,TABLE_2
FINISH
/CLEAR,NOSTART
/FILNAM,SUBMODEL
/PREP7
smrt,off
/TITLE, STRESS CONCENTRATION AT A HOLE IN A PLATE
/NOPR
ANTYPE,STATIC
ET,1,PLANE146
MP,EX,1,30E6
MP,NUXY,1,0.3
K,1,6
K,2,6,6
K,3,,6
K,4,,.5
K,5,.5
K,6
L,1,2
L,2,3
L,3,4
LESIZE,3,,,4,.25
! 关键点
ANSYS 高级分析技术指南
子模型
5-15
LARC,4,5,6,0.5
LESIZE,4,,,6
L,5,1
LESIZE,5,,,4,4
AL,1,2,3,4,5
ESIZE,,4
AMESH,ALL
/AUTO,1
/PLOPTS,INFO,0
/PLOPTS,WINS,0
/WINDOW,,LTOP
LSEL,S,LINE,,3,5,2
DL,ALL,,SYMM
LSEL,S,LINE,,1
NSLL,,1
SF,ALL,PRES,- 1000.
LSEL,ALL
NSEL,ALL
CSYS,1
FINISH
/SOLU
SOLVE
FINISH
/POST1
SET,1,1
PRNSOL,S,COMP
/WINDOW,1,OFF
/NOERASE
/DSCALE,2,1
/WINDOW,2,RTOP
PLNSOL,S,X
*GET,SUBSTR,NODE,18,S,X
*DIM,LABEL,CHAR,1,2
*DIM,VALUE,,1,3
LABEL(1,1) = 'MAX STRS'
LABEL(1,2) = 'CRS MOD '
*VFILL,VALUE(1,1),DATA,3018
*VFILL,VALUE(1,2),DATA,SUBSTR
*VFILL,VALUE(1,3),DATA,ABS(SUBSTR/3018 )
SAVE,TABLE_3
FINISH
《ANSYS Verification Manual》中例子:
VM142 盘孔处的应力集中
展开阅读全文