利用matlab提交inp和python
昨天我的师弟要做一个优化的问题,问我怎么样利用abaqus进行前处理和后处理。我想了想,可以将这个问题分解为两个部分。第一个部分是使用matlab进行inp提交。
第二个部分就是使用matlab调用脚本文件。
附件中就是这两个程序。
m文件
clear
clc
WorkPath='D:\abaqus6.10-1\Commands';
aba='abq6101 job=py inp=py int';
PD=strcat('abq6101 job=py inp=py int');
Pg=strcat('abq6101 job=py inp=py int');
=dos(PD);
result;
pythonname = 'D:/abaqus6.10-1/Commands/t.py';
abqstr = strcat('abq6101 python t.py');
dos(abqstr);
py文件
from odbAccess import*
from abaqusConstants import*
odb= openOdb(path='D:/abaqus6.10-1/Commands/py.odb')
myAssembly = odb.rootAssembly
f=open('D:/abaqus6.10-1/Commands/gemen.dat','w')
Frame=odb.steps['Step-1'].frames[-1]
ab=Frame.fieldOutputs['U'].values.data
f.write(str(ab))
f.close()
odb.close()
这个程序可以帮助一些做优化的同志们提供一些参考。
有不足处,大家提出,我们共同研究 {:2_37:}顶一个,不要沉了…… 高人啊!学习啦:lol 向楼主学习了 顶一个。。
前几天我做个参数化的东西也是用matlab改inp模板生成一系列inp文件,但是没楼主这么强大哈 牛人呀,顶一个,敦诚总版主太厉害了,学习了 支持斑竹的贡献~ 正在寻找abaqus优化实例,谢谢高人贡献!
:loveliness: 这个程序是不是要实现不同的参数能通过一次提交实现?比如要试验不同的泊松比,从linspace(0.1:01:04),还是别的意思,没有看得太明白, re:ls
这个要自己做的,目标函数我都没有没法定义什么反演分析或者优化算法。
我只是指出优化算法可能要用到的调用abaqus的过程。
你说的问题其实很好解决,生成一个已有的inp文件,用字符串命令查找需要反演的参数,利用循环语句将我的程序套入。
然后利用matalab调用py文件读取你想要的位置的(参数铭感位置)变量,然后将这一变量带入你的目标函数进行求解。
接着可以使用遗传算法或者粒子群什么进行反演。
不知道你明白我的意思不? 楼上真的是强 不愧为总版主啊,我做梦都没想到还可以这样来做。 原来MATLAB也可以啊! matlab的功能是很强大的,但如何应用还是一知半解 向楼主学习! What a good example. 很不错~ 受教了 正做优化方面的东西 谢谢斑竹~ 楼主太强大了,我用ABA研究二次开发,都很长时间了,至今依旧是一头雾水,总是不得要领!楼主有空的话,希望可以分享一些你的学习经验给我这样的菜鸟,不胜感激了!!! 如果用Matlab进行前后处理而用ABAQUS进行分析,该怎么做呢? 要是版主能抽空对两个文件每一句给予一些解释说明将对大家帮助更大