matlab与ansys数据传递? 200

浏览:1197 回答:1

我用ansys建了模型并做了有限元分析,现在需要把它用到matlab里,遇到了matlab与ansys互相调用的问题,我先假设2和7两个单元的损伤,损伤程度分别为0.3和0.2,我把它们用matlab写入了txt文件中,然后再用ansys调用计算这种损伤情况下的频率,这是我的matlab程序


a=[2;7;0.3;0.2];

fid = fopen('b.txt','wt');

fprintf(fid,'%6.1f\n',a);

fclose(fid); 

下面是ansys命令流


finish

/clear

/prep7

L=0.2

H=0.1

B=0.1

blc4,,,L,H,B

ET,1,solid65 !定义单元类型 

!KEYOPT,1,1,1   !对指定单元类型设置所需的特性,与具体的单元类型有关,设置单元类型1的第1个选项的值为1     ?                              

!KEYOPT,1,5,2  

mp,ex,1,210e9

mp,prxy,1,0.3

mp,dens,1,7850

mp,ex,2,147e9

mp,prxy,2,0.3

mp,dens,2,7850

mp,ex,3,168e9

mp,prxy,3,0.3

mp,dens,3,7850


el=0.1/3

ESIZE,el  !设置单元边的长度为e1

MSHKEY,1  !采用映射网格划分方式

MSHAPE,0  !2D:四边形,3D:六面体单元

VSEL,all  !选择一组体的子集

VMESH,all!在体上生成节点和单元


nsel,s,loc,x,0$nsel,r,loc,y,0$nsel,r,loc,z,B  !选择一组节点子集

d,all,all                                     !在节点上施加约束

nsel,a,loc,x,0$nsel,r,loc,y,H$nsel,r,loc,z,B

d,all,all 

nsel,a,loc,x,0$nsel,r,loc,y,H$nsel,r,loc,z,0

d,all,all  

nsel,a,loc,x,0$nsel,r,loc,y,0$nsel,r,loc,z,0 

d,all,all

allsel,all   !选择所有实体


*dim,eleinfo,,4,1    !定义一个4*1的数组

*vread,eleinfo(1,1),G:\ANSYSPROGRAM\b,txt,,JIK,1,4

(f6.1)

a1=eleinfo(1,1)

a2=(eleinfo(1,1)+1)

*cfopen,E:\ANSYSPROGRAM\unrelated1\eleinfofile,txt

*Vwrite,eleinfo(1,1)

(f6.1)

*cfclos

*if,a1,eq,1,then

*do,i,1,a1

esel,s,elem,,eleinfo(i+1,1)   !选择一组单元子集

emodif,all,mat,2

!esel,all

*enddo

*else

*do,i,1,a1

esel,s,elem,,eleinfo(i+1,1)

emodif,all,mat,2

esel,all

*enddo

*do,i,a2,4

esel,s,elem,,eleinfo(i,1)

emodif,all,mat,3

esel,all

*enddo

*endif

esel,all  


问题就出现在上面这部分,我需要读入matlab写出的txt文件,并对2和7号单元做单元属性修改,急,请各位大神指教!


邀请回答 我来回答

全部回答

(1)
默认 最新
Jessica启
急求matlab大神
2017年7月11日
评论 点赞

没解决?试试专家一对一服务

换一批