将ansys作为子程序调用
ANSYS二次开发概述.62
ANSYS二次开发概述标准ANSYS程序是一个功能强大、通用性好的有限元分析程序,同时它还具有良好的开放性,用户可以根据自身的需要在标准ANSYS版本上进行功能扩充和系统集成,生成具有行业分析特点和符合用户需要的用户版本的ANSYS程序。
开发功能包括四个组成局部:⑴.参数化程序设计语言〔APDL〕⑵.用户界面设计语言〔UIDL〕⑶.用户程序特性〔UPFs〕⑷.ANSYS数据接口APDL所能实现的功能通俗的说来应该是次于UPF而强与UIDL,但实际上是由于三者具体侧重点不同造成的:UIDL主要控制GUI界面的各类二次开发方法,涉及的分析局部就要少一些,APDL可以称其为和分析局部频繁打交道的一组小型工具,功能强大,但不和UIDL一样能够非常具体的针对某一两方面的二次开发处理,通常情况下融合在分析的角角落落中。
UPF是三者之间的最强者,能完成最复杂的二次开发工作,比方说构建新单元,复杂数据库交互,外围命令定制等,但UPF在很多情况下也借助了APDL命令来完全实现其功能。
同样也能在UIDL中嵌入APDL命令,来构建比拟复杂的GUI二次开发工作。
UIDL、APDL和UPF三者各有所长,密不可分。
结合使用三者,就能够实现任何强大的分析功能。
5.2 Ansys的开发功能组成局部Ansys的开发功能由三个局部组成:参数化程序设计语言〔APDL〕、用户界面设计语言〔UIDL〕、用户程序特性〔UPFs〕5.2.1 参数化程序设计语言〔APDL〕参数化程序设计语言(APDL-ANSYS Parametric Design Language)实质上由类似于FORTRAN77的程序设计语言局部和1000多条ANSYS命令组成。
其中,程序设计语言局部与其它编程语言一样,具有参数、数组表达式、函数、流程控制〔循环与分支〕、重复执行命令、缩写、宏以及用户程序等。
标准的ANSYS 程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。
如何在ansys中调用外部应用程序
printf("Solution finished...");
}
2.在FORTRAN中调用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.说明
1和2中,input_file为用APDL语言编写的ANSYS输入文件。
VC调用ANSYS的示例程序。
//Test.cpp
#include "stdio.h"
#include"process.h"
void main()
{
int result;
printf("Solving...");
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i test.txt -o test.out");
ansys_product_feature为你的ANSYS产品特征代码。
需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS
已经执行完毕。
在用。可以参看有关ANSYS二次开发方面的资料。这个方法应该是与系统无关的。
在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
(4)程序需要判断Ansys的批处理操作何时结束。
在Window NT操作系统中当一个进程运行完毕后,窗口的标题会有”已完成
ansys高级分析UPFs设定8
第八章UPFs用法用户可编程特性(UPFs)ANSYS程序的开放结构允许用户连接自己的FORTRAN程序和子过程。
实际上,现在用户看到的许多ANSYS“标准”用法都是由以前用户过程引进的。
什么是UPFs?用户可编程特性是ANSYS的功能允许用户使用自己的FORTRAN程序。
UPFs适用于ANSYS/Multiphysics, ANSYS/Mechanical, ANSYS/Structural, ANSYS/PrepPost和ANSYS/University(研究版和大学版)产品系列。
UPFs允许用户根据需要定制ANSYS程序,如用户定义的材料性质,用户单元类型,用户定义的失效准则等。
用户还可以编写自己的优化设计算法将整个ANSYS程序作为子过程来调用。
注——用户使用UPFs必须十分小心仔细。
通过连接自己的FORTRAN程序,用户生成了一个针对用户特定计算机的ANSYS程序版本。
在并行系统中使用ANSYS时不允许使用用户可编程特性。
另外,UPFs是一种非标准的使用方法,ANSYS公司质量保证的测试程序没有包括这部分内容。
用户必须负责保证用户子程序结果正确并不影响别的标准功能的运行。
如何使用UPFs?UPFs可以从简单的单元输出功能到很复杂的用户单元或用户优化算法。
因此,不进行特定的程序细节描述是很难完成这些子程序功能的。
在ANSYS Programmer's Manual中有详细的解释。
一个典型的UPF包括下列步骤:1.在FORTRAN77中编制用户程序。
在ANSYS中所有的用户程序源代码都是公开的。
大部分完成至少一个简单的功能,因此在编制程序前应列出一份完整的可用程序表。
2.编译并将用户程序连接到ANSYS程序中。
在ANSYS Installation and Configuration Guide中有这方面的详细描述。
3.用户可能要验证自己做的改动是否影响其他ANSYS标准功能的使用。
ansys技巧大全
模型简化及网格划分模型简化及网格划分使在建立仿真模型时,经验是非常有助于用户决定哪些部件应该考虑因而必须建立在模型中,哪些部件不应该考虑因而不需建立到模型中,这就是所谓的模型简化。
此外,网格划分也是影响分析精度的另外一个因素。
本文将集中讨论如何简化模型以获得有效的仿真模型以及网格划分需要注意的一些问题。
理想情况下,用户都希望建立尽可能详细的仿真模型,而让仿真软件自己来决定哪些是主要的物理现象。
然而,由于有限的计算机资源或算法限制,用户应该简化电磁仿真的模型。
模型简化模型简化主要取决于结果参数及结构的电尺寸。
例如,如果用户希望分析安装在某电大尺寸载体上的天线的远场方向图,那么模型上距离源区超过一个波长的一些小特征和孔径(最大尺度小于 /50)就可以不考虑。
另一方面,如果用户希望分析从源到用带有小孔的屏蔽面屏蔽的导线之间的耦合,那么必须对小孔、靠近源的屏蔽面以及导线进行精确建模。
另外一个常用的简化是用无限薄的面来模拟有限厚度的导体面。
一般而言,厚度小于/100的金属面都可以近似为无限薄的金属面。
有限导电性和有限厚度的影响可以在SK卡中设置。
对于比较厚的导体面,如果这种影响是次要的,那么用户仍然可以采取这种近似。
例如,当建立大反射面天线的馈源喇叭模型时,喇叭壁的有限厚度对于反射面天线主波束的影响就是次要的。
然而,如果喇叭天线用于校准标准时,那么喇叭壁的有限厚度就不能忽略。
网格划分一般而言,网格划分的密度设置为最短波长的十分之一。
然而,在电流或电荷梯度变化剧烈的区域,如源所在区域、曲面上的缝隙和曲面的棱边等,必须划分得更密。
一个实用的指导原则是网格大小应该与结构间的间隔距离(d)相比拟(<=2d)。
同样地,如果需要计算近场分布,那么网格大小应该同场点到源点间距离(d)相比拟。
总之,用户建立的几何模型应该抓住主要的物理现象,而网格划分则需要权衡输出结果相对于网格大小的收敛性。
二次开发调试技术二次开发调试技术(摘自ANSYS用户专区)- -在调试用户子程序过程中,可以利用非《ANSYS命令参考手册》某些命令和其它特性帮助用户提供许多有用的信息。
模态分析
ANSYS与ADAMS接口示例adams和ansys联合仿真的方法浅析adams可以进行柔性体仿真,但是用adams自带的插件做柔性体效果不佳,推荐的方法是,用ansys建立有限元模型,制作中性文件导入adams,这样既能在adams中进行柔性体仿真,还可以将仿真过程中该构件所承受的动态载荷导入ansys进行有限元分析。
我用ansys制作柔性体中性文件方法如下:1.preprocessor>add/edit/delete 弹出对话框中单击add,增加两个单元类型:3D mass 21、solid 452.导入或建立三维模型,创建用于外联的关键点3.用3D mass 21划分外联关键点,用solid45划分三维模型。
4.创建刚性区,实际上就是某外联关键点和一部分表面节点建立耦合方程。
preprocessor>coupling/ceqn>rigid region5.保存模型,创建中性文件。
solution>adams connection>export在ADAMS软件中生成ANSYS所需要的载荷文件(.lod文件)进入ADAMS程序,建立机械系统的刚性部件,读入模态中性文件.mnf以建立柔性体的模型,指定柔性体与刚性体的连结方式,按实际情况定义载荷和边界条件进行机械系统的运动学分析。
在分析完成后输出ANSYS软件所需要的载荷文件(.lod 文件)。
此文件包含了对应于运动过程中不同时刻点柔性体的运动状态和所承受的载荷等信息(例如力,力矩,加速度,角速度及角加速度)。
在ANSYS程序中进行应力应变分析进入ANSYS程序,恢复在步骤一中所建立的柔性体模型,选择所有节点,从载荷文件(.lod文件)中找到相应时刻的载荷并输入ANSYS,对柔性体进行应力应变分析。
在分析完成后即可得到柔性体的应力应变分布和其它感兴趣的结果数据。
分析示例此模型为摩托车发动机活塞曲柄连杆机构。
活塞上施加5Kn的力。
Ansys多种软件导入
优点:
可转换成梁单元
缺点:
转换实体类型太少
4. dxf2ansys (傻瓜极力推荐)
软件直接装换为 Ansys 输入格式。前处理状态下,选 Read Input From 菜单输入
优点:
常用的非三维实体都能转换。由于转换Keypoint 初始值可选,你用AutoCAD建模时可以各部分单独建,在Ansys中单独输入!!!
Ansys:
File --> Import --> SAT... 输入即可
优点:
各种实体类型都能转换
缺点:
转换麻烦,而且经常需要“TOPO and GEOM Repair”
AutoCAD 14 转换工具下载:ftp:///ProdSupp/autocad14/iges/igespr14.exe
可以将UG18中的图形转换成11-16版本才可以用ANSYS读出来,我不知道您所说的“在ANSYS中~\ANSYS57\ac4\bin中设定UG的parasolid版本即可直接读入UG的part文件 ”怎样实现呢?请指点。
~\ANSYS57\ac4\bin下只有ug170的文件夹,也就是说只支持17版本以下UG的parasolid,此时可添加ug160文件夹,将ug170中内容完全copy过来,即可直接读入ug16的part,但高过17版本的可能有问题~
ANSYS_SOLVER Frontal Included for compatibility only.
ANSYS_SELECTED_LAYERS 1-256 Included for compatibility only.
ANSYS_GEOMETRY_TYPE Solids Only Included for compatibility only.
ANSYS二次开发概述
ANSYS二次开发概述标准ANSYS程序是一个功能强大、通用性好的有限元分析程序,同时它还具有良好的开放性,用户可以根据自身的需要在标准ANSYS版本上进行功能扩充和系统集成,生成具有行业分析特点和符合用户需要的用户版本的ANSYS程序。
开发功能包括四个组成部分:⑴.参数化程序设计语言(APDL)⑵.用户界面设计语言(UIDL)⑶.用户程序特性(UPFs)⑷.ANSYS数据接口APDL所能实现的功能通俗的说来应该是次于UPF而强与UIDL,但实际上是由于三者具体侧重点不同造成的:UIDL主要控制GUI界面的各类二次开发方法,涉及的分析部分就要少一些,APDL可以称其为和分析部分频繁打交道的一组小型工具,功能强大,但不和UIDL一样能够非常具体的针对某一两方面的二次开发处理,通常情况下融合在分析的角角落落中。
UPF是三者之间的最强者,能完成最复杂的二次开发工作,比如说构建新单元,复杂数据库交互,外围命令定制等,但UPF在很多情况下也借助了APDL命令来完全实现其功能。
同样也能在UIDL中嵌入APDL命令,来构建比较复杂的GUI二次开发工作。
UIDL、APDL和UPF三者各有所长,密不可分。
结合使用三者,就能够实现任何强大的分析功能。
5.2 Ansys的开发功能组成部分Ansys的开发功能由三个部分组成:参数化程序设计语言(APDL)、用户界面设计语言(UIDL)、用户程序特性(UPFs)5.2.1 参数化程序设计语言(APDL)参数化程序设计语言(APDL-ANSYS Parametric Design Language)实质上由类似于FORTRAN77的程序设计语言部分和1000多条ANSYS命令组成。
其中,程序设计语言部分与其它编程语言一样,具有参数、数组表达式、函数、流程控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。
标准的ANSYS程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。
ANSYS二次开发与应用简介
ANSYS二次开发与应用简介目录1 ANSYS经典界面的二次开发简介 (2)1.1 利用ANSYS参数化设计语言(APDL)进行开发 (2)1.2 利用ANSYS用户界面设计语言(UIDL)进行开发 (3)1.3 利用ANSYS提供的接口软件与ANSYS进行实时交流 (3)1.4 ANSYS的用户可编程特征(UPFs) (3)2 ANSYS新一代协同仿真平台WORKBENCH二次开发简介 (4)3 ANSYS二次开发的典型案例 (5)4 一个ANSYS二次开发方案详细介绍(国内) (7)4.1 CCSS的构成 (7)4.2 ANSYS for CCSS与规范设计模块的关系 (7)4.3 ANSYS for CCSS的开发方案: (8)4.3.1 FEA模块将包含如下功能: (8)4.3.2 评估模块 (9)4.3.3 部件方法: (10)5 一个ANSYS二次开发成果详细介绍(国外) (11)5.1 前 言 (11)5.2 ANSYS体系结构的优势 (11)5.3 BladePro程序概览 (12)5.4 BladePro分析功能概述 (15)5.5 涡轮机械专用的后处理工具 (15)5.6 某算例的分析结果 (16)5.7 总结 (17)1ANSYS经典界面的二次开发简介1.1利用ANSYS参数化设计语言(APDL)进行开发ANSYS参数化设计语言是一种类似于FORTRAN语言的解释执行语言,它主要由两部分构成,其一为ANSYS的命令、内部函数,可以执行ANSYS的所有操作;其二为FORTRAN语言的几乎所有语法和函数,如DO循环、IF-THEN-ELSE结构、SIN和COS等所有三角函数、带参数子程序、“=”赋值语句、SQRT平方开方等运算、取绝对值、乘方等等。
因此,可以利用这种APDL语言进行各种参数化建模分析工作,当需要对模型做改动时,只需变化几个参数即可。
优点:可以用于参数化设计;与ANSYS的数据库直接通讯;可以充分利用ANSYS命令所具有的强大功能;编程容易,直管,易于调试;易于修改和扩展。
ansys二次开发
ANSYS的二次开发技术ANSYS提供的二次开发工具共有三个:参数化设计语言(ANSYS Parametric Design Language,APDL),用户界面设计语言(User Interface Design Language,UIDL)以及用户可编程特性(User Programmable Features,UPFs)。
其中,前两种可归类为标准使用特性,后一种为非标准使用特性。
ANSYS参数化设计语言(APDL)APDL扩展了传统有限元分析范围之外的能力,提供了建立标准化零件库、序列化分析、设计修改、设计优化以及更高级的数据分析处理能力,包括灵敏度研究等。
ANSYS用户可编程特性(UPFs)利用UPFs,用户可以开发下列方面的功能程序:(1)开发用户子程序实现从ANSYS数据库中提取数据或将数据写入ANSYS数据库。
该种子程序可以编译连接到ANSYS中,此时ANSYS提供了10个数据库操作命令;如果作为外部命令处理,可以在ANSYS的任何模块中运行;(2)利用ANSYS提供的子程序定义各种类型的载荷,其中包括BF或BFE载荷、压力载荷、对流载荷、热通量和电荷密度等;(3)利用ANSYS提供的子程序定义各种材料特性,包括塑性、蠕变、膨胀、粘塑性、超弹、层单元失效准则等;(4)利用ANSYS提供的子程序定义新单元和调整节点方向矩阵,ANSYS最多可以有6个独立的新单元USER100-USER105;(5)利用ANSYS提供的子程序修改或控制ANSYS单元库中的单元;(6)利用UEROP创建用户优化程序,可以用自己的算法和中断准则替换ANSYS优化过程。
(7)ANSYS程序作为子程序在用户程序中调用,如用户自定义的优化算法。
ANSYS软件本身是通过FORTRAN和C语言开发的。
使用UPFs进行二次开发,在安装ANSYS的基础上,还需要Compaq Visual FORTRAN和MS Visual C++的支持。
三、9、访问ANSYS数据库的子程序
ANSYS UPFs二次开发教程师访pomato157300@中国矿业大学力学与建筑工程学院力学系三、9、访问ANSYS数据库的子程序(1)选择或获得节点及单元的子程序● ndnext:获得下一个已被选择的节点的节点号。
● ndprev:获得前一个选择的节点的节点号。
● ndnxdf:获得下一个已定义节点的节点号。
● ndsel:选择节点、反选节点、删除节点或反转节点的选择状态。
● elnext:获得前一个已被选择的单元的单元号。
● elprev:获得前一个已被选择的单元的单元号。
● elnxdf:获得下一个已定义单元的单元号。
● elsel:选择单元、反选单元、删除单元或反转单元的选择状态。
(2)节点信息相关子程序● ndinqr:获得节点相关的信息。
● getnod:输入节点号,返回节点的坐标及转角。
● putnod:给定节点的坐标及转角坐标,以给定的节点号存储该节点。
● ndgall:输入节点号,函数返回该节点的x,y,z坐标及转角坐标,还可返回节点状态信息(是否已被定义,是否已被选择)。
● ndspgt:获得单元某一节点的节点求解结果。
(3)单元特征相关子程序● elmiqr:获得单元相关的信息。
● elmget:获得单元特征和单元的节点。
● elmput:存储单元特征和节点数。
● etyiqr:获得某一单元类型的数据项。
● etyget:获得单元类型信息。
● etyput:存储单元类型数据。
● echrtr:获得单元特征信息。
● etysel:选择单元类型、反选单元类型、删除单元类型或反转单元类型的选择状态。
● mpinqr:获得材料特性信息。
● mpget:获得材料特性表。
● mpput:存储材料特性表。
● mpdel:删除材料特性表。
● rlinqr:获得实常数集的相关信息。
● rlget:获得实常数数据。
● rlsel:选择或删除实常数集。
● csyiqr:获得坐标系相关信息。
● csyget:获得坐标系数据。
(必看)ANSYS转子动力学计算讨论
关于ansys做转子动力学问题若干思考(百思论坛)最近想学习一下ansys做转子动力学分析,看了点资料,有点自己感想还有一些别的网友的建议,个人认为比较不错的贴了出来一转子动力学插件:转子动力学插件演示版我已经用了基本上图形可以出来,由于版本原因例程和实际的对应有点问题,如果要有时间我可以把我做的过程,贴出来.难点:坎贝尔图我有些不太了解1 2 5 10频率还有一些刚度考虑的随转速在变化,有函数关系例子上提到了用matrix27模拟刚度,而它只用了刚度阻尼单元,好像没有考虑刚度x y 的交叉项,另外因为是演示版,节点有所限制总的来说不错!将来的要做的工作:滑动轴承模拟滚动轴承模拟挤压油膜阻尼器密封转定件接触(碰摩)电磁场耦合自润滑轴承(石墨)有感:各位学习ansys的高手,有没有兴趣自己开发上面单元,这是很有用的工作,我很感兴趣,但有碍于自己知识水平有限,尤其理论水平,有心无力,如果有对此感兴趣的希望一起研究研究;另外对于ansys做转子的动力学的书籍市场上几乎没有,呵呵希望能组织一些人力把这本书完成功在当代利在千秋提示:1 根据本人自己瞎琢磨,以及看论坛的各位高手的留言觉得做模态分析临界转速计算一般用实体单元的少由于不能考虑陀螺力矩shaft:可以采用beam系列模拟pipe系列也行这些能考虑陀螺力矩叶轮叶片:采用mass21模拟,计算转动惯量,质量通过实常数设置刚度阻尼陀螺质量矩阵:都可以采用matrix27模拟,当然也有用弹簧阻尼单元做的, 问题有过考虑油膜的非线性怎么模拟?2. 网友1:目前轴承计算,采用将刚度和阻尼的8个系数,以施加力和力矩的方式解决> 这个我没搞懂,如果那位给个例子3Q网友2: Pip16能考虑陀螺力矩的影响,实体单元没有角自由度因此不能考虑陀螺力矩的影响,如果你的转子没有类似大圆盘的部分或者大的转动部分在轴的接近轴向中心,或者转速不高,就不用考虑陀螺力矩的影响,可以先采用pipe16做一下看随着转速提高,陀螺力矩对固有频率的影响.网友3:可用于陀螺矩阵下列单元可用: Mass21\beam4\pipe16\beam188\beam189上面三个网友的解释,转自:simwe3 实体单元solid45我用过计算临界转速,其他的甚么都对称,计算出来的水平和竖直方向的固有频率差很多,不知道甚么原因,和用pipe16模拟的差很多,我觉得约束形式对临界转速影响很大,对于实体单元来说模拟轴承本身就不容易,所以个人倾向于用pipe16模拟轴,计算精度也不差,我做过实验一阶临界转速和实际转子系统几乎不差多少,二阶由于实验很难观察到所以这个没有对比,但是可以采用捶击法测出转子的各阶固有频率进行对比,这个我也大概试过,二阶还是差点!在simwe上的一篇文章计算转子的临界转速!!!! 计算临界转速/PREP7MP,EX,1,2.1e11MP,NUXY,1,0.3Mp,DENS,1,7850ET,1,COMBIN14ET,2,SOLID45R,1,0.1, , ,*afun,deg ! 设置角度为(度默认为弧度)r1=0.025/2r2=0.240/2l=0.025CYL4,0,0,0,0,r1,20VEXT,all, , ,0,0,l,,,,CSYS,1VGEN,18,all, , , ,20, , ,0CSYS,0VGEN,25,all, , , , ,l, ,0ASEL,NONECYL4,0,0,r1,0,r2,20VEXT,all, , ,0,0,l,,,,CSYS,1VGEN,18,all, , , ,20, , ,0VSEL,S,LOC,X,r1,r2VGEN, ,all, , , , ,10*l, , ,1ALLSEL,ALLNUMMRG,ALL, , , ,LOWNUMCMP,ALLLSEL,S,LOC,X,0,r1LSEL,A,LOC,X,r2LESIZE,all, , ,1, , , , ,0LSEL,INVELESIZE,all,l, , , , , , ,0MSHAPE,0,3DMSHKEY,1VSEL, , , ,allVSWEEP,allCM,rotor,VOLUCM,Erotor,ELEMsaveVSEL,S,LOC,Z,10*l,11*l!*/GODK,P51X, , , ,0,ALL, , , , , ,OMEGA,0,0,0,1CMOMEGA,EROTOR,100,0,0,,,, , , ,0另外希望大家推荐几个不错的论坛,我现在偶尔上上simwe,最近在刚结构注册了一个帐号好像7天以后才可以发言,现在还在等.大家要是看到有ansys做转子方面的文章论坛还有不错的帖子,希望大家跟贴我想学习一下呵呵谢谢大家!ansys10.0已将考虑了陀螺力矩,加上了这部分功能,可惜我为了装转子动力学插件,现在版本改回了8.1,希望用过10.0这个功能的可以讨论一下,那里不明白,那里懂了!如果有对这方面感兴趣的网友,看看这个帖子相当不错/vi ... 2407&highlight=simwe上的一个帖子【讨论】做转子动力学时:如何获得转子临界转速。
(必看)ANSYS转子动力学计算讨论
关于ansys做转子动力学问题若干思考(百思论坛)最近想学习一下ansys做转子动力学分析,看了点资料,有点自己感想还有一些别的网友的建议,个人认为比较不错的贴了出来一转子动力学插件:转子动力学插件演示版我已经用了基本上图形可以出来,由于版本原因例程和实际的对应有点问题,如果要有时间我可以把我做的过程,贴出来.难点:坎贝尔图我有些不太了解1 2 5 10频率还有一些刚度考虑的随转速在变化,有函数关系例子上提到了用matrix27模拟刚度,而它只用了刚度阻尼单元,好像没有考虑刚度x y 的交叉项,另外因为是演示版,节点有所限制总的来说不错!将来的要做的工作:滑动轴承模拟滚动轴承模拟挤压油膜阻尼器密封转定件接触(碰摩)电磁场耦合自润滑轴承(石墨)有感:各位学习ansys的高手,有没有兴趣自己开发上面单元,这是很有用的工作,我很感兴趣,但有碍于自己知识水平有限,尤其理论水平,有心无力,如果有对此感兴趣的希望一起研究研究;另外对于ansys做转子的动力学的书籍市场上几乎没有,呵呵希望能组织一些人力把这本书完成功在当代利在千秋提示:1 根据本人自己瞎琢磨,以及看论坛的各位高手的留言觉得做模态分析临界转速计算一般用实体单元的少由于不能考虑陀螺力矩shaft:可以采用beam系列模拟pipe系列也行这些能考虑陀螺力矩叶轮叶片:采用mass21模拟,计算转动惯量,质量通过实常数设置刚度阻尼陀螺质量矩阵:都可以采用matrix27模拟,当然也有用弹簧阻尼单元做的, 问题有过考虑油膜的非线性怎么模拟?2. 网友1:目前轴承计算,采用将刚度和阻尼的8个系数,以施加力和力矩的方式解决> 这个我没搞懂,如果那位给个例子3Q网友2: Pip16能考虑陀螺力矩的影响,实体单元没有角自由度因此不能考虑陀螺力矩的影响,如果你的转子没有类似大圆盘的部分或者大的转动部分在轴的接近轴向中心,或者转速不高,就不用考虑陀螺力矩的影响,可以先采用pipe16做一下看随着转速提高,陀螺力矩对固有频率的影响.网友3:可用于陀螺矩阵下列单元可用: Mass21\beam4\pipe16\beam188\beam189上面三个网友的解释,转自:simwe3 实体单元solid45我用过计算临界转速,其他的甚么都对称,计算出来的水平和竖直方向的固有频率差很多,不知道甚么原因,和用pipe16模拟的差很多,我觉得约束形式对临界转速影响很大,对于实体单元来说模拟轴承本身就不容易,所以个人倾向于用pipe16模拟轴,计算精度也不差,我做过实验一阶临界转速和实际转子系统几乎不差多少,二阶由于实验很难观察到所以这个没有对比,但是可以采用捶击法测出转子的各阶固有频率进行对比,这个我也大概试过,二阶还是差点!在simwe上的一篇文章计算转子的临界转速!!!! 计算临界转速/PREP7MP,EX,1,2.1e11MP,NUXY,1,0.3Mp,DENS,1,7850ET,1,COMBIN14ET,2,SOLID45R,1,0.1, , ,*afun,deg ! 设置角度为(度默认为弧度)r1=0.025/2r2=0.240/2l=0.025CYL4,0,0,0,0,r1,20VEXT,all, , ,0,0,l,,,,CSYS,1VGEN,18,all, , , ,20, , ,0CSYS,0VGEN,25,all, , , , ,l, ,0ASEL,NONECYL4,0,0,r1,0,r2,20VEXT,all, , ,0,0,l,,,,CSYS,1VGEN,18,all, , , ,20, , ,0VSEL,S,LOC,X,r1,r2VGEN, ,all, , , , ,10*l, , ,1ALLSEL,ALLNUMMRG,ALL, , , ,LOWNUMCMP,ALLLSEL,S,LOC,X,0,r1LSEL,A,LOC,X,r2LESIZE,all, , ,1, , , , ,0LSEL,INVELESIZE,all,l, , , , , , ,0MSHAPE,0,3DMSHKEY,1VSEL, , , ,allVSWEEP,allCM,rotor,VOLUCM,Erotor,ELEMsaveVSEL,S,LOC,Z,10*l,11*l!*/GODK,P51X, , , ,0,ALL, , , , , ,OMEGA,0,0,0,1CMOMEGA,EROTOR,100,0,0,,,, , , ,0另外希望大家推荐几个不错的论坛,我现在偶尔上上simwe,最近在刚结构注册了一个帐号好像7天以后才可以发言,现在还在等.大家要是看到有ansys做转子方面的文章论坛还有不错的帖子,希望大家跟贴我想学习一下呵呵谢谢大家!ansys10.0已将考虑了陀螺力矩,加上了这部分功能,可惜我为了装转子动力学插件,现在版本改回了8.1,希望用过10.0这个功能的可以讨论一下,那里不明白,那里懂了!如果有对这方面感兴趣的网友,看看这个帖子相当不错/vi ... 2407&highlight=simwe上的一个帖子【讨论】做转子动力学时:如何获得转子临界转速。
如何将ANSYS作为子程序调用
如何将ANSYS作为子程序调用对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。
具体调用方法如下:1.在VC中调用ANSYS::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);2.在FORTRAN中调用ANSYSLOGICAL(4) resultRESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -pansys_product_feature -i input_file -o output_file')3.说明1和2中,input_file为用APDL语言编写的ANSYS输入文件。
ansys_product_feature为你的ANSYS产品特征代码。
需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS已经执行完毕。
在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。
如果谁能找着这样的函数,请告诉我,谢谢!判断方法很简单,只需判断错误文件file.err是否可写就可以了。
因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。
数据文件(假设输出的数据文件名为opt.out):*dim,out1,,2,1out1(1)=dmax !目标函数out1(2)=1-eymax !约束条件1*cfopen,opt,out*vwrite,out1(1),out1(2)(2f10.6)*cfclos在VC中相应的显示数据文件命令为:result=system("notepad opt.out");图形文件(假设ANSYS工作文件名为test,输出jpg图形文件,具体信息请参考命令/show):/SHOW,JPEGJPEG,QUAL,75,JPEG,ORIENT,HORIZJPEG,COLOR,2JPEG,TMOD,1/GFILE,600,!*plns,uy/SHOW,TERM在VC中相应的显示图形文件命令为:result=system("mspaint test001.jpg");**************************************************************************************VC调用ANSYS的示例程序。
对ansys 进行二次开发 [精华]
标准ANSYS程序是一个功能强大、通用性好的有限元分析程序,同时它还具有良好的开放性,用户可以根据自身的需要在标准ANSYS版本上进行功能扩充和系统集成,生成具有行业分析特点和符合用户需要的用户版本的ANSYS程序。
开发功能包括四个组成部分:参数化程序设计语言(APDL)用户界面设计语言(UIDL)用户程序特性(UPFs)ANSYS数据接口参数化程序设计语言(APDL)参数化程序设计语言实质上由类似于FORTRAN77的程序设计语言部分和1000多条ANSYS 命令组成。
其中,程序设计语言部分与其它编程语言一样,具有参数、数组表达式、函数、流程控制(循环与分支)、重复执行命令、缩写、宏以及用户程序等。
标准的ANSYS程序运行是由1000多条命令驱动的,这些命令可以写进程序设计语言编写的程序,命令的参数可以赋确定值,也可以通过表达式的结果或参数的方式进行赋值。
从ANSYS命令的功能上讲,它们分别对应ANSYS分析过程中的定义几何模型、划分单元网格、材料定义、添加载荷和边界条件、控制和执行求解和后处理计算结果等指令。
用户可以利用程序设计语言将ANSYS命令组织起来,编写出参数化的用户程序,从而实现有限元分析的全过程,即建立参数化的CAD模型、参数化的网格划分与控制、参数化的材料定义、参数化的载荷和边界条件定义、参数化的分析控制和求解以及参数化的后处理。
宏是具有某种特殊功能的命令组合,实质上是参数化的用户小程序,可以当作ANSYS的命令处理,可以有输入参数或没有输入参数。
缩写是某条命令或宏的替代名称,它与被替代命令或宏存在一一对应的关系,在ANSYS 中二者是完全等同的,但缩写更符合用户习惯,更易于记忆,减少敲击键盘的次数。
ANSYS工具条就是一个很好的缩写例子。
用户界面设计语言(UIDL)标准ANSYS交互图形界面可以驱动ANSYS命令,提供命令的各类输入参数接口和控制开关,用户在图形驱动的级别上进行有限元分析,整个过程变得直观轻松。
ANSYS二次开发 [精华]
ansys具有多种实用的二次开发工具:ANSYS除了具有较为完善的分析功能外,同时还为用户进行二次开发提供了多种实用工具。
如宏(Marco)、参数设计语言(APDL)、用户界面设计语言(UIDL)及用户编程特性(UPFs),其中APDL(ANSYS Parametric Design Language)是一种非常类似于Fortran77的参数化设计解释性语言,其核心内容为宏、参数、循环命令和条件语句,可以通过建立参数化模型来自动完成一些通用性强的任务;UIDL(User Interface Design Language)是ANSYS为用户提供专门进行程序界面设计的语言,允许用户改变ANSYS的图形用户界面(GUI)中的一些组项,提供了一种允许用户灵活使用、按个人喜好来组织设计ANSYS图形用户界面的强有力工具;UPFs(User Programmable Features)提供了一套Fortran77函数和例程以扩展或修改程序的功能,该项技术充分显示了ANSYS的开放体系,用户不仅可以采用它将ANSYS程序剪裁成符合自己所需的任何组织形式(如可以定义一种新的材料,一个新的单元或者给出一种新的屈服准则),而且还可以编写自己的优化算法,通过将整个ANSYS作为一个子程序调用的方式实现。
程序设计的主要原则和功能如下:(1)方便原则,即程序模块应具有良好的用户界面和易用性。
程序前台设计采用Windows提供的标准图形用户界面(GUI),用户无须接受专门训练即可使用。
同时,程序应具有良好的容错和纠错能力,避免用户操作不当造成损失。
(2)程序系统能够提供用户以下功能:①允许用户可以根据实际计算工况,输入特定的计算参数,包括地震波选择、计算时间步长、地震波调幅与否等。
②用户在输入各种参数以后、进行计算之前可以对输入的数据进行修改、添加和删除操作,以保证输入正确的参数。
③用户通过界面调用后台的ANSYS 命令流进行计算,能够得到最后的计算结果文件,供用户进行后处理和结果分析。
ANSYS与FORTRAN的相互调用
ANSYS与FORTRAN的相互调用一 ANSYS调用FORTRAN(UPF)基于ANSYS57和Visual Fortran 6.1先详细讲一下ANSYS调用FORTRAN的步骤:1. 首先,安装ANSYS时选择custom安装;2. 建立一个新的用户目录, 如upf,把custom\user\intel目录下的anscust.bat,makefile和user01.f (当然也可以用你自己的fortran文件啦)这三个文件拷贝到upf下;3. 打开makefile文件,在第一行指定ANSYS的安装路径,如:ANSYS57_DIR=d:\ANSYS57 保存退出;对于ANSYS7.0:ANSYS70_DIR=d:\ansys7\v70\ANSYS4. 复制 dfport.lib,dformd.lib, dfconcol.lib(这三个文件在fortran安装目录下的df98\lib目录中可以找到,注意不要用ANSYS自己所带的,因为ANSYS自己所带的版本可能不够高,而导致连接失败)和ansysex.def(在custom\user\intel中)到upf57目录中,以避免连接时找不到这几个文件;5. 准备工作已经完成,运行“anscust.bat”进行编译连接。
要确信你的Visual Fortran 与ANSYS 版本的兼容性,如果编译连接不成功,出现诸如“Fatal error link 1120: 8 unresolved externals”的错误,则表示你的Fortran版本需要升级。
如用Vfor6.1 编译连接ansys7.0,就会出现这样的错误信息。
解决的方法是安装Vfor6.6B。
对于你自己写的FORTRAN程序,先用FORTRAN编译一遍,保证没有错误。
编译连接成功之后,在upf目录下会生成ansys.exe;6. 现在你就可以运行这个新的ANSYS了。
有两个方法:第一个方法,就象“二次开发培训练习题”中所说:在dos命令行,先敲入 ansys -p ansysul,指定ansys产品特征代码运行ansys, 然后OK,接着 /show,win32和/menu,on启动ANSYS;第二个方法,干脆用新生成的ansys.exe 代替ANSYS安装目录(如d:\ansys57\bin\intel)中的原ansys.exe,建议将原ansys.exe改名或备份,然后就象你平常启动ANSYS那样(如用Ansys Interactive 方式)启动ANSYS。
将ansys作为子程序调用
将ANSYS作为子程序调用对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。
具体调用方法如下:1.在VC中调用ANSYS::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);2.在FORTRAN中调用ANSYSLOGICAL(4) resultRESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -pansys_product_feature -i input_file -o output_file')3.说明1和2中,input_file为用APDL语言编写的ANSYS输入文件。
ansys_product_feature为你的ANSYS产品特征代码。
需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS已经执行完毕。
在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。
如果谁能找着这样的函数,请告诉我,谢谢!判断方法很简单,只需判断错误文件file.err是否可写就可以了。
因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。
数据文件(假设输出的数据文件名为opt.out):*dim,out1,,2,1out1(1)=dmax !目标函数out1(2)=1-eymax !约束条件1*cfopen,opt,out*vwrite,out1(1),out1(2)(2f10.6)*cfclos在VC中相应的显示数据文件命令为:result=system("notepad opt.out");图形文件(假设ANSYS工作文件名为test,输出jpg图形文件,具体信息请参考命令/show):/SHOW,JPEGJPEG,QUAL,75,JPEG,ORIENT,HORIZJPEG,COLOR,2JPEG,TMOD,1/GFILE,600,!*plns,uy/SHOW,TERM在VC中相应的显示图形文件命令为:result=system("mspaint test001.jpg");******************************************************************************* *******VC调用ANSYS的示例程序。
ANSYS-UPFs用户子程序编译连接方法
ANSYS-UPFs用户子程序编译连接方法ANSYS-UPFs 用户子程序编译连接方法使用软件:Microsoft visual studio 2005、Fortran 9.1、Ansys 11.0操作系统Windows XP编译连接的方法一:1.通过:开始->所有程序->microsoft visual studio 2005 -> visual studio tools -> visual studio 2005 command prompt 打开命令触发窗口2.输入"CD D:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin" ——回车再次输入"ifortvars.bat",——回车,从而打开fortran命令窗口其中CD表示"change directory"3.输入"CD D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel"——回车再次输入"ANSCUST.BAT"——回车注意:A.不能省略步骤1,而直接从fortran命令窗口开始输入B.可以同时连接多个子程序C.使用此方法编译连接时要将安装好后没有改动的“D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel”文件夹复制并存放到其他地方以备以后使用。
同时将D:\program files\......\user\intel 中的不需要连接的*.f和*.c文件删除D.开始运行后需要耐心等待一段时间,直到产生ANSYS.EXE文件为止编译连接的方法二:1.改写ANSCUST.BA T批处理文件在ANSCUST.BA T批处理文件的第二行添加如下内容@call "D:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin\ifortvars.bat"在ANSCUST.BA T批处理文件的最后一行添加如下内容pause2.将文件:MAKEFILE,ansysex.def,ansyslarge.def,ansyssmall.def,及修改好的子程序文件(可以有多个)和修改后的ANSCUST.BA T批处理文件一并复制到其他路径下的同一个文件夹内,当然也可以就在D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel文件夹中3.通过双击运行ANSCUST.BA T批处理文件同样能够产生ansys.exe文件注意:A.必须保证fortran 9.1与microsoft visual studio 2005是连接的如果先安装microsoft visual studio 2005,后安装fortran 9.1,则安装fortran 9.1时会提示是否连接到microsoft visual studio 2005,记得要选择连接如果fortran 9.1与microsoft visual studio 2005没有连接,则需要通过修改批处理文件D:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin\ifortvars.bat中的@call 声明将其指向D:\Program Files\Microsoft Visual Studio 8\VC\Bin\Vcvars32.bat即可B.使用这种方法连接时,必须保证D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel文件夹中的ASK.EXE存在,否则运行ANSCUST.BAT 批处理文件时会出现:"D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel\ask"不是内部或外部命令,也不是可运行的程序连接用户子程序(即连接前面产生的ANSYS.EXE文件)1.在Ansys Product Launcher窗口选择Customzation Preferences选项卡,在custom ANSYS executable通过browse按钮输入前面产生的ANSYS.EXE文件的全部路径,然后点击run开始运行2.如果ansys11.0 output window 显示This ANSYS version was linked by license,则表示连接成功注意:在连接用户子程序的过程中,可能需要D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel文件夹中其他一些必要文件的存在,因此最好将intel文件夹下不需要编译连接的.F 和.C文件删除,然后编译产生ANSYS.EXE文件,然后再连接。
ANSYS高级分析技术指南:8第八章 用户过程和非标准用法
第八章用户过程和非标准用法用户可编程特性(UPFs)ANSYS程序的开放结构允许用户连接自己的FORTRAN程序和子过程。
实际上,现在用户看到的许多ANSYS“标准”用法都是由以前用户过程引进的。
什么是UPFs?用户可编程特性是ANSYS的功能允许用户使用自己的FORTRAN程序。
UPFs 适用于ANSYS/Multiphysics, ANSYS/Mechanical, ANSYS/Structural, ANSYS/PrepPost和ANSYS/University(研究版和大学版)产品系列。
UPFs允许用户根据需要定制ANSYS程序,如用户定义的材料性质,用户单元类型,用户定义的失效准则等。
用户还可以编写自己的优化设计算法将整个ANSYS程序作为子过程来调用。
注——用户使用UPFs必须十分小心仔细。
通过连接自己的FORTRAN程序,用户生成了一个针对用户特定计算机的ANSYS程序版本。
在并行系统中使用ANSYS时不允许使用用户可编程特性。
另外,UPFs是一种非标准的使用方法,ANSYS公司质量保证的测试程序没有包括这部分内容。
用户必须负责保证用户子程序结果正确并不影响别的标准功能的运行。
如何使用UPFs?UPFs可以从简单的单元输出功能到很复杂的用户单元或用户优化算法。
因此,不进行特定的程序细节描述是很难完成这些子程序功能的。
在ANSYS Programmer's Manual中有详细的解释。
一个典型的UPF包括下列步骤:1.在FORTRAN77中编制用户程序。
在ANSYS中所有的用户程序源代码都是公开的。
大部分完成至少一个简单的功能,因此在编制程序前应列出一份完整的可用程序表。
2.编译并将用户程序连接到ANSYS程序中。
在ANSYS Installation and Configuration Guide中有这方面的详细描述。
3.用户可能要验证自己做的改动是否影响其他ANSYS标准功能的使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将ANSYS作为子程序调用
对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。
具体调用方法如下:
1.在VC中调用ANSYS
::WinExec("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansys_product_feature -i input_file -o output_file",SW_SHOWNORMAL);
2.在FORTRAN中调用ANSYS
LOGICAL(4) result
RESULT=SYSTEMQQ('d:\ANSYS57\BIN\INTEL\ANSYS57 -b -p
ansys_product_feature -i input_file -o output_file')
3.说明
1和2中,input_file为用APDL语言编写的ANSYS输入文件。
ansys_product_feature为你的ANSYS产品特征代码。
需要注意的是,在VC中调用ANSYS时,需要加一条判断语句,以确定ANSYS
已经执行完毕。
在FORTRAN中不需要判断,FORTRAN会等ANSYS执行完毕才继续执行下一条语句。
在VC中,我没有找到与FORTRAN类似的函数,只好加一条循环判断语句。
如果谁能找着这样的函数,请告诉我,谢谢!
判断方法很简单,只需判断错误文件file.err是否可写就可以了。
因为当ANSYS在运行时,file.err是不可写的,只有当它运行完毕,此文件才可写。
数据文件(假设输出的数据文件名为opt.out):
*dim,out1,,2,1
out1(1)=dmax !目标函数
out1(2)=1-eymax !约束条件1
*cfopen,opt,out
*vwrite,out1(1),out1(2)
(2f10.6)
*cfclos
在VC中相应的显示数据文件命令为:
result=system("notepad opt.out");
图形文件(假设ANSYS工作文件名为test,输出jpg图形文件,具体信息请参考命令/show):/SHOW,JPEG
JPEG,QUAL,75,
JPEG,ORIENT,HORIZ
JPEG,COLOR,2
JPEG,TMOD,1
/GFILE,600,
!*
plns,uy
/SHOW,TERM
在VC中相应的显示图形文件命令为:
result=system("mspaint test001.jpg");
******************************************************************************* *******
VC调用ANSYS的示例程序。
//Test.cpp
#include "stdio.h"
#include"process.h"
void main()
{
int result;
printf("Solving...");
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ansysul -i test.txt -o test.out");
//不用::WinExec,就用不着等待语句,可以实现用FORTRAN调用一样的效果。
printf("Solution finished...");
}
怎么还不知道?那个特征表找着没有?ANSYS帮助->ANSYS,INC.Licensing Guide->License files->What are License files->Product feature Table
以第一行为例:ANSYS/MULTIPHYSICS ane3fl
ANSYS/MULTIPHYSICS是产品特征名称,ane3fl是与其对应的产品特征代码,把这个代码填到下面的语句中:
result=system("d:/ANSYS57/BIN/INTEL/ANSYS57 -b -p ane3fl -i test.txt -o test.out");
VC中的变量与APDL语言中的变量可以进行数据交换,否则怎么实现参数化或优化设计?
不过不能直接互换.我采用的办法是,在VC中将变量结果写到一个文件中,然后再在ANSYS的APDL语言文件中读入这个文件的数据,再由ANSYS进行新的计算,计算结束之后,再由后处理处理结果,并将结果数据输出到一个文件中,然后用VC读入此文件中的数据,进行下一步处理.。