图片缩略图

Abaqus2Matlab

版本1.03 (955 KB) 乔治Papazafeiropoulos
程序的Abaqus提取分析结果到Matlab
4.9
19日评级

89下载

更新2017年8月16日

查看版本历史

查看许可协议

Abaqus2Matlab是一个将ABAQUS分析结果提取到MATLAB的程序。它是一个旨在提供ABAQUS和MATLAB之间链接的应用程序,它将使ABAQUS用户能够在MATLAB中执行ABAQUS结果的后处理。它可以用于从ABAQUS分析中检索结果,可以很容易地从ABAQUS转移到MATLAB进行进一步处理。它是用MATLAB编程语言编写的,可作为源代码在bsd风格的许可下分发(参见license .txt)。
Abaqus2Matlab的一个新版本刚刚发布,我希望你对它感兴趣。这个新版本在开发连接Abaqus和Matlab的知名软件方面迈出了非常重要的一步。Abaqus2Matlab现在作为一个易于安装的Matlab应用程序提供,其中包括以下新奇之处:

1)不仅可以对.fil文件进行后处理,还可以对.odb和.mtx文件进行后处理
2)新的图形用户界面(GUI),使用户能够轻松地请求输出变量,并自动创建具有所有所需信息的Matlab脚本。

一切都被广泛记录,包括视频教程。欲了解更多信息,请访问www.abaqus2matlab.com
我们希望你喜欢它,我们期待听到你的反馈。

如果使用Abaqus2Matlab进行研究或工业用途,请引用:
G.帕帕扎菲罗普洛斯,M. Muñiz-Calvente, E. Martínez-Pañeda。Abaqus2Matlab:适合有限元后处理的工具。
工程软件进展“,”第105卷。2017年3月。9 - 16页。(2017)
DOI: 10.1016 / j.advengsoft.2017.01.006

欲了解更多信息,请参阅:
http://www.abaqus2matlab.com/

引用作为

George Papazafeiropoulos(2021)。Abaqus2Matlab(//www.tatmou.com/matlabcentral/fileexchange/54919-abaqus2matlab), MATLAB中央文件交换。检索

意见及评分(54

乔治Papazafeiropoulos

@征涛 屈
感谢您对应用程序的评级!
为了提取SDV变量,您使用记录键5。
此外,通过Matlab执行带有子例程的Abaqus分析需要特殊处理,并且不能在“!有限元分析工作= < jobName > "
您可以在Abaqus2Matlab软件的官方网站(www.abaqus2matlab.com),或透过电邮(gpapazafeiropoulos@yahoo.gr)与我联络

征涛 屈

你好,谢谢你的软件。
我刚刚接触到这个软件,目前遇到了一些困难。希望能得到您的建议,非常感谢!
我使用ABAQUS/显式与用户子例程VUMAT。一旦我创建了inp文件,我将它加载到工具箱中以修改它并导出它。
我想提取所有元素的状态变量SDV,但在工具箱的选项中找不到,所以我先设置输出应力S,然后在inp文件中手动将S更改为SDV。
接下来,使用推荐来分析和计算:ABAQUS JOB =1 USER =VUMAT Interactive
但它总是告诉我有个问题:
Abaqus错误:分析输入文件处理器退出一个错误。
Abaqus/Analysis退出错误
你能告诉我如何改变这种情况吗?再次感谢。
最美好的祝福!

乔治Papazafeiropoulos

@ zahra zaiem:
首先,在运行Abaqus2Matlab脚本之前,请确保在Abaqus/CAE或Abaqus/Viewer中没有打开odb文件。如果打开,它可能会锁定rpy fil并阻止它被读取,从而给出错误。
除此之外,请检查exploreFieldOdb的输入变量。m函数正确,Matlab当前路径与odb文件所在文件夹一致。

zahra zaiem

你好,谢谢你的软件。
我在用Matlab运行时遇到了这样的错误:
= exploreFieldOdb (odb_name);
rpyRead错误(第82行)
exploreFieldOdb错误(第153行)

当我用Matlab运行。inp文件时,都是abaqus。Rpy和job_name。odb" created in the A2M_GUI_Output File. But I don know why it has a problem in finding .odb file?

如果你能给我带路,我将不胜感激。

乔治Papazafeiropoulos

@ kehui cheng
谢谢您的考虑。
你能告诉我关于这个错误的更多细节吗?
理想情况下,你可以发邮件到gpapazafeiropoulos@yahoo.gr。

kehui程

亲爱的作者:
谢谢你的软件,你有过这个问题吗?问题是“在运行mex文件时检测到此错误。如果mexo文件
不是一个正式的MathWorks函数,请检查其源代码的错误。有关信息,请参考外部接口指南
调试墨西哥文件。,你有更好的解决方案吗

乔治Papazafeiropoulos

亲爱的数学王子:
您可以在以下链接中找到有关如何安装Abaqus2Matlab的有用信息:
https://db3b4dec-9d83-440c-ac7b-336a5733f466.filesusr.com/ugd/3d609a_5fcdf352b56a431fb2f73d11099a3ef4.pdf
Abaqus2Matlab的大量文档可以在这里找到:
https://db3b4dec-9d83-440c-ac7b-336a5733f466.filesusr.com/ugd/3d609a_30a84ddfa0f148869fdc90656088927a.pdf
此外,你可以下载一个模板Matlab脚本,它展示了如何在这里以编程方式使用Abaqus2Matlab:
https://www.dropbox.com/s/80uhghg1wwrzvyo/Basic_Template.m?dl=1
如果以上没有帮助,请通过网站的“CONTACT”标签向Abaqus2Matlab工作团队发送消息(http://www.abaqus2matlab.com/
非常感谢您的兴趣!
致以最亲切的问候。

数学王子

亲爱的作者:
谢谢你的软件,但是我看到功能后,我仍然不能启动这个软件,你能给我一些安装的详细过程吗?再次感谢。

亚当Oskarsson

更新:
我的理解是:
System(['abaqus job=' Inp_file])应该启动一个作业以获取一个.fil文件。这对吗?然后我只需要找出如何运行这一行与大队:)。

亚当Oskarsson

现在,当python脚本“exploreFieldOdb.py”由程序运行时,我得到一个解析错误。你知道为什么会发生这种事吗?

@Adam Oskarsson
这是可能的。我从未使用过这个版本的Abaqus。
在任何情况下,您都可以手动编辑由Abaqus2Matlab生成的后期处理脚本,以便它与您的Abaqus版本正常运行。实际上,Abaqus2Matlab只需要一个合适的结果文件(*.fil)或输出数据库文件(*.odb)就可以将Abaqus结果加载到Matlab中,反之亦然。

亚当Oskarsson

嘿!

我使用一个版本的abaqus叫旅。这就是问题所在吗?因为我找不到simulia的文件了。

亲爱的亚当·奥斯卡森:
感谢您对Abaqus2Matlab应用程序的兴趣。最可能的原因是安装程序更改了windows环境变量。
在命令提示符中输入“echo %path%”显示当前路径。通往simulia的路可能已经没有了。
要访问环境变量,右键单击“这台PC”图标,然后选择属性。选择“高级系统设置”页签,然后单击“环境变量”。
在“系统变量”面板,选择“路径”,然后点击“编辑”。
在修改之前,将旧文件复制并保存在记事本编辑器中。在最后添加“C:\Simulia\Commands”,单击“确定”。
现在您可以看到新的路径,“abaqus”命令应该可以工作。
如果上述解决方案不能解决问题,请检查Abaqus安装目录中的正确路径。命令目录的位置可能如下所示:
c: \有限元分析\命令
c: \ simulia \有限元分析\命令
-安装过程中定义的任何客户路径

亚当Oskarsson

我在运行从abaqus2matlab生成的matlab脚本时遇到了一个问题。我得到这样的消息“'abaqus'不被识别为内部或外部命令,
可操作的程序或批处理文件。,在此错误消息“输出参数”out”(可能其他)没有分配在调用“exploreFieldOdb”.”。

我猜scipt不能找到odb.name。你有什么解决办法吗?

莱昂内尔·朱利安AF

乔治Papazafeiropoulos

非常感谢你的夸奖,Paolo!很高兴Abaqus2Matlab已被证明对您有帮助。我希望你的研究一切顺利,如果你有任何问题,请随时与我联系。
最好的

保罗Borlenghi

如果你正在使用Abaqus进行优化,这是一个非常有用的工具箱!George非常友好,很有帮助地解释了如何使用Abaqus2Matlab来获得我想要的东西。再次感谢大家!

@jahanzaib ahmad:这是可能的和简单的,但这取决于你的模型的格式。在Abaqus中导入模型有两种方法:(a)通过开发一些Matlab代码,它会自动创建一个与您的模型对应的Abaqus输入文件,(b)通过开发一些Matlab代码,它会自动创建一个与您的模型对应的Python脚本,然后这个Python脚本可以在Abaqus/CAE中执行,以便在Abaqus中导入您的模型。我已经编写了一些Matlab例程,用于在Abaqus/CAE中自动开发和导入一些简单模型(例如矩形外壳或固体),以及自动参数化给定的Abaqus输入文件,以便通过Matlab函数自动创建它。所有这些都将被整合到Abaqus2Matlab的未来版本中。如果你想要一些关于将3d模型导出到Abaqus的帮助,你可以通过gpapazafeiropoulos@yahoo.gr联系我了解更多详细信息。
谢谢。

我正在寻找相反的…MATLAB到abaqus。我想把我的3d模型导出到abaqus

乔治Papazafeiropoulos

@harnoorsaini:是的,Abaqus2Matlab应用程序可以与所有用户子程序一起工作。实际上,Abaqus2Matlab并不干扰子例程,因为这些子例程只是Abaqus执行的一部分。Abaqus2Matlab在成功完成Abaqus分析后运行。如有需要,我随时听候您进一步澄清。我们也欢迎任何合作机会。

harnoorsaini

嗨,我刚刚开始使用你的工具。谢谢你的帮助。它也适用于用户材料吗?PS.我已经有几个MATLAB-ABAQUS脚本/工作流设置,可能会很有趣,但让我先玩一下你的包。

亲爱的ZGMLS,
非常感谢您对Abaqus2Matlab的好评。你想要的非常非常简单!您可以通过电子邮件gpapazafeiropoulos@yahoo.gr与我联系,了解更多细节。

ZGMLS

亲爱的乔治
感谢您的出色工作,这将有助于我在ABAQUS模拟的博士工作。这是一份很棒的工作。
我想在inp中自动修改相关参数,实现固有频率的提取。但是,我没有成功地实现这个功能。你能帮帮我吗?

乔治Papazafeiropoulos

谢谢菜鸟!该字符串描述一个整数。每个整数都以字符I开头,后面是一个表示整数中十进制位数的两位整数,然后是整数本身(写为十进制数字)。字符串'I 41901'表示整数1901。如有疑问,请到Abaqus2Matlab官方网站咨询:http://www.abaqus2matlab.com/

cainiao

亲爱的乔治
感谢您的出色工作,这将有助于我在ABAQUS模拟的博士工作。你能解释一下你们代号Rec1901.m中的“I 41901”是什么意思吗?

cainiao

乔治Papazafeiropoulos

@Jim吉姆:

请检查以下链接,看看它是否修复了您的错误:

http://abaqus2matlab.wixsite.com/abaqus2matlab/forum/abaqus2matlab-users-forum/error-in-running-czm-example

吉姆吉姆

你好。
我在Matlab2018a中运行脚本后遇到了问题,错误如下:
检测到访问违规

Bui莳

莱昂Phung

你好。
我在运行脚本后遇到了问题,错误如下:

调用过程中没有赋值的输出参数“out”(可能还有其他参数)
“exploreFieldOdb”。

Script_Job1_A2M中的错误(第59行)
= exploreFieldOdb (odb_name);

如果有人能帮我这个忙,我将非常感激。

斯蒂芬·施万

谢谢这个非常有用的包。有没有什么原因,为什么没有一个函数读取变形梯度,记录键90?

乔治Papazafeiropoulos

Abaqus2Matlab第二版发布!访问http://www.abaqus2matlab.com/给我们你的反馈!

乔治Papazafeiropoulos

非常感谢金燕!

金严

对我的优化研究工作很有帮助。我曾经尝试自己编写这样的代码,我知道这并不容易。非常感谢!我一定会引用你的论文!

迪亚布Abueidda

非常感谢。根据你的回答,它起作用了。

乔治Papazafeiropoulos

感谢您对Abaqus2Matlab的兴趣。
您描述的问题出现在以前版本的Abaqus2Matlab中。更具体地说,在最新的Matlab版本中,textscan函数中的'CollectOutput'参数的值为0 (false)或1 (true),而在早期的Matlab版本中,相同的参数的值为'0' (false)或'1' (true)。为了确保Abaqus2Matlab与旧语法和新语法的兼容性,Fil2str. exeM函数进行了修改,替换为:

C = textscan(文件标识,' % s ', ' CollectOutput ', ' 1 ',“分隔符”,“‘空白’,”,“endofline”,“);

:

试一试
C = textscan(文件标识,' % s ', ' CollectOutput ', ' 1 ',“分隔符”,“‘空白’,”,“endofline”,“);

C = textscan(文件标识,“% s”、“CollectOutput”,1,“分隔符”,“‘空白’,”,“endofline”,“);
结束

也就是说,如果try语句给出一个错误(这发生在较新的Matlab版本的用户),那么执行catch语句给出正确的结果。这里上传的Abaqus2Matlab版本没有这个问题,并且已经完全更新。

迪亚布Abueidda

嘿,团队,
例如,当我输入Verify8时,Abaqus运行并创建输入、odb和其他文件。然而,我得到以下错误:
使用textscan出错
CollectOutput必须是数字标量。

Fil2str中的错误(第41行)
C = textscan (fileID, '%s', 'CollectOutput', '1', 'delimiter',…

Verify8中的错误(第27行)
Rec = Fil2str('8.fil');
请通知

乔治Papazafeiropoulos

亲爱的Ngoc Thach Le:
当然,您可以使用Abaqus2Matlab在Matlab中提取Abaqus分析的两个步骤的结果。在Abaqus2Matlab的网站上,您可以找到一些教程和示例,也可以向Abaqus2Matlab工作团队发送电子邮件(从“CONTACT”选项卡)。
致以最亲切的问候。

玉太乐

亲爱的乔治,
非常感谢你们的精彩作品。这确实会节省我们很多时间!
我有一个问题,我可以使用代码分别在两个加载步骤后提取相同的参数(即位移)吗?我想捕捉极端负载条件后的变化。
的问候。

乔治Papazafeiropoulos

@Brani Dzepina:非常感谢你的话。更多关于Abaqus2Matlab工具箱的详细信息,可以查看官方网站:www.abaqus2matlab.com
@Ngoc Thach Le:非常感谢你的评分。看到www.abaqus2matlab.com获取更多信息。

玉太乐

Brani Dzepina

这将极大地帮助我在多尺度模拟方面的博士工作!乔治,你是个传奇!谢谢你!

乔治Papazafeiropoulos

亲爱的vahidar,
非常感谢您的兴趣和评分。
您可以通过。联系Abaqus2Matlab工作团队www.abaqus2matlab.com,通过在CONTACT选项卡下向工作团队发送您的查询,或在FORUM选项卡下发帖。通常情况下,你会在几个小时内收到答复。
的问候。

瓦希德Aryai

非常感谢Abaqus2Matlab。
您能否让我知道是否有可能使用此代码从多个Abaqus输入文件中获取结果?实际上,我需要在Matlab中对数百个Abaqus分析的结果进行后处理。

LuisGarcia

乔治Papazafeiropoulos

亲爱的Franzoni先生:

非常感谢您对Abaqus2Matlab的好评。我希望它对你的研究有用。
如果您有任何问题,请随时联系Abaqus2Matlab工作团队www.abaqus2matlab.com

最好的问候,

乔治

菲利普FRANZONI

我刚开始用你的插件做博士研究。首先,我要祝贺你出色的工作,并把它放在网上。
作为建议,我创建了Rec1980的“b”版本。M文件也接受屈曲模态数据。
事实上,我只是添加了一个接受“频率”或“扣”的标志,对于“扣”标志,只计算“特征值数的%位数”,“%特征值数”和“%特征值”。
干杯!
菲利普

费德里科•切

米格尔Calvene

这是一个很棒的代码!使用简单,功能强大!

吉姆

非常感谢你,乔治。你的代码节省了我大量的时间!

罗德里戈•穆尼奥斯

乔治Papazafeiropoulos

亲爱的安德烈,

首先,非常感谢您的反馈和评分。我想要注意的是,结果文件(fil)中的每个记录都以星号开始,它在记录键的第一位数字之前最多7个位置。每条记录的第一个数字表示记录中包含的输出数量(最多80个),每条记录的第二个数字是记录键,即记录中写入的结果类型。更多细节可以在Abaqus文档中找到。
我不知道你是否已经设法处理二进制格式的结果文件,但我认为这样的文件可以用类似的逻辑来处理。你能详细解释一下你所说的“一次解析整个输出文件”吗?你这么说是什么意思?

非常感谢!

最好的问候,

乔治

安德烈Melnik

更新我之前的评论。Abaqus的二进制.fil似乎表示为二进制帧序列:[frameSize1, frameContent1, frameSize1], [frameSize2, frameContent2, frameSize2],等等。在我的例子中,frameSizei是存储值4096的32位整数,而frameContenti是4096字节长的二进制数据。在去掉寄生片段frameSizei之后,文件变成了一个记录序列,如Abaqus Analysis Guide第5.1.2章所述。很遗憾我在Abaqus文档中找不到这个简单的说明。抱歉我跑题了。

安德烈Melnik

亲爱的乔治,谢谢你这个非常有用的包裹。我有以下担忧。据我所知,你通过查找整数标识符来确定记录的位置,例如ind=strfind(Rec,'I 210I')。在本例中,您要求整数10后面跟着另一个整数。我认为这种情况可能不是记录键特有的,也可能在其他地方遇到。尽管您额外检查了80个字符的记录是否确实从(ind-8)以'*'开始,但我认为这种巧合仍然是可能的,您将得到一个错误。你怎么看?

另一个问题是,您是否考虑一次解析整个输出文件,而不是逐个提取记录?我尝试按照此路径解析二进制结果输出格式,但无法找到该格式的详尽说明。例如,“1921”记录的二进制格式前面有12个未知字节。最好的

MATLAB版本兼容性
使用R2011a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

OutputAnalysis /

OutputElements /

OutputNodes /

验证/

帮助/