ANSYS中的超单元
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ANSYS中的超单元
ANSYS 中的超单元
摘⾃htbbzzg的博客,⽹易从 8.0 版开始,ANSYS 中增加了超单元功能,本⽂通过⼀些实际例⼦,探讨了 ANSYS 中超单元的具体使⽤。
1. 使⽤超单元进⾏静⼒分析
根据 ANSYS 帮助⽂件,使⽤超单元的过程可以划分为三个阶段 (称为 Pass):
(1) ⽣成超单元模型 (Generation Pass)
(2) 使⽤超单元数据 (Use Pass)
(3) 扩展模型 (Expansion Pass)
下⾯以⼀个例⼦加以说明:
⼀块板,尺⼨为 20×40×2,材料为钢,⼀端固⽀,另⼀端承受法向载荷。
⾸先⽣成原始模型 se_all.db,即按照整个结构进⾏分析,以便后⾯与超单元结果进⾏⽐较:
⾸先⽣成两个矩形,尺⼨各为 20×2。
然后定义单元类型 shell63;
定义实常数 1 为: 2 (板厚度)。
材料性能:
弹性模量 E=201000;
波松⽐µ=0.3;
密度ρ=7.8e-9;
单位为 mm-s-N-MPa。
采⽤边长 1 划分单元;
⼀端设置位移约束 all,另⼀端所有 (21 个) 节点各承受 Z 向⼒ 5。
计算模型如下图:
静⼒分析的计算结果如下:
为了后⾯⽐较的⽅便,分别给出两个 area 上的结果:
超单元部分,按照上述步骤操作如下:
(1) ⽣成超单元
选择后半段作为超单元,前半段作为⾮超单元(主单元)。
按照 ANSYS 使⽤超单元的要求,超单元与⾮超单元部分的界⾯节点必须⼀致 (重合),且最好分别的节点编号也相同,否则需要分别对各节点对建⽴耦合⽅程,操作⽐较⿇烦。
实际上,利⽤ ANSYS 中提供的 mesh200 单元,对超单元和⾮超单元的界⾯实体,按照同⼀顺序,先于所有其它实体划分单元,很容易满⾜界⾯节点编号相同的要求。
对于多级超单元的情况,则还要结合其它操作 (如偏移节点号等) 以满⾜这⼀要求。
对于本例,采⽤另⼀办法,即先建⽴整个模型,然后再划分超单元和⾮超单元。
即:将上述模型分别存为 se_1.db (超单元部分) 和 se_main.db (⾮超单元部分) 两个⽂件,然后分别处理。
对于 se_1.db 模型,按照超单元⽅式进⾏处理。
由于模型及边界条件已建⽴,只需删除前半段上的划分,结果就是超单元所需的模型。
然后直接进⼊创建超单元矩阵的操作,⾸先说明⼀下创建超单元矩阵的⼀般步骤:
A 进⼊求解模块:
命令:/Solu
GUI:Main menu -> Solution
B 设置分析类型为“⼦结构或部件模态综合“
命令:ANTYPE
GUI :Main menu -> Solution -> Analysis Type -> New Analysis
选择 Substructuring/CMS (⼦结构或部件模态综合)
C 设置⼦结构选项
命令:SEOPT
GUI: Main menu -> Solution -> Analysis Type -> Analysis Options
设置内容有:
⽅程求解⽅法 (波前法–默认,或稀疏矩阵法–推荐);
要求⽣成的矩阵,可以是:刚度矩阵;刚度和质量矩阵;刚度、质量和阻尼矩阵 (稀疏矩阵法不能⽣成阻尼矩阵);
要求输出到 output 窗⼝的矩阵 (矩阵和载荷⽮量或仅输出载荷⽮量,默认不输出) ;
扩展超单元的⽅法 (后续操作时,对本超单元扩展时使⽤的⽅法),默认是回代法(backsubstitution method),需要存储主⾃由度的三⾓矩阵 (波前法为 sebname.tri,稀疏矩阵法为 sename.LNxx);完全求解⽅法 (Full resolve method 不存储任何三⾓矩阵)。
随着问题规模加⼤,三⾓矩阵可能很⼤;完全求解⽅法不需要三⾓矩阵,但花费时间较长,且不能重启动⼦结构分析 (对于不同的载荷⽮量)。
质量矩阵公式:是否使⽤集中质量矩阵,推荐⽤⼀致质量矩阵。
D 选择主⾃由度
命令:M
GUI: Main menu -> Solution -> Master DOFs -> User Selected -> Define 主⾃由度是超单元和其它单元之间的界⾯,必须确保将超单元与其它单元的界⾯上的所有节点⾃由度定义为主⾃由度。
假如模型中除了超单元外没有其它单元,也必须定义主⾃由度。
在将超单元⽤于动⼒分析时,主⾃由度的动⼒特性应能代表超单元的动⼒特性。
对于在使⽤超单元时将被定义为约束或施加载荷的节点,应该定义为主⾃由度 (如果它们也位于当前的超单元中)。
对于⼤挠度问题或使⽤ SETRAN 命令的情况,主节点的 6 个⾃由度都应作为主⾃由度。
本例中选择超单元外端⾯上所有节点的所有⾃由度作为主⾃由度。
⼀般情况均推荐选择相应主节点的 All ⾃由度。
E 在超单元上施加载荷
作为超单元的结构可以施加任意载荷,但要记住:
程序会⽣成⼀个载荷⽮量,其中包含了施加的所有载荷。
对于每个载荷步,在超单元⽂件中写⼀个等效的载荷⽮量,最多可以写 31 个载荷⽮量。
在超单元结构中可以使⽤⾮零位移约束,并作为载荷⽮量的⼀部分。
求解后对超单元进⾏结果扩展时,对于有⾮零位移的载荷步,其数据库必须匹配,否则需再次施加⾮零位移约束后再进⾏结果扩展。
可以在使⽤超单元时再定义载荷和约束,此时应注意将相应节点选为主⾃由度节点。
同样也可以在使⽤超单元时再定义惯性⼒ (加速度或⾓速度),但在超单元部分要⽣成质量矩阵。
如果在使⽤超单元时需要对其进⾏旋转,推荐这样做,因为超单元的载荷⽮量是随着超单元⼀起转动的。
注意:如果⽣成质量矩阵,推荐在使⽤超单元时再施加约束,但要注意将约束节点选为主⾃由度。
如果要施加加速度载荷,建议再⽣成超单元时施加,⽽不要施加到简缩的质量矩阵上。
对于有⼤转动的问题,推荐在使⽤超单元时再施加约束。
F 设置载荷步选项
在⽣成超单元的阶段,唯⼀有效的载荷步选项是设置阻尼。
以上内容设置完毕,存储模型并求解。
对于本例,⾸先选择新的求解类型:
设置分析选项:
定义主⾃由度:
然后将模型存盘并求解。
求解后将⽣成超单元⽂件 se_1.sub。
(2) 使⽤超单元
使⽤超单元的过程是:
A 建⽴新模型
对于本例,将se_1.db ⽂件存盘,点击File -> Clear & Start New ... 菜单项,修改Jobname 为se_main,,Resume 模型。
此时读⼊的模型仍是个完整的模型,在前处理的 Mesh 下,清除后半段 area 上的⽹格,只保留前半段area 上的⽹格 (以及已经施加的节点 Z 向载荷向载荷)。
图 10 ⾮超单元部分的模型
为了使⽤超单元,除了其它单元类型外,还需要定义单元类型Matrix50 (超单元)。
图 11 定义超单元类型
在对⾮超单元部分建模时,必须确保其界⾯节点与超单元模型的界⾯节点精确匹配且最好节点编号也完全⼀致,否则需要偏移节点编号或在超单元节点和⾮超单元节点之间建⽴耦合,或由⽼的超单元模型创建⼀个新的超单元模型(SETRAN 命令),其界⾯节点与⾮超单元模型相匹配。
对于本例,由于⾮超单元模型与超单元模型都是由同⼀个整体模型修改⽽来,故其界⾯节点的位置和编号都是完全相同的。
B 读⼊超单元矩阵
⾸先设置单元属性为Superelement:
命令:命令:Type
GUI: Main menu -> Preprocessor -> Modeling -> Create -> Elements -> Elem Attributes -> Type -> Superelements
图 12 定义单元属性为超单元
然后读⼊超单元矩阵se_1.sub:
命令:命令:SE
GUI: Main menu -> Preprocessor -> Modeling -> Create -> Elements -> Superelements -> From .SUB File
读⼊se_1.sub ⽂件,⾃动与⾮超单元部分组装到⼀起。
可以通过Utility 菜单的 List -> Other -> Superelem Data 列出超单元 se_1 的数据:
现在应该施加超单元载荷,然后将模型存盘并求解 (⼀般的静⼒求解)。
求解后存盘,再进⾏后处理:
(3) 将结果扩展到超单元部分
如果在⽣成超单元阶段产⽣的.EMAT、、.ESAV、.SUB、、.TRI、.DB、以
及.SEID ⽂件,和使⽤该超单元的模型求解时⽣成的 .DSUB ⽂件都是可⽤的,则可以将结果扩展到超单元部分。
清除当前模型,将Jobname 改为超单元模型⽂件名(se_1),读⼊超单元模型,转换为Solution 模块,激活 ExpansionPass:命令:命令:EXPASS
GUI: Main Menu -> Solution -> Analysis Type -> Expansion Pass
在 EXPASS 表单中,设置: ExpansionPass -> ON
然后读取超单元矩阵 .SUB 、以及⾮超单元模型求解时,为使⽤的超单元模型⽣成的数据⽂件.DSUB:
命令命令: SEEXP
GUI: Main Menu -> Solution -> Load Step Opts -> Single Expand
-> Expand Superelements
然后在SEEXP 表单中分别输⼊超单元⽂件的 .sub ⽂件名和使⽤该超单元的主结构在求解时⽣成的.dsub ⽂件名:
然后进⾏求解 -> solve,求解完毕,可以到后处理查看计算结果。
注意此时并不⽣成.rst ⽂件,但可以直接查看计算结果。
对于超单元部分,相应的位移和 Von Mises 应⼒云图分别见图 18 和图 19。
如果存在完整的结构模型 (例如 se_all.db),则可以显⽰整个结构的结果,具体操作⽅法是:
在将 Jobname 改为 se_1 后,不是读取其本⾝,⽽是 Resume se_all.db,
然后只选择超单元部分的单元和节点,并按照前⾯相同的办法对结果进⾏扩展。
结果扩展完成后,显⽰整个结构的单元和节点,然后进⾏后处理。
进⼊ Post1 后,⾸先执⾏:Data & File Opts -> Read Single Result File -> 选择se_1.rst;再点击 Read Result -> First,从se_1.rst 中读取结果。
然后执⾏:Data & File Opts -> Read Single Result File -> 选择 se_2.rst;再点击Read Result -> First,从 se_2.rst 中读取结果。
读⼊这⼀结果不会删除从 se_1.rst 中读⼊的结果。
然后可以显⽰或列表整个模型的结果:
2. 使⽤超单元进⾏模态分析
使⽤超单元进⾏模态分析的过程同样分为三个阶段:⽣成超单元模型、使⽤超单元数据和扩展超单元模型。
使⽤静⼒分析的同⼀模型,约束条件与静⼒情况相同。
⾸先对整个结构进⾏分析,相应的模态计算结果如下:。