ANSYS技巧.docx
- 文档编号:23141735
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:14
- 大小:26.01KB
ANSYS技巧.docx
《ANSYS技巧.docx》由会员分享,可在线阅读,更多相关《ANSYS技巧.docx(14页珍藏版)》请在冰豆网上搜索。
ANSYS技巧
ANSYS技巧
模型简化及网格划分
模型简化及网格划分
使在建立仿真模型时,经验是非常有助于用户决定哪些部件应该考虑因而必须建立在模型中,哪些部件不应该考虑因而不需建立到模型中,这就是所谓的模型简化。
此外,网格划分也是影响分析精度的另外一个因素。
本文将集中讨论如何简化模型以获得有效的仿真模型以及网格划分需要注意的一些问题。
理想情况下,用户都希望建立尽可能详细的仿真模型,而让仿真软件自己来决定哪些是主要的物理现象。
然而,由于有限的计算机资源或算法限制,用户应该简化电磁仿真的模型。
模型简化
模型简化主要取决于结果参数及结构的电尺寸。
例如,如果用户希望分析安装在某电大尺寸载体上的天线的远场方向图,那么模型上距离源区超过一个波长的一些小特征和孔径(最大尺度小于/50)就可以不考虑。
另一方面,如果用户希望分析从源到用带有小孔的屏蔽面屏蔽的导线之间的耦合,那么必须对小孔、靠近源的屏蔽面以及导线进行精确建模。
另外一个常用的简化是用无限薄的面来模拟有限厚度的导体面。
一般而言,厚度小于/100的金属面都可以近似为无限薄的金属面。
有限导电性和有限厚度的影响可以在SK卡中设置。
对于比较厚的导体面,如果这种影响是次要的,那么用户仍然可以采取这种近似。
例如,当建立大反射面天线的馈源喇叭模型时,喇叭壁的有限厚度对于反射面天线主波束的影响就是次要的。
然而,如果喇叭天线用于校准标准时,那么喇叭壁的有限厚度就不能忽略。
网格划分
一般而言,网格划分的密度设置为最短波长的十分之一。
然而,在电流或电荷梯度变化剧烈的区域,如源所在区域、曲面上的缝隙和曲面的棱边等,必须划分得更密。
一个实用的指导原则是网格大小应该与结构间的间隔距离(d)相比拟(<=2d)。
同样地,如果需要计算近场分布,那么网格大小应该同场点到源点间距离(d)相比拟。
总之,用户建立的几何模型应该抓住主要的物理现象,而网格划分则需要权衡输出结果相对于网格大小的收敛性。
二次开发调试技术
二次开发调试技术(摘自ANSYS用户专区)--
在调试用户子程序过程中,可以利用非《ANSYS命令参考手册》某些命令和其它特性帮助用户提供许多有用的信息。
但是,它们仅仅适合于极小问题并只包含较少迭代求解情况;否则,它们将会输出大量的数据。
下面将详细介绍/TRACK和/DEBUG两个命令;另外有两个ANSYS文档没有包含的命令:
OUTEQ与/NERR。
?
命令OUTEQ,on能够用于控制所有平衡迭代计算的输出结果。
?
命令/NERR,,,-1使系统一直报错,并保持程序继续运行。
这时,正常的中断方式有:
1)系统中断;2)错误结果。
1、跟踪程序运算逻辑顺序
/TRACK命令:
当程序按逻辑顺序进入和离开某些更高级别的子程序时发送一条信息。
子程序的TrackBegin(开始)和TrackEnd(结束)(参看UPFs第六章)一起构成/TRACK命令的程序跟踪。
然后,按下列格式执行命令:
/TRACK,MonLevel,PrintLevel,SumLevel
其中:
MonLevel是时间监视级别;
PrintLevel是进入/退出输出状态开关;
SumLevel是输出累积时间状态开关。
这三个参数可以是0到9之间的任何值(缺省为0)。
用户可以使用/TRACK命令查找出程序中断发生的代码位置。
例如,将所有子程序标识为八个级别,以便确定程序进入与退出它们的时间,此时用户应当执行的命令为:
/TRACK,,8
2、调试单元与求解
/DEBUG命令能够在输出的许多位置点进行调试。
/DEBUG命令具有下列三种调试格式:
?
求解(solution)调试格式
?
单元(element)调试格式
?
一般调试格式
(1)求解(solution)调试格式
执行命令:
/DEBUG,-1,F1,F2,F3,F4,F5,F6,F7,F8,F9
参数说明:
F1—1(输出基本求解结果控制调试结果)
F2—1(输出使用Newmark常数的瞬态计算调试结果)
2(输出使用速度与加速度的瞬态计算调试结果)
F3—1(输出单元矩阵调试结果,包括矩阵与载荷矢量)
2(输出单元矩阵调试结果,只包括载荷矢量)
3(输出单元矩阵调试结果,包括矩阵对角元素和载荷矢量)
F4—1(输出自动时间步长(autotimestepping)调试结果)
F5—1(输出多物理场调试结果)
F6—1(输出弧长(arc-length)调试结果)
F7—1(输出基本Newton-Raphson调试结果)
2(输出Newton-Raphson调试结果,包括非平衡力或增量位移或每个DOF)
3(输出Newton-Raphson调试结果,包括施加载荷与每个DOF上的n-r恢复力)
F8—1,2(输出位移矢量以及位移指针调试结果)
2(输出位移矢量以及增量位移调试结果)
3(输出位移矢量以及接触数据库调试结果)
F9—1(输出临时程序员调试结果)
(2)单元(element)调试格式
执行命令:
/DEBUG,-3,G1,G2,G3,G4,G5,G6,G7,G8,G9
参数说明:
G1—1(输出基本单元通过(pass)调试结果)
G2—1(输出单元位移和坐标调试结果)
G3—1(输出单元矩阵调试结果,包括矩阵与载荷矢量)
2(输出单元矩阵调试结果,只包括载荷矢量)
3(输出单元矩阵调试结果,包括矩阵对角元素和载荷矢量)
G4—1(输出单元载荷调试结果)
G5—1(输出单元实常数(realconstant)调试结果)
G6—1(输出单元存储变量(savedvariable)调试结果)
G7—1(输出线性材料特性单元材料特性调试结果)
2(输出非线性材料特性单元材料特性调试结果)
G8—1,2(输出塑性单元非线性调试结果)
2(输出大变形单元非线性调试结果)
3(输出接触数据库单元非线性调试结果)
G9—1(输出临时程序员调试结果)
(3)一般调试格式
执行命令:
/DEBUG,H1,H2,,H4,H5
参数说明:
H1—1(输出文件头纪录(fileheaderrecord)信息)
2(输出字符输入行(character))
3(输出解码输入行(decoded))
H2—1(输出波前重新排序(wavefrontreordering)与单元检查调试结果)
2(输出网格划分调试结果)
H4—1(输出节点坐标系转换格式调试结果)
2(输出位移更新调试结果)
H5—1(输出pre-单元、单元特性(characteristics)以及单元场载荷调试结果)
利用APDL功能按照一定格式写出ansys数据文件的方法
ANSYS在运行阶段总是处理大量的模型数据、载荷数据以及结果数据等,有时需要将这些数据按照一定的格式写进指定的数据文件中,这时可以利用*GET和*VGET数据提取的各种命令将数据存入到变量或数组中,然后利用*CFWRITE或*VWRITE命令写入到指定文件.下面是使用*VWRITE实现该过程的一个实例:
/post1
set,,,,,10.0
*get,ntemp01,node,2,temp!
时间等于10时的节点2的温度值
*get,ntemp02,node,9,temp!
时间等于10时的节点9的温度值
*get,ntemp03,node,7,temp!
时间等于10时的节点7的温度值
*vwrite,ntemp01,ntemp02,ntemp03
(T1,''N2TEMP='',F5.1,'',N9TEMP='',F5.1,'',N7TEMP='',F5.1)
/output,nodetemp,dat
其中,命令/output可以用于确定输出方向,即输出到ansys的输出窗口(OUTPUTWINDOW)中,或者指定的文件中。
上面将温度值输出到nodetemp.dat文件中,内容如下:
N2TEMP=19.2,N9TEMP=19.8,N7TEMP=20.8
这样就可以对输出数据用别的工具进行处理。
在ANSYS如何考虑混凝土
我最近在用ANSYS模拟一个简单的梁,混凝土用SOLID65单元,钢筋用Link8单元
(1),采用以下命令流定义:
......
et,1,65,,,,,2,,1
et,2,link8
mp,ex,1,2.134e4
mp,nuxy,1,0.2
TB,CONC,1
TBDATA,,0.3,0.5,2.45,24.5
mp,ex,2,1.914e5
mp,nuxy,2,0.3
TB,BISO,2,1,2,
TBTEMP,0
TBDATA,,662,0,,,,
R,1
R,2,2580/3
........
大致碰到以下几个问题:
(1):
混凝土的几个参数,剪切缩减系数不知如何取值,系数对结果有何影响?
(2):
混凝土采用以上定义方式是不是就可以了,需不需要定义屈服准则,以及输入
混凝土的应力应变曲线,如何输入?
如以上定义可以,不知道ANSYS是如何定义混凝土的
特性的,因为我想混凝土种类很多,就用以上几个参数就可以定义吗?
我心里没有谱;
(3):
采用以上定义,我计算了一根梁,分为考虑混凝土压碎和不考虑混凝土压碎。
考虑混凝土压碎时,得出的极限荷载比实际的要小,但混凝土的压应力不超过抗压强度;不考虑混凝土压碎,得到的极限荷载较为接近实际值,但混凝土的最大压应力远远大于其抗压强度;并且得不到开裂破碎图。
我就不知道,如何得到极限荷载又可以得到开裂破碎图?
1):
分析混凝土结构,选择合理的材料特性是建立模型的关键,所以有必要弄清混凝土的材料特性。
混凝土是脆性材料,并具有不同的拉伸和压缩特性。
典型混凝土的抗拉强度只有抗压强度的8%-15%。
在ANSYS中,对于混凝土单元,材料特性ANSYS要求输入以下数据(为了清楚起见,我将几个系数均译为了中文):
弹性模量、泊松比、张开与闭合滑移面的剪切强度缩减系数与、抗拉与抗压强度与、极限双轴抗压强度、周围静水应力状态、静水应力状态下单轴与双轴压缩的极限抗压强度与、断裂发生时刚度乘子。
其中,1~6是必须输入的,7~11要么不输入,都采用默认值,如果输入其中一个,其他的都需要输入;另外,与在0~1之间取值,具体如何取值,是值得探讨的话题,但有一点是肯定的,不能将剪切缩减系数,取的太小,否则,就很难不收敛,据我体会,分析一个梁的极限荷载时,剪切缩减系数的取值影响也不是很大;
2):
据我理解,如果定义:
TB,concer,mat(mat是需要定义的材料号),则混凝土定义了破坏准则,没有定义屈服准则,主要是W-W模型。
由于混凝土材料的复杂性(太随机了),很难得到一个完全适合混凝土的屈服的材料模型;
3):
如果考虑混凝土的压碎破坏,有限元模型会较早失效,得不到真实极限荷载,建议在研究钢筋混凝土结构极限荷载时,关闭混凝土压碎能力;材料模型的选取对荷载变形曲线路径影响不大,即模拟曲线与真实曲线相对应部分吻合较好;不考虑混凝土的压碎破坏,并不意味着不考虑混凝土的抗压能力,相反,为了得到较准确的极限荷载,采用受压混凝土模型是必需的,也只有采用受压混凝土模型才能得到整个荷载变形曲线;
如何实现ansys倒退功能undo,并添加toolbar模式
[分享]如何实现ansys倒退功能undo,并添加toolbar模式
首先用命令/undo,on激活undo命令
然后在MenuCtrls中的EditToolbar....中输入:
*ABBR,UNDO,undo
即可添加undo命令的快捷方式。
然后SaveToolbar.
这对于喜欢gui方式的朋友可能有些用处。
将ANSYS作为子程序调用
对于优化或参数化设计,可以在VC或FORTRAN中将ANSYS作为子程序调用。
具体调用方法如下:
1.在VC中调用ANSYS
:
:
WinExec("d:
/ANSYS57/BIN/INTEL/ANSYS57-b-pansys_product_feature-iinput_file-ooutput_file",SW_SHOWNORMAL);
2.在FORTRAN中调用ANSYS
LOGICAL(4)result
RESULT=SYSTEMQQ('d:
\ANSYS57\BIN\INTEL\ANSYS57-b-p
ansys_product_feature-iinput_file-ooutput_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("notepadopt.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("mspainttest001.jpg");
**************************************************************************************
VC调用ANSYS的示例程序。
file:
//Test.cpp
#include"stdio.h"
#include"process.h"
voidmain()
{
intresult;
printf("Solving...");
result=system("d:
/ANSYS57/BIN/INTEL/ANSYS57-b-pansysul-itest.txt-otest.out");
file:
//不用:
:
WinExec,就用不着等待语句,可以实现用FORTRAN调用一样的效果。
printf("Solutionfinished...");
}
怎么还不知道?
那个特征表找着没有?
ANSYS帮助->ANSYS,INC.LicensingGuide->Licensefiles->WhatareLicensefiles->ProductfeatureTable
以第一行为例:
ANSYS/MULTIPHYSICSane3fl
ANSYS/MULTIPHYSICS是产品特征名称,ane3fl是与其对应的产品特征代码,把这个代码填到下面的语句中:
result=system("d:
/ANSYS57/BIN/INTEL/ANSYS57-b-pane3fl-itest.txt-otest.out");
VC中的变量与APDL语言中的变量可以进行数据交换,否则怎么实现参数化或优化设计?
不过不能直接互换.我采用的办法是,在VC中将变量结果写到一个文件中,然后再在ANSYS的APDL语言文件中读入这个文件的数据,再由ANSYS进行新的计算,计算结束之后,再由后处理处理结果,并将结果数据输出到一个文件中,然后用VC读入此文件中的数据,进行下一步处理.
复杂几何模型的系列网格划分技术
众所周知,对于有限元分析来说,网格划分是其中最关键的一个步骤,网格划分的好坏直接影响到解算的精度和速度。
在ANSYS中,大家知道,网格划分有三个步骤:
定义单元属性(包括实常数)、在几何模型上定义网格属性、划分网格。
在这里,我们仅对网格划分这个步骤所涉及到的一些问题,尤其是与复杂模型相关的一些问题作简要阐述。
一、自由网格划分
自由网格划分是自动化程度最高的网格划分技术之一,它在面上(平面、曲面)可以自动生成三角形或四边形网格,在体上自动生成四面体网格。
通常情况下,可利用ANSYS的智能尺寸控制技术(SMARTSIZE命令)来自动控制网格的大小和疏密分布,也可进行人工设置网格的大小(AESIZE、LESIZE、KESIZE、ESIZE等系列命令)并控制疏密分布以及选择分网算法等(MOPT命令)。
对于复杂几何模型而言,这种分网方法省时省力,但缺点是单元数量通常会很大,计算效率降低。
同时,由于这种方法对于三维复杂模型只能生成四面体单元,为了获得较好的计算精度,建议采用二次四面体单元(92号单元)。
如果选用的是六面体单元,则此方法自动将六面体单元退化为阶次一致的四面体单元,因此,最好不要选用线性的六面体单元(没有中间节点,比如45号单元),因为该单元退化后为线性的四面体单元,具有过刚的刚度,计算精度较差;如果选用二次的六面体单元(比如95号单元),由于其是退化形式,节点数与其六面体原型单元一致,只是有多个节点在同一位置而已,因此,可以利用TCHG命令将模型中的退化形式的四面体单元变化为非退化的四面体单元,减少每个单元的节点数量,提高求解效率。
在有些情况下,必须要用六面体单元的退化形式来进行自由网格划分,比如,在进行混合网格划分(后面详述)时,只有用六面体单元才能形成金字塔过渡单元。
对于计算流体力学和考虑集肤效应的电磁场分析而言,自由网格划分中的层网格功能(由LESIZE命令的LAYER1和LAYER2域控制)是非常有用的。
二、映射网格划分
映射网格划分是对规整模型的一种规整网格划分方法,其原始概念是:
对于面,只能是四边形面,网格划分数需在对边上保持一致,形成的单元全部为四边形;对于体,只能是六面体,对应线和面的网格划分数保持一致;形成的单元全部为六面体。
在ANSYS中,这些条件有了很大的放宽,包括:
1面可以是三角形、四边形、或其它任意多边形。
对于四边以上的多边形,必须用LCCAT命令将某些边联成一条边,以使得对于网格划分而言,仍然是三角形或四边形;或者用AMAP命令定义3到4个顶点(程序自动将两个顶点之间的所有线段联成一条)来进行映射划分。
2面上对边的网格划分数可以不同,但有一些限制条件。
3面上可以形成全三角形的映射网格。
4体可以是四面体、五面体、六面体或其它任意多面体。
对于六面以上的多面体,必须用ACCAT命令将某些面联成一个面,以使得对于网格划分而言,仍然是四、五或六面体。
5体上对应线和面的网格划分数可以不同,但有一些限制条件。
对于三维复杂几何模型而言,通常的做法是利用ANSYS布尔运算功能,将其切割成一系列四、五或六面体,然后对这些切割好的体进行映射网格划分。
当然,这种纯粹的映射划分方式比较烦琐,需要的时间和精力较多。
面的三角形映射网格划分往往可以为体的自由网格划分服务,以使体的自由网格划分满足一些特定的要求,比如:
体的某个狭长面的短边方向上要求一定要有一定层数的单元、某些位置的节点必须在一条直线上、等等。
这种在进行体网格划分前在其面上先划分网格的方式对很多复杂模型可以进行良好的控制,但别忘了在体网格划分完毕后清除面网格(也可用专门用于辅助网格划分的虚拟单元类型-MESH200-来划分面网格,之后不用清除)。
三、拖拉、扫略网格划分
对于由面经过拖拉、旋转、偏移(VDRAG、VROTAT、VOFFST、VEXT等系列命令)等方式生成的复杂三维实体而言,可先在原始面上生成壳(或MESH200)单元形式的面网格,然后在生成体的同时自动形成三维实体网格;对于已经形成好了的三维复杂实体,如果其在某个方向上的拓扑形式始终保持一致,则可用(人工或全自动)扫略网格划分(VSWEEP命令)功能来划分网格;这两种方式形成的单元几乎都是六面体单元。
通常,采用扫略方式形成网格是一种非常好的方式,对于复杂几何实体,经过一些简单的切分处理,就可以自动形成规整的六面体网格,它比映射网格划分方式具有更大的优势和灵活性。
四、混合网格划分
混合网格划分即在几何模型上,根据各部位的特点,分别采用自由、映射、扫略等多种网格划分方式,以形成综合效果尽量好的有限元模型。
混合网格划分方式要在计算精度、计算时间、建模工作量等方面进行综合考虑。
通常,为了提高计算精度和减少计算时间,应首先考虑对适合于扫略和映射网格划分的区域先划分六面体网格,这种网格既可以是线性的(无中节点)、也可以是二次的(有中节点),如果无合适的区域,应尽量通过切分等多种布尔运算手段来创建合适的区域(尤其是对所关心的区域或部位);其次,对实在无法再切分而必须用四面体自由网格划分的区域,采用带中节点的六面体单元进行自由分网(自动退化成适合于自由划分形式的单元),此时,在该区域与已进行扫略或映射网格划分的区域的交界面上,会自动形成金字塔过渡单元(无中节点的六面体单元没有金字塔退化形式)。
ANSYS中的这种金字塔过渡单元具有很大的灵活性:
如果其邻接的六面体单元无中节点,则在金字塔单元四边形面的四条单元边上,自动取消中间节点,以保证网格的协调性。
同时,应采用前面描述的TCHG命令来将退化形式的四面体单元自动转换成非退化的四面体单元,提高求解效率。
如果对整个分析模型的计算精度要求不高、或对进行自由网格划分区域的计算精度要求不高,则可在自由网格划分区采用无中节点的六面体单元来分网(自动退化成无中节点的四面体单元),此时,虽然在六面体单元划分区和四面体单元划分区之间无金字塔过渡单元,但如果六面体单元区的单元也无中节点,则由于都是线性单元,亦可保证单元的协调性。
五、利用自由度耦合和约束方程
对于某些形式的复杂几何模型,可以利用ANSYS的约束方程和自由度耦合功能来促成划分出优良的网格并降低计算规模。
比如,利用CEINTF命令可以将相邻的体在进行独立的网格划分(通常是采用映射或扫略方式)后再"粘结"起来,由于各个体之间在几何上没有联系,因此不用费劲地考虑相互之间网格的影响,所以可以自由地采用多种手段划分出良好的网格,而体之间的网格"粘结"是通过形函数差值来进行自由度耦合的,因此连接位置处的位移连续性可以得到绝对保证,如果非常关注连接处的应力,可以如下面所述再在该局部位置建立子区模型予以分析。
再如,对于循环对称模型(如旋转机械等),可仅建立一个扇区作为分析模型,利用CPCYC命令可自动对扇区的两个切面上的所有对应节点建立自由度耦合条件(用MSHCOPY命令可非常方便地在两个切面上生成对应网格)。
六、利用子区模型等其它手段
子区模型是一种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ANSYS 技巧
