ANSYS read命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ANSYS 提供了*VRead 命令,可以从文本文件读取数据到数组中。
*Vread 命令的格式如下:
*VREAD, ParR, Fname, Ext, Dir, Label, n1, n2, n3, NSKIP-- Reads data and
produces an array parameter vector or matrix.
ParR: 事先定义好的用于保存数据的数组,数组可以是1维或2 维或者3 维的;Fname: 要读取的数据文件的文件名;
Ext:数据文件名的后缀;
Dir:数据文件所在的目录;(目录中最好别包含中文和空格以及太长的目录名)Label:指定读取方式,一般用IJK,JIK 这两种方式;
n1,n2,,n3:Read as (((ParR(i,j,k), k = 1,n1), i = 1, n2), j = 1,
n3) for Label = KIJ. n2 and n3 default to 1.(具体什么意思,没
想明白)
NSKIP :指定从文件的哪一行开始读取数据,默认NSKIP=0,从第一行读取;
根据命令中的Label 参数常用的2 种读取方式来讨论。
1. Label=JIK
这是最常用的读取方式。如果希望数组中的数据的的排列方式和数据在文件中的排列方式保持一致,就应该用这种读取方式。
比如数据文件data.txt 中的数据的排列方式如下:
1.1,1.2,1.3,1.4
2.1,2.2,2.3,2.4
3.1,3.2,3.3,3.4
4.1,4.2,4.3,4.4
如果希望读取数据后,数组 A 中的数据按照相同的方式排列即:
A(1,1)=1.1 A(1,2)=1.2 A(1,3)=1.3 A(1,4)=1.4
A(2,1)=2.1 A(2,2)=2.2 A(2,3)=2.3 A(2,4)=2.4
A(3,1)=3.1 A(3,2)=3.2 A(3,3)=3.3 A(3,4)=3.4
就应该用Label=JIK 的方式读取。
一般而言,假定数组是A(m,n),则命令流应该为:
……..
*Vread,ParR,Fname,Ext,Dir,JIK,n,m
(nFw.d)
………..
需要注意的地方:
1.矩阵是A(m,n),命令行中是”n,m”,而不是”m,n”
2.格式说明必须为nFw.d,不能为mFw.d, n,w,d 在具体使用时,用具体的数字
代替;
现以上面的数据为例,下面是对应的命令流:(在ANSYS5.7 中验证通过)
finish
/clear
/prep7
*DIM, A,array,3,4
*vread,A(1,1),data,txt,g:\ansysuser,JIK,4,3
!注意顺序是4,3,而不是3,4,和数组的定义相反;
(4F6.2) !注意是4Fw.d,而不能用3Fw.d
应该根据自己的实际情况修改上面的命令流中的文件名和存放路径;
执行命令流后,可以得到上面所预期的结果。
2. Label=IJK
这种情况,读取数据的规律非常复杂,读取数据的方式会受到到说明格式
中的xFw.d 中的x 的值的影响,还会收到文件中数据的排列方式的影响;
这里只说明一种常用的情况:
如果希望数据在数组中的排列方式和数据在文件中的排列方式正好是矩阵
转置关系的时候,即数组为mXn, 数据为nXm,应该用下面固定的格式:
假定数组为A(m,n);
则命令格式为:
*Vread,ParR,Fname,Ext,Dir,IJK,m,n !要注意是”m,n”,和数组的定义一
致;
(mFw.d) !格式说明是mFw.d,不能是nFw.d;
注意:文件中数据的排列必须是nXm,即数据共n 行,每行m 个数值,正好是矩阵的转置;
例子:数据文件中数据的排列方式为4X3,
定义数组为A(3,4)
1.1,1.2,1.3
2.1,2.2,2.3
3.1,3.2,3.3
4.1,4.2,4.3
执行下面的命令流之后,矩阵A 的值刚好是上面的矩阵的转置,即:
A(1,1)=1.1 A(1,2)=2.1 A(1,3)=3.1 A(1,4)=4.1
A(2,1)=1.2 A(2,2)=2.2 A(2,3)=3.2 A(2,4)=4.2
A(3,1)=1.3 A(3,2)=2.3 A(3,3)= 3.3 A(3,4)=4.3
命令流:
finish
/clear
/prep7
*DIM,AA,array,3,4
*vread,AA(1,1),data,txt,g:\ansysuser,IJK,3,4
(3F6.2)
3.关于数据之间的隔离符号的问题
数据文件中,数据之间可以用逗号”,”,空格“”和Tab键3 种方式来隔开。但是,当用空格格开的时候,如果空格的数量与数据说明格式xFw.d 之间协调
不好的时候,会出问题。
还是拿第一个例子来说,把数据之间的隔离符号由逗号改为空格,每个数据之
间只有一个空格,数据排列如下:
!数据之间只有1 个空格:
1.1 1.2 1.3 1.4
2.1 2.2 2.3 2.4
3.1 3.2 3.3 3.4
数组为A(3,4)
执行下面的命令流:
finish
/clear
/prep7
*DIM,AA,array,3,4
*vread,AA(1,1),data,txt,g:\ansysuser,JIK,4,3
(4F6.2)
得到如下错误:
如果增加数据之间空格,使数据之间的空格数为3。(大于3 也可以)
!空格数为3:
1.1 1.2 1.3 1.4