子结构分析技术的求解优化

一、为什么使用子结构分析技术

使用子结构分析技术的主要原因是提高计算效率,尤其是在处理超大规模、复杂的结构时,能够节省计算资源和机时。具体原因可以归纳为以下三点:

非线性分析和重复几何结构分析:

在非线性分析中,模型的线性部分可以单独作为超单元来处理,这样在进行非线性迭代时,线性部分的单元矩阵就不需要重复计算。

对于具有重复几何结构(例如有多个相同结构的支撑或腿部)的模型,可以为重复部分生成超单元,并将其拷贝到不同位置,从而大大节省计算资源。

忽略某些区域的分析:

在结构分析中,如果某些区域对整体响应影响不大,可以将这些区域作为子结构进行分析,而不是在整个模型中进行详细分析。通过这种方式,既节省了计算资源,又能得到近似准确的分析结果。

超大规模问题的求解:

对于计算机系统无法直接处理的大型问题,可以通过子结构技术将问题分块,每块都相对较小,可以在计算机系统的能力范围内完成计算,最后将各块的结果进行合成。

二、子结构分析技术的步骤

子结构分析分为以下三个主要步骤:

生成部分(超单元的创建):

在生成部分,普通的有限元单元被凝聚为一个超单元。凝聚过程通过定义主自由度来实现,主自由度用于定义超单元与其他部分的连接。通过提取模型的动力学特性,得到超单元的刚度矩阵和载荷向量。

使用部分(超单元与整体模型的连接):

在使用部分,将超单元与整体模型进行连接。整个模型可以是一个超单元,也可以是多个超单元与非超单元相连接。使用部分的计算涉及超单元的凝聚(主自由度计算)以及非超单元的完整计算。

扩展部分(超单元自由度的扩展):

在扩展部分,通过将凝聚计算结果扩展,得到整个超单元的自由度响应。如果模型中包含多个超单元,每个超单元都需要单独进行扩展计算,以获得完整的结构响应。

三、子结构分析技术实例命令流

以下是使用子结构分析的完整命令流,包括创建、使用和扩展超单元的步骤。

计算未使用子结构的模型

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

! 计算未使用子结构的模型

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容