您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > ANSYS-高级二次开发
汇报内容WhatareUPFs?Howtouse?ANSYS二次开发的三大工具UPFs演示算例ANSYS11.0高级二次开发1标准ANSYS程序是一个功能强大、通用性好的有限元分析程序,同时它还具有良好的开放性,用户可以根据自身的需要在标准ANSYS版本上进行功能扩充和系统集成,生成具有专业分析特点和符合用户需要的用户版本的ANSYS程序。ANSYS程序二次开发的三大工具★参数化程序设计语言(APDL)★用户界面设计语言(UIDL)★用户程序特性(UPFs)二次开发的三大工具2APDL(ANSYSParametricDesignLanguage)是由类似于FORTRAN77的程序设计语言部分和1000多条ANSYS命令组成。其中,程序设计语言部分与其它编程语言一样,具有参数、数组表达式、函数、流程控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。标准的ANSYS程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。从ANSYS命令的功能上讲,它们分别对应ANSYS分析过程中的定义几何模型、划分单元网格、材料定义、添加载荷和边界条件、控制和执行求解和后处理计算结果等指令。用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。参数化程序设计语言(APDL)3参数化程序设计语言(APDL)4UIDL(UserInterfaceDesignLanguage)是编写或改造ANSYS图形界面的专用设计语言。标准ANSYS交互图形界面可以驱动ANSYS命令,提供命令的各类输入参数接口和控制开关,用户在图形驱动的级别上进行有限元分析,整个过程变得直观轻松。主要完成以下三种图形界面的设计:主菜单系统及菜单项、对话框和拾取对话框与帮助系统。通过用户界面设计语言,用户可以在扩充ANSYS功能的同时建立起对应的图形驱动界面,如在主菜单的某位置增加菜单项,设计对应的对话框、拾取对话框,实现参数的输入和其它程序运行的控制,同时提供相应的联机帮助,使操作者能方便地获取系统帮助。用户界面设计语言(UIDL)5用户程序特性(UPFs)WhatareUPFs(userProgrammableFeatures)?HowtouseUPFs(userProgrammableFeatures)?&6WhatareUPFs?UPFs是ANSYS的功能允许用户使用自己编写的FORTRAN程序。UPFs允许用户根据需要定制ANSYS程序,如用户定义的材料性质,用户单元类型,用户定义的失效准则等。用户还可以编写自己的优化设计算法将整个ANSYS程序作为子过程来调用。在与ANSYS版本要求匹配的FORTRAN或C编译器上重新编译和连接,生成用户版本的ANSYS程序。用户可以开发下列方面的功能程序:★开发用户子程序实现从ANSYS数据库中提取数据或将数据写入ANSYS数据库。该种子程序可以编译连接到ANSYS中,此时ANSYS提供了10个数据库操作命令;如果作为外部命令处理,可以在ANSYS的任何模块中运行;★利用ANSYS提供的子程序定义各种类型的载荷,其中包括BF或BFE载荷、压力载荷、对流载荷、热通量和电荷密度等;★利用ANSYS提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;7★利用ANSYS提供的子程序定义新单元和调整节点方向矩阵;★ANSYS程序作为子程序在用户程序中调用。★利用ANSYS提供的子程序修改或控制ANSYS单元库中的单元;★利用USEROP创建用户优化程序;WhatareUPFs?8HowtouseUPFs?UPFs可以从简单的单元输出功能到很复杂的用户单元或用户优化算法。因此,不进行特定的程序细节描述是很难完成这些子程序功能的。Programmer'sManualforANSYS中有详细的解释。(1)确定你需要的功能ANSYS程序不能完成且UPFs可以实现;典型的UPFs包括以下步骤:Forexample,对于的创建用户单元,每个节点的自由度不能大于32个,每个单元的节点不能超过44个节点。(2)在FORTRAN中编制用户子程序;在ANSYS中所有的用户子程序源代码都是公开的。大部分完成至少一个简单的功能,因此在编制程序前应列出一份完整的可用程序表。9(3)编译并将用户程序连接到ANSYS程序中,生成新版本的ANSYS;(4)对生成的新版本ANSYS进行调试,验证是否满足需要的功能;(5)验证新版本是否影响其他标准功能的使用;(6)应用新版本ANSYS。可以通过做几个ANSYSVerificationManual中的例题来验证。在ANSYS中也有输入这些问题的方法。在此步骤中要消除用户子程序中出现的错误。这是二次开发中关键部分,要建立与子程序的沟通(程序中的数据输出),来实现用户的需要功能。HowtouseUPFs?10演示算例(创建三维八结点实体单元)创建八结点实体单元USER300(用户单元必须用此名称),此单元在ansys中可以找到,但为了了解UPFs的过程以及验证其正确性,用自己创建的USER300单元和solid45单元分别建立悬臂梁有限元模型,加载计算后,所得结果若完全一致,则说明用户单元USER300是正确的。八结点实体单元11==悬臂梁==长:7.5m宽与高:1.5m==有限元模型:三维实体元==1.5m的立方体共5个==约束:==悬臂梁一个端面的4个节点全约束==载荷:==悬臂梁另一端上部两点X方向加载F,23,FX,-500000N.F,24,FX,-500000N.==结果:==单元质量阵、刚度阵节点位移响应XYZ23241234(5)(4)(3)(2)(1)Ⅲ.演示算例(三维实体悬臂梁)12编制用户子程序★备份C:\ProgramFiles\ANSYSInc\v110\ANSYS\custom\user\intel目录下的所有文件。★删除C:\ProgramFiles\ANSYSInc\v110\ANSYS\custom\user\intel目录下除了ANSYS.F外的其他的.F程序★编辑修改UserElem.F用户子程序,并重新拷贝到上述C:\ProgramFiles\ANSYSInc\v110\ANSYS\custom\user\intel目录下参数含义请参考《ansys11.0用户子程序手册》P11513•c***CODEEXAMPLE***•c•c---Theelementcodeisonlytoshowhowtousetheroutinetocreateuser•celements.Twoelementtypesarecoded.Onlythestiffnessmatrix,mass•cmatrixandinternalloadvectorareshown.•c•cWhenKeyOpt(1)=0,itisastructural2Dplanestrainelement•cwith4nodesand4integrationpoints•cWhenKeyOpt(1)=1,itisastructural3Dsolidelements•cwith20nodesand8integrationpoints•cNoadvancedelementtechnologyisemployed,•candtheyareonlycodedforgeometriclinearanalysis.UserElem.F用户子程序在没有修改之前,包含了一个2维平面应变单元和一个3维实体单元。编制用户子程序14注意(1)在用户子程序中用到的所有变量都要进行定义,例如:循环变量I,J,K等。(2)一定要检查节点顺序。(只是针对创建单元)编制用户子程序15编译、连接用户子程序编译连接通过以下路径:开始-ANSYS11.0-Utilities-ANS_ADMIN-RelinkANSYS-OK-请按任意键继续…-‘N’…-生成新版本ANSYS.EXE16编译、连接用户子程序编译连接也可通过直接运行目录下的程序ANSCUST.BAT=请按任意键继续…=‘N’,同样可生成新版本ANSYS.EXE。ansys本身提供了一个makefile文件,使用该文件会导致每次修改完自己用户单元程序,执行anscust.bat后,系统不能生成新混编成的ansys.exe文件,而是告诉你ansys.exe还是最新的,不需要进行重编,只能把现有的ansys.exe删掉后才能重编。以上问题是由于ansys本身提供的这个makefile不完善造成的。17注意编译、连接用户子程序语法错误的检查,在运行程序ANSCUST.BAT进行连接的同时,还会对用户子程序进行语法上的检查,并输出在对话框中,例如,在修改UserElem.F时没有对加入的变量定义则会出现以下情况,虽然也能生成ansys.exe,但是程序无法正常运行。18调试用户子程序启动新版本的ANSYS开始-ANSYS11.0-ANSYSProductLauncher-CustomizationPreferences-CustomANSYSExecutable-指定新的ANSYS.exe的位置。只有程序出现问题时才进行调试,要达到调试程序的目的就要输出我们感兴趣的数据,检查它们是否正确,所以,我们要求能够进入ansys运行的求解过程中,并且输出数据到外部文件,能够和程序进行数据传递。19调试用户子程序★首先是进入ansys的求解过程中,在用户子程序中有以下程序,我们可以通过激活这些子程序进入ansys运行的中间点。例如如下用户子程序UAnBeg.f:在ansys开始运行的时候,默认激活。USolBeg.f:在求解前。USolFin.f:在求解后。运行时,需要通过USRCAL来激活和取消用户子程序USRCAL,STAT!看被激活的用户子程序列表USRCAL,NONE!取消用户子程序USRCAL,ALL!激活用户子程序USRCAL,UANBEG,USOLBEG,USOLFIN!最多9个一组进入ansys运行中的子程序20调试用户子程序★将计算过程中的数据输出到外部文件,和Fortran中打开文件一样,只需用户子程序中设置一个通道号,然后open一个文件就可以。虽然简单,但这是调试的有效途径。另外,还可以将一些信息输出到ansys的输出窗口中。21验证新版本ANSYS调用创建的用户单元建立模型22验证新版本ANSYS编写命令流分别使用USER300单元(即八结点实体单元)和solid45单元建立悬臂梁模型进行求解,然后对比两个结果是否一致。23solid3d_ansys.txt输出文件:所有单元质量阵和刚度阵第(5)单元节点坐标与位移两途径APDL命令流GUI图形界面操作GUI界面操作APDL命令流每步等价File-List-LogFile…输入文件:OutSld3D_1.txtOutSld3D_2.TXT/CLEAR,START!初始化环境/CONFIG,NRES,10000!最多结果子步数/FILNAME,SOLD3DEXP,1/TITLE,3DELASTICSOLIDEXAMPLE/PREP7!进入“前处理”ET,1,SOLID45!*KEYOPT,1,1,1!EXCLUDEKEYOPT,1,2,0!FullintegrationKEYOPT,1,5,2!NodalStress!*MP,EX,1,2.8E9MP,PRXY,1,0.3MP,DENS,1,2400TYPE,1MAT,1单元类型1材料类型1指定类型ANSYS命令流(APDL)的实现过程ET,1,user300TYPE,1R,1,2.8E9,0.3,2400USRELEM,8,3,BRICK,3,5,5,0,2,3,0USRD
本文标题:ANSYS-高级二次开发
链接地址:https://www.777doc.com/doc-5037549 .html