ANSYS_高级二次开发
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编写命令流分别使用USER300单元(即八结点实体单元)和 solid45 单元建立悬臂梁模型进行求解,然后对比两个结果是 否一致。
23
ANSYS命令流(APDL)的实现过程
两 途 径
GUI图形界面操作
APDL命令流
GUI界面操作 每步 ET,1,user300 File -> List -> Log File … 等价 TYPE,1 R,1,2.8E9,0.3,2400 APDL命令流 USRELEM,8,3,BRICK,3,5,5,0,2,3,0 USRDOF,,UX,UY,UZ 输入文件: solid3d_ansys.txt 输出文件:
只有程序出现问题时才进行 调试,要达到调试程序的目 的就要输出我们感兴趣的数 据,检查它们是否正确,所 以,我们要求能够进入 ansys 运行的求解过程中,并且输 出数据到外部文件,能够和 程序进行数据传递。
19
调试用户子程序
★首先是进入ansys的求解过程中,在用户子程序中有以下程序,我们可以 通过激活这些子程序进入ansys运行的中间点。
ANSYS 11.0 高级二次开发
ANSYS二次开发的三大工具
汇 报 内 容
What are UPFs?How to use?
UPFs 演示算例
1
ANSYS程序二次开发的三大工具
标准ANSYS程序是一个功能强大、通用性好的有限元分 析程序,同时它还具有良好的开放性,用户可以根据自身的 需要在标准ANSYS版本上进行功能扩充和系统集成,生成具 有专业分析特点和符合用户需要的用户版本的ANSYS程序。
★开发用户子程序实现从ANSYS数据库中提取数据或将数据写入ANSYS 数据库。该种子程序可以编译连接到ANSYS中,此时ANSYS提供了10 个数据库操作命令;如果作为外部命令处理,可以在ANSYS的任何模 块中运行;
★利用ANSYS提供的子程序定义各种类型的载荷,其中包括BF或BFE载 荷、压力载荷、对流载荷、热通量和电荷密度等; ★利用ANSYS提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、 粘塑性、超弹、层单元失效准则等;
典型的UPFs包括以下步骤:
(1) 确定你需要的功能ANSYS程序不能完成且UPFs可以实现;
For example,对于的创建用户单元,每个节点的自由度不能大于 32个,每个单元的节点不能超过44个节点。
(2) 在 FORTRAN 中编制用户子程序;
在ANSYS 中所有的用户子程序源代码都是公开的。大部分完成至 少一个简单的功能,因此在编制程序前应列出一份完整的可用程 序表。
7
What are UPFs?
★利用ANSYS提供的子程序定义新单元和调整节点方向矩阵;
★利用ANSYS提供的子程序修改或控制ANSYS单元库中的单元;
★利用USEROP创建用户优化程序;
★ANSYS程序作为子程序在用户程序中调用。
8
How to use UPFs ?
UPFs可以从简单的单元输出功能到很复杂的用户单元或用户优 化算法。因此,不进行特定的程序细节描述是很难完成这些子程序 功能的。Programmer's Manual for ANSYS中有详细的解释。
9
How to use UPFs ?
(3) 编译并将用户程序连接到ANSYS程序中,生成新版本的ANSYS;
在此步骤中要消除用户子程序中出现的错误。
(4) 对生成的新版本ANSYS进行调试,验证是否满足需要的功能;
这是二次开发中关键部分,要建立与子程序的沟通(程序中的数据输出), 来实现用户的需要功能。
14
编制用户子程序 注意
(1) 在用户子程序中用到的所有变量都要进行定义,例如:循环 变量I,J,K等。
(2) 一定要检查节点顺序。(只是针对创建单元)
15
编译、连接用户子程序
编译连接通过以下路径:开始 -> ANSYS 11.0 -> Utilities -> ANS_ADMIN -> Relink ANSYS -> OK ->请按任意键继续… -> ‘N’ … ->生成新版本ANSYS.EXE
20
调试用户子程序
★将计算过程中的数据输出到外部文件,和Fortran中打开文件一样,只需 用户子程序中设臵一个通道号,然后open一个文件就可以。虽然简单,但 这是调试的有效途径。另外,还可以将一些信息输出到ansys的输出窗口中。
21
验证新版本ANSYS
调用创建的用户单元建立模型
22
验证新版本ANSYS
例如如下用户子程序 UAnBeg.f : 在ansys开始运行的时候,默认激活。 USolBeg.f : 在求解前。 USolFin.f : 在求解后。 运行时, 需要通过USRCAL来激活和取消用户子 程序 USRCAL, STAT !看被激活的用户子程序列表 USRCAL, NONE !取消用户子程序 USRCAL, ALL !激活用户子程序 USRCAL, UANBEG, USOLBEG, USOLFIN ! 最多9个一组 进入ansys运行中的子程序
(5) 验证新版本是否影响其他标准功能的使用;
可以通过做几个ANSYS Verification Manual中的例题来验证。在ANSYS 中也有输入这些问题的方法。
(6) 应用新版本ANSYS。
10
演示算例 (创建三维八结点实体单元)
八结点实体单元
创建八结点实体单元 USER300( 用户单元必须用此名称 ) ,此单元 在ansys中可以找到,但为了了解UPFs的过程以及验证其正确性,用 自己创建的 USER300 单元和 solid45 单元分别建立悬臂梁有限元模型, 加载计算后,所得结果若完全一致,则说明用户单元USER300是正确 的。
16
编译、连接用户子程序
编译连接也可通过直接运行目录下的程序 ANSCUST.BAT => 请按任意键继续… => ‘N’,同样可生成新版本ANSYS.EXE。
注意
ansys本身提供了一个makefile文件,使用该文件会导致每次修改完自 己用户单元程序,执行anscust.bat 后,系统不能生成新混编成的ansys.exe 文件,而是告诉你ansys.exe 还是最新的,不需要进行重编,只能把现有的 ansys.exe删掉后才能重编。以上问题是由于ansys本身提供的这个 makefile 不完善造成的。
3
参数化程序设计语言(APDL)
4
用户界面设计语言(UIDL)
UIDL(User Interface Design Language)是编写或改造 ANSYS图形界 面的专用设计语言。 标准 ANSYS 交互图形界面可以驱动 ANSYS 命令,提供命令的 各类输入参数接口和控制开关,用户在图形驱动的级别上进行有限 元分析,整个过程变得直观轻松。主要完成以下三种图形界面的设 计:主菜单系统及菜单项、对话框和拾取对话框与帮助系统。 通过用户界面设计语言,用户可以在扩充 ANSYS 功能的同时 建立起对应的图形驱动界面,如在主菜单的某位臵增加菜单项,设 计对应的对话框、拾取对话框,实现参数的输入和其它程序运行的 控制,同时提供相应的联机帮助,使操作者能方便地获取系统帮助。
参数含义请参 考《ansys 11.0 用户子程序手 册》P115
13
编制用户子程序
UserElem.F用户子程序在没有修改之前,包含了一个 2 维平面应 变单元和一个3维实体单元。
• • • • • • • • • • • • c *** CODE EXAMPLE *** c c --- The element code is only to show how to use the routine to create user c elements. Two element types are coded. Only the stiffness matrix, mass c matrix and internal load vector are shown. c c When KeyOpt(1) = 0, it is a structural 2D plane strain element c with 4 nodes and 4 integration points c When KeyOpt(1) = 1, it is a structural 3D solid elements c with 20 nodes and 8 integration points c No advanced element technology is employed, c and they are only coded for geometric linear analysis.
(3)
(2)
X
(1) 3 源自文库 1
2
Y
==结果 : == 单元质量阵、刚度阵 节点位移响应 12
编制用户子程序
★备份C:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel 目录下的所有文件。 ★删除C:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel 目录下除了ANSYS.F外的其他的.F程序 ★编辑修改UserElem.F用户子程序,并重新拷贝到上述C:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel目录下
11
Ⅲ.演示算例 (三维实体悬臂梁)
23
Z
24
(5)
(4)
== 悬臂梁 == 长: 7.5m 宽与高: 1.5m == 有限元模型:三维实体元 == 1.5m的立方体 共5个 == 约束: == 悬臂梁一个端面的4个节点全约束 ==载荷: == 悬臂梁另一端上部两点X方向加载 F,23,FX,-500000N. F,24,FX,-500000N.
17
编译、连接用户子程序
语法错误的检查,在运行程序ANSCUST.BAT 进行连接的同 时,还会对用户子程序进行语法上的检查,并输出在对话框中, 例如,在修改 UserElem.F时没有对加入的变量定义则会出现以下 情况,虽然也能生成ansys.exe,但是程序无法正常运行。
18
调试用户子程序
启动新版本的ANSYS 开 始 -> ANSYS 11.0 -> ANSYS Product Launcher -> Customization Preferences -> Custom ANSYS Executable -> 指定新的ANSYS.exe的位臵。
二 次 开 发 的 三 大 工 具
★参数化程序设计语言(APDL)
★用户程序特性(UPFs )
★用户界面设计语言(UIDL)
2
参数化程序设计语言(APDL)
APDL(ANSYS Parametric Design Language)是由类似于FORTRAN77的 程序设计语言部分和 1000 多条 ANSYS命令组成。其中,程序设计语 言部分与其它编程语言一样,具有参数、数组表达式、函数、流程 控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。 标准的 ANSYS 程序运行是由 1000 多条命令驱动的,这些命令可 以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可 以通过表达式的结果或参数的方式进行赋值。从 ANSYS命令的功能 上讲,它们分别对应 ANSYS分析过程中的定义几何模型、划分单元 网格、材料定义、添加载荷和边界条件、控制和执行求解和后处理 计算结果等指令。 用户可以利用程序设计语言将 ANSYS命令组织起来,编写出参 数化的用户程序,从而实现有限元分析的全过程,即建立参数化的 模型、参数化的网格划分与控制、参数化的材料定义、参数化的载 荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。
5
用户程序特性(UPFs)
What are UPFs (user Programmable
Features)?
&
How to use UPFs(user Programmable
Features)?
6
What are UPFs?
UPFs是ANSYS 的功能允许用户使用自己编写的FORTRAN 程序。 UPFs允许用户根据需要定制ANSYS 程序,如用户定义的材料性质,用 户单元类型,用户定义的失效准则等。用户还可以编写自己的优化设计算法 将 整 个 ANSYS 程 序 作 为 子 过 程 来 调 用 。 在 与 ANSYS 版 本 要 求 匹 配 的 FORTRAN或C 编译器上重新编译和连接,生成用户版本的ANSYS程序。用 户可以开发下列方面的功能程序: