概述
目 录
- Blog Links
- 一、前言
- 二、结构分析
- 2.1 结构分析类型
- 2.2 阻尼定义
- 2.3 求解方法
- 三、基本概念
- 3.1 荷载分类
- 3.2 荷载步/子步/平衡迭代
- 3.2.1 荷载步
- 3.2.2 子步
- 3.2.3 平衡迭代
- 3.3 时间参数
- 3.4 加载方式
- 3.5 荷载步选项
- 四、施加荷载
- 4.1 施加DOF约束
- 4.2 施加集中力
- 4.3 施加表面荷载
- 4.4 施加体积荷载
- 4.5 施加特殊荷载
- 五、创建荷载步文件
- 六、有限元模型求解
- 6.1 指定求解方法
- 6.2 求解控制对话框
- 6.3 多荷载步的求解
- 6.3.1 实例
- 6.4 重启动分析
- 6.5 求解前预估
- 七 输出设置
- 7.1 设置场输出
- 7.2 设置历史输出
- 八、求解实例
- 8.1 模态分析
- 8.2 预紧工况分析
- 8.3 静力工况分析
- 十、尾声
- 九、参考文献
Blog Links
-
DalNur | 博客总目录
-
ANSYS 有限元分析 概述
-
ANSYS 有限元分析 坐标系/工作平面
-
ANSYS 有限元分析 几何建模
-
ANSYS 有限元分析 网格划分
-
ANSYS 有限元分析 选择与组件
-
ANSYS 有限元分析 修改与编辑
-
ANSYS 有限元分析 接触分析
-
ANSYS 有限元分析 加载/求解/输出
-
ANSYS 有限元分析 后处理 General Postproc
-
ANSYS 有限元分析 后处理 结点解与单元解
-
ANSYS 有限元分析 命令流 实例
-
ANSYS 静力 分析实例 悬臂梁
-
nCodeDL 高周疲劳 分析实例 悬臂梁
一、前言
有限元分析的主要 目的 是检查结构或构件对一定荷载条件的响应。因此,在分析中,指定合适的荷载条件是关键的一步。在 ANSYS 程序中,可以用各种方式对模型施加荷载,而且可以借助荷载步选项,可以控制在求解中荷载如何使用。
为什么要加载/设置边界条件? 不加载,你闲的没事建模玩啊,不加载,你让求解器算啥? 算刚体模态啊!
因为,有限元模型所确定的偏微分方程组如若不指定边界条件,相当于没有给定定解条件,在数学上,只能求出带若干个积分常数的通解,通常情况下,通解不具有工程意义,因此,需要结合所分析问题,设定有限元模型的力的边界条件和位移边界条件,统称为设置边界条件,又可称为加载。(不要把加载理解的太狭隘,广义加载,广义加载,广义加载。)
所谓 加载 即为有限元模型设置边界条件,边界条件分为力的边界条件和位移边界条件。因此,我们通常所说的荷载实际上有更为广泛的含义,不仅仅是力,还可以是位移、速度、加速度、温度等等,即广义力。
一切能引起结构内力和变形的原因,都可视为荷载,它们被统称为 广义荷载/广义力。
在建立有限元模型之后,就可以根据结构在工程实际中的应用情况为其制定位移边界条件和载荷,并选择适当的求解器进行求解。在 ANSYS 中,载荷包括边界条件和外部作用力,即位移边界和力边界。
ANSYS 能够求解由有限元方法建立的联立方程,求解的结果包括:节点的自由度解,为基本解;原始解的导出解,为单元解。单元解通常是在单元的积分点上计算出来的。
施加载荷和求解过程是 ANSYS 有限元分析中的一个非常重要的组成部分,主要包括确定分析类型和分析选项、施加载荷到几何模型/有限元模型、确定载荷步选项、选择求解的方式和开始求解分析运算等内容。
二、结构分析
Structural analysis is probably the most common application of the finite element method. The term structural (or structure) implies not only civil engineering structures such as bridges and buildings, but also naval, aeronautical, and mechanical structures such as ship hulls, aircraft bodies, and machine housings, as well as mechanical components such as pistons, machine parts, and tools.
注:严格上讲,英文段首不该缩进,但是没办法,强迫症,为了和中文看起来更协调,我缩进了,哈哈。
2.1 结构分析类型
在 ANSYS 中,结构分析主要包括: 结构静力分析、模态分析、谐响应分析、瞬态动力学分析、谱分析、屈曲分析 和显示动力学分析。
You can perform the following types of structural analyses: Static Analysis、Modal Analysis 、Harmonic Analysis、Transient Dynamic Analysis 、Spectrum Analysis、Buckling Analysis 和 Explicit Dynamic Analysis.
Several special-purpose structural analysis capabilities are available: Fracture mechanics, Composites, Beam analyses and cross sections.
The primary unknowns (nodal degrees of freedom) calculated in a structural analysis are displacements. Other quantities such as strains, stresses, and reaction forces are then derived from the nodal displacements.
- ANTYPE 命令
使用功能: Specifies the analysis type and restart status.。
使用格式: ANTYPE,Antype,Status,LDSTEP,SUBSTEP,Action,–,PRELP 。
参数说明: Antype 为分析类型,默认值为上一次指定的分析类型,若没有指定,则为结构静力分析。
Status 指定分析的状态,它有两个分析选项:NEW 指定一次新的分析 (默认设置) 和 REST 指定为前一次分析的重启动。
Analysis type | Description |
---|---|
STATIC or 0 | Perform a static analysis. |
BUCKLE or 1 | Perform a buckling analysis. Implies that a previous static solution was performed with prestress effects calculated (PSTRES,ON). |
MODAL or 2 | Perform a modal analysis. |
HARMIC or 3 | Perform a harmonic analysis. |
TRANS or 4 | Perform a transient analysis. |
SUBSTR or 7 | Perform a substructure analysis. |
SPECTR or 8 | Perform a spectrum analysis. Implies that a previous modal analysis was performed. |
SOIL or 9 | Perform a soil analysis including geostatic stress equilibrium or consolidation. |
2.2 阻尼定义
2.3 求解方法
The ANSYS, Inc. family of products uses the h-method for solving structural problems. The h-method can be used for any type of analysis.
本文仅讨论结构分析中的各种加载求解问题。
三、基本概念
有限元分析的主要目的是检查结构或构件对一定载荷条件的响应。给定荷载 (力或位移) 相当于给微分方程组以定解条件,由此便可确定积分常数。
3.1 荷载分类
在 ANSYS 中,载荷包括所有边界条件以及外部或内部作用效应,可以施加在实体模型 (如关键点、线、面和体) 或有限元模型 (结点和单元) 上。
若是在实体模型上施加载荷,ANSYS 求解时会自动将这些载荷转换到相应的结点和单元上。如无特殊需求,荷载尽量施加在有限元模型上。
在 ANSYS 中,载荷包括边界条件和外部作用力。实际上,ANSYS 的功能就是分析有限元模型在不同外部作用力以及不同边界条件作用下的响应。对于不同分析类型,载荷可分为以下几种不同种类:
分析学科类型 | 荷载的表现形式 |
---|---|
结构分析 | 力、压力、重力、位移边界条件、热应力 |
流体分析 | 速度、压力 |
热力分析 | — |
磁场分析 | — |
电场分析 | — |
用户可以根据要进行分析的内容,来重点掌握某类分析所对应的载荷,对其他分析类型的载荷及其加载方式只作简单了解即可。
为了真实地反映实际物理情况,从物理特性方面,ANSYS 的载荷分为 6 大类: 位移 (DOF) 约束、力 (集中载荷)、表面载荷、体积载荷、惯性力和耦合场载荷。
荷载类型 | 说明 | 示例 |
---|---|---|
自由度约束 DOF Constraint | 某些自由度为给定的已知值 | 结构分析中指定结点位移或者对称边界条件等 热分析中指定结点温度等 |
集中荷载 | 施加于模型结点上的集中载荷 | 结构分析中的力和力矩 热分析中热流率 磁场分析中的电流 |
表面荷载 | 施加于某个表面的分布载荷 | 结构分析中的压力 热分析中的对流量和热通量 |
体积荷载 | 施加在体积上的荷载或者场载荷 | 结构分析中的温度 热分析中的内部热源密度 磁场分析中的磁通量 |
惯性荷载 | 由物体惯性引起的载荷 | 重力加速度引起的重力 角速度引起的离心力 主要在结构分析中使用 |
耦合场荷载 | 可以认为是以上载荷的一种特殊情况 从一种分析得到的结果用作另一种分析的载荷。 | — |
3.2 荷载步/子步/平衡迭代
载荷步、子步和平衡迭代是控制加载求解过程的三个载荷时间历程节点。这些概念主要用于非线性分析或载荷随时间变化的问题。
根据问题的特点,可以将加载过程分为若干个阶段进行,每一个阶段则作为一个载荷步。比如做弹塑性分析时,可以通过试算,初步估计开始屈服时的载荷,那么这个荷载可以作为第一个加载步,后续的载荷作为第二个加载步。
为了保证计算收敛和结果精度 (特别是在非线性分析时),往往把一个载荷步划分为若干个荷载子步,每个子步施加的载荷为该子步步长和整个载荷步长之比乘以该载荷步的载荷增量值。若子步数过多,计算时间会很长;若子步数太少,会导致计算不收敛。因此,软件要求用户根据问题的特点,设置最大和最小子步数,以平衡计算时间、收敛性和计算精度。当软件判断计算不收敛时,会减小计算步长 (增加子步数),若软件判断收敛精度足够时,会增大步长 (减小子步数),但均以用户设置为界限。
3.2.1 荷载步
载荷步 (load step) 仅仅是为了获得解答的载荷配置。在线性静态或稳态分析中,可以对不同的载荷步施加不同的载荷组合;在瞬态分析中,多个载荷步会加到载荷历程曲线的不同区段。
A load step is a configuration of loads for which a solution is obtained. In a linear static or steady-state analysis, you can use different load steps to apply different sets of loads - wind load in the first load step, gravity load in the second load step, both loads and a different support condition in the third load step, and so on. In a transient analysis, multiple load steps apply different segments of the load history curve.
This figure shows a load history curve requiring three load steps: The first load step is for the ramped load, the second load step is for the constant portion of the load, and the third load step is for load removal.
一般荷载步只在两种分析中用到:静力分析和瞬态分析。在静力分析中,荷载步中可以包含子步。比如:一个载荷分为 1000 个荷载步来加载,其中每个荷载步都只有 1 个子步;另一种方式是 1 个荷载步,1000 个子步,相信第二种的计算时间要少很多。
根据问题的特点,可以将加载过程分为几个阶段进行,每一个阶段则作为一个载荷步。比如做弹塑性分析时,可以通过试算初步估计开始屈服时的载荷,作为第一步,后续载荷作为第二步等。
为了方便程序识别加载顺序,需要指定每个荷载步结束时的时间值,如设置第一个荷载步结束时的时间为 1 ,第二个荷载步结束时的时间为 2 ,以此类推。对于静力分析,时间是虚设的,时间的指定仅仅起计数作用。更多详见本文: 3.3 时间参数。
- 1. TIME 命令
使用功能: 设置荷载步结束时的时间值/Sets the time for a load step.
使用格式: TIME,TIME 。
参数说明: TIME 为荷载步结束时的时间值,默认值为上一荷载步结束时的时间值+1.0。
- 2. GUI 操作
- 3. 命令示例
/SOLU
! 访问求解器
TIME,7
! 设置荷载步结束时时间值为7
3.2.2 子步
时间步长一般指单个子步的持时,可以为固定步长,也可为浮动步长。
子步 (substep) 也称为时间步 ,是载荷步中载荷逐渐施加到有限元模型上的过程中进行求解的点。子步为执行求解载荷步中的点,由于不同原因要使用子步。
子步对求解过程的控制非常重要,很多时候需要使用不同的子步数来满足不同的加载和求解需要:
(1). 在非线性静态或稳态分析中,使用子步逐渐施加载荷以便能提高求解精确度,甚至使求解结果从不收敛转化为收敛。
(2). 在线性或非线性瞬态分析中,使用子步满足时间步长的需要,得到较为精确的解,即满足瞬态时间累积法则。
(3). 在谐响应分析中,使用子步获得谐响应频率范围内多个频率处的解。
Substeps are points within a load step at which solutions are calculated. You use them for different reasons:
• In a nonlinear static or steady-state analysis, use substeps to apply the loads gradually so that an accurate solution can be obtained.
• In a linear or nonlinear transient analysis, use substeps to satisfy transient time integration rules (which usually dictate a minimum integration time step for an accurate solution).
• In a harmonic analysis, use substeps to obtain solutions at several frequencies within the harmonic frequency range.
- 1. NSUBST 命令
使用功能: 指定荷载步中所需要的子步数.
使用格式: NSUBST,NSBSTP,NSBMX,NSBMN,Carry。
参数说明:
当时间步长为 固定 时间步长时,NSBSTP 为该荷载步所包含的荷载子步数目,另外 3 个参数无需设置。
当时间步长为 浮动/自动 时间步长时,NSBSTP 初始子步数,用于确定初始子步步长,即荷载步总时长除以该数值即为初始子步的步长,子步步长用于确定该子步所加荷载大小。NSBMX 为最大荷载步数,NSBMN 为最小荷载步数,程序以此为界自动搜索合适的荷载子步数。另外,NSBSTP 应不大于 NSBMX 。
- 2. GUI 操作
- 3. 命令示例
(1). 固定时间步长,荷载子步数设置为 50。若该荷载步所施加的荷载为 1000 N,那么该荷载步将被分成 50 个子步。若为坡道加载,则每一子步的荷载增量为 20 N,共计算 50次,例如,第一个荷载子步所施加的荷载值为 20 N,第二个荷载子步计算结束时,作用在结构/构件上的荷载数值为 40 N,以此类推。
/SOLU
! 访问求解器
AUTOTS,0
! 固定时间步长
NSUBST,50
! 荷载子步数设置为固定值50
(2). 自动时间步长,初始子步数设置为 ,10,最大子步数为 20,最小子步数为 5。若该荷载步所施加的荷载为 1000 N,且该荷载步总时长为 1,那么初始子步步长为 1/10 = 0.1,初始子步上的加载量为 0.1*1000 = 100 N,其后的子步步长由程序自动确定 (因为你设置了自动时间步),但以设置为界,自动步长的最小值为 1/20 = 0.05 ,自动步长的最大值为 1/5 = 0.2,计算结束时荷载子步数大于等于 5 且小于等于 20 。
/SOLU
! 访问求解器
AUTOTS,1
! 自动时间步长
NSUBST,10,20,5
! 初始子步数20/最大子步数20/最小子步数5
3.2.3 平衡迭代
平衡迭代:在给定子步下,为了收敛而计算的附加解,仅用于非线性分析。
当子步的载荷施加到有限元模型上时,求解器开始求解子步载荷的结果。有限元的方法常使用迭代来求解,在迭代的过程中逐渐逼近子步载荷,使用迭代方程 (省略其他变量) 可以表示为:
f ( L n , L n − 1 , L ) = 0 f(L_n, L_{n-1},L)=0 f(Ln,Ln−1,L)=0
式中,L 为子步载荷,Ln 为第 n 次迭代的结果,当满足:
∣ L − L n ∣ < L e r r |L-L_n|<Lerr ∣L−Ln∣<Lerr
时,停止迭代。式中 Lerr 为残差标准。通常一个子步求解需要若干次迭代,每次迭代都被称为一次平衡迭代。
Equilibrium iterations are additional solutions calculated at a given substep for convergence purposes. They are iterative corrections used only in nonlinear analyses (static or transient), where convergence plays an important role.
Consider, for example, a 2-D, nonlinear static magnetic analysis. To obtain an accurate solution, two load steps are commonly used:
• The first load step applies the loads gradually over five to 10 substeps, each with just one equilibrium iteration.
• The second load step obtains a final, converged solution with just one substep that uses 15 to 25 equilibrium iterations.
3.3 时间参数
在所有静态和瞬态分析中,无论分析是否依赖于时间,ANSYS 都仅将时间作为跟踪参数 (tracking parameter),即作为计数器使用。
在瞬态分析或与速率有关的静态分析 (蠕变或者粘塑性) 中,时间代表实际时间,用秒、分钟或小时表示。
然而,在不依赖于速率的分析中,时间仅仅是一个识别载荷步和子步的计数器。默认情况下,程序自动对 time 赋值,在载荷步 1 结束时,赋 time = 1;在载荷步 2 结束时,赋 time = 2;以此类推。载荷步中的任何子步都将被赋给合适的、用线性插值得到的时间值。在这样的分析中,时间没有实际意义,仅仅起到计数作用。
当求解中使用弧长法时,时间还表示另一个含义。在这种情况下,时间等于荷载步开始的时间值加上弧长载荷系数 (当前所施加荷载的放大系数) 的数值。因此,在弧长求解中,时间不作为 “计数器” 。
荷载步为作用在给定时间间隔内的一系列载荷。子步为荷载步中的时间点,在这些时间点,求得中间解。两个连续的子步之间的时间差称为时间步长或时间增量。平衡迭代是为了收敛而在给定的时间点进行计算的迭代求解。
A load step is a set of loads applied over a given time span. Substeps are time points within a load step at which intermediate solutions are calculated. The difference in time between two successive substeps can be called a time step or time increment. Equilibrium iterations are iterative solutions calculated at a given time point purely for convergence purposes.
3.4 加载方式
当一个加载/荷载步被划分为多个子步时 (2个及以上),将面临一个问题:荷载应该一次性全部施加还是按子步分步施加,即阶越加载还是坡道加载 (渐变加载/比例加载)。
- 阶越加载 (Stepped Loads)
如果荷载是阶越的,那么,全部荷载施加于第一个荷载子步,且在荷载步的其余部分,荷载保持不变,如下图 (a) 所示。
- 坡道加载 (Ramped Loads)
如果荷载是逐渐递增的,那么,在每个荷载子步,荷载值逐渐增加,且全部荷载出现在荷载步结束时,如下图 (b) 所示。
例如:第一荷载步对节点 1 施加了 10 KN,采用的是渐变荷载,第二荷载步对节点 1 又施加了10KN,且 fcum,add,则在 1.6s 时的结果就是这个荷载 10+10*0.6 = 16 KN 对应的结果。如果是阶跃,1.6 s 应该是 10+10 = 20 KN 。
When you specify more than one substep in a load step, the loads can be stepped or ramped:
• If a load is stepped, its full value is applied at the first substep and stays constant for the rest of the load step.
• If a load is ramped, its value increases gradually at each substep, with the full value occurring at the end of the load step.
- 1. KBC 命令
使用功能: Specifies ramped or stepped loading within a load step…
使用格式: KBC,KEY 。
参数说明: KEY: 若为 0,则为坡道加载 (默认);若为 1,则为阶跃加载。
- 2. GUI 操作
- 3. 命令实例
设置加载方式为坡道加载,即分析步内各子步上的荷载数值由线性插值得到。Loads are linearly interpolated (ramped) for each substep from the values of the previous load step to
the values of this load step. This is the default value.
/SOLU
! 访问求解器
KBC,0
! 坡道加载
综上,时间参数用于确定该荷载步结束时的时间值,静力分析时,时间参数主要起计数作用,荷载子步将整个荷载步进行拆分,目的是提高计算精度。当进行非线性分析时,在每个荷载子步上可能要需要进行平衡迭代。显然,多子步坡道施加载荷有利于提高求解精确度和改善模型的收敛情况。以上均可在荷载步选项中进行设置。
3.5 荷载步选项
荷载步选项 (Load step options) 是用于表示控制荷载施加的各种选项 (如时间、子步数、时间步、载荷施加方式) 的总称。其他类型的荷载步选项包括收敛公差 (用于非线性分析),结构分析中的阻尼特性、输出控制和响应频谱数据等。这些选项用于在求解选项中控制如何使用荷载,在不同的分析类型中,荷载步选项会随之变化。
在 ANSYS 软件中共有六种类型的载荷步选项,分别为: 通用选项、动力学选项、非线性选项、输出控制选项、Biot-Savart 选项和谱选项。
若菜单中没有出现 Time/Frequenc,可单击 Unabridged Menu,如下图所示 。
四、施加荷载
在 ANSYS 中,荷载及边界条件可以施加在实体模型 (如关键点、线、面和体) 上,也可以施加到有限元模型 (结点和单元) 上。若是在实体模型上施加载荷,ANSYS 求解时会自动将这些载荷转换到相应的结点和单元上。如无特殊需求,荷载尽量施加在有限元模型上。
4.1 施加DOF约束
加载位置 | 命令 |
---|---|
结点 | D |
关键点 | DK |
几何线 | DL |
几何面 | DA |
- 1. D 命令
使用功能: 在结点上施加 DOF 约束 / Defines degree-of-freedom constraints at nodes.
使用格式: D,Node,Lab,VALUE,VALUE2,NEND,NINC ,Lab2 ,Lab3 ,Lab4 ,Lab5 ,Lab6 。
参数说明: Node 为将要施加约束的结点编号,也可以为 ALL、P或组件名称。
Lab 为有效的 DOF 标签,结构标签为 UX、UY、UZ、ROTX、ROTY、ROTZ 和 WARP,也可以为 ALL 。
VALUE 为 DOF 的值或为表格型边界条件的表格名称,表格名必须用 % 括起来。
VALUE2 为第2个自由度值,若允许复数输入,则 VALUE 为复数的实部,而 VALUE2 为复数的虚部。
NEND,NINC : 对按增量 NINC (默认为1) 从 Node 增大到 NEND (默认值为Node) 的结点指定同样的约束值。
Lab2 ,Lab3 ,. . . . . .,Lab6 为另外的自由度标签,对于这些标签,同样的值也将施加到结点上。
使用提示: 自由度用结点坐标系定义,结构的转角应输入弧度;
在结构分析中,同一结点同一自由度方向,最后施加的荷载将覆盖前一次的施加。
总体和局部坐标系用于几何/网格定位,而结点坐标系则用于定义结点自由度的方向。每个结点都有自己的结点坐标系,默认情况下,它总是平行于总体笛卡尔坐标系 (与定义结点的激活坐标系无关)。可执行 NROTAT 命令更改结点坐标系。
- 2. GUI 操作
- 3. 命令示例
(1). 约束107号结点相对应全局直角坐标系而言 UX、UZ 方向上的位移。
CSYS,0
! 施加的约束与激活坐标系无关
D,107, ,0, , , ,UX,UZ, , , ,
ALLSEL,ALL
(2). 约束组件 BCNodesFix 内全部结点的全部自由度,即设置为固定端。
CSYS,0
CMSEL,S,BCNodesFix
D,ALL,ALL,0
ALLSEL,ALL
(3). 约束组件 BCNodes1 和 BCNodes2 内全部结点的绕全局直角坐标系 Z 轴的转动自由度。
CSYS,0
CMSEL,S,BCNodes1
CMSEL,A,BCNodes2
D,ALL,ROTZ,0
ALLSEL,ALL
(4). 约束组件 BCNodes3 内全部结点的绕局部坐标系16 Z 轴的转动自由度。
CSYS,16
CMSEL,S,BCNodes3
NROTAT,ALL
ALLSEL,ALL
CMSEL,S,BCNodes3
D,ALL,ROTZ,0
ALLSEL,ALL
FINISH
! 退出当前处理器
/CLEAR,ALL
! 清除所有
FINISH
! Exits normally from a processor.
/FILNAME,BoltPreloadCase,0
! Changes the Jobname for the analysis.
FINISH
/PREP7
! 访问前处理器
*AFUN,DEG
! 设置角度单位为度
SHPP,OFF,,NOWARN
! 关闭单元形状检测警告
CDREAD,DB,'AllAsmbs','cdb',,'',''
! 导入装配体模型
NUMCMP,NODE
! 压缩结点编号
NUMCMP,ELEM
! 压缩单元编号
NUMCMP,MAT
! 压缩材料编号
NUMCMP,TYPE
! 压缩单元类型号
NUMCMP,REAL
! 压缩实常数编号
EPLOT
! Plot elements
! (1). 指定位移边界条件
CSYS,17
! 激活局部坐标系17
CMSEL,S,BotFlangeElems
! 选择组件BotFlangeElems(下法兰全部单元)
ALLSEL,BELOW,ELEM
! 选择单元以下附属即构成单元的结点
NSEL,R,EXT
! 选择外表面结点
NSEL,R,LOC,Y,(7*360/num/2-0.5),(7*360/num/2+0.5)
! 选择位于加载面上的全部结点
CM,BCNodes,NODE
! 创建组件
CSYS,0
D,BCNodes,ALL,0
! 约束组件BCNodes内所有结点的全部自由度
ALLSEL,ALL
由 命令流 No.25 创建的下法兰端部处的固定约束,如下图所示:
4.2 施加集中力
加载位置 | 命令 |
---|---|
结点 | F |
关键点 | FK |
- 1. F 命令
使用功能: Specifies force loads at nodes.
使用格式: F,Node,Lab,VALUE,VALUE2,NEND。
CSYS,15
! 激活局部坐标系15(其实不需要激活,因已旋转过结点坐标系)
F,loadNode,FY,-10000
! 于加载点loadNode处施加集中力-10kN
F,loadNode,MX,5*1000*1000
! 于加载点loadNode处施加弯矩5kN-m
该命令流施加的相对于局部坐标系15 y轴负方向集中力 10 kN 及 相对于局部坐标系 x 轴的弯矩 5 kN-m,如下图所示:
4.3 施加表面荷载
4.4 施加体积荷载
4.5 施加特殊荷载
- 施加螺栓预紧力
preload = 790*1000
! 施加790KN的预紧力
num = 4
! 施加预紧力的螺栓个数
*DO,i,1,num
SLOAD,1001+i,9,LOCK,FORC,preload,1,2
*ENDDO
五、创建荷载步文件
所有荷载 (力/位移) 和荷载步选项一起构成了一个荷载步文件,程序用其计算该荷载步的解。如果有多个荷载步,可将每个荷载步存入一个文件,调入该荷载步文件,并从文件中读取数据求解。每个荷载步均会存入到特定文件中,文件以 jobname.sxx 命名,s 为系统预设字符,xx 为荷载步文件编号,为阿拉伯数字,如下图所示,a12 为 jobname,999 及 9999 为荷载步文件编号。
一个载荷步是指边界条件和载荷选项的一次设置,用户可对此进行一次或多次求解。
- 1. LSWRITE 命令
使用功能: Writes load and load step option data to a file.
使用格式: LSWRITE,LSNUM。
参数说明: LSNUM 为荷载步文件识别号。
Number to be assigned to the load step file name for identification purposes. Defaults to 1 + highest LSNUM used in the current session. Issue LSWRITE,STAT to list the current value of LSNUM. Issue LSWRITE,INIT to reset to 1. The load step file will be named Jobname.Sn, where n is the specified LSNUM value (preceded by “0” for values 1-9). On systems with a 3-character limit on the file name extension, the “S” is dropped for LSNUM > 99.
- 2. GUI 操作
在 ANSYS 中,通常将位移边界条件、加载情况、求解类型 (静力、动力、模态等等)、求解器选择、求解选项设置 (荷载步、非线性等等)、场输出设置等信息写到荷载步文件中,提交计算时,求解器读取荷载步文件内的信息,求解器根据荷载步文件中的各种设置来进行求解计算。
ANSYS 荷载步文件与 Abaqus 中 Step 模块和 Load 模块定义的有关内容相类似。
荷载步文件内记录着有限元模型的 (力/位移) 边界条件、求解器类型、荷载子步设置、加载方式 (坡道加载/阶越加载)、场输出请求等信息,求解器根据荷载步文件的设置,进行相应的求解计算,并进行结果输出。
荷载步文件作为求解器的输入文件,通知求解器:有限元模型在什么边界条件下进行求解;求解啥,是模态还是通用静力还是其他;解方程时采用什么求解器,求解器的容差是多少;求解的荷载步分多少个子步;荷载是怎么加载的,坡道加载还是阶越加载;是否考虑几何非线性;计算结果哪些变量写入到 rst 文件中等等。由此可见,采用 ANSYS 进行有限元分析时,比较规范的做法是将有限元模型基本信息存储到 .cdb 文件中,如单元类型、材料性、单元信息、结点信息、组件信息、接触情况等。而将荷载、求解、输出等信息存储到荷载步文件 jobname.sxx 中,二者共同作为求解器的输入文件,提交给求解器进行求解计算,以得到某一问题的有限元解答。此种做法有利于模型的模块化,当加载信息改变时,只需改变一个荷载步文件即可。同理,Abaqus 中的 inp 文件也可以进行类似的拆分,即有限元模型信息一个文件,加载及求解等信息一个文件。
一个荷载步创建一个荷载步文件,一个工况可能有多个荷载步,因此,需要创建多个荷载步文件。为了规范有限元分析,我们尽量将一个工况的多个荷载步计算结果放入到一个 rst 文件中。于是,一个 rst 文件为一个工况的计算结果,在 rst 文件内,以时间参数区分不同的荷载步计算结果。
六、有限元模型求解
ANSYS 能够求解由有限元方法建立的联立方程,求解的结果为:结点的自由度值,为基本解;原始解的导出值,为单元解。
单元解通常是在单元的公共点上计算出来的,ANSYS程序将结果写入数据库和结果文件 (jobname.rst, rht, rmg, rfl)。
6.1 指定求解方法
ANSYS 程序中有几种解联立方程的方法: 直接求解法 (默认)、稀疏矩阵直接解法、雅可比共轭梯度法 (JCG)、不完全分解共轭梯度法 (ICCG)、预条件共轭梯度法 (PCG)、自动迭代法 (ITER) 以及分块解法 (DDS)。
- EQSLV
使用功能: Specifies the type of equation solver.
使用格式: EQSLV,Lab,TOLER,MULT,- -,KeepFile。
参数说明: Lab 为求解器类型标签值,可以为 SPARSE、JCG、ICCG、QMR、PCG。
TOLER 为具有对称矩阵静态分析时的误差。
TOLER 缺省值 1.0E-8。具有非对称矩阵静态分析或谐分析或 DDS 求解器的误差,缺省值 1.0E-6。在大多数情况下,误差值可以使用 1.0E-5。对于 DDS 求解器如果 TOLER 小于 1.0E-6 可能导致不收敛。因此当缺省值难以收敛时,也可适当调整求解器的误差值。
执行 EQSLV,-1 则由程序自动选择求解器,一般的用户无需选择求解器。
- GUI 操作
6.2 求解控制对话框
求解控制对话框如上图所示,只要进行结构静态或全瞬态分析,求解菜单就必然包含求解控制对话框选项。这一对对话框提供了简单的图形界面来设置分析和载荷步选项。一旦打开求解控制对话框, Basic 标签页就被激活。完整的标签页从左到右依次是: Basic、Transient、Sol’n Options、Nonlinear、Advanced NL。
最基本的控制出现在 Basic 标签页里,而后续的标签页里提供了更高级的求解控制选项。Transient 包含瞬态分析求解控制,仅当分析类型为瞬态分析时才可用,否则呈现灰色。
在 Basic 标签页内,可指定分析选项、控制时间设置、定义场输出,涉及的命令有: ANTYPE、NLGEOM、TIME、AUTOS、NSUBST、DELTIM、OUTRES 等。
一旦对 Basic 标签页的设置满意,就不需要对其余的标签页选项进行处理,除非想要改变某些高级设置。
6.3 多荷载步的求解
在 ANSYS 中进行多载荷步求解的方法有三种: 多重求解法、载荷步文件法和矩阵参数法。
多步求解法是最直接的多载荷步求解方法,它在每个载荷步定义好后执行 SOLVE 命令进行求解,需要反复操作,程序复杂。
荷载步文件法是使用荷载步文件记录每—步的载荷信息,在求解时直接调用荷载步文件中的信息。在求解过程中,求解器根据设置读取荷载步文件,并分别求解。
荷载步文件法求解的优点在于不必反复定义载荷,省去复杂操作。缺点是一旦开始求解就不能对某个载荷步进行修改,而只能等待所有载荷步求解完毕。在实际操作中可以结合载荷文件法和多步求解法共同求解。
矩阵参数法使用建立的表格定义载荷的时间曲线,主要用于瞬态分析和稳态非线性分析。
6.3.1 实例
本部分以博客 nCodeDL 高周疲劳 分析实例 悬臂梁 中的悬臂梁为例,如下图所示,来说明多工况多荷载步的求解,悬臂梁端部作用的荷载工况如下表所示,其中荷载作用点为悬臂梁端部截面形心点。
工况名称 | 边界条件 | 荷载步1 | 荷载步2 | 荷载步3 |
---|---|---|---|---|
LoadCase-01 | 仅端部固定 | Fx = 1000 N | Fx = 500 N Fy = -10 N | Fy = -10 N Mz = -10000 N·m |
LoadCase-02 | 仅端部固定 | Fx = 100 N | Fz = 10 N | Mz = 10 N·m |
LoadCase-03 | 端部和跨中均固定 相当于使悬臂梁的跨度变为原来的一半 | Fx = 100 N | Fy = 10 N | Mz = 10 N·m |
该悬臂梁有限元模型部分的创建详见上述博客,以上表工况 1 (LoadCase-01) 为例,分别采用多重求解法和荷载步文件法进行求解,命令流如下。
在工况 1 中,每个荷载步单独作用下,根据材料力学,悬臂梁固定端部截面最大/最小正应力如下表所示。
- | 荷载步1 | 荷载步2 | 荷载步3 |
---|---|---|---|
荷载值 | Fx = 1000 N | Fx = 500 N Fy = -10 N | Fy = -10 N Mz = -10000 N·m |
最大正应力 (Mpa) | 13.89 | 6.954+25=31.945 | 25+69.44=94.44 |
最小正应力 (Mpa) | 13.89 | 6.954-25=-18.055 | -25-69.44=-94.44 |
在第 1 个荷载步结束时,在悬臂梁固定端部截面上,最大正应力为 13.89 Mpa,最小正应力为 13.89 Mpa。
在第 2 个荷载步结束时,在悬臂梁固定端部截面上,最大正应力为 13.89 + 31.945 = 45.835 Mpa,最小正应力为 13.89 -18.055 = -4.165 Mpa。
在第 3 个荷载步结束时,在悬臂梁固定端部截面上,最大正应力为 13.89 + 31.945 + 94.44 = 140.275 Mpa,最小正应力为 13.89 -18.055 -94.44 = -98.605 Mpa。
- 多重求解法实例
step 1. 设置作业名称
FINISH
! 退出当前处理器
lcnum = 1
! 荷载工况编号/Number of load case
/FILNAME,LoadCase-0%lcnum%,0
! 设置作业名称/jobname.rst
step 2. 定义边界条件
/SOLU
! 访问求解器
NSEL, S, LOC, X, 0
! 选择结点
D, ALL, ALL, 0
! 端部固定
ALLSEL,ALL
! 全显示
step 3. 求解荷载步1
! 3.1 加载
FCUM,REPL
! Subsequent values replace the previous values (default).
F, loadNode, FX, 1000 ! 加载点组件名称loadNode
! 3.2 求解类型及求解器设置
ANTYPE,STATIC
! 静力分析
EQSLV,PCG,1E-4
! 方程求解类型: PCG求解, 精度/容差为1E-4 。
! 3.3 荷载步时间指定及荷载子步设置
NSUBST,2,2,2
! 子步设置: 2个子步, 最大2, 最小2,相当于固定子步。
TIME,1.0
! Sets the time for a load step.
! 3.4 场输出设置
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,LAST
! Item=All/Freq=LAST(仅输出最后子步)
! 3.5 提交作业
SOLVE
step 4. 求解荷载步2
FCUM,ADD
! Subsequent values are added to the previous values.
F, loadNode, FX, 500
! 加载点组件名称loadNode
F, loadNode, FY, -10
ANTYPE,STATIC
! 静力分析
EQSLV,PCG,1E-4
! 方程求解类型: PCG求解, 精度/容差为1E-4 。
NSUBST,2,2,2
! 子步设置: 2个子步, 最大2, 最小2,相当于固定子步。
TIME,2.0
! Sets the time for a load step.
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,LAST
! Item=All/Freq=LAST(仅输出最后子步)
SOLVE
step 5. 求解荷载步3
FCUM,ADD
! Subsequent values are added to the previous values.
F, loadNode, FY, -10
! 加载点组件名称loadNode
F, loadNode, MZ, -10000
ANTYPE,STATIC
! 静力分析
EQSLV,PCG,1E-4
! 方程求解类型: PCG求解, 精度/容差为1E-4 。
NSUBST,2,2,2
! 子步设置: 2个子步, 最大2, 最小2,相当于固定子步。
TIME,2.0
! Sets the time for a load step.
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,LAST
! Item=All/Freq=LAST(仅输出最后子步)
SOLVE
以上三个荷载步计算完成后,计算结果将存储到 LoadCase-01.rst 文件中,每个荷载步的最终计算结果以用户设置的荷载步时间参数 Time 进行区分,由于在场输出中设置了近输出每个荷载步最后一子步的计算结果,故 Set 个数与荷载步数相同。
依次查看 Time = 1.0、Time = 2.0 和 Tme = 3.0 三个结果集合,可得到三个荷载步对应的正应力云图,如下图所示。由此可以看到,最大/最小正应力与上述材料力学理论解几乎完全一致。
- 荷载步文件法实例
step 1. 设置作业名称
FINISH
! 退出当前处理器
lcnum = 1
! 荷载工况编号/Number of load case
/FILNAME,LoadCase-0%lcnum%,0
! 设置作业名称/jobname.rst
step 2. 删除全部荷载及荷载步设置
/SOLU
! 访问求解器
FDELE,ALL,ALL
! 删除结点上作用的全部荷载
DDELE,ALL,ALL
! 删除所有自由度约束
LSCLEAR,ALL
! 清除所有荷载及荷载步选项
step 3. 创建第 1 个荷载步的荷载步文件/jobname.s1
/SOLU
! 访问求解器
NSEL, S, LOC, X, 0
! 选择结点
D, ALL, ALL, 0
! 固定边界
ALLSEL,ALL
! 全显示
FCUM,REPL
! Subsequent values replace the previous values (default).
F, loadNode, FX, 1000 ! 加载点组件名称loadNode
ANTYPE,STATIC
! 静力分析
EQSLV,PCG,1E-4
! 方程求解类型: PCG求解, 精度/容差为1E-4 。
NSUBST,2,2,2
! 子步设置: 2个子步, 最大2, 最小2,相当于固定子步。
TIME,1.0
! Sets the time for a load step.
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,ALL
! Item=All/Freq=All(输出每个子步)
ALLSEL,ALL
LSWRITE,1
! 写入荷载步文件Jobname.s1
step 4. 创建第 2 个荷载步的荷载步文件/jobname.s2
NSEL, S, LOC, X, 0
! 选择结点
D, ALL, ALL, 0
! 固定边界
ALLSEL,ALL
! 全显示
FCUM,ADD
! Subsequent values are added to the previous values.
F, loadNode, FX, 500
! 加载点组件名称loadNode
F, loadNode, FY, -10
ANTYPE,STATIC
! 静力分析
EQSLV,PCG,1E-4
! 方程求解类型: PCG求解, 精度/容差为1E-4 。
NSUBST,2,2,2
! 子步设置: 2个子步, 最大2, 最小2,相当于固定子步。
TIME,2.0
! Sets the time for a load step.
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,ALL
! Item=All/Freq=All(输出每个子步)
ALLSEL,ALL
LSWRITE,2
! 写入荷载步文件Jobname.s2
step 5. 创建第 3 个荷载步的荷载步文件/jobname.s3
NSEL, S, LOC, X, 0
! 选择结点
D, ALL, ALL, 0
! 固定边界
ALLSEL,ALL
! 全显示
FCUM,ADD
! Subsequent values are added to the previous values.
F, loadNode, FY, -10
! 加载点组件名称loadNode
F, loadNode, MZ, -10000
ANTYPE,STATIC
! 静力分析
EQSLV,PCG,1E-4
! 方程求解类型: PCG求解, 精度/容差为1E-4 。
NSUBST,2,2,2
! 子步设置: 2个子步, 最大2, 最小2,相当于固定子步。
TIME,3.0
! Sets the time for a load step.
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,ALL
! Item=All/Freq=All(输出每个子步)
ALLSEL,ALL
LSWRITE,3
! 写入荷载步文件Jobname.s3
step 6. 删除全部荷载及荷载步设置
FDELE,ALL,ALL
! 删除结点上作用的全部荷载
DDELE,ALL,ALL
! 删除所有自由度约束
LSCLEAR,ALL
! 清除所有荷载及荷载步选项
step 7. 批量提交求解
/SOLU
! 访问求解器
LSSOLVE,1,3,1,
! 循环求解/LSMIN=1/LSMAX=6/LSINC=1
同样,采用荷载步文件法循环求解以上三个荷载步后,计算结果将存储到 LoadCase-01.rst 文件中,Time = 1.0 为第 1 个荷载步结束时,悬臂梁的各种计算结果,以此类推。
rst文件中一共包含 6 个 Set,3 个荷载步,每个荷载步 2 个荷载子步,共 6 个荷载子步,每个子步结束时,场输出一次,因此有 6 个 Set,最后一项为累计迭代次数。
依次查看 Time = 1.0、Time = 2.0 和 Tme = 3.0 三个结果集合,可得到三个荷载步对应的正应力云图,如下图所示。由此可以看到,最大/最小正应力亦与上述材料力学理论解几乎完全一致。
6.4 重启动分析
Ansys的分析重启动技术 | 坐倚北风
6.5 求解前预估
七 输出设置
- OUTRES
使用功能: Controls the solution data written to the database.
使用格式: OUTRES,Item,Freq,Cname,–,NSVAR,DSUBres 。
参数说明: Item : Results item for database and file write control。
Freq 为输出频率,可以为 n、-n、NONE、ALL、LAST、%array% 。
Cname 为已定义的组件名称。
Item | 含义 |
---|---|
ALL | All solution items except LOCI and SVAR. This behavior is the default. |
ERASE | Resets OUTRES specifications to their default values. |
BASIC | Write only NSOL, RSOL, NLOAD, STRS, FGRAD, and FFLUX records to the results file and database. |
NSOL | Nodal DOF solution. |
RSOL | Nodal reaction loads. |
V | Nodal velocity (applicable to structural full transient analysis only (ANTYPE (p. 134),TRANS)). |
ESOL | Element solution (includes all items following): NLOAD, STRS (Element nodal stresses.) 等等 |
7.1 设置场输出
本部分以博客 nCodeDL 高周疲劳 分析实例 悬臂梁 中的悬臂梁为例,在 LoadCase00 工况下,通过设置不同的场输出,来说明各种场输出设置最终达到的效果。
- 输出整个模型的全部变量
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,ALL
! Item=All/Freq=All
- 仅输出整个模型的单元解答
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,None
! Item=All/Freq=None
OUTRES,ESOL,LAST
! Item=ESOL/Freq=Last
以上设置仅输出单元解答,当要绘制结点解答相关的云图时,如绘制位移云图,将提示如下信息。
- 仅输出组件PartBElems(中段梁全部单元)的单元解答
OUTRES,ERASE
! 恢复场输出的默认设置
OUTRES,ALL,None
! Item=All/Freq=None
OUTRES,ESOL,LAST,PartBElems
! Item=ESOL/Freq=Last/Cname=PartBElems
7.2 设置历史输出
八、求解实例
为了规范有限元建模,本文所有模型的加载求解,均采用先创建荷载步文件,然后求解器通过读取荷载步文件的方式,进行提交计算,对于单工况分析时,此种做法显然没什么必要,但是当进行多工况求解时,此种方式优势显著。
8.1 模态分析
设置模态分析步,模态提取方法采用默认设置即 Block Lanczos,求解器类型采用默认设置即 SPAR (SPARSE),模态提取阶数为 50 阶,关心频带的起点频率设置为 0 Hz,关心频带的终点频率设置为 1000 Hz,命令流如下所示。
SPARSE - Sparse direct equation solver.
! *********************************
! -->> Title-11.
模态分析步 *
! *********************************
! ***
Analysis Type - Modal.
! ***
Mode-extraction Method: Block Lanczos.
! ***
Equation Solver Type: SPAR.
! ***
Frequency Range Beginning: 0 Hz.
! ***
Frequency Range Ending: 1000 Hz.
/SOLU
! 访问求解器模块
ANTYPE,MODAL
! 分析类型/模态分析
MODOPT,LANB,50
! 模态分析方法<Block Lanczos>/模态提取阶数<50>
EQSLV,SPAR
! 求解方法/SPAR
MXPAND,0,,,0
! 默认设置
LUMPM,0
! 默认设置
PSTRES,0
! 默认设置
MODOPT,LANB,50,0,1000,,OFF
! 模态阶数<50>/起点频率<0>/终点频率<1000>
- GUI 操作
8.2 预紧工况分析
/com,施加螺栓预紧力
preload = 790*1000
! 施加790KN的预紧力
num = 4
! 施加预紧力的螺栓个数
*DO,i,1,num
SLOAD,1001+i,9,LOCK,FORC,preload,1,2
*ENDDO
/SOLU
! 访问求解器
/com,设置求解控制
ANTYPE,0
! 静力分析
NLGEOM,0
! Ignores large-deflection effects 关闭几何非线性
EQSLV,PCG,1E-4
! 预条件共轭梯度法/公差:1E-4。
NSUBST,2,2,2
! 荷载子步数2
AUTOTS,1
! 自动荷载步(浮动荷载步)/默认
OUTRES,ERASE
! Resets OUTRES specifications to their default values.
OUTRES,ALL,ALL
! Writes the solution of the specified solution results item for every substep.
LSWRITE,1
! LSNUM=1 载荷步文件编号
ALLSEL,ALL
SOLVE
! 提交求解器进行求解
FINISH
/DELETE,'','esav',''
/DELETE,'','emat',''
/DELETE,'','PCS',''
/DELETE,'','stat',''
/DELETE,'','mntr',''
/DELETE,'','osav',''
!!! 特别注意:rdb、r001、ldhi文件务必保留,以便后续重启动使用。
由 命令流 No.26 施加的螺栓预紧力,经计算分析后,如下图所示:
8.3 静力工况分析
- 多次求解法
通常情况下,螺栓预紧工况仅仅是静力分析的初始荷载步,在此基础上,我们还需要分析其他荷载作用下,结构的受力情况。本部分以多工况循环分析为例,来说明 ANSYS 中,此种计算的实现。本部分共相互独立的在预紧工况的基础上分析如下 7 个工况:
/com,分工况加载求解
loadCaseNum = 7
*DO,i,1,loadCaseNum,1
! 循环变量i的初值为1终止为7增量为1
/FILNAME,LoadCase%i%,0
! 设置 Job Name
/COPY, 'BoltPreloadCase','rdb','','LoadCase%i%','rdb',''
! 复制文件BoltPreloadCase.rdb并重命名为LoadCase1.rdb
/COPY, 'BoltPreloadCase','r001','','LoadCase%i%','r001',''
/COPY, 'BoltPreloadCase','ldhi','','LoadCase%i%','ldhi',''
/SOLU
! 访问求解器
/DELETE,'parameter','txt',''
PARSAVE,SCALAR,parameter,txt
ANTYPE,STATIC,RESTART,1,2,0
! 静力/重启动/LDSTEP=1/SUBSTEP=2
PARRES,CHANGE,'parameter','txt',''
NSUBST,5,5,5
! 荷载子步数5,最大子步数5,最小子步数5。
AUTOTS,ON
! 自动荷载步(浮动荷载步)/默认
KBC,0
! 渐变方式荷载步
!OUTRES,ALL,ALL
! 写入每个荷载步的全部子步内容
OUTRES,ALL,LAST
! 写入每个荷载步的最后一个子步内容
CSYS,15
F,loadNode,FX,csvLoads(i,1)
F,loadNode,FY,csvLoads(i,2)
F,loadNode,FZ,csvLoads(i,3)
F,loadNode,MX,csvLoads(i,4)
F,loadNode,MY,csvLoads(i,5)
F,loadNode,MZ,csvLoads(i,6)
ALLSEL,ALL
SOLVE
FINISH
/DELETE,,'emat'
/DELETE,,'esav'
/DELETE,,'osav'
/DELETE,,'r001'
/DELETE,,'r002'
/DELETE,,'rdb'
/DELETE,,'full'
/DELETE,,'ldhi'
/DELETE,,'mntr'
/DELETE,,'pcs'
/DELETE,,'pc6'
/DELETE,,'stat'
*ENDDO
命令流 No.27 运行后,经求解计算,可得到 7 个 .rst 文件,分别为 LoadCase1.rst、LoadCase2.rst、… 、LoadCase7.rst。
LoadCase1.rst 为螺栓预紧力及工况 1 中各外载共同作用下,结构的静力响应结果文件,其余 rst 文件类似于此。
本部分介绍的是单荷载步多工况分析,即每个加载工况生成一个 rst 文件。
更多 ANSYS 后处理操作详见博客: ANSYS 有限元分析 后处理 General Postproc 。
- 荷载步文件法
本部分以博客 ANSYS 静力分析实例 悬臂梁 提到的悬臂梁为例,采用实体建模方式,在其端部分别施加 6 个分量的荷载,分别为 Fx = 100 N、Fy = 100 N、Fz = 100 N、Mx = 10000 N-mm、My = 10000 N-mm、Mz = 10000 N-mm,分别计算悬臂梁在这 6 个荷载单独作用下的应力分布等。
悬臂梁加载求解前的有限元模型可运行如下命令流创建:
FINISH
/CLEAR
! Units: mm, N
L
= 360
! Length
H
= 12
! Height
B
= 6
! Width
E
= 200000
! Young’s modulus
nu
= 0
! Poisson’s ratio
NumX = 10
! Number of elements in x direction
NumY = 2
! Number of elements in y direction
NumZ = 2
! Number of elements in z direction
/PREP7
BLOCK, 0, L, -H/2, H/2, -B/2, B/2
! 创建六面体
/VIEW,, 1, 1, 1
! 设置视图
VPLOT
! Plot Volumes
ET, 1, SOLID186
! 186减缩积分单元
KEYOPT,1,2,0
MP, EX, 1, E
MP, NUXY, 1, nu
TYPE, 1
! 设置单元类型
MAT, 1
ALLSEL,ALL
! 全显示
LSEL,S,LENGTH,,H
! 按长度选线
LESIZE,ALL, , ,NumY, , , , ,0
! 布种子
ALLSEL,ALL
LSEL,S,LENGTH,,B
! 按长度选线
LESIZE,ALL, , ,NumZ, , , , ,0
! 布种子
ALLSEL,ALL
LSEL,S,LENGTH,,L
! 按长度选线
LESIZE,ALL, , ,NumX, , , , ,0
! 布种子
ALLSEL,ALL
VSWEEP,ALL
! 扫略分网
R,1
! 定义新实常数
ET,2,TARGE170
! 定义目标面单元 - 连续面
KEYOPT,2,2,1
! Boundary conditions for rigid target nodes: Specified by user.
ET,3,CONTA174
! 定义接触面单元 - 离散面
KEYOPT,3,2,2
! MPC
KEYOPT,3,4,1
! On nodal point - normal from contact surface
KEYOPT,3,12,5
! Behavior of contact surface: Bonded (always).
N1 = NODE(L,0,0)
! 获取结点(L,0,0)的编号
NSEL,S,NODE, ,N1
! 新建选择集,选择编号为N1结点。
CM,loadNode,Node
! 为加载点创建一组件
ALLSEL,ALL
! 全显示
REAL,1
! 激活实常数
TYPE,2
! 激活目标单元类型号
TSHAP,PILO
E,N1
! 创建目标单元
ALLSEL,ALL
! 退出选择集,显示全部。
REAL,1
! 激活实常数
TYPE,3
! 激活目标单元类型号
NSEL,S,LOC,X,L
! 选择梁端部截面上全部结点
ESURF
! 在存在已选单元的自由面上生成重叠单元,即创建接触单元。
ALLSEL,ALL
! 全显示
EPLOT
FINISH
ALLSEL,ALL
! 全选 select all entities
CDWRITE,DB,'CantileverBeam','cdb'
! 当前模型另存为 myjob.cdb 文件。
FINISH
/CLEAR
/FILNAME,CBeamFatCal, 1
! 设置Jobname为CBeamFatCal
/PREP7
SHPP,OFF,,NOWARN
! 关闭单元形状检测警告
CDREAD,DB,'CantileverBeam','cdb'
NUMCMP,NODE
NUMCMP,ELEM
ALLSEL,ALL
EPLOT
CSYS,0
*DIM,FLab,CHAR,6
! 定义名称为FLab字符型数组
*SET,FLab(1),'Fx'
! Force label:Fx
*SET,FLab(2),'Fy'
! Force label:Fy
*SET,FLab(3),'Fz'
! Force label:Fz
*SET,FLab(4),'Mx'
! Force label:Mx
*SET,FLab(5),'My'
! Force label:My
*SET,FLab(6),'Mz'
! force label:Mz
*DIM,FVal,ARRAY,6
! 定义名称为FVal数值型数组
*SET,FVal(1),100
! Force value:Fx=100N
*SET,FVal(2),100
! Force value:Fy=100N
*SET,FVal(3),100
! Force value:Fz=100N
*SET,FVal(4),10000
! Force value:Mx=10000N-mm
*SET,FVal(5),10000
! Force value:Mx=10000N-mm
*SET,FVal(6),10000
! Force value:Mx=10000N-mm
/SOLU
LSCLEAR,ALL
! 清空
ALLSEL,ALL
! 全显示
! 1. 定义边界条件
! Fixed end
NSEL, S, LOC, X, 0
D, ALL, ALL, 0
ALLSEL,ALL
! 全显示
! 2. 设置分析选项
ANTYPE,STATIC
! 静力分析
EQSLV,PCG,1E-4
! 方程求解类型: PCG求解, 精度/容差为1E-4
NSUBST,5,5,1,1
! 子步设置: 5个子步, 最大5, 最小1。
AUTOTS,1
! 自动时间步长打开
TIME,1
! 3. 定义场输出
OUTRES,ERASE
OUTRES,ALL,NONE
OUTRES,ALL,LAST
! OUTRES,STRS,LAST
! 4. 书写荷载及荷载步文件(Jobname.Sn)
ALLSEL,ALL
! 全显示
*DO,i,1,6,1
FDELE,ALL,ALL
! 删除结点上作用的全部荷载
F,loadNode,FLab(i),FVal(i)
ALLSEL,ALL
EPLOT
LSWRITE,i
! 将荷载和荷载步信息写入指定文件(Jobname.Si)
*ENDDO
FDELE,ALL,ALL
! 删除结点上作用的全部荷载 ????????
ALLSEL,ALL
EPLOT
FDELE,ALL,ALL
! 删除结点上作用的全部荷载
DDELE,ALL,ALL
! 删除所有自由度约束
LSCLEAR,ALL
! 清空
CSYS,0
FINISH
FINISH
/SOLU
LSSOLVE,1,6,1,
! 循环求解,LSMIN=1,LSMAX=6,LSINC=1。
FINISH
*DIM,SigmaMax,ARRAY,1,6
! 定义名称为SigmaMax数值型数组
/POST1
*DO,i,1,6,1
SET,,, ,,, ,i
PLNSOL, S,X
*GET, Par, PLNSOL, 0, MAX
SigmaMax(1,i) = Par
*ENDDO
采用该方式提交求解计算后,最终只得到一个结果文件即 Jobname.rst,各分析工况为 rst 文件中不同的 Set,如下图所示。每个 Set 为一个工况下的计算结果,如 Set 1 为 Fx=100N 时计算得到的结果文件,Set 2 为 Fy=100N 时计算得到的结果文件,以此类推。每个 Set 间的计算结果没有继承/叠加关系,彼此相互独立。
若荷载累加方式设置为 FCUM,ADD ,则个 Set 间的计算结果则存在继承/叠加关系,若场输出设置为 OUTRES,ALL,ALL ,则每个 Set 为每个荷载步中的每个子步的计算结果。
十、尾声
以上,便是 ANSYS 有限元分析 加载与求解 部分的简单介绍。
因篇幅有限,部分功能未做介绍,如有疑问,欢迎邮件交流。
Email: liyang@alu.hit.edu.cn 。
本文仅用于个人学习,除此之外,无其他任何用途。
与此同时,也希望能够为 ANSYS 初学者多提供一点参考。
胸藏文墨怀若谷,腹有诗书气自华,希望各位都能在知识的 pāo 子里快乐徜徉。
因个人水平有限,文中难免有所疏漏/错误,不妥之处还请各位批评指正。
最后,祝各位攻城狮们,珍爱生命,保护发际线!
欢迎大家点赞、评论及转载,转载请注明出处!
为我打call,不如为我打款!
九、参考文献
[01]. ANSYS 15.0 有限元分析完全自学手册. 郝勇 钟礼东 等编著.
[02]. ANSYS 参数化编程与命令手册. 龚曙光 谢桂兰 黄云清 编著.添加链接描述
[03]. ANSYS Mechanical APDL Command Reference. Release 18.2.
[04]. ANSYS Mechanical APDL Element Reference. Release 18.2.
[05]. ANSYS Mechanical APDL Basic Analysis Guide. Release 18.2.
[06]. ANSYS Mechanical APDL Structural Analysis Guide. Release 18.2.
[07]. 第3章 施加载荷与求解过程. 刘伟/高维成/于广滨.
[08]. Ansys中的载荷步和子步及其设置方法. 坐倚北风.
[09]. ansys中载荷步、载荷子步、时间步三者的关系?. fyouyong.
[10]. Ansys中的平衡迭代及其设置方法. 坐倚北风.
[11].【ANSYS命令流】加载与求解技术(六):载荷步的设置选项命令. K.D.S v~.
[12]. 有限元及 ANSYS > 第五讲 加载与求解. 任继文.
[13]. Ansys多载荷步分析流程.
[14]. ansys多载荷步的理解.
[15]. ANSYS 入门教程 (32) - 分析类型与求解控制选项 (a)
最后
以上就是激昂灰狼为你收集整理的ANSYS 有限元分析 加载/求解/输出Blog Links一、前言二、结构分析三、基本概念四、施加荷载五、创建荷载步文件六、有限元模型求解七 输出设置八、求解实例十、尾声九、参考文献的全部内容,希望文章能够帮你解决ANSYS 有限元分析 加载/求解/输出Blog Links一、前言二、结构分析三、基本概念四、施加荷载五、创建荷载步文件六、有限元模型求解七 输出设置八、求解实例十、尾声九、参考文献所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复