ANSYS高级分析技术指南5第五章子模型文档格式.docx
《ANSYS高级分析技术指南5第五章子模型文档格式.docx》由会员分享,可在线阅读,更多相关《ANSYS高级分析技术指南5第五章子模型文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
用下列方法指定文件名:
Command:
/FILNAME
GUI:
UtilityMenu>
File>
ChangeJobname
单元类型——子模型技术只能使用块单元和壳单元。
分析模型中可以有其他单元类型(如梁单元作为加强筋),但切割边界只能经过块和壳单元。
一种特殊的子模型技术,称为壳到体子模型技术,允许用户用壳单元建立粗糙模型而用三维块单元建立子模型。
本技术在后面还要讨论。
建模——在很多情况下,粗糙模型不需要包含局部的细节如圆角等,见下图。
但是,有限元网格必须细化到足以得到较合理的位移解。
这一点很重要,因为子模型的结果是根据切割边界的位移解插值得到的。
图5-2粗糙模型可以不包括一些细节部分
文件——结果文件(Jobname.RST,Jobname.RMG等)和数据库文件(Jobname.DB,包含几何模型)在粗糙模型分析中是需要的。
在生成子模型前应存储数据库文件。
用下列方法存储数据库:
SAVE
Saveas
SaveasJobname.db
第二步:
生成子模型
子模型是完全依靠粗糙模型的。
因此在初始分析后的第一步就是在初始状态清除数据库(另一种方法是退出并重新进入ANSYS)。
用下列方法清除数据库:
/CLEAR
Clear&
StartNew
同时,应记住用另外的文件名以防止粗糙模型文件被覆盖。
然后进入PREP7并建立子模型。
应该记住下列几点:
使用与粗糙模型中同样的单元类型。
同时应指定相同的单元实参(如壳厚)和材料特性。
(另一种子模型技术——壳到体技术——允许从粗糙模型的壳单元转换为体单元,见后。
子模型的位置(相对全局坐标原点)应与粗糙模型的相应部分相同,见图5-3。
图5-3叠加在粗糙模型上的子模型
指定合适的结点旋转位移。
切割边界结点的旋转角在插值步骤一写入结点文件时不应改变(见第三步:
生成切割边界插值)。
用下列方法指定结点旋转:
NROTAT
MainMenu>
Preprocessor>
Create>
Nodes>
-RotateNodeCS-ToActiveCS
Move/Modify>
-RotateNodeCS-ToACtiveCS
注意结点旋转角会因为施加结点约束,传递线上约束或面上约束等操作而改变,同样也会为更加明显的操作如[NROTAT和NMODIF]等改变。
粗糙模型中结点旋转角的出现或缺省并不影响子模型。
子模型的载荷和边界条件将在后面两步中施加。
第三步:
生成切割边界插值
本步是子模型的关键步骤。
用户定义切割边界的结点,ANSYS程序用粗糙模型结果插值方法计算这些点上的自由度数值(位移等)。
对于子模型切割边界上的所有结点,程序用粗糙模型网格中相应的单元确定自由度数值,然后这些数值用单元形状功能插值到切割边界上。
在切割边界插值中有下面几步操作:
1.指定子模型切割边界的结点并将其写入一个文件(缺省为Jobname.NODE)中。
可以在PREP7中选择切割边界的结点,用下列命令将其写入文件:
NWRITE
WriteNodeFile
下面是一个NWRITE命令的例子:
NSEL,...!
选择切割边界上的结点
NWRITE!
将其写入Jobname.NODE
图5-4子模型切割边界
在这里讨论一下温度插值的问题。
在包含特性随温度变化的材料的分析中,或热-应力耦合分析中,粗糙模型和子模型中的温度分布是相同的。
在这种情况下,必须将粗糙模型的温度插值到子模型中的所有结点上。
要完成这步操作,要选择子模型中所有结点并写入另外一个文件中,使用NWRITE,Filename,Ext。
记住必须另外指定一个文件名,否则切割边界结点文件将被覆盖!
第7步中说明了关于温度插值的命令。
2.重新选择所有结点并将数据库存入Jobname.DB中,然后退出PREP7。
必须将数据库写入文件,因为在后面子模型分析中要使用到。
用下列命令重新选择所有结点:
ALLSEL
Select>
Everything
用下列命令存储数据库:
3.要进行切割边界插值(和温度插值),数据库中必须包含粗糙模型的几何特征。
因此要用下列一种方法读入粗糙模型数据库:
RESUME
Resumefrom
如,粗糙模型文件名为COARSE,就输入命令RESUME,COARSE,DB。
4.进入POST1,即通用处理器(/POST1或MainMenu>
GeneralPostproc)。
插值只有在POST1中进行。
5.指向粗糙模型结果文件(FILE或MainMenu>
GeneralPostproc>
Data&
FileOpts)。
6.读入结果文件中相应的数据(SET或MainMenu>
-ReadResults-option)。
7.开始切割边界插值。
用下列方法完成本步操作:
CBDOF
Submodeling>
InterpolateDOF
缺省状态下,CBDOF命令假定切割边界结点在文件Jobname.NODE中。
ANSYS程序将计算切割边界的DOF数值并用D命令的形式写入文件Jobname.CBDO中。
用下列方法作温度插值,但要保证文件包含所有子模型结点:
BFINT
InterpBodyForc
温度插值以BF命令的格式写入文件Jobname.BFIN中。
注——如果数据包括实部和虚部的话,步骤6和7就要作两遍。
先用SET命令读入实部的数据并作插值[CBDOF和/或BFINT],然后用SET命令将域设为1读入虚部的数据并重新进行插值,但这次将虚部插值写入另一个文件。
8.至此,所有的插值任务完成,退出POST1[FINISH]并读入子模型数据库(RESUME或MainMenu>
Resumefrom)。
第四步:
分析子模型
在本步中,用户指定分析类型和分析选项,加入插值的DOF数值(和温度数值),施加其他的载荷和边界条件,指定载荷步选项,并对子模型求解。
第一步是进入求解器(/SOLU或MainMenu>
Solution)。
然后定义分析类型(一般为静态)和分析选项。
要施加切割边界自由度约束,用下列命令读入CBDOF命令生成的由D命令组成的文件:
/INPUT
ReadInputfrom
要施加温度插值,用下列命令读入BFINT命令生成的由BF命令组成的文件:
如果数据有实部和虚部,先读入实部数据文件,指定自由度约束数值和(/或)结点体载荷是否计算,然后读入虚部数据文件。
用下列方法指定计算自由度约束数值:
DCUM,ADD
Loads>
-Loads-Settings>
Contraints
Solution>
Constraints
用下列方法指定计算结点体载荷数值:
BFCUM,ADD
NodalBodyLd
注意在执行DCUM和BFCUM命令时要先将其初始状态设为初始值。
重要的一点是要将粗糙模型上所有其他载荷和边界条件复制到子模型上。
比如对称边界条件,面力,惯性载荷(如重量),集中力等(见图5-5)。
图5-5子模型的载荷
然后指定载荷步选项(如输出控制)并开始计算:
SOLVE
CurrentLS
RunFLOTRAN
在求解完成后,退出SOLUTION。
[FINISH]
子模型的数据流向(无温度插值)见图5-6。
图5-6子模型分析(无温度插值)的数据流向
第五步:
验证切割边界和应力集中位置的距离是否足够
最后一步是验证子模型切割边界是否远离应力集中部分。
可以通过比较切割边界上的结果(应力,磁通密度等)与粗糙模型相应位置的结果是否一致来验证。
如果结果符合得很好,证明切割边界的选取是正确的。
如果不符合的话,就要重新定义离感兴趣部分更远一些的切割边界重新生成和计算子模型。
一个比较结果的有效方法是使用云图显示和路径显示,见图5-7和5-8。
图5-7比较结果时的云图显示
图5-8比较结果时的路径显示
输入示例
下面列出了一个子模型分析的输入示例:
!
开始子模型分析
/FILNAME,coarse!
工作文件名为coarse
/PREP7!
进入PREP7
....
....!
生成粗糙模型
FINISH
/SOLU!
进入求解器
ANTYPE,...!
分析类型和分析选项
...
D,....!
载荷和载荷步选项
DSYMM,...
ACEL,...
SAVE!
粗糙模型数据库文件coarse.db
SOLVE!
求解粗糙模型
!
结果在文件coarse.rst(或rmg等)
/CLEAR!
清除数据库(或退出ANSYS并重新进入)
/FILNAME,submod!
新工作文件名为submod
重新进入PREP7
...!
进行切割边界插值
将其写入文件submod.node
ALLSEL!
读入所有实体
NWRITE,temp,node!
将所有结点写入文件temp.node(用于
温度插值)
存储子模型数据库文件submod.db
RESUME,coarse,db!
读入粗糙模型数据库(coarse.db)
/POST1!
进入POST1
FILE,coarse,rst!
使用粗糙模型结果文件
SET,...!
读入需要的结果数据
CBDOF!
从submod.node中读入切割边界结点并
将D命令写入submod.cbdo
BFINT,temps,node!
从temps.node中读入所有子模型结点
并将BF命令写入文件submod.bfin(用
于温度插值)
FINISH!
结束插值过程
RESUME!
读入子模型数据库(submod.db)
分析类型和选项
/INPUT,submod,cbdo!
切割边界自由度
/INPUT,submod,bfin!
温度插值
DSYMM,...!
其他载荷和载荷步选项
子模型求解
验证子模型数据
壳到体子模型
在壳到体子模型技术中,粗糙模型为壳模型而子模型为三维实体模型。
图5-9所示为三维实体子模型添加到粗糙壳模型上的例子。
图5-93-D实体模型叠加到壳单元模型上
壳到体子模型分析与体对体子模型分析大致一致。
下面的几点是要记住的:
壳到体子模型分析是将DBDOF命令(MainMenu>
InterpolateDOF)和BFINT命令(MainMenu>
General>
InterpBodyForc)中KSHS域设为1实现的。
本特性不适用于SHELL91或SHELL99(KEYOPT(11)不等于0)。
子模型切割边界应为垂直于壳平面的端面(见图5-10)。
切割边界上的结点写入文件中[NWRITE](MainMenu>
Node>
WriteNodeFile)。
要确定切割边界上结点的自由度数值[CBDOF],程序首先将结点延伸到壳平面的最近的单元上,该延伸结点的自由度数值就插值并赋值给相应的结点。
温度插值是由计算最近壳单元的中面平均温度得到的。
注-切割边界上的结点位置必须在最近壳单元平均厚度的0.75倍之间,见图5-10。
也就是说,子模型应大致在粗糙模型的中间。
图5-10结点旋转:
a)CBDOF命令之前,b)CBDOF命令之后
在结构分析中,切割边界结点只计算平动自由度,但其数值是根据延伸结点的平动和转动自由度得到的。
而且,结点旋转以使结点的UY自由度始终垂直于壳平面,见图5-10。
UY自由度只有当结点在壳平面平均厚度的10%之内时才计算。
这防止了子模型在反向的过度位移。
由CBDOF命令写的.CBDO文件包括两个部分:
(1)一组NMODIF命令(表示结点旋转角度)和DDELE命令(删除UY约束),
(2)一组D命令(施加自由度插值)。
这两个部分用/EOF命令和一个:
CBnn标记分开(nn为结果序列迭代次数)。
用户必须将.CBDO文件读入PREP7中,因为NMODIF命令只能在PREP7中适用。
要完成这步操作,进入前处理器,然后用下列命令:
同时,要读入.CBDO文件两次,因为两个命令部分被/EOF命令分开了。
在第二次读入文件时,用/INPUT命令的LINE域指定程序从:
CBnn处开始读入,见下:
.CBDO文件必须在PREP7中读入
/INPUT,,cbdo!
读入Jobname.cbdo到/EOF处
/INPUT,dbdo,,:
cb1!
从:
cb1处读入同一文件
子模型分析实例(命令行格式)
问题描述
求解矩形平板中心开孔,承受横向拉力时的应力集中情况。
材料特性和模型的几何形状见下图。
/FILNAM,coarse
/PREP7
smrt,off
/TITLE,STRESSCONCENTRATIONATAHOLEINAPLATE
/NOPR
ANTYPE,STATIC!
静力分析
ET,1,PLANE2
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!
定义线3的分段数
LARC,4,5,6,0.5
LESIZE,4,,,6!
定义线4的分段数
L,5,1
LESIZE,5,,,4,4!
定义线5的分段数
AL,1,2,3,4,5
ESIZE,,4!
每条线分为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
SAVE!
存储文件VM142.DB
/POST1
SET,1,1
NSORT,S,X,,,3
PRNSOL,S,COMP
/WINDOW,1,OFF
/NOERASE
/DSCALE,2,1
/WINDOW,2,RTOP
PLNSOL,S,X
*GET,CRSESTR,NODE,18,S,X
*STATUS
*DIM,LABEL,CHAR,1,2
*DIM,VALUE,,1,3
LABEL(1,1)='
MXSTR'
LABEL(1,2)='
CRSMODEL'
*VFILL,VALUE(1,1),DATA,3018
*VFILL,VALUE(1,2),DATA,CRSESTR
*VFILL,VALUE(1,3),DATA,ABS(CRSESTR/3018)
SAVE,TABLE_1
/CLEAR,NOSTART!
CLEARTHEDATABASE
/FILNAM,SUBMODEL!
定义子模型文件名
ANTYPE,STATIC
ET,1,PLANE42
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
/WINDOW,1,LTOP
/USER!
用户定义的比例
/DIST,1,3.3
/FOCUS,1,3,3
EPLOT
LSEL,S,LINE,,1,2
NSLL,,1!
选择切割边界的结点
NWRITE!
将结点写入文件SUBMODEL.NODE
存储子模型数据库文件SUBMODEL.DB
RESUME,coarse,db
FILE,coarse,rst
CBDOF,,,,,,,0,,0!
激活边界条件插值
RESUME!
从文件SUBMODEL.DB中读入子模型
/INPUT,,cbdo,,:
从文件SUBMODEL.CBDO中读入插值边界条件
/GOPR
LSEL,S,LINE,,3!
施加其余的边界条件
NSORT,S,X,,,3
/WINDOW,1,OFF
/AUTO,3
/WINDOW,3,BOT
/PLOPTS,MINM,1
/USER,3
/DIST,3,.2
/FOCUS,3,.2,.5
/CONTOUR,3,,AUTO
PLNSOL,SX
*GET,SUBSTR,NODE,18,S,X
MAXSTRS'
SUBMOD'
*VFILL,VALUE(1,2),DATA,SUBSTR
*VFILL,VALUE(1,3),DATA,ABS(SUBSTR/3018)
SAVE,TABLE_2
/CLEAR,NOSTART
/FILNAM,SUBMODEL
ANTYPE,STATIC
ET,1,PLANE146