hero1224 发表于 2010-11-13 15:51:18

MATLA与ANSYS结合进行优化

请问各位大侠,,,我现在利用ANSYS已经建好复合材料有限元模型,,想利用MATLAB编优化算法,算法可以是遗传算法或者粒子群算法,然后与ANSYS进行接口传递进行优化,,不想利用ANSYS的一阶和零阶优化,优化的效果不是很理想。目标是结构重量,变量是铺层角度和厚度。现在不知道从何下手,,有哪位高人能指点一下吗?

hero1224 发表于 2010-11-18 21:36:42

没有高人指点????我不知道怎么进行参数传递的,,,,MATLAB可以调用ANSYS,,,,

taohe 发表于 2010-11-19 11:49:40

只是一点想法:ansys的启动方式基本上有两种:Interactive mode和batch mode。你最好是用batch从matlab启动ansys,然后把ansys分析的参数通过一个参数文件在启动ansys的时候传递。现在matlab的任务就变成
- 初始化
- 准备ansys所需要的参数文件。这是一个文本文件,
- 启动ansys,求解。这一步可以看做是其他使用matlab做优化中对目标函数取值。
- 判断目标函数的值是否最优,如果是则程序推出,如果不是,按照具体优化算法调整有关参数,返回第一步,也就是重新准备新的ansys参数文件,准备再次求解。

再次重申:只是一点粗浅的想法,仅供参考。

bainhome 发表于 2010-11-19 13:23:17

赞同taohe。这种两个甚至三个软件的联动,往往问题都在于不同数据格式的相互准入。Solidworks→Ansys、UG→ANSYS、ADAMS→MATLAB、EXCEL→Matlab...都是这样,首先肯定是要分析两个软件各自的数据I/O特点,例如:所需为ansys 中的哪些数据,需导出纯文本文件格式要求、后缀名限制、是否二进制文件等。像你这种问题,还要分析在哪个软件中做主控制,还是用其他语言写控制界面,紧接着还要分析额外的优化数学模型,包括目标函数、设计变量、约束条件的构造、MATLAB中优化函数的编写格式及所需数据、是否需要参数化等等,如果要自行编写全局优化算法,精神可嘉,但要如你所说并非完全的谦虚,而是甚至真的连两软件之间的参数如何传递都不懂,时间周期肯定是比较长的,推荐直接用1stopt等软件先就单一问题做算法测试。高版本的MATLAB已经有了全局优化工具箱,但是我还没研究过,此方面没有发言权,知道的朋友可以总结比较一下,我想应该是有技术分可加的哦。
ps1:ansys的优化据说应该还可以吧,你确定你已经把ANSYS 本身优化的潜力理解到完全透彻的程度吗?
ps2:结构优化好像MATLAB并不是最佳选择,optistruct、insight等均具备和ansys联动的功能。
ps3:帖子里干嘛打那么多逗号?是按apdl的默认参数格式写帖子吗?:)

hero1224 发表于 2010-11-19 20:45:47

感谢taohe bainhome两位高人,说的有道理,用ANSYS我的设计变量较多,电脑配置也不好,算一个工况要好久,所以不想再用了,想把优化单独列出来进行。所以想用这两种软件结合。还请高人继续指点。
PS1:由于看了别人的文章说是用MATLAB编优化算法,另外在此高手云集的文坛上不少程序介绍两者结合,所以心痒痒之;
PS2:我这里没有人懂这个,无人指导,太纠结了,痛苦,想不再痛苦;
PS3:回bainhome大侠,逗号多打习惯了,虽然apdl里逗号比较多,我改!!!!

523402750 发表于 2010-12-24 10:35:41

和做的有相似的地方希望我们能交流 5# hero1224

zqjust501 发表于 2010-12-29 16:31:27

前途是光明的,请楼主不要松懈,等楼主做成了,我们就有人知道了。

lieridongqing 发表于 2011-3-23 17:24:01

我也在做这个优化QQ1154441933

523402750 发表于 2011-4-15 16:11:52

本人也在做这方面的优化工作,利用vc编程的,基本完成数据的传递和反馈。现在遇到问题多变量的问题不好解决。后来发现matlab自身有全局优化功能,现在想改向matlab与ansys的链接。利用matlab是做过计算过程,求最优解,觉得和结构设计没有直接联系。个人观点

hero1224 发表于 2011-6-14 21:29:27

此项工作已经完成,MATLAB做优化计算,ANSYS有限元分析。

caoyuanlang 发表于 2011-6-21 14:06:06

我也做这方面的东西。步骤如下:
1.在Matlab中编写粒子群算法代码的M文件;将Ansys中需要用到的数据文件存放到TXT文件中;
2.Matlab调用Ansys,在Ansys调用的命令流文件中,定义数组,并将Matlab写出的TXT文件中的数据读入到数组中;
3.利用Ansys计算,并将优化过程中需要用到的数据文件写出到TXT文件中;
4.Matlab载入Ansys写出的TXT文件中的数据,带入到优化算法中;
5.如此反复进行,直到得到结果。
这里面关于Matlab和Ansys的数据通讯,我是用数据文件写入写出的方式完成的。
以上为经验之谈,仅供参考。

zxt304 发表于 2011-6-28 21:21:05

学习了,我最近也在做优化,头疼啊、、、

qinqiang1008 发表于 2011-8-10 21:24:35

见识了
两个如果能结合起来
那座优化就方便了

jyliao 发表于 2011-8-12 21:03:21

check iSIGHT or ModeFrontier softwares

zhouzhaoyu 发表于 2011-8-31 10:14:44

本贴讨论的问题真够复杂的!我也用ANSYS做优化的!可是不知道用什么算法!为什么做来做去最优的结果为何是我开始的尺寸呢!很着急呀!不知道楼主有什么好的建议吗?

stonetang 发表于 2012-3-14 23:39:33

我是用matlab 和 ABAQUS做过优化,一个突出的问题是:计算量太大了,我有七个变量,往往matlab可能得调用ABAQUS几千次才能实现优化,在一般的PC上不大现实。针对这种耗资源的优化,大家有什么建议?
页: [1]
查看完整版本: MATLA与ANSYS结合进行优化