您的位置:网站首页 > Ansys教程

关于ANSYS中数据有效位数和小数点位数的探讨

时间:2010-01-01 19:30:08 来源:

今天在运用ANSYS做“常规动作”时,突然发现过去一直忽略的一个问题,那就是ANSYS会对数据进行自动的“四舍五入”?回想起做桩土接触时,曾使用装配的方法,导致程序提示有渗透出现(其实渗透是难免的),这便更加深了我的质疑。经过在帮助文档和网络中的一再求证,总算是初步弄明白了,事实上,我误解了它。
在默认状态下,任意创建一个图素,例如k,1,1234,4321, 则klist之后显示的节点x坐标为0.123E+04,后面的数据都给“省略”了。这其实是个假象,其实数据是完整地输入进去了,只不过程序显示成这种小数点后保留三位的科学计数法而已。特别感谢纪同学,在他的启发下我们做了一个实验:k,1,1.2222$k,2,1.2224$l,1,2$llist。创建了两个关键点,如果程序会自动改变原始数据的话,那么二者连线的长度应被忽略,而事实上的结果依旧是0.2000E-03。这证明在数据输入的时候,并不存在所谓要保留多少位有效数字或小数点后留多少位的问题。
事实上,我们能遇到的格式问题,都是在后处理中遇到的。分为两种情况,一是显示一是输出。即有时会出现选不上截面,或者需要对所有输出的数据做格式上的统一。而此时,我们只需要对格式做一个设置即可。总体来讲,能用到的命令如下:
/GROPT, Lab, KEY
此命令可修改沿坐标方向图表的显示比例,或者定义坐标轴方向数据在小数点左侧有效数字的位数。需要注意的是,所有设置必须在运行/GROPT,VIEW,ON命令,通过/GROPT,STAT开启显示之后,开可以看到。当然,也可以通过/GROPT,DEFA将所有设置复位。
GUI操作路径:
Utility Menu>PlotCtrls>Style>Graphs>Modify Axes
Utility Menu>PlotCtrls>Style>Graphs>Modify Curve
Utility Menu>PlotCtrls>Style>Graphs>Modify Grid
/GFORMAT, Ftype, NWIDTH, DSIGNF
用来设置图形显示界面的数据显示格式,可根据fortran的格式定义方法,设置小数点右侧位数或整体的有效数字位数等等。同样地,也需要/GFORMAT,STAT开启,也可用/GFORMAT,DEFA复位。
GUI操作路径:
Utility Menu>PlotCtrls>Style>Floating Point Format
/FORMAT, NDIGIT, Ftype, NWIDTH, DSIGNF, LINE, CHAR
用来设置表参数(table)中的数据格式,此命令没有GUI对应的选项。其中每个项目的具体意义,请到Help系统中查询。
举个例子:/format,,f,8,5则表示选F格式下宽度为8的有效位数,小数点后保留5位
以上命令只对后处理中的PRNSOL, PRESOL, PRETAB, PRRSOL, and PRPATH 等列表数据有效,而在/prep7中的list命令中查询没有效果——实际上所定义的格式,仅针对图形界面中的数据显示而言,列表窗口中当然查不到啦。
除此之外,还可以使用*VWrite命令实现自定义格式的输出。*vwrite可以实现将数组中的数据写入到外部文件中,而且数据格式可用fortran77数据描述符来规定。流程大体如下:
*cfopen,文件名,后缀名
*vwrite,写入的内容
(数据格式描述符)
*cfclos
具体操作,请参考《APDL参数化有限元分析技术及其应用实例》博弈创作室,中国水利水电出版社,第六章(P36~P44)的相关内容。
总结一下:1、ANSYS不会自动的“四舍五入”,只是我们“看起来如此”;2、list中的数据并不十分准确,所以需要调用数据的时候还是将其输出成外部文件比较好