gaipan100
发表于 2011-2-24 10:04
回复 28 # Rainyboy 的帖子
找到一个ansys提取刚度矩阵的命令:HBMAT,fname,ext,--,form,matrx,rhs
查看帮助文件,提到fname和ext是可以缺省的,那我可否写命令如下:hbmat,,,--ascii,stiff,yes
这样对么?
然后发现可以用菜单做Utility Menu>File>List>Binary Files,但是有这么一项:file to be read
我就不明白了,也没提到还要读什么文件啊,但是不输还不行,请指教,附图。
Rainyboy
发表于 2011-2-24 10:43
回复 31 # gaipan100 的帖子
在那里填写相应的后缀名为.full的文件即可
gaipan100
发表于 2011-2-24 13:15
回复 32 # Rainyboy 的帖子
根据你的指点,果然,出来了。但是长的好奇怪啊,先是图0这样的,然后就是图1这样的,再然后就是图2这样的,后面的值就都是0了。这应该是ASCII码格式,那我怎么用呢?我有那么多0值对么?
gaipan100
发表于 2011-2-24 13:17
错了,第一张图就是图0,我写成图2了。第三张图是图2我写成图0了
Rainyboy
发表于 2011-2-24 13:39
回复 34 # gaipan100 的帖子
其实就是 Harwell-Boeing 格式的意义问题,帮你检索了一篇帖子,但愿对你有所帮助。
ansys刚度矩阵Harwell-Boeing格式的具体含义讨论
http://okok.org/forum/viewthread.php?tid=184007
gaipan100
发表于 2011-2-24 15:29
回复 35 # Rainyboy 的帖子
这篇帖子我看到了,我再好好看看。
要提取矩阵的最终目的是要求出结构的损耗因子,我现在查看帮助,发现居然能直接求出阻尼比,可是查了那么多资料、论坛都说没法直接求出阻尼比,这是怎么回事?如附图。还请指点。
Rainyboy
发表于 2011-2-24 19:27
回复 36 # gaipan100 的帖子
提取的是模态阻尼比吧,这里所谓的“提取”并不是计算,而是把你设置好的那些阻尼参数折算成模态阻尼比给出来而已。
gaipan100
发表于 2011-2-25 09:37
回复 37 # Rainyboy 的帖子
那就是说没啥意义了,那就只能继续提取矩阵了
wzx13wzx
发表于 2011-2-25 16:26
看的很过瘾,但是有一部分是不明白的,想麻烦BOY总结一下这个帖子,
gaipan100
发表于 2011-2-25 18:03
回复 35 # Rainyboy 的帖子
根据帖子的内容,现在是想将ASCII码文件转换成所谓的“满矩阵”(应该就是那种一看就知道是矩阵的形式吧),根据帖子提示,应该使用下列命令:
*dim,contline,,5
*vread,contline(1),hbfile,txt,,,5,,,1
ptrcrd=contline(2)
indcrd=contline(3)
valcrd=contline(4)
rhscrd=contline(5)
*vread,contline(1),hbfile,txt,,,4,,,2
nrow=contline(2)
ncol=contline(3)
strline=
contline=
*if,rhscrd,eq,0,then
ls0=4
*else
ls0=5
*endif
*dim,pointr,,ptrcrd
*dim,rowind,,indcrd
*dim,values,,valcrd
*dim,rhsval,,rhscrd
*vread,pointr(1),hbfile,txt,,,ptrcrd,,,ls0
*vread,rowind(1),hbfile,txt,,,indcrd,,,ls0+ptrcrd
*vread,values(1),hbfile,txt,,,valcrd,,,ls0+ptrcrd+indcrd
*vread,rhsval(1),hbfile,txt,,,rhscrd,,,ls0+ptrcrd+indcrd+valcrd
*dim,smatr,,nrow,ncol
*do,icol,1,ncol
stacol=pointr(icol)
endcol=pointr(icol+1)
*do,irow,stacol,endcol-1
truerow=rowind(irow)
smatr(truerow,icol)=values(irow)
*enddo
*enddo
*do,irow,1,nrow
*do,icol,1,ncol
smatr(irow,icol)=smatr(icol,irow)
*enddo
*enddo
我用input导入,我就纳闷了,好像是说第二个空隙什么的格式语法错误,我看不懂命令,不值前辈有没有什么建议,搞不懂啊~~,麻烦各位了,都不好意思了
gaipan100
发表于 2011-2-26 17:11
找到原因了,格式有误。可是input完之后,日志窗口就停止了,但操作窗口一直一直响应不过来,弄不懂怎么个情况,而且生成的满矩阵上哪去了呢?也么生成新文件啊,源文件也没变化啊,这是怎么回事啊???{:{13}:}
Rainyboy
发表于 2011-2-28 21:19
回复 41 # gaipan100 的帖子
也不是非要用APDL处理矩阵吧……既然矩阵已经写到文件里了,可以用C或者FORTRAN或者MATLAB提取,并且接着处理呗
gaipan100
发表于 2011-2-28 22:43
回复 42 # Rainyboy 的帖子
老兄,那我可就又要请教你了,因为你说的两种方法我也不会,汗(不过metlab早晚也是要用的,套矩阵)
Rainyboy
发表于 2011-3-1 10:03
回复 43 # gaipan100 的帖子
恩,早学会早用嘛,呵呵
gaipan100
发表于 2011-3-1 11:01
回复 44 # Rainyboy 的帖子
说个题外话,模态分析完后
SET TIME/FREQ LOAD STEP SUBSTEPCUMULATIVE
1187.93 1 1 1
2188.99 1 2 2
3217.00 1 3 3
4219.37 1 4 4
5303.32 1 5 5
这个TIME/FREQ 是什么?是Hz么?