AaronSpark 发表于 2006-5-17 07:21

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 (输出自动时间步长(auto time stepping)调试结果)
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 (输出单元实常数(real constant)调试结果)
G6—1 (输出单元存储变量(saved variable)调试结果)
G7—1 (输出线性材料特性单元材料特性调试结果)
2 (输出非线性材料特性单元材料特性调试结果)
G8—1,2 (输出塑性单元非线性调试结果)
2 (输出大变形单元非线性调试结果)
3 (输出接触数据库单元非线性调试结果)
G9—1 (输出临时程序员调试结果)
(3)一般调试格式
执行命令:
/DEBUG,H1,H2,,H4,H5
参数说明:
H1—1 (输出文件头纪录(file header record)信息)
2 (输出字符输入行(character))
3 (输出解码输入行(decoded))
H2—1 (输出波前重新排序(wavefront reordering)与单元检查调试结果)
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,''N2 TEMP='',F5.1,'', N9 TEMP='',F5.1,'', N7 TEMP='',F5.1)
/output,nodetemp,dat

其中,命令/output可以用于确定输出方向,即输出到ansys的输出窗口(OUTPUT WINDOW)中,或者指定的文件中。上面将温度值输出到nodetemp.dat文件中,内容如下:

N2 TEMP= 19.2, N9 TEMP= 19.8, N7 TEMP= 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模式

AaronSpark 发表于 2006-5-17 07:22

复杂几何模型的系列网格划分技术
众所周知,对于有限元分析来说,网格划分是其中最关键的一个步骤,网格划分的好坏直接影响到解算的精度和速度。在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命令可非常方便地在两个切面上生成对应网格)。
六、 利用子区模型等其它手段
子区模型是一种先总体、后局部的分析技术(也称为切割边界条件方法),对于只关心局部区域准确结果的复杂几何模型,可采用此手段,以尽量小的工作量来获得想要的结果。其过程是:先建立总体分析模型,并忽略模型中的一系列细小的特征,如导角、开孔、开槽等(因为根据圣维南原理,模型的局部细小改动并不特别影响模型总的分析结果),同时在该大模型上划分较粗的网格(计算和建模的工作量都很小),施加载荷并完成分析;其次,(在与总体模型相同的坐标系下)建立局部模型,此时将前面忽略的细小特征加上,并划分精细网格(模型的切割边界应离关心的区域尽量远),用 CBDOF等系列命令自动将前面总体模型的计算结果插值作为该细模型的边界条件,进行求解计算。该方法的另外好处是:可以在小模型的基础上优化(或任意改变)所关心的细小特征,如改变圆角半径、缝的宽度等;总体模型和局部模型可以采用不同的单元类型,比如,总体模型采用板壳单元,局部模型采用实体单元等。
子结构(也称超单元)也是一种解决大型问题的有效手段,并且在ANSYS中,超单元可以用于诸如各种非线性以及装配件之间的接触分析等,有效地降低大型模型的求解规模。
巧妙地利用结构的对称性对实际工作也大有帮助,对于常规的结构和载荷都是轴对称或平面对称的问题,毫无疑问应该利用其对称性,对于一些特殊情况,也可以加以利用,比如:如果结构轴对称而载荷非轴对称,则可用ANSYS专门用于处理此类问题的 25、83和61号单元;对于由多个部件构成装配件,如果其每个零件都满足平面对称性,但各对称平面又不是同一个的情况下,则可用多个对称面来处理模型(或至少可用此方法来减少建模工作量:各零件只需处理一半的模型然后拷贝或映射即可生成总体模型)。
总之,对于复杂几何模型,综合运用多种手段建立起高质量、高计算效率的有限元模型是极其重要的一个步骤,这里介绍的注意事项仅仅是很少一部分,用户自己通过许多工程问题的不断摸索、总结和验证才是最能保证有效而高效地处理复杂模型的手段。

wj9984 发表于 2006-5-25 09:35

楼主是否还记得这段程序?

Ansys输流管耦合边界条件的加载..

/BATCH,LIST
/PREP7
/TITLE,vibration of pipe with fluid in
!单元
et,1,42,,,3
et,2,45
et,3,29
et,4,30,,0 ! structure present
et,5,30,,1 ! structure absent
r,1,0.0036                  是耦合的边界范围吗?为什么要定义成.0.0036呢
                 定义的应该是实常数,但不知道定义的是哪个单元的呢?
!材料
mp,ex,1,69e9
mp,dens,1,2700
MP,DENS,2,1030
MP,SONC,2,1460
!建模、分网
cyl4,,,0.0228,,0.0248
lesize,all,,,8               
mshkey,2
mshape,0,2d
aatt,1,,1
amesh,all               在ansys中用操作命令执行以上的命令流,不允许划分网格
                   强行划分后,得到的不是环形面,而是四边形的面
cyl4,,,0.0228
asel,s,,,2
lsla,s
lesize,all,,,8
mshkey,0
mshape,0,2d
aatt,2,,3
amesh,all
allsel
!由面单元生成体单元
asel,s,,,1
extopt,attr,1,1,1
extopt,esize,200
extopt,aclear,1
type,2
vext,all,,,,,0.849
allsel
asel,s,,,2
extopt,attr,1,1,1
extopt,esize,200
extopt,aclear,1
type,4
vext,all,,,,,0.849
allsel
nummerg,all
!单元属性修改
esel,s,type,,4
nsle,s,all
csys,1
nsel,s,loc,x,0.0228
esln,s,0,all
esel,inve
nsle,s
emodif,all,type,5
allsel
!流固耦合单元标识
nummrg,node
csys,1
nsel,s,loc,x,0.0228
esln,s,type,,4
sf,all,fsi,1
allsel
finish


恳请楼主赐教!不胜感激!

glaciery 发表于 2006-11-28 20:18

对有限元网格划分总结的不错!如果有几个例子来演示一下,就更好了!!

ForCan2008 发表于 2006-11-29 15:50

同意楼上意见,利用例子来说就是最好的方式。经过经验介绍和例子讲解就会起到事半功倍的效果。

glaciery 发表于 2006-12-5 21:49

我感觉ansys划分网格的能力不很强!!划分的质量不好,还是应该借助第三方软件,如hypermesh 等,进行
分网好些

千脚龟 发表于 2008-9-24 10:36

有ICEM的学习资料么?新手,急需啊、

weni2008 发表于 2009-4-22 20:26

好东西,学习了,,,,,,,,,

chuanjiao 发表于 2009-5-18 10:25

同意楼上。不过利用例子来说就是最好的方式。

liaofermi 发表于 2009-5-23 16:30

谢了   楼主

beik2009 发表于 2010-11-21 20:42

谢谢楼主,辛苦了

wyy623 发表于 2010-12-6 12:26

好东西
谢谢各位
页: [1]
查看完整版本: ANSYS技巧---模型简化及网格划分