一、为什么使用子结构分析技术
使用子结构分析技术的主要原因是提高计算效率,尤其是在处理超大规模、复杂的结构时,能够节省计算资源和机时。具体原因可以归纳为以下三点:
非线性分析和重复几何结构分析:
在非线性分析中,模型的线性部分可以单独作为超单元来处理,这样在进行非线性迭代时,线性部分的单元矩阵就不需要重复计算。
对于具有重复几何结构(例如有多个相同结构的支撑或腿部)的模型,可以为重复部分生成超单元,并将其拷贝到不同位置,从而大大节省计算资源。
忽略某些区域的分析:
在结构分析中,如果某些区域对整体响应影响不大,可以将这些区域作为子结构进行分析,而不是在整个模型中进行详细分析。通过这种方式,既节省了计算资源,又能得到近似准确的分析结果。
超大规模问题的求解:
对于计算机系统无法直接处理的大型问题,可以通过子结构技术将问题分块,每块都相对较小,可以在计算机系统的能力范围内完成计算,最后将各块的结果进行合成。
二、子结构分析技术的步骤
子结构分析分为以下三个主要步骤:
生成部分(超单元的创建):
在生成部分,普通的有限元单元被凝聚为一个超单元。凝聚过程通过定义主自由度来实现,主自由度用于定义超单元与其他部分的连接。通过提取模型的动力学特性,得到超单元的刚度矩阵和载荷向量。
使用部分(超单元与整体模型的连接):
在使用部分,将超单元与整体模型进行连接。整个模型可以是一个超单元,也可以是多个超单元与非超单元相连接。使用部分的计算涉及超单元的凝聚(主自由度计算)以及非超单元的完整计算。
扩展部分(超单元自由度的扩展):
在扩展部分,通过将凝聚计算结果扩展,得到整个超单元的自由度响应。如果模型中包含多个超单元,每个超单元都需要单独进行扩展计算,以获得完整的结构响应。
三、子结构分析技术实例命令流
以下是使用子结构分析的完整命令流,包括创建、使用和扩展超单元的步骤。
计算未使用子结构的模型
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 计算未使用子结构的模型
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
fini
/output,arch_1,dat
/filnam,arch_1
/PREP7
!!!!!!!!!!!!!!!!!!!!!!!!!!! 建立模型
ET,1,BEAM3 ! 定义梁单元类型
R,1,0.01,1e-4/12,0.1, , , ,
MPTEMP,,,,,,,,
MPTEMP,1,0
MPDATA,EX,1,,2e11
MPDATA,PRXY,1,,0.3
K,1,-5,0,,
K,2,0,3,,
K,3,5,0,,
LARC,1,3,2
K,4,-2,0,,
K,5,-2,6,,
K,6,2,0,,
K,7,2,6,,
LSTR,4,5
LSTR,5,7
LSTR,7,6
lsel,s,line,,1
lsel,a,line,,2
lsel,a,line,,4
LSBL,1,all
allsel,all
LSTR,5,8
LSTR,7,9
!!!!!!!!!!!!!!!!!!!!!!!!!!!! 划分网格
TYPE, 1
MAT, 1
REAL, 1
ESYS, 0
SECNUM,
ESIZE,0.2, ,
LMESH,all
allsel,all
!!!!!!!!!!!!!!!!!!!!!!!!!!!! 施加约束
nsel,s,loc,y,0
D,all, , , , , ,ALL, , , , ,
allsel,all
!!!!!!!!!!!!!!!!!!!!!!!!!!!! 施加载荷
lsel,s,loc,y,6
esll,s
SFBEAM,all,1,PRES,1000, , , , , ,
allsel,all
save
FINISH
!!!!!!!!!!!!!!!!!!!!!!!!!!!! 求解
/SOLU
SOLVE
fini
计算使用子结构的模型
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! 计算使用子结构的模型
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
fini
/clear
/output,matrix50,dat
/filnam,matrix50
/PREP7
ET,1,BEAM3 ! 定义梁单元类型
R,1,0.01,1e-4/12,0.1, , , ,
MPTEMP,,,,,,,,
MPTEMP,1,0
MPDATA,EX,1,,2e11
MPDATA,PRXY,1,,0.3
K,1,-2,2.635325,,
K,2,2,2.635325,,
K,3,2,6,,
K,4,-2,6,,
LSTR,1,4
LSTR,4,3
LSTR,3,2
TYPE,1
MAT,1
REAL,1
ESYS,0
SECNUM,
ESIZE,0.2
LMESH,all
lsel,s,loc,y,6
esll,s
SFBEAM,all,1,PRES,1000, , , , , ,
allsel,all
fini
/SOLU
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 定义子结构分析
ANTYPE,SUBSTR ! 设置为子结构分析类型
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 定义超单元的文件名以及输出矩阵和载荷向量
SEOPT,matrix50,1,1,0,0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 设置为集中质量矩阵
LUMPM,0
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 定义主自由度
nsel,s,loc,y,2.6,2.7
M,all,ALL, , ,
allsel,all
save
SOLVE
fini
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 进行子结构分析计算
fini
/clear
/output,arch_2,dat
/filnam,arch_2
/PREP7
ET,1,BEAM3 ! 定义梁单元类型
ET,2,MATRIX50 ! 定义超单元类型
R,1,0.01,1e-4/12,0.1, , , ,
MPTEMP,,,,,,,,
MPTEMP,1,0
MPDATA,EX,1,,2e11
MPDATA,PRXY,1,,0.3
K,1,-5,0,,
K,2,0,3,,
K,3,5,0,,
LARC,1,3,2
K,4,-2,0,,
K,5,-2,4,,
K,6,2,0,,
K,7,2,4,,
LSTR,4,5
LSTR,7,6
LSBL,1,all,,keep,delete
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 定义并导入超单元
TYPE,2
SE,matrix50,,,0.0001,
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 定义非超单元
TYPE,1
MAT,1
REAL,1
ESIZE,0.2,
LMESH,all
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 建立超单元与非超单元的连接
nummrg,node,0.001
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 施加约束
nsel,s,loc,y,0
D,all, , , , , ,ALL, , , , ,
allsel,all
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 施加载荷
SFE,1,1,SELV, ,1,
save
fini
/SOLU
SOLVE
fini
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 对超单元进行扩展
fini
/clear
/output,matrix50,dat,,append
/filnam,matrix50
resume
/solu
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 扩展子结构结果
expass,on
seexp,matrix50,arch_2
outres,all,all
expsol,1,1
solve