zhdd0815 发表于 2011-2-13 13:44:50

怎么在matlab里优化abaqus输入文件的一些参数,求指教……

不知道对该问题如何下手,哪位高人做过类似的问题,求指教……
谢谢!

shawn2008 发表于 2011-2-13 17:17:32

本帖最后由 shawn2008 于 2011-2-13 17:22 编辑

可以用matlab的lsqnonlin函数进行参数的优化!就像下面的matlab code。
%Set optimization options
options=optimset('TolFun',1e-7,'TolX',1e-7,'MaxIter',200,'DiffMinChange',0.1);
%Solve the nonlinear least squares problem.
=lsqnonlin(@objfunction,IniGuess,,,options);

matlab调用abaqus实现参数优化中,最重要的是目标函数objfunction的封装。

zhdd0815 发表于 2011-2-13 18:47:16

十分的感谢shawn2008,还有个不懂的问题就是:在matlab环境下调用abaqus计算的结果文件中,我无法从.dat文件提取位移数据,我想从odb文件中直接定义一个集合,怎么实现在该集合上节点位移数据的提取呀?谢谢

shawn2008 发表于 2011-2-13 19:50:32

从odb中提取数据可以使用python脚本将所需结果保存到文本文件中,在matlab中执行abaqus的命令运行此脚本。就像下面一样,

ABACMD = abaqus;
pythonname = python script name;
% submit python script
abqstr = ;
dos(abqstr);

zhdd0815 发表于 2011-2-13 21:20:43

太谢谢你了,我有不懂的在问你,十分感谢你

zhdd0815 发表于 2011-2-21 14:49:02

还得求教shawn2008版主:ABACMD = abaqus;这个语句表示什么含义?
“ABACMD = abaqus;
pythonname = python script name;
% submit python script
abqstr = ;
dos(abqstr);”
这些都是写在m文件里吗?
谢谢,期待答复……

shawn2008 发表于 2011-2-21 15:18:47

由于不同的机器abaqus软件的命令可能不同,所以我倾向于定义一个变量ABACMD='具体的abaqus命令',这样容易实现代码的移植。

是的,上面的可以都写道m文件中。

zhdd0815 发表于 2011-2-21 16:21:52

我从没做过这么复杂的问题:对matlab和abaqus都是略知皮毛,还得请教:这里的“具体的abaqus命令”是指的在matlab环境中如何计算inp文件的命令吗?还是其他含义?本人比较木讷,好像还没太明白……,请指导,谢谢

shawn2008 发表于 2011-2-21 16:34:39

对于装了多个abaqus版本的机器,有时候为了区别不同版本,abaqus的命令可能加上了版本号。比如
abaqus6.8job=******input=*******
abaqus6.10job=******input=********

在程序中使用ABACMD,而不是具体的abaqus6.8或abaqus6.10,这样有利于代码的移植!

zhdd0815 发表于 2011-2-21 16:40:25

谢谢版主对我的耐心指导,十分的感谢!

zhdd0815 发表于 2011-2-21 21:06:24

还得麻烦版主在给一些指导:
假如我的inp文件的路径是: C:\Temp\Job-caprock.inp ,我的python的脚本文件的路径是:'C:\Temp\plot.py'

我用如下命令在matlab里

! copy C:\Temp\Job-caprock.inp tempfile.inp
!abaqus job=tempfile interactive
ABACMD='abaqus job=tempfile interactive';
pythonname = 'C:\Temp\plot.py';
% submit python script
abqstr=;
dos(abqstr);

提示不对,我的问题又出在哪里了?请指导,谢谢

shawn2008 发表于 2011-2-22 11:05:59

pythonname = 'C:\Temp\plot.py';
好像abaqus中不支持目录吧?必须是当前目录下的文件!

zhdd0815 发表于 2011-2-24 09:23:18

版主你好: 我把plot.py放在matlab的路径下,还是不能运行m 文件?我该如何办呢?

zhdd0815 发表于 2011-2-24 10:04:27

谢谢版主:我已经解决了在matlab里m文件的怎么处理plot.py文件的问题,我还想请教一个问题就是:我如何在odb文件里定义一个节点集然后用python 只提取该节点集上节点的位移,请指导,谢谢!

糊涂的丫头 发表于 2011-3-16 10:11:06

请教版主,我在matlab中运行
      !abaqus job=Plate.inp;
      filename = 'Plate.dat';
为什么提示:Abaqus Error: Command line option "input" must have a value.
Abaqus/Analysis exited with error(s). 是ABAQUS环境设置的问题吗?谢谢!

yigl 发表于 2011-3-22 10:53:51

谢谢版主:我已经解决了在matlab里m文件的怎么处理plot.py文件的问题,我还想请教一个问题就是:我如何在odb文件里定义一个节点集然后用python 只提取该节点集上节点的位移,请指导,谢谢!
zhdd0815 发表于 2011-2-24 10:04 http://forum.simwe.com/images/common/back.gif
能不能麻烦你告诉我们你是如何解决“在matlab里m文件的怎么处理plot.py文件的问题”的呢?想学习下。谢谢!

yigl 发表于 2011-3-22 10:58:21

谢谢版主:我已经解决了在matlab里m文件的怎么处理plot.py文件的问题,我还想请教一个问题就是:我如何在odb文件里定义一个节点集然后用python 只提取该节点集上节点的位移,请指导,谢谢!
zhdd0815 发表于 2011-2-24 10:04 http://forum.simwe.com/images/common/back.gif
你的节点集信息可以用命令regionName=step.historyRegions.keys()查看,然后
region = step.historyRegions
U1Data = region.historyOutputs['U1'].data
那么U1Data里就应该包含你的节点regionName对应的位移信息了。

敦诚 发表于 2011-3-23 00:35:14

11# zhdd0815

斜杠画反了!

阿光 发表于 2011-5-4 15:16:52

楼主问题解决了吗?
你是如何解决“在matlab里m文件的怎么处理plot.py文件的问题”的呢?
贴出来大家一起学习一下呀!谢谢!

summywang 发表于 2011-7-6 22:55:49

请问版主,matlab 怎么调用abaqus 的方法分享一下吗,我知道是用system命令,但是具体是怎么样的呢,谢谢
页: [1] 2
查看完整版本: 怎么在matlab里优化abaqus输入文件的一些参数,求指教……