ANSYS 仿真命令流模板

1. 常用单元介绍

单元名称 说明 备注
solid185 三维八节点结构实体
solid186 三维二十节点结构实体
solid187 三维十节点四面体结构实体
shell181 有限应变壳
plane182 二维结构实体
plane183 二维八节点结构实体
fluid29 四节点四边形
fluid129 用于模拟fluid29的无限边界条件的吸声效果 无限边界
fluid30 8节点六面体
fluid220 20节点六面体
fluid221 10节点四面体
fluid130 用于模拟fluid30 fluid220 fluid221的无限边界吸声效果 无限边界

2. 常用材料(mm-t-s单位制)

序号 材料名称 弹性模量($N/m^{2}$(Pa)) 泊松比 质量密度($kg/m^{3}$) 抗剪模量($N/m^{2}(Pa)$) 张力强度($N/m^{2}$(Pa) 屈服强度($N/m^{2}$(Pa)) 热扩散系数(/Kelven) 比热(J/(Kg.K)) 热导率(W/(m.K))
1 3003 Alloy 6.9E10 0.33 2.70E03 2.70E10 1.10E08 4.14E07 2.3E-05 1.0E03 170
2 3003-0 6.9E10 0.33 2.73E03 2.50E10 1.10E08 4.0E07 2.32E-05 8.93E02 193
3 3003-0,Rod(SS) 6.9E10 0.33 2.73E03 2.50E10 1.05E08 3.6E07 2.3E-05 8.93E02 193
4 3003-H12 6.9E10 0.33 2.73E03 2.50E10 1.30E08 1.25E08 2.32E-05 8.93E02 162

3. 模态分析

3.1 干模态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

!**背景色调为白色
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT !將背景改为白色

Finish !完成前述的所有操作
/Clear !清除所有数据
/Prep7 !前处理
ET,1,Solid186 !7要素.单元类型定义
MP,Ex,1,2e11 !7要素.材料定义.弹性模量
MP,PRXY,1,0.25 !7要素.材料定义.泊松比
Esize
VMESH,1 !网格划分+单元类型赋予+材料赋予
Finish
/solu !求解器
Antype,modal !求解类型
modopt,subsp,20 !求解类型.子空间法.20阶模态
mxpand,20 !求解类型.子空间法.模态扩展.将振型结果写入存储文件
solve !求解
finish
/post1
set,list !列表显示所需要的振型APDL命令流教程

3.2 湿模态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157

!**背景色调为白色
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT !將背景改为白色

/prep7 !进入前处理

/com,*********** 设置液体单元类型 ***********
et,1,fluid220
r,1,2.e-011,0.101325

/com,*********** 设置液体材料属性 ***********

/com,*********** 设置使用的坐标系***********
csys,0
toffst,273.15, ! 设置温度的基准值,℃为273.15
/com,*********** 设置参考温度 ***********
tref,22. ! 环境温度为22℃

/com,*********** 设置水的材料属性 ***********
MP,DENS,1,9.982e-10, ! tonne mm^-3 密度
MP,SONC,1,1482130, ! mm s^-1 声速
MP,VISC,1,1.003e-09, ! MPa s 动力粘度
MP,KXX,1,0.6, ! tonne mm s^-3 C^-1 Isotropic Thermal Conductivity 热导率
MP,C,1,4182000000, ! mm^2 s^-2 C^-1 Specific Heat Constant Pressure,定压比热

/com,*********** 设置不锈钢的材料属性 ***********
Temperature = 'TEMP' ! Temperature
MP,ALPX,2,1.2e-05, ! C^-1 Isotropic Secant Coefficient of Thermal Expansion
MP,RSVX,2,0.00017, ! ohm mm Isotropic Resistivity
MP,EX,2,200000, ! tonne s^-2 mm^-1 Young's Modulus
MP,NUXY,2,0.3, ! Poisson's Ratio
MP,MURX,2,10000, !Isotropic Relative Permeability 各向同性相对渗透率
MP,DENS,2,7.85e-09, ! tonne mm^-3 Density
MP,KXX,2,60.5, ! tonne mm s^-3 C^-1 Isotropic Thermal Conductivity
MP,C,2,434000000, ! mm^2 s^-2 C^-1 Specific Heat Constant Pressure

/com,*********** 设置铝合金的材料属性 ***********
Temperature = 'TEMP' ! Temperature
MP,ALPX,2,2.3e-05, ! C^-1
MPTEMP,,,,,,,,
MPTEMP,1,0
MPTEMP,2,20
MPTEMP,3,100
MPDATA,RSVX,2, ,2.43e-05,2.67e-05,3.63e-05, ! ohm mm
MPTEMP,,,,,,,,
MP,EX,2,71000, ! tonne s^-2 mm^-1
MP,NUXY,2,0.33,
MP,MURX,2,1,
MP,DENS,2,2.77e-09, ! tonne mm^-3
MPTEMP,,,,,,,,
MPTEMP,1,-100
MPTEMP,2,0
MPTEMP,3,100
MPTEMP,4,200
MPDATA,KXX,2, ,114,144,165,175, ! tonne mm s^-3 C^-1
MP,C,2,875000000, ! mm^2 s^-2 C^-1

/com,*********** 设置实体单元类型" ***********
et,2,solid186
keyo,2,2,1 ! 使用完全积分算法

/com,*********** 设置实体与流体的约束 ***********
/com, Real Constant Set For Above Contact Is 4 & 3
*set,tid,4 ! 目标面为4
*set,cid,3 ! 控制面为3
r,tid ! 设置目标面的关键字
r,cid ! 设置控制面的关键字
et,tid,CONTA170 ! 设置目标面接触单元CONTA170
et,cid,CONTA174 ! 设置控制面接触单元CONTA170

/com,*********** 设置接触单元关键字***********
keyopt,cid,10,0 ! 若在载荷步中FKN被重新定义,则在每一载荷步中更新接触刚度
keyo,cid,12,5 ! 绑定接触
keyopt,cid,2,2 ! 多点约束罚函数法
keyopt,tid,5,1 ! 实体-实体约束(无转动自由度约束)
keyopt,cid,4,3 ! on nodal point - normal to target surface (projection-based method)表明使用接触面法线上的点并结合基于投影面的方法做为接触检测点。
keyopt,cid,9,1 ! 不包括初始几何侵入或间隙及平移
keyopt,cid,7,0 ! 单元级时间步长控制:不控制
/com,*********** 设置接触单元实常数***********
rmod,tid,3,10. ! 法向接触刚度系数,确定接触刚度和侵入
rmod,tid,5,0. ! 初始闭合系数,调整初始接触状态
rmod,tid,6,0. ! Pinball区域,绑定接触状态和Pinball区域
rmod,tid,10,0. ! 接触面偏移量,调整初始接触状态
rmod,tid,12,0. ! 切向刚度系数,确定接触刚度
!rmod,tid,36,29 ! WB DSID
rmod,cid,3,10. ! 法向接触刚度系数,确定接触刚度和侵入
rmod,cid,5,0. ! 初始闭合系数,调整初始接触状态
rmod,cid,6,0. !Pinball区域,绑定接触状态和Pinball区域
rmod,cid,10,0. ! 接触面偏移量,调整初始接触状态
rmod,cid,12,0. ! 切向刚度系数,确定接触刚度
!rmod,cid,36,29 ! WB DSID

/com,*********** 设置边界约束***********
cmsel,s,_FIXEDSU
d,all,all
ddele,all,pres ! release the pressure dof for acoustics analysis
nsel,all

/com,***********设置加速度载荷 ***********

*DIM,acelx,TABLE,1,1,1,TIME,
! Time values
acelx(1,0,1) = 1.
! Load values
acelx(1,1,1) = 0.

*DIM,acely,TABLE,1,1,1,TIME,
! Time values
acely(1,0,1) = 1.
! Load values
acely(1,1,1) = 9810.
*DIM,acelz,TABLE,1,1,1,TIME,
! Time values
acelz(1,0,1) = 1.
! Load values
acelz(1,1,1) = 0.
acel,%acelx%,%acely%,%_celz%

/com,***********设置流固耦合面***********
CMBLOCK,_CMACOUSTICFSI45,NODE, 1508
(8i10)

/com,*********** 流固耦合单元信息(选择流体上的单元,不选结构)***********
cmsel,s,_CMACOUSTICFSI45
esel,s,ename,,30
esel,a,ename,,220
esel,a,ename,,221
sf,all,fsi
allsel,all

/com,*********** 创建自由液面(必须需和加速度载荷搭配使用)***********
CMBLOCK,_CMACOUSTICFREE43,NODE, 328
cmsel,s,_CMACOUSTICFREE43
sf,_CMAcousticFREE43,free
allsel,all
/com,*********** 不设置自由液面意味着液体两端均是刚性墙***********

finish

/solu
antype,modal
modopt,damp,24,1.e-002,1000000. !提取前12阶(各自12阶),频率范围:0.01~1000000Hz
mxpand,,,,yes,,no ! 拓展应力、应变的计算结果,但不写入内存
/com,*********** 并行计算选项(可提高计算效率)***********
dmpopt,esav,no ! 计算时不保存元素解以提高计算效率
dmpopt,emat,no ! 计算时不保存元素矩阵以提高计算效率
dmpopt,full,no ! 不保存完整解数据以提高计算效率

OUTRES,ALL,ALL, ! 命令框输出所有子步的所有结果,last表示只最后一个子步的结果
OUTPR,ALL,ALL, ! 指定输出文件Jobname.OUT中包含的结果数据

finish
save,file,db

4. 谐响应分析(正弦振动(模态法))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
!**背景色调为白色
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT !將背景改为白色

!**开始前处理
/prep7 !进入前处理

!定义加速度载荷表,幅值
*DIM,acely,TABLE,7,1,1,FREQ,
! 定义频率值
acely(1,0,1) = 4.
acely(2,0,1) = 10.
acely(3,0,1) = 17.
acely(4,0,1) = 17.1
acely(5,0,1) = 60.
acely(6,0,1) = 60.1
acely(7,0,1) = 100.
!定义加速度g的值(mm/s^2)
acely(1,1,1) = 946.
acely(2,1,1) = 28000.
acely(3,1,1) = 28000.
acely(4,1,1) = 60000.
acely(5,1,1) = 60000.
acely(6,1,1) = 28000.
acely(7,1,1) = 28000.

!定义加速度载荷表,相位角
*DIM,acelyi,TABLE,7,1,1,FREQ,
! 定义频率值
acelyi(1,0,1) = 4.
acelyi(2,0,1) = 10.
acelyi(3,0,1) = 17.
acelyi(4,0,1) = 17.1
acelyi(5,0,1) = 60.
acelyi(6,0,1) = 60.1
acelyi(7,0,1) = 100.
!定义相位角的值(°)
acelyi(1,1,1) = 0.
acelyi(2,1,1) = 0.
acelyi(3,1,1) = 0.
acelyi(4,1,1) = 0.
acelyi(5,1,1) = 0.
acelyi(6,1,1) = 0.
acelyi(7,1,1) = 0.

finish ! 前处理结束

!*********** 模态分析开始 ***********
/solu
antype,modal
!*********** 求解控制***********
modopt,lanb,200,0.,20.
mxpand,,,,yes,,no ! 模态拓展,不写入文件
OUTRES,ALL,ALL, ! 命令框输出所有子步的所有结果,last表示只最后一个子步的结果
OUTPR,ALL,ALL, ! 指定输出文件Jobname.OUT中包含的结果数据
!*********** 定义边界条件固定约束***********
CMSEL,S,spc,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
CMSEL,S,spc2,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
!*********** 定义加速度载荷 ***********
acel,0,0,0 ! 重力加速度设置为0
acel,0,1,0 ! 设置单位加速度,y方向为加速度正方向,
!由于模态分析中载荷不起作用,这个方向是为正弦分析指定方向
!*********** 求解 ***********
solve
finish ! 退出模态分析求解器
!*********** 模态分析结束 ***********

!*********** 谐响应分析开始***********
/solu
antype,harm
!*********** 求解控制***********
hropt,msup,10,1 ! 求解算法为模态法,最大模态取值为10,最小为1
harfrq,3,1000 ! 谐响应频率范围3~1000Hz
nsubst,100 ! 谐响应求解,频率步数
cluster,yes ! 频率点非均值分布,主要集中于结构自振频率附近,计算更准确,幅值较大
hrout,off ! 不在频率点输出各阶模态对总响应的影响
dmprat,0.02 ! 定义结构阻尼
kbc,1 !阶跃加载,0为斜坡加载

!*********** 定义载荷 ***********
acel,0,0,0 !自身重力加速度为0
lvscale,0,1 !自身重力加速度施加载荷,1为比例
dval,1,acc,%acely%,%acelyi%,off!定义加速度施加载荷,1为比例,数值为加速度表中的值,方向为模态分析中的加速度方向
!lvscale,%acely%,1 !自身重力加速度施加载荷,1为比例,数值为加速度表中的值,方向为模态分析中的加速度方向
OUTRES,ALL,ALL, ! 命令框输出所有子步的所有结果,last表示只最后一个子步的结果
OUTPR,ALL,ALL, ! 指定输出文件Jobname.OUT中包含的结果数据
!*********** 求解 ***********
solve
/SOLU
expass,on ! 将应力向节点上进行插值
numexp,all,,,yes ! 拓展结果,计算所有频率上的应力
solve
finish ! 退出谐响应分析求解器
!*********** 谐响应分析结束 ***********
save,file,db ! 保存db格式文件


! /NOPR ! 显示屏不显示下列信息

*get,timesol,active,,time,wall !获取“墙时”,即程序的真实运行时间
/nopr !抑制后续命令的输出
*get,numnode,node,0,count !获取模型中的节点总数
*get,numelem,elem,0,count !获取模型中的单元总数
*get, _MAXELEMNUM, elem, 0, NUM, MAX !获取当前模型中的最大单元编号
*get, _MAXNODENUM, node, 0, NUM, MAX,,,INTERNAL !获取模型中的最大节点编号
*get, _MAXELEMTYPE, etyp, 0, NUM, MAX !获取模型中的最大单元类型编号
*get, _MAXREALCONST, real, 0, NUM, MAX !获取模型中的最大实常数集编号
/gopr ! 恢复之前被抑制的输出显示

/nopr
*dim,direction,CHAR,6,1 ! 定义一个字符型数组 direction,其大小为 6 x 1。该数组用于存储坐标轴和旋转方向
direction(1) = 'X'
direction(2) = 'Y'
direction(3) = 'Z'
direction(4) = 'ROTX'
direction(5) = 'ROTY'
direction(6) = 'ROTZ'
*get,lastLS,active,0,set,LSTP !获取最后一个模态步:
*get,beginset,active,0,set,nset,first,_lastLS !获取开始和结束的步骤:
*get,endset,active,0,set,nset,last,_lastLS !获取结束的步骤:
nummodes = endset - beginset + 1 !计算模态数:
Frequency(HZ) Accleration(m/s2)/(mm/s2)
1 0 2
2 1 8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51

/post1
! 获取模态的总数量
*get,n_modes,active,0,set,nset,first,0

! 输出模态数量
/com, 模态数量 = %n_modes%

! 初始化最大应力值和对应模态
max_stress = 0
max_stress_mode = 0

! 循环遍历所有模态
*do,i_mode,1,n_modes
! 选择当前模态结果
set,i_mode,1

! 初始化当前模态下的米塞斯应力最大值
stress_max = 0

! 获取单元数量
*get,n_elem,elem,0,count ! 获取总单元数量
*do,j_elem,1,n_elem
*get,stress_current,elem,j_elem,eqv ! 获取当前单元的米塞斯应力
stress_max = max(stress_max, stress_current) ! 更新应力最大值
*enddo

! 输出当前模态下的米塞斯应力最大值
/com, 模态 %i_mode% 下的米塞斯应力最大值 = %stress_max%

! 更新全局最大应力和对应模态 gt为大于
*if, stress_max, gt, max_stress, then
max_stress = stress_max
max_stress_mode = i_mode
*endif
*enddo

! 输出所有模态中最大米塞斯应力值和对应模态
/com, 所有模态中最大米塞斯应力值 = %max_stress% ! 最大应力值
/com, 最大应力值所在的模态 = %max_stress_mode% ! 所在模态

! 显示最大应力值所在模态的应力云图
set,max_stress_mode,1 ! 选择最大应力值所在模态
/vis,1 ! 显示图形
plnsol,eqv ! 绘制米塞斯应力云图
/view,1,1 ! 设置视图
/zoom,full ! 全图显示
/title,最大米塞斯应力云图 - 模态 %max_stress_mode% ! 设置标题

! 完成后处理
finish
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/post1
*get, n_modes, active, 0, set, nset ! 获取总模态数

! 初始化用于存储最大应力值和对应模态的变量
*dim, max_stress_per_mode, ARRAY, n_modes
*dim, max_stress_location, ARRAY, n_modes
max_stress_all = 0
max_mode = 0

! 循环遍历每个模态,找到每个模态下的最大米赛斯应力
*do, mode, 1, n_modes
set, mode ! 切换到当前模态

plnsol, S, EQV ! 显示米赛斯应力云图(可以跳过)

! 获取当前模态下的最大米赛斯应力值
*get, max_stress_per_mode(mode), elem, 0, S, EQV, MAX

! 如果当前模态应力值大于全局最大值,更新全局最大值
*if, max_stress_per_mode(mode), gt, max_stress_all, then
max_stress_all = max_stress_per_mode(mode)
max_mode = mode
*endif
*enddo
/com, 最大应力出现在模态: %max_mode% 模态
/com, 最大应力值为: %max_stress_all%
set, max_mode ! 切换到最大应力所在的模态

plnsol, S, EQV ! 显示米赛斯应力云图(Von Mises)
/view,1,1,1 ! 设置视角
/zoom,full ! 自动调整到全屏视图
/title, "最大应力模态下的米赛斯应力云图" ! 设置标题
finish

image 3.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
*get, n_freq_steps, active, 0, set, nset ! 获取总频率步数

! 初始化用于存储最大应力值和对应频率的变量
*dim, max_stress_per_freq, ARRAY, n_freq_steps
*dim, max_stress_location, ARRAY, n_freq_steps
max_stress_all = 0
max_freq = 0

! 循环遍历每个频率步,找到每个频率下的最大米赛斯应力
*do, freq_step, 1, n_freq_steps
set, freq_step ! 切换到当前频率步

PLESOL, S,EQV, 0,1.0 ! 显示米赛斯应力云图(可以跳过)

! 获取当前频率下的最大米赛斯应力值
*get, max_stress_per_freq(freq_step), elem, 0, S, EQV, MAX

! 如果当前频率应力值大于全局最大值,更新全局最大值
*if, max_stress_per_freq(freq_step), gt, max_stress_all, then
max_stress_all = max_stress_per_freq(freq_step)
max_freq = freq_step
*endif
*enddo
SET,,, ,,, ,4
!*
PLESOL, S,EQV, 0,1.0

ds 1.txt

5. 加速度分析(静力分析法)

5.1 不考虑重力

1
2
3
4
5
6
7
8
/solu
antype,static ! 静力分析
acel,0.,30.,0. ! Y轴正方向定义加速度值30
nsubst,1,1,1 ! 定义求解步
time,1.
solve

save,file,db ! 保存db格式文件

5.2 考虑重力

1
2
3
4
5
6
7
8
/solu
antype,static ! 静力分析
acel,0.,30.,-9.81 ! Y轴正方向定义加速度值30,地球重力加速度为9.81,方向为Z轴负方向
nsubst,1,1,1 ! 定义求解步
time,1.
solve

save,file,db ! 保存db格式文件

6. 随机振动(模态法)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
!**背景色调为白色
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT !將背景改为白色

/prep7

!*********** 前处理 ***********
et,1,186
keyo,1,2,1 ! set full integration on SOLID186

et,21,181
keyo,21,3,2 ! set full integration on shell181


/com,*********** Create Remote Point "Internal Remote Point" ***********
! -------- Remote Point Used by "Point Mass" --------
*set,tid,143
*set,cid,142
et,cid,174
et,tid,170
keyo,tid,2,1 ! Don't fix the pilot node
keyo,tid,4,111111
keyo,cid,12,5 ! Bonded Contact
keyo,cid,4,1 ! Deformable RBE3 style load
keyo,cid,2,2 ! MPC style contact

*set,_npilot,382102
_npilot1035=_npilot
type,tid
mat ,cid
real,cid
tshape,pilo
en,317792,_npilot
tshape
/com,*********** Construct Remote Mass Using Remote Attachment ***********
*set,_tid,144
et,_tid,21 ! MASS21 element
type,_tid
mat ,_tid
real,_tid
keyo,_tid,3,0 ! 3d mass with rotary inertia
r,_tid,5.3785e-003,5.3785e-003,5.3785e-003,19.469,8.6418,17.643! 3d 质量和xya坐标
en,317793,382102


finish ! 退出前处理

!*********** 模态分析开始 ***********
/solu
!*********** 求解控制***********
antype,modal
modopt,lanb,20
mxpand,,,,yes,,yes ! 模态拓展,写入文件
!*********** 定义边界条件固定约束***********
CMSEL,S,spc,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
CMSEL,S,spc2,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
!*********** 求解 ***********
slove
finish ! 退出模态分析求解器
!*********** 模态分析结束 ***********

!*********** 随机振动分析开始***********
/solu
antype,spectr ! 分析类型为谱分析
spopt,psd,,yes ! 定义谱分析类型,随机振动为PSD,计算单元解
dmprat,2.e-002 ! 定义结构阻尼
psdcom,0.00 ! 定义功率谱组合,0为阈值,默认为模态分析的全部阶次
PSDUNIT,1,ACCG,9814.56 ! 定义功率谱类型,1为表格序号,ACCG为重力加速度g,9814.56为本地重力加速度值(mm/s^2)
PSDFRQ,1,,10.,50.,300.,482.057051366791,774.596669241484,1244.66595457696 ! 定义功率谱频率范围,1为表格序号,Hz
PSDFRQ,1,,2000.
PSDVAL,1,2.e-002,0.1,0.1,1.5100830606951e-002,2.28035085019827e-003,3.44351919132607e-004 ! 各频率点对应的加速度值,g^2/Hz
PSDVAL,1,5.2e-005
!*********** 定义激励位置及方向***********
CMSEL,S,spc,NODE
D,ALL,UX,1 ! 激励方向为 x 方向
ALLSEL
CMSEL,S,spc2,NODE
D,ALL,UX,1 ! 激励方向为 x 方向
ALLSEL
pfact,1,base ! 计算约束位置的激振参与系数(位移、加速度、速度使用base),力,压力使用note
psdres,disp,rel ! 定义求解结果输出类型(位移disp),结果为相对值(三选一)
psdres,velo,abs ! 定义求解结果类型(速度velo),结果为绝对值
psdres,acel,abs ! 定义求解结果类型(加速度Acel),结果为绝对值
outpr,nsol,all ! 指定输出文件Jobname.OUT中包含的结果数据
!*********** 求解 ***********
solve
finish ! 退出谱分析求解器
!*********** 随机振动分析结束***********
save,file,db ! 保存文件


!*********** 计算节点处的反作用力***********
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/post1
! 获取标准差应力(米塞斯应力)
plnsol, S, SEQV, RMS ! 显示应力的均方根(RMS)值
! 获取节点或单元数量(取决于你的结果类型)
*get, numelems, elem, 0, count
! 定义一个数组存储计算得到的3σ应力
*dim, sigma3, ARRAY, numelems
! 遍历每个单元,计算并存储3σ应力值
*do, i, 1, numelems
*get, rms_stress, elem, i, s, seqv, rms ! 获取当前单元的RMS应力
sigma3(i) = rms_stress * 3 ! 计算3σ应力
*enddo
! 在图形界面显示计算后的3σ应力云图
plnsol, sigma3, seqv ! 显示 Von Mises 3σ应力云图
/view,1,1,1 ! 设置默认视角
/zoom,full ! 自动调整视图到全屏
/title, "3 Sigma Stress Cloud" ! 设置标题

7. 冲击分析(稳态模态法)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

!**背景色调为白色
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT !將背景改为白色

/prep7
!*********** 前处理 ***********

finish ! 退出前处理

!*********** 模态分析开始 ***********
/solu
!*********** 求解控制***********
antype,modal
modopt,lanb,20
mxpand,,,,yes,,yes ! 模态拓展,写入文件
!*********** 定义边界条件固定约束***********
CMSEL,S,spc,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
CMSEL,S,spc2,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
!*********** 求解 ***********
slove
finish ! 退出模态分析求解器
!*********** 模态分析结束 ***********

!*********** 冲击谱分析开始 ***********
/solu
!*********** 求解控制***********
antype,spectr
spopt,sprs !分析类型为单点响应谱分析
dmprat,1.e-002 ! 定义结构阻尼
modd,on,'D:\test\test_files\dp0\SYS-5\MECH\',file ! 模态分析结果所在位置
SED,0,1,0 ! 定义整体激励方向
SVTYP,2,1 ! 定义激励类型,0为速度谱,2为加速度谱,3为位移谱,4为psd谱,谱值比例放大系数为1,比如说用加速度谱,那么这里就需改为9.81
FREQ,5.,60.,68.,90.,1500. ! 激励谱的频率赋值,单个freq命令最多只能写9个值,超过的话可多个freq sv 对应着写
SV,,30.,50.,98.,98.,120. ! 激励谱的频率对应的数值
srss,0.0,disp ! 用srss法模态组合,0为阈值,大于0才参与计算,disp(位移)为要组合的计算结果类型
solve
freq ! 后续还有加载,需要用 freq 命令消除之前的频谱
finish

/solu
spopt,sprs
dmprat,1.e-002 ! 定义结构阻尼
SED,0,1,0
SVTYPE,2,1 ! 定义激励类型,0为速度谱,2为加速度谱,3为位移谱,4为psd谱,比例放大系数为1
FREQ,5.,60.,68.,90.,1500.
SV,,30.,50.,98.,98.,120.
srss,0.0,velo ! 模态组合,0为阈值,大于0才参与计算,velo(速度)为要组合的计算结果类型
solve
freq ! 后续还有加载谱分析,需要用 freq 命令消除之前的
finish

/solu
spopt,sprs
dmprat,1.e-002 ! 定义结构阻尼
SED,0,1,0
SVTYPE,2,1 ! 定义激励类型,0为速度谱,2为加速度谱,3为位移谱,4为psd谱,比例放大系数为1
FREQ,5.,60.,68.,90.,1500.
SV,,30.,50.,98.,98.,120.
srss,0.0,acel ! 模态组合,0为阈值,大于0才参与计算,acel(加速度)为要组合的计算结果类型
!*********** 求解 ***********
solve
freq
finish ! 退出谱分析求解器
!*********** 冲击谱分析结束 ***********

reswrite,file,4,3 ! 写入文件
finish

save,file,db
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

!**背景色调为白色
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT !將背景改为白色

/prep7
!*********** 前处理 ***********

finish ! 退出前处理

!*********** 模态分析开始 ***********
/solu
!*********** 求解控制***********
antype,modal
modopt,lanb,20
mxpand,,,,yes,,yes ! 模态拓展,写入文件
!resvec,on ! 考虑高频模态的残余向量修正
!*********** 定义边界条件固定约束***********
CMSEL,S,spc,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
CMSEL,S,spc2,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
!*********** 求解 ***********
slove
finish ! 退出模态分析求解器
!*********** 模态分析结束 ***********

!*********** 冲击谱分析开始 ***********
/solu
!*********** 求解控制***********
antype,spectr
spopt,sprs !分析类型为单点响应谱分析,激励一次仅作用一个方向
dmprat,1.e-002 ! 定义结构阻尼
!resvec,on ! 考虑高频模态的残余向量修正
SED,0,1,0 ! 定义整体激励方向
SVTYP,2,1 ! 定义激励类型,0为速度谱,2为加速度谱,3为位移谱,4为psd谱,谱值比例放大系数为1,比如说用加速度谱,那么这里就需改为9.81
FREQ,5.,60.,68.,90.,1500. ! 激励谱的频率赋值,单个freq命令最多只能写9个值,超过的话可多个freq sv 对应着写
SV,,30.,50.,98.,98.,120. ! 激励谱的频率对应的数值
finish

!*********** 模态合并***********
/solu
antype,spectr
srss,0.0,disp ! 用srss法模态组合,0为阈值,大于0才参与计算,disp(位移)为要组合的计算结果类型
solve
finish

/solu
spopt,sprs .
srss,0.0,velo ! 模态组合,0为阈值,大于0才参与计算,velo(速度)为要组合的计算结果类型
solve
finish

/solu
spopt,sprs
srss,0.0,acel ! 模态组合,0为阈值,大于0才参与计算,acel(加速度)为要组合的计算结果类型
!*********** 求解 ***********
solve
finish ! 退出谱分析求解器
!*********** 冲击谱分析结束 ***********

!后处理
/POST1
/INPUT,,mcom

reswrite,file,4,3 ! 写入文件
finish

save,file,db

8. 冲击分析(瞬态完全法)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

!**背景色调为白色
/RGB,INDEX,100,100,100, 0
/RGB,INDEX, 80, 80, 80,13
/RGB,INDEX, 60, 60, 60,14
/RGB,INDEX, 0, 0, 0,15
/REPLOT !將背景改为白色

/prep7
!*********** 前处理 ***********

!*********** 定义边界条件固定约束***********
CMSEL,S,spc,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL
CMSEL,S,spc2,NODE
D,ALL,UX,0.,0.,,,UY,UZ,ROTX,ROTY,ROTZ
ALLSEL

finish ! 退出前处理

!*********** 瞬态分析开始 ***********
/solu
!*********** 求解控制***********
antype,trans
TRNOPT,FULL,,,,,HHT !求解方法是完全法,计算方法为fft
nlgeom,on !打开大变形
kbc,1 !阶跃加载
autots,on !打开自动时间步长
NSUBST,1,10,1,OFF !当前时间步是1,最大时间步是10,最小时间步是1
time,1.1e-2 !当前载荷步求解时间
timint,on !打开时间积分

!*********** 定义载荷***********
acel,2000,0,0 !X方向加载2000g
!*********** 定义输出**********
OUTRES,ALL,ALL, ! 命令框输出所有子步的所有结果,last表示只最后一个子步的结果
OUTPR,ALL,ALL, ! 指定输出文件Jobname.OUT中包含的结果数据
solve
finish
save,file,db