iomega 发表于 2011-4-9 03:50:58

【原创】ANSYS模型的Model Order Reduction(提高瞬态计算速度数百倍)

本帖最后由 iomega 于 2011-4-19 09:05 编辑

最近在做一些Fast simulation的工作,用到了Model Order Reduction (MOR),觉得十分有用,在这里推荐给大家,并且附上ANSYS 和Matlab的source code.现在最流行的MOR主要基于Krylov subspace projection method, 基本原理如下:
假设原来的linear system model的node数是N (NxN的矩阵), N ~ 100000,我们可以创建一个N x r 的矩阵,把原来NxN的矩阵project到 r x r的矩阵上去 (r<<N),这样求解过程可以在这个小矩阵上完成,然后再把结果project回到原来的NxN的矩阵空间上去。
以下是源程序介绍:
(1) Example.mac: ANSYS mac file 用来建立一个三维的热传导模型,并加上载荷。用户必需设置文件里的SOLVE_OPTION变量。
取0时,输出模型的heat capacitance 和 heat conductance 矩阵(用HBMAT commands),分别保存到C_File.dat和K_file.dat(Thermal load 也保存到K_File.dat)。
取1和2时分别做steady-state和transient simulation。


(2) MOR_ODE.m: matlab 程序,读取K_File.dat和C_file.dat进行MOR,并且和ANSYS 结果(ansys.dat,在Example.mac里SOLVE_OPTION=2)的对比。用户必需设置Solver_Option = 1调用matlab的lu分解函数。(Solver_Option = 0 是使用external 的 MOR_MUMPS.exe程序做matrix factorization,速度可提高数倍。MOR_MUMPS.exe是自己写的C语言程序,用到了GNU MUMPS linear solver library和BLAS library, 需用GNU fortran 和 gcc 编译).

ANSYS模型的MOR步骤:
(1): 在ANSYS里建模,mesh,以及加载 (不必求解)。
(2): 用HBMAT命令输出system matrice文件(Example.mac里有对应的code).
(3): 在Matlab里读入system matrice文件进行MOR(code在MOR_ODE.m里).
(4): 在Matlab里用ODE solver求解并project solution back 得到原模型上的解。
限制: 模型必需是linear system response model.


ansys.dat 中包含了用ANSYS得到的MX和MN点的温度变化曲线, 用来和MOR结果做比较。

下图显示了用matlab/MOR求解ANSYS模型结果和直接用ANSYS simulation的结果的比较,可以看出结果完全一样,求解速度提高400倍!

oyime 发表于 2011-4-9 21:37:09

版主我们想念您啊没有你的这个版块真的是不完整的   这个帖子绝对是精品,学习了。

wangyan43 发表于 2011-4-12 18:07:21

看得不太懂,还要细细研究。

201010202012 发表于 2011-5-11 16:15:06

这也行啊 太强大了

semifree 发表于 2011-5-16 14:33:21

研究下,谢谢楼主

Wdennisw 发表于 2011-5-18 20:50:57

好例子,楼主辛苦!

Wdennisw 发表于 2011-5-18 20:55:19

好例子,楼主辛苦!

LION_ARTHAS 发表于 2011-5-24 21:42:22

本帖最后由 LION_ARTHAS 于 2011-5-24 21:44 编辑

帖子太耀眼了,对于我们这些搞散热的真是帮助太大了,节约了时间,提高了效率,如果这样映射了之后不影响收敛性那真是无敌了

顺便请教两个问题:
这个东东能用于WORKBENCH么?
另外版本有限制么,比如v13需要对应matlab2010之类的
非常感谢Ω版主

qq357492630 发表于 2011-5-26 19:19:21

版主你好,我现在有一个关于ansys热力耦合的很棘手的问题,急需要你的帮助,麻烦能留个QQ号码吗?(主要问题是一个点热源作用在各向同性的半无限体上,求它的应力分布,不知道点热源怎么加载,以及设置些什么参数)
时间很紧,麻烦版主多多帮助,非常感谢!!!!

微笑后的我 发表于 2011-6-17 12:27:32

高深,不懂,先旁观

瞻仰lz的英姿

postwar 发表于 2011-6-21 23:52:05

matlab都行,太强大了,这个还真是第一次见到,学习了。

xukun0608 发表于 2011-7-4 15:16:13

谢谢楼主,很好的资料

guoyunfeihao 发表于 2011-7-15 11:28:01

感觉很深奥啊,学习中

C丫丫 发表于 2011-11-16 14:52:29

瞻仰楼主的英姿。。。 +1

jiaqj066 发表于 2011-11-25 22:14:46

楼主是我学习的榜样!顶:)

tsw20031117 发表于 2011-11-28 22:29:11

mark留着以后研究!

xuhuan2011 发表于 2012-1-9 15:29:50

能用于workbench吗?

机自jzbin 发表于 2012-1-11 11:25:09

虽然现在还不是很看得懂,做个mark,再回来研究这个问题

obome 发表于 2012-3-22 18:28:54

恩,学习一下

leeshian 发表于 2012-5-15 15:11:08

版主,这个方法确实不错,我现在也在用matlab调用ansys,但分析的是热-力耦合非线性问题,有可能通过这种途径实现吗?
页: [1] 2 3 4
查看完整版本: 【原创】ANSYS模型的Model Order Reduction(提高瞬态计算速度数百倍)