找回密码
 注册
Simdroid-非首页
查看: 1278|回复: 31

[二次开发] 怎么在matlab里优化abaqus输入文件的一些参数,求指教……

[复制链接]
发表于 2011-2-13 13:44:50 | 显示全部楼层 |阅读模式 来自 山东青岛
不知道对该问题如何下手,哪位高人做过类似的问题,求指教……
谢谢!
发表于 2011-2-13 17:17:32 | 显示全部楼层 来自 陕西西安
Simdroid开发平台
本帖最后由 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.
[x,ErrNorm]=lsqnonlin(@objfunction,IniGuess,[1 1 1 1],[20 20 20 20],options);

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

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2011-2-13 18:47:16 | 显示全部楼层 来自 山东青岛
十分的感谢shawn2008,还有个不懂的问题就是:在matlab环境下调用abaqus计算的结果文件中,我无法从.dat文件提取位移数据,我想从odb文件中直接定义一个集合,怎么实现在该集合上节点位移数据的提取呀?谢谢
回复 不支持

使用道具 举报

发表于 2011-2-13 19:50:32 | 显示全部楼层 来自 西安交通大学
从odb中提取数据可以使用python脚本将所需结果保存到文本文件中,在matlab中执行abaqus的命令运行此脚本。就像下面一样,

ABACMD = abaqus;
pythonname = python script name;
% submit python script
abqstr = [ABACMD ' python ' pythonname];
dos(abqstr);
回复 不支持

使用道具 举报

 楼主| 发表于 2011-2-13 21:20:43 | 显示全部楼层 来自 山东青岛
太谢谢你了,我有不懂的在问你,十分感谢你
回复 不支持

使用道具 举报

 楼主| 发表于 2011-2-21 14:49:02 | 显示全部楼层 来自 山东青岛
还得求教shawn2008版主:ABACMD = abaqus;这个语句表示什么含义?
“ABACMD = abaqus;
pythonname = python script name;
  % submit python script
abqstr = [ABACMD ' python ' pythonname];
dos(abqstr);”
这些都是写在m文件里吗?
谢谢,期待答复……
回复 不支持

使用道具 举报

发表于 2011-2-21 15:18:47 | 显示全部楼层 来自 陕西西安
由于不同的机器abaqus软件的命令可能不同,所以我倾向于定义一个变量ABACMD='具体的abaqus命令',这样容易实现代码的移植。

是的,上面的可以都写道m文件中。
回复 不支持

使用道具 举报

 楼主| 发表于 2011-2-21 16:21:52 | 显示全部楼层 来自 山东青岛
我从没做过这么复杂的问题:对matlab和abaqus都是略知皮毛,还得请教:这里的“具体的abaqus命令”是指的在matlab环境中如何计算inp文件的命令吗?还是其他含义?本人比较木讷,好像还没太明白……,请指导,谢谢
回复 不支持

使用道具 举报

发表于 2011-2-21 16:34:39 | 显示全部楼层 来自 陕西西安
对于装了多个abaqus版本的机器,有时候为了区别不同版本,abaqus的命令可能加上了版本号。比如
abaqus6.8  job=******  input=*******
abaqus6.10  job=******  input=********

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

使用道具 举报

 楼主| 发表于 2011-2-21 16:40:25 | 显示全部楼层 来自 山东青岛
谢谢版主对我的耐心指导,十分的感谢!
回复 不支持

使用道具 举报

 楼主| 发表于 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=[ABACMD ' python ' pythonname];
dos(abqstr);

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

使用道具 举报

发表于 2011-2-22 11:05:59 | 显示全部楼层 来自 陕西西安
pythonname = 'C:\Temp\plot.py';
好像abaqus中不支持目录吧?必须是当前目录下的文件!
回复 不支持

使用道具 举报

 楼主| 发表于 2011-2-24 09:23:18 | 显示全部楼层 来自 山东青岛
版主你好: 我把plot.py放在matlab的路径下,还是不能运行m 文件?我该如何办呢?
回复 不支持

使用道具 举报

 楼主| 发表于 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环境设置的问题吗?谢谢!
回复 不支持

使用道具 举报

发表于 2011-3-22 10:53:51 | 显示全部楼层 来自 Invalid
谢谢版主:我已经解决了在matlab里m文件的怎么处理plot.py文件的问题,我还想请教一个问题就是:我如何在odb文件里定义一个节点集然后用python 只提取该节点集上节点的位移,请指导,谢谢!
zhdd0815 发表于 2011-2-24 10:04

能不能麻烦你告诉我们你是如何解决“在matlab里m文件的怎么处理plot.py文件的问题”的呢?想学习下。谢谢!
回复 不支持

使用道具 举报

发表于 2011-3-22 10:58:21 | 显示全部楼层 来自 Invalid
谢谢版主:我已经解决了在matlab里m文件的怎么处理plot.py文件的问题,我还想请教一个问题就是:我如何在odb文件里定义一个节点集然后用python 只提取该节点集上节点的位移,请指导,谢谢!
zhdd0815 发表于 2011-2-24 10:04

你的节点集信息可以用命令regionName=step.historyRegions.keys()查看,然后
region = step.historyRegions[regionName]
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文件的问题”的呢?
贴出来大家一起学习一下呀!谢谢!
回复 不支持

使用道具 举报

发表于 2011-7-6 22:55:49 | 显示全部楼层 来自 云南昭通
请问版主,matlab 怎么调用abaqus 的方法分享一下吗,我知道是用system命令,但是具体是怎么样的呢,谢谢
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-24 05:20 , Processed in 0.063248 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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