声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: Rainyboy

[前后处理] 再论ANSYS中的总体矩阵提取(In Python)

  [复制链接]
发表于 2013-3-31 11:11 | 显示全部楼层
你好,我看了你发的帖子,但我现在遇到一个问题不知道该怎么解决。我用ANSYS的hbmat方法提取出了结构的总刚度矩阵,但是是Harwell-boeing格式的矩阵,有没有什么方法或者程序能让它转换成普通的矩阵。我看了王新敏编的那本ansys书里的例题,但是运行有错误

点评

可以转换,我附的Python代码就可以  发表于 2013-3-31 12:48
回复 支持 反对
分享到:

使用道具 举报

发表于 2013-4-20 00:01 | 显示全部楼层
技术牛贴,必须顶
发表于 2013-5-5 23:00 | 显示全部楼层
特定用户是什么,我下不了呀,同志们
发表于 2014-5-27 10:09 | 显示全部楼层
好东西 谢谢楼主的分析
发表于 2014-12-24 16:27 | 显示全部楼层
mark 一下,感谢楼主分享
顺便请教一下,我导出来的质量阵有为0的列和行,这是为什么呢
发表于 2014-12-24 16:32 | 显示全部楼层
Rainyboy 发表于 2011-5-17 17:25
回复 6 # 心灯 的帖子

哦,这样啊,看看这个帖子呗:

楼主,这个链接失效了,能在共享一个吗
发表于 2015-4-3 16:51 | 显示全部楼层
好贴,必须学习之
发表于 2015-5-29 19:51 | 显示全部楼层
Rainyboy 发表于 2011-4-12 18:22
补充一下,如何得到矩阵的各行与模型各自由度之间的映射关系:
在HBMAT命令中打开mapping开关,即形如(最 ...

请问:怎么看mapping生成的文件啊?比如我想把HBMAT生成的矩阵怎么处理成安节点编号排序的矩阵?
 楼主| 发表于 2015-5-30 16:52 | 显示全部楼层
本帖最后由 Rainyboy 于 2015-5-30 10:15 编辑
Jmantan 发表于 2015-5-29 12:51
请问:怎么看mapping生成的文件啊?比如我想把HBMAT生成的矩阵怎么处理成安节点编号排序的矩阵?

例如,KK_RHS.mapping文件内容为:

    Matrix Eqn          Node    DOF     
             1             3    UX  
             2             3    UY  
             3             3    ROTZ
             4             2    UX  
             5             2    UY  
             6             2    ROTZ


数据的意思是:
总体自由度向量 第1行 表示 3节点 UX位移
总体自由度向量 第2行 表示 3节点 UY位移
总体自由度向量 第3行 表示 3节点 ROTZ位移
总体自由度向量 第4行 表示 2节点 UX位移

以此类推。
关于你的第二个问题,以上面的数据为例,原始的动力方程(以静力学为例)为:

{\bf K}\left(\begin{array}{c}{\bf u}_3\\ {\bf u}_2\end{array}\right) =\left(\begin{array}{c}{\bf f}_3\\ {\bf f}_2\end{array}\right)

根据你想要的按照节点顺序排列,可以写出坐标变换:

\left(\begin{array}{c}{\bf u}_3\\ {\bf u}_2\end{array}\right)=\begin{bmatrix}{\bf 0} & {\bf I} \\{\bf I} & {\bf 0} \end{bmatrix}\left(\begin{array}{c}{\bf u}_2\\ {\bf u}_3\end{array}\right) ={\bf T}\left(\begin{array}{c}{\bf u}_2\\ {\bf u}_3\end{array}\right)

以及

\left(\begin{array}{c}{\bf f}_3\\ {\bf f}_2\end{array}\right)={\bf T}\left(\begin{array}{c}{\bf f}_2\\ {\bf f}_3\end{array}\right)

将这个变换代入初始的动力方程,可得:

{\bf T}^{-1}{\bf K}{\bf T}\left(\begin{array}{c}{\bf u}_2\\ {\bf u}_3\end{array}\right) =\left(\begin{array}{c}{\bf f}_2\\ {\bf f}_3\end{array}\right)

那么{\bf T}^{-1}{\bf K}{\bf T}就是你要的新刚度矩阵了。

关键是构造出{\bf T}矩阵,但这个也不难,只要知道新旧自由度向量中的对应位置就可以了。

回复 支持 1 反对 0

使用道具 举报

发表于 2015-5-30 23:52 | 显示全部楼层
Rainyboy 发表于 2015-5-30 16:52
例如,KK_RHS.mapping文件内容为:

    Matrix Eqn          Node    DOF     

先谢谢详细的回答,我等会再仔细看看,
发表于 2016-11-25 11:04 | 显示全部楼层
权限不够,下载不了package,好桑梓

点评

多参与论坛讨论 升级就好了  详情 回复 发表于 2016-11-28 08:47
发表于 2016-11-28 08:47 | 显示全部楼层
Amonia 发表于 2016-11-25 11:04
权限不够,下载不了package,好桑梓

多参与论坛讨论  升级就好了
发表于 2016-11-28 11:05 | 显示全部楼层
think2015 发表于 2016-11-28 08:47
多参与论坛讨论  升级就好了

嗯嗯
发表于 2016-11-29 08:47 | 显示全部楼层
楼主真用心  谢谢
发表于 2017-7-1 17:29 | 显示全部楼层
谢谢楼主的好贴
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 09:37 , Processed in 0.088755 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表