第四章 子结构.docx
- 文档编号:8319294
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:29
- 大小:115.65KB
第四章 子结构.docx
《第四章 子结构.docx》由会员分享,可在线阅读,更多相关《第四章 子结构.docx(29页珍藏版)》请在冰豆网上搜索。
第四章子结构
第四章子结构
什么是子结构?
子结构就是将一组单元用矩阵凝聚为一个单元的过程。
这个单一的矩阵单元称为超单元。
在ANSYS分析中,超单元可以象其他单元类型一样使用。
唯一的区别就是必须先进行结构生成分析以生成超单元。
子结构可以在ANSYS/Mutiphysics,ANSYS/Mechanical和ANSYS/Structural中使用。
使用子结构主要是为了节省机时,并且允许在比较有限的计算机设备资源的基础上求解超大规模的问题。
原因之一如a)非线性分析和带有大量重复几何结构的分析。
在非线性分析中,可以将模型线性部分作成子结构,这样这部分的单元矩阵就不用在非线性迭代过程中重复计算。
在有重复几何结构的模型中(如有四条腿的桌子),可以对于重复的部分生成超单元,然后将它拷贝到不同的位置,这样做可以节省大量的机时。
子结构还用于模型有大转动的情况下。
对于这些模型,ANSYS假定每个结构都是围绕其质心转动的。
在三维情况下,子结构有三个转动自由度和三个平动自由度。
在大转动模型中,用户在使用部分之前无须对子结构施加约束,因为每个子结构都是作为一个单元进行处理,是允许刚体位移的。
另外一个原因b)一个问题就波前大小和需用磁盘空间来说相对于一个计算机系统太庞大了。
这样,用户可以通过子结构将问题分块进行分析,每一块对于计算机系统来说都是可以计算的。
如何使用子结构
子结构分析有以下三个步骤:
●生成部分
●使用部分
●扩展部分
生成部分就是将普通的有限元单元凝聚为一个超单元。
凝聚是通过定义一组主自由度来实现的。
主自由度用于定义超单元与模型中其他单元的边界,提取模型的动力学特性。
图4-1是一个板状构件用接触单元分析的示意。
由于接触单元需要迭代计算,将板状构件形成子结构将显著地节省机时。
本例中,主自由度是板与接触单元相连的自由度。
图4-1子结构使用示例
使用部分就是将超单元与模型整体相连进行分析的部分。
整个模型可以是一个超单元,也可以象上例一样是超单元与非超单元相连的。
使用部分的计算只是超单元的凝聚(自由度计算仅限于主自由度)和非超单元的全部计算。
扩展部分就是从凝聚计算结果开始计算整个超单元中所有的自由度。
如果在使用部分有多个超单元,那么每个超单元都需要有单独的扩展过程。
图4-2示出了整个子结构分析的数据流向和所用的文件。
三个步骤的详细解释见以后的叙述。
图4-2典型子结构分析中的数据流向
生成部分:
生成超单元
本部分主要有两步:
1.建立模型。
2.施加边界条件,生成超单元矩阵。
第一步:
建立模型
在这一步中,指定文件名和分析名称,用PREP7定义单元类型,单元实参,材料特性和模型几何结构。
这些任务在ANSYS绝大多数分析中都是通用的,在ANSYSBasicAnalysisProceduresGuide有所叙述。
在生成部分,需要记住以下几点:
文件名——在子结构分析中很有用处。
有效地使用文件名,在三部分分析中可以省略很多文件处理操作。
用以下方法指定文件名:
Command:
/FILENAME
GUI:
UtilityMenu>File>ChangeJobname
如:
/FILENAME,GEN
将生成过程中所有文件名都定义为GEN。
缺省的文件名是FILE(或file)或在进入ANSYS后定义的任意文件名。
单元类型——ANSYS提供的绝大多数单元都可以用来生成超单元。
唯一的限制是单元必须是线性的。
如果生成超单元时有双线性单元的话,ANSYS将自动作为线性单元处理。
注意:
在直接耦合中带载荷向量的耦合单元是不能做子结构分析的。
可以用同种形状的单元来替代。
细节参看ANSYSCoupled-FieldAnalysisGuide。
材料特性——定义所有必须的材料特性。
例如,如果生成质量矩阵,就必须定义密度或其他形式的质量;如果要生成热传导矩阵,就要定义比热。
同样,超单元是线性的,非线性材料将被忽略。
模型生成——在生成部分,主要生成模型的超单元部分。
非超单元部分是在以后的使用部分生成的。
但是,在建模的开始就需要对模型的两个部分有所规划,主要是确定超单元部分和非超单元部分如何连接。
为了保证连接正确,应该保证接触部分结点号一致。
(其他可以方便用户的方法在本章“使用部分”一节还有介绍。
)
要生成整体模型应该这样做:
将模型存储在数据库文件中,选择子结构部分进行生成计算。
在以后的使用部分,RESUME(UtilityMenu>File>Resumefrom)数据库文件,不选(unselect)子结构,用超单元矩阵代替。
第二步:
施加边界条件,生成超单元矩阵。
生成部分的结果包含超单元矩阵。
象其他分析一样,用户要定义分析类型和分析设置,施加边界条件,定义载荷步,开始计算。
如何完成这些工作见下面的叙述:
1.进入求解器:
Command:
/SOLU
GUI:
MainMenu>Solution
2.定义分析类型和分析设置:
分析类型——选择生成超单元使用下列方法:
Command:
ANTYPE
GUI:
MainMenu>Solution>-AnalysisType-NewAnalysis
新的分析或重启动——如果是开始一个新的分析时,只要指定分析类型(如上所述)即可。
如果是重启动计算,必须在ANTYPE命令中设定STATUS=REST(MainMenu>Solution>-AnalysisType-Restart)。
如果要另外施加载荷时,可以用重启动。
(重启动时,初始运算后的Jobname.EMAT,Jobname.ESAV和Jobname.DB文件要存在。
)
超单元矩阵文件名——指定超单元矩阵文件名(Sename)。
程序将自动添加后缀.SUB,因此完整的文件名是Sename.SUB。
缺省是使用工作文件名[/FILENAME]定义超单元矩阵文件名,可以使用以下命令:
Command:
SEOPT
GUI:
MainMenu>Solution>AnalysisOptions
要生成的矩阵——可以指定仅生成刚度矩阵(或传导矩阵,电磁系数矩阵);生成刚度和质量矩阵(或热传导矩阵等);生成刚度,质量和阻尼矩阵。
质量矩阵用于结构动力学分析和在使用部分有惯性载荷的情况下。
在热分析中,只有瞬态热分析才用到热传导矩阵。
对于其他分析和阻尼矩阵也大同小异。
用SEOPT命令或其GUI路径来定义。
输出矩阵——这个选项允许输出超单元矩阵。
可以指定输出矩阵和载荷向量,也可以只输出载荷向量。
缺省值是不输出任何矩阵。
要输出矩阵,用SEOPT命令或其相应的GUI路径。
质量矩阵形成——只在想生成质量矩阵时使用。
用户可以选择缺省生成(取决于所用单元类型)或集中质量近似。
对于绝大多数情况,推荐使用缺省生成的方式。
但是,在极薄构件的分析中,如细长杆或极薄壳体,集中质量近似将得到更好的结果。
用下列方法指定集中质量近似:
Command:
LUMPM
GUI:
MainMenu>Solution>AnalysisOptions
3.用下列方法定义主自由度:
Command:
M
GUI:
MainMenu>Solution>MasterDOFs>Define
在子结构中,主自由度有四种作用:
a.它们作为超单元与非超单元的边界。
应保证将超单元与非超单元接触的结点自由度都定义为超单元(在M命令中Lab=ALL),如图4-1所示。
当模型中只有超单元时同样要定义主自由度。
b.如果在动力学分析中使用超单元,那么主自由度规定了结果的动力学特性。
在ANSYSStructuralAnalysisGuide第三章的“MatrixReduction”中有所说明。
c.如果在使用部分要施加约束[D]或集中力[F]时,这些位置结点的自由度也要定义为主自由度。
d.在大位移情况下[NLGEOM,ON](MainMene>Solution>AnalysisOptions)的使用部分需要主自由度,或者在使用SETRAN命令(MainMenu>Preprocessor>Create>Elements>-Superelements-ByCSTranfer)时。
在这些时候,所有主自由度的结点都要定义6个方向的自由度(UX,UY,UX,ROTX,ROTY,ROTZ)。
4.施加边界条件。
在生成部分可以施加所有的载荷类型,但有以下几点情况需要注意:
●程序将生成一个包括所有施加的载荷的等效载荷向量。
每个载荷步一个载荷向量将写入超单元矩阵文件中。
载荷向量的最大允许值是31个。
●在生成部分可以使用非零的自由度约束并作为载荷向量的一部分。
(在扩展部分,如果被扩展的载荷步中有非零的自由度约束时,数据库中必须有相应的自由度数值。
如果没有的话,自由度约束就要在扩展部分重新定义。
●自由度约束和集中载荷的施加可以推迟到使用部分,但在这些位置的主自由度一定要先定义好。
●同样,线或角加速度的施加也可以推迟到使用部分,但只有在生成质量矩阵时。
如果在使用部分要旋转超单元时,推荐使用这种作法,因为此时载荷向量的方向是“冻结”的,它随着超单元旋转。
●Maxwell力的标志通常用于电磁分析中,用来标记计算哪个单元面上的电磁力分布。
这个标志在电磁子结构分析中无效,因此不要使用。
注——如果生成质量矩阵,建议在使用部分对主自由度(在生成部分定义)施加约束。
这样就保证所有的质量都包含在子结构中。
5.定义载荷步选项。
子结构生成部分只能使用动力选项(阻尼)。
阻尼(动力选项)——只在生成阻尼矩阵时可用。
指定质量(alpha)阻尼使用下列方法:
Command:
ALPHAD
GUI:
MainMenu>Solution>Time/Frequenc>Damping
指定刚度(beta)阻尼使用下列方法:
Command:
BETAD
GUI:
MainMenu>Solution>Time/Frequenc>Damping
指定与材料有关的beta阻尼使用下列方法:
Command:
MP,DAMP
GUI:
MainMenu>Preprocessor>MaterialProps>-Constan-Isotropic
MainMenu>Preprocessor>MaterialProps>Polynomial
表4-1子结构中可以施加的载荷
6.存储数据库的备份文件。
注——这样做的目的是需要在扩展部分使用同样的数据库文件。
用下列方法完成本步操作:
Command:
SAVE
GUI:
UtilityMenu>File>SaveasJobname.db
7.开始计算:
Command:
SOLVE
GUI:
MainMenu>Solution>CurrentLS
计算结果包括超单元矩阵文件,Sename.SUB,Sename是通过[SEOPT]指定的文件名或是工作文件名[/FILENAME]。
矩阵文件包括根据施加的载荷计算出的载荷向量。
(如果没有施加载荷,载荷向量将为零。
)
8.如有另外的载荷步,重复步骤7来生成其他的载荷向量。
载荷向量的号码是递增的,并添加到同一个超单元矩阵文件内。
关于多载荷步的其他方法见ANSYSBasicAnalysisProceduresGuide。
9.退出SOLUTION:
Command:
FINISH
GUI:
MainMenu>Finish
使用部分:
使用超单元
使用部分可以是任何ANSYS分析类型(FLOTRAN和显式动力分析除外)。
和普通分析的区别就是一个或几个单元是前面生成的超单元。
每个单独的分析指南中都有做不同分析的详细介绍。
在这一部分,我们主要介绍如何将超单元变成模型的一部分。
这个过程有以下几个步骤:
1.清除数据库并指定一个新的工作文件名。
2.建立模型。
3.施加边界条件并求解。
第一步:
清除数据库并指定一个新的工作文件名。
使用部分包含新的模型和新的边界条件。
因此,第一步是清除现存的数据库。
这与退出并重新进入ANSYS的效果是一样的。
清除数据库用下列方法:
Command:
/CLEAR
GUI:
UtilityMenu>File>Clear&StartNew
缺省情况下,清除数据库就会重新读入START.ANS文件。
(可以改变这个设置)
注:
如果通过命令行输入来清除数据库时,在/CLEAR命令行中不能有其他的命令。
新定义的文件名要与生成部分使用的文件名不同。
这样,生成部分的文件就不会被覆盖。
用下列方式之一定义新的工作文件名:
Command:
/FILNAME
GUI:
UtilityMenu>File>ChangeJobname
第二步:
建立模型
本步是在PREP7中实现的。
主要完成以下任务:
1.定义MATRIX50(超单元)为一种单元。
用以下方法:
Command:
ET
GUI:
MainMenu>Preprocessor>ElementType>Add/Edit/Delete
2.定义其他非超单元的单元类型。
非线性可以使用,取决于进行分析的类型。
3.定义非超单元的单元实参和材料特性。
非线性可以使用,取决于进行分析的类型。
4.定义非超单元的几何形状。
在定义与超单元接触部分时应非常注意。
其结点位置要精确重合。
(见图4-3)
图4-3超单元与非超单元的接触处结点应与主自由度精确重合
共有三种方法保证结点重合:
●使用与生成部分同样的结点号码。
●在生成部分的接触部分结点和使用部分的接触结点使用相同的结点号码增值(或平移)。
(使用SETRAN,在第五步中说明)
●将这两部分结点所有的自由度固连起来。
(用CP系列命令)在不能使用前两种方法时,这种方法是有效的。
定义自由度固连可以用下列方法:
Command:
CP
GUI:
MainMenu>Preprocessor>Coupling/Ceqn>CoupleDOFs
如果超单元与其他单元不相连时,在使用部分可以不定义任何单元。
5.用正确的单元类型定义超单元,读入超单元矩阵。
选择正确的单元类型:
Command:
TYPE
GUI:
MainMenu>Preprocessor>-Modeling-Create>Elements>ElemAttributes
用下列方法读入超单元矩阵(可能要先用其他命令修改矩阵,见后):
Command:
SE
GUI:
MainMenu>Preprocessor>Create>Elements>-Superlements->From.SUBFile
a.如果模型中不包含非超单元,或是包含非超单元但接触处的结点号与主自由度结点号一致,那么可以用SE命令直接读入超单元:
TYPE,…!
单元类型号
SE,GEN!
从文件GEN.SUB中读入超单元
SE命令的文件名域表示超单元矩阵的文件名。
扩展名.SUB是给定的,因此整个文件名就是Sename.SUB(GEN.SUB如上例)。
超单元就给定下一个可用的单元号。
b.如果模型中有非超单元存在,并且接触处的结点号与主自由度的结点号是有一个偏移量的话,就必须先用新的结点号生成一个新的超单元矩阵,然后读入新的矩阵。
用下列方法生成新的超单元矩阵:
Command:
SETRAN
GUI:
MainMenu>Preprocessor>Create>Elements>-Superelements-ByCSTransfer
MainMenu>Preprocessor>Create>Elements>-Superelements-ByGeomOffset用下列方法读入新的矩阵:
Command:
SE
GUI:
MainMenu>Preprocessor>Create>Elements>-Supreelements-From.SUBFile
例如,给出超单元矩阵文件GEN.SUB和新的结点偏移量为2000,命令如下:
SETTRAN,GEN,,2000,GEN2,SUB!
生成新的超单元GEN2.SUB,偏移
量为2000
TYPE,…!
单元类型号
SE,GEN2!
读入新的超单元文件GEN2.SUB
c.如果模型中包含非超单元而且接触处结点与主自由度结点无任何关系(一般是结点自由生成的情况),那么先看下面的注意事项:
注意:
生成部分的主自由度的结点号往往会覆盖使用部分的模型结点号。
这样,读入超单元将覆盖使用部分的模型结点。
为了避免这种覆盖,在读入超单元前使用结点号偏移。
在这种情况下,在使用SE命令前先存储数据库文件。
因此,应该先存储数据库文件[SAVE],再用SETRAN命令用新的结点偏移量生成新的超单元矩阵,最后用SE命令读入新的矩阵。
用CRINTF命令(MainMenu>Preprocessor>Coupling/Ceqn>CoincidentNodes)将接触处的结点连接。
例如,给出超单元矩阵文件GEN.SUB:
*GET,MAXNOD,NODE,,NUM,MAX!
MAXNOD=最大结点号
SETRAN,GEN,,MAXNOD,GEN2,SUB!
生成新的超单元,结点偏移量为
MAXNOD,文件名为GEN2.SUB
SE,GEN2!
读入新的超单元
NSEL,…!
选择接触处的所有结点
CPINTF,ALL!
固连所有结点的所有自由度
NSEL,ALL
d.如果要对超单元进行移动或拷贝到不同的位置,或进行镜向操作,必须用SETRAN命令SESYMM命令(MainMenu>Preprocessor>Create>Elements>
ByReflection),并给出正确的结点偏移量,生成新的超单元矩阵文件,然后用SE命令读入新的矩阵。
连接超单元与非超单元同样用上面的方法——用相同的结点号,结点偏移量,或用CPINTF命令。
注——如果用SETRAN命令将超单元传递到不同的坐标系中,缺省是超单元的主自由度随之旋转。
这一点在初始的超单元主自由度发生旋转时很有用,比如旋转到柱坐标系中。
(在这种情况下,传递不影响超单元刚度矩阵。
)如果初始超单元没有结点发生旋转,那么传递的超单元也无须旋转结点。
用户可以通过设定SETRAN命令的NOROT域为1来防止结点旋转。
(在这种传递中,超单元的刚度矩阵和载荷向量由程序自动修改)。
6.用图形显示和列表功能验证超单元的位置是否正确。
超单元用轮廓线表示,数据在生成部分写到矩阵文件中。
要生成图形显示,用下列命令:
Command:
EPLOT
GUI:
UtilityMenu>Plot>Elements
要生成列表,用下列命令:
Command:
SELIST
GUI:
UtilityMenu>List>Other>SuperelemData
7.存储整个模型文件:
Command:
SAVE
GUI:
UtilityMenu>File>SaveasJobname.db
退出PREP7:
Command:
FINISH
GUI:
MainMenu>Finish
第三步:
施加边界条件并求解。
本步在求解器中完成。
取得使用部分结果的过程取决于所做的分析类型。
以上提到,可以在绝大多数分析中使用超单元。
用户应当有相应的通过生成部分生成的矩阵。
例如,如果要做结构动力学分析,必须有质量矩阵。
具体过程如下:
1.进入SOLUTION。
Command:
/SOLU
GUI:
MainMenu>Solution
2.定义分析类型和分析选项。
对于大转动分析,打开大位移效果[NLGEOM,ON],并正确定义非线性分析的子步数。
3.在非超单元上施加边界条件。
主要包括自由度约束和对称边界,集中载荷,平面载荷,体载荷,和惯性载荷。
注意惯性载荷只有在通过生成部分生成了质量矩阵时才生效。
注——对大转动分析,在本步中要施加正确的约束条件。
4.用以下方法施加超单元载荷向量:
Command:
SFE
GUI:
MainMenu>Solution>-Loads-Apply>LoadVector>ForSuperelement
在超单元矩阵文件中,每个载荷步对应一个载荷向量,用参考号来区别。
如,
SFE,63,1,SELV,,0.75
在63号单元上施加载荷向量,号为1,比例系数为0.75。
因此,ELEM域代表超单元的单元号,LKEY域代表载荷向量号(缺省为1),Lab是SELV,VAL1代表比例系数(缺省为0)。
(参看SFE命令)
注——载荷向量的方向是固定在超单元上的,因此如果超单元旋转了,载荷向量就随之旋转。
对于自由度方向也是如此(UX,UY,ROTY等),它们同样随着超单元的旋转而旋转(除非SETRAN命令中NOROT=1,此时结点坐标系不旋转)。
5.定义与分析类型相适应的载荷步选项。
注——用MATRIX50超单元时不要用PCG求解器。
6.开始计算:
Command:
SOLVE
GUI:
MainMenu>Solution>CurrentLS
本步计算包括非超单元的完整解和超单元的凝聚解——主自由度解。
非超单元的完整解记录在结果文件中(Jobname.RST,RTH或RMG),可以进行普通的后处理操作。
凝聚解记录在文件Jobname.DSUB中。
可以通过如下方法查看这个文件:
Command:
SEDLIST
GUI:
MainMenu>GeneralPostproc>ListResults>SuperelemDOF
UtilityMenu>List>Results>SuperelemDOFSolu
如果想得到超单元中所有自由度的解,就要用到扩展部分。
下面还会说明。
7.退出SOLUTION。
Command:
FINISH
GUI:
MainMenu>Finish
扩展部分:
在超单元中扩展求解结果
扩展部分从使用部分的凝聚解计算出整个超单元的完整解。
下面说明扩展部分的过程。
本部分要求生成部分的.EMAT,.ESAV,.SUB,.TRI,.DB和.SELD文件,使用部分的.DSUB文件存在。
如果在使用部分中使用了结点偏移,在扩展部分中将自动计入。
1.清除数据库。
相当于退出并重新进入ANSYS。
用下列方法:
Command:
/CLEAR
GUI:
UtilityMenu>File>Clear&StartNew
2.将文件名切换到生成部分的文件名。
这样,程序就可以识别扩展部分所用的文件。
用下列方法:
Command:
/FILENAME
GUI:
UtilityMenu>File>ChangeJobname
3.读入生成部分的数据库文件。
用下列方法:
Command:
RESUME
GUI:
UtilityMenu>File>ResumeJobname.db
4.进入SOLUTION。
用下列方法:
Command:
/SOLU
GUI:
MainMenu>Solution
5.激活扩展部分及其选项。
扩展部分开关——选为ON。
Command:
EXPASS
GUI:
MainMenu>Solution>ExpasionPass
被扩展的超单元名——指定SENAME。
Command:
SEEXP
GUI:
MainMenu>Solution>ExpasionPass>ExpandSuperelem
(完整的文件名假定为Sename.SUB)
使用部分生成的凝聚解文件。
用SEEXP命令(或其相应的GUI路径)指定该文件名。
完整的文件名假定为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 子结构 第四 结构