有限元分析的子结构和子模型方法

子模型分析(Submodel Analysis)与子结构分析(substructural analysis)中具体应用的例子文件 .mac 如下:

子模型(Submodel)

子模型技术-张招

子模型分析主要是针对单个模型或者小型的装配体,为获得模型局部的详细信息,除了对网格进一步细化之外,另一种方法就是将局部分割出来单独计算,即子模型法。

  • 对结构中某一关键部位的仿真结果感兴趣,常见的为应力集中的区域或者出现屈服的位置;
  • 用粗糙的网格求得计算后,选取关键部位重新进行网格的划分,利用粗糙模型中边界条件的解作为所选区域的边界条件,重新计算得到我们所想要的结果;
  • 子模型的应用是基于圣维南原理,即如果实际分布载荷被等效载荷代替以后,应力和应变只在载荷施加的位置附近有改变,因此子模型的原理要求切割边界应远离应力集中区域
  • 子模型方法又称为切割边界位移法或特定边界位移法在,最大的优点是减少运算量,还可以验证网格划分尺寸对结果的影响程度;
  • 子模型目前只能应用于板壳单元和体单元
! http://www.1cae.com/a/ansys/55/ansys-9815.htm
! 子模型应用实例
! 内容:矩形平板中心开孔,承受横向拉力时的应力集中情况
! 由于对称,选取模型的四分之一进行分析
! ------------------------------------
! 建立整体模型
finish
/clear,nostart
/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
! 圆孔板的1/4几何模型
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        
! 施加约束
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                  ! 存储文件VM142.DB
! 后处理导出边界条件
/POST1
SET,1,1
NSORT,S,X,,,3   ! 默认按照 x方向的应力对节点进行降序排列,保留前3位      
PRNSOL,S,COMP   ! 查看前3位节点的应力,其中Sx最大值对应的节点号为18
PLNSOL,S,X
*GET,CRSESTR,NODE,18,S,X    ! 获取18号节点的应力(Sx最大值)
*STATUS         ! 查看参数的值
*DIM,LABEL,CHAR,1,2 ! 字符型数组:1×2
*DIM,VALUE,,1,3     ! 数值型数组:1×3
! 数组赋值
LABEL(1,1) = 'MX STR '
LABEL(1,2) = 'CRS MODEL'
*VFILL,VALUE(1,1),DATA,3018     ! 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
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     
! 选择切割的边界节点
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      !激活边界条件插值(子模型分析).cbdo文件
FINISH
/PREP7
smrt,off
RESUME                !从文件SUBMODEL.DB中读入子模型
/INPUT,,cbdo,,:cb1    ! 从文件SUBMODEL.CBDO中读入插值边界条件,从cb1标签开始读取数据
LSEL,S,LINE,,3        ! 施加其余的边界条件
DL,ALL,,SYMM
FINISH
! 子模型求解
/SOLU    
SOLVE
FINISH
! 提取子模型和理论解的信息
/POST1
SET,1,1
NSORT,S,X,,,3
PRNSOL,S,COMP  
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) = ' 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

子结构(Substructure)

ANSYS 子结构漫谈-张招|ANSYS 子结构-水哥|ANSYS子结构技术-王新敏

也称为超单元分析(superelement analysis)。大型结构往往包含重复性的几何模型,子结构法则把模型简化成一个模块,通过模块的组装,建立起整个模型。然后对模型进行求解,求解完成之后,在通过共用界面的结果映射到单个模型里面,进行对单个模型进行求解。

  • 原理就是将大型结构分解成一个个的小型模块,对每一个模块建立单元,这个单元就叫做超单元

  • 超单元必须先进行结构生成分析以生成能够利用的超单元,然后进行计算,其他与普通单元并没有区别;

  • 超单元与普通单元的连接成整体进行求解,然后把超单元的解扩展到形成这个超单元的结构中进行求解,继而获得这个模块的结果;

子结构缩聚方法:利用子结构技术将复杂、庞大的整体模型缩减为普通计算机可以计算的子结构分析模型;

分析流程

  1. 超单元的生成:通过定义主自由度将普通单元凝聚为超单元,主自由度用于定义超单元与模型中其他单元的边界,即通过接触来实现超单元和其他单元的连接;
  2. 超单元的使用:将超单元与模型中其他单元进行连接
  3. 超单元的拓展:得到超单元结果后,开始计算超单元内部凝聚单元的结果;
! http://www.1cae.com/a/ansys/55/ansys-9816.htm
! 子结构技术应用实例
! 尺寸:20×40×2
! 边界:一端固支,另一端承受法向载荷
! 模型:中间切断,前一部分为普通有限元模型,后一部分为超单元模型,二者组装为一个整体
! --------------------------------------------
! 方法1:全部使用普通壳体单元建模,作为对比组
FINISH
/CLEAR,NOSTART
/FILNAME,SUB_STRUCTURAL
/PREP7
SMRT,OFF
!定义单元类型:壳单元
ET,1,shell63
R,1,2
!定义材料类型
MP,EX,1,201000
MP,PRXY,1,0.3
MP,DENS,1,7.8E-9
!建立几何模型
K,1,0,0,0
K,2,20,0,0
K,3,20,20,0
K,4,20,40,0
K,5,0,40,0
K,6,0,20,0
A,1,2,3,6
A,6,3,4,5
! 网格划分
lsel,s,loc,y,20
lsel,a,loc,x,0
lesize,all,,,20
allsel,all
type,1
mat,1
mshkey,1
mshape,0,2D
amesh,all
/eshape,1
eplot
save,se_all,db
! 施加约束并求解
/solu
antype,static
nsel,s,loc,y,0
d,all,all,0
allsel,all
nsel,s,loc,y,40
f,all,fz,5
allsel,all
solve
finish
! 后处理
/post1
pldisp
plnsol,s,eqv
plnsol,u,z
finish

! 方法2:上半部分普通壳体单元+下半部分超单元
! --------------------------------------------
!2.1-首先生成超单元GEN.sub
finish
/CLEAR,NOSTART
/FILNAME,GEN
/PREP7
SMRT,OFF
!定义单元类型
ET,1,shell63
R,1,2
!定义材料类型
MP,EX,1,201000
MP,PRXY,1,0.3
MP,DENS,1,7.8E-9
! 几何模型
K,1,0,0,0
K,2,20,0,0
K,3,20,20,0
K,4,0,20,0
A,1,2,3,4
LESIZE,ALL,,,20
allsel,all
! 网格划分
type,1
mat,1
mshkey,1
mshape,0,2D
amesh,all
/eshape,1
eplot
! 子结构分析
/SOLU
ANTYPE,SUBST
SEOPT,GEN   ! 子结构求解控制,超单元名称GEN
! 施加约束
NSEL,S,LOC,Y,0
D,ALL,ALL,0
ALLSEL,ALL
NSEL,S,LOC,Y,20
M,ALL,ALL             ! 建立主自由度,在中间连接的部位建立主自由度
ALLSEL,ALL
SAVE
SOLVE
FINISH

! ----------------------------------------------
!2.2-使用超单元,并和上半部分普通单元耦合,整体求解
!建立模型-上半部分普通单元
/CLEAR,NOSTART
/FILNAME,USE
/PREP7
SMRT,OFF
ET,1,shell63
R,1,2
!定义材料类型
MP,EX,1,201000
MP,PRXY,1,0.3
MP,DENS,1,7.8E-9
! 建立模型
K,1,0,20,0
K,2,20,20,0
K,3,20,40,0
K,4,0,40,0
A,1,2,3,4
LESIZE,ALL,,,20
allsel,all
! 划分网格
type,1
mat,1
mshkey,1
mshape,0,2D
amesh,all
/eshape,1
eplot
save
! 下半部分使用超单元
ET,2,MATRIX50   ! 超单元
TYPE,2
SETRAN,GEN,,450,GEN_1   ! 新建超单元GEN_1,节点编号从450开始
se,GEN_1 
eplot
! 超单元和普通单元耦合
nsel,s,loc,y,20
nplot
cpintf,all                             ! 耦合超单元和普通有限元单元相连接部位的节点
allsel,all
/eshape,1
eplot
finish
! 整体求解
/SOLU
ANTYPE,STATIC
NSEL,S,LOC,Y,40
F,ALL,FZ,5
ALLSEL,ALL
save
SOLVE
FINISH

! ----------------------------------------------
!2.3-超单元扩展,对超单元内部的结果进行拓展求解
/CLEAR,NOSTART
/FILNAME,GEN
RESUME
/SOLU
EXPASS,ON                                
SEEXP,GEN_1,USE                          ! 扩展超单元的结果
EXPSOL,1,1
SOLVE
FINISH
posted @   若澧风  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示