設(shè)計(jì)仿真 | Python解析Adams res結(jié)果文件
Adams
背景簡介
對Adams軟件進(jìn)行二次開發(fā),簡化建模流程、仿真流程等進(jìn)而減少工作量。一般的分析流程,可分為前處理、求解和后處理三個(gè)方面,均可開展二次開發(fā)工作。
對后處理的二次開發(fā),第一步便是提取原始的仿真數(shù)據(jù)。Adams的仿真結(jié)果文件存放在后綴為.res的文件中。本文對res文件進(jìn)行介紹,并利用Python實(shí)現(xiàn)原始的數(shù)據(jù)提取,更多的數(shù)據(jù)對比、分析及展示工作還需用戶進(jìn)一步實(shí)現(xiàn)。
不少用戶選擇用Matlab或者其他語言實(shí)現(xiàn)后處理,道理相通,此文選用Python是因?yàn)槠淇缙脚_且開源。
Adams
res文件數(shù)據(jù)結(jié)構(gòu)
res文件可以用Notepad等編輯軟件打開,用戶可以查看其組成?;镜臄?shù)據(jù)結(jié)構(gòu)如下圖所示。
圖1 res數(shù)據(jù)結(jié)構(gòu)
從上圖可以看出Results包含兩大類:Bibiliography及Analysis,前者包含MSC公司信息、用戶名等無用信息,后者包含模型、單位、數(shù)據(jù)等有用信息。其中stepmap中包含結(jié)果名稱、Data中包含結(jié)果數(shù)據(jù)。
Adams
Python實(shí)現(xiàn)數(shù)據(jù)提取
res實(shí)質(zhì)是xml格式,問題轉(zhuǎn)換為用Python解析xml文件。
xml(extensible markup language)可擴(kuò)展標(biāo)記語言。基本語法:1、xml后綴名為.xml;2、第一行必須定義為文檔聲明;3、xml文檔中有且僅有一個(gè)根標(biāo)簽;4、屬性值必須使用雙引號或單引號;5、標(biāo)簽必須是開始和結(jié)束;6、xml區(qū)分大小寫。
Python有三種方法解析xml文檔:
1)DOM:DOM譯為文檔對象模型,是W3C組織推薦的標(biāo)準(zhǔn)編程接口,它將xml數(shù)據(jù)在內(nèi)存中解析成一個(gè)樹,通過操作樹解析xml。
2)SAX:SAX是一個(gè)用于處理xml事件驅(qū)動的模型,它逐行掃描文檔,一邊掃描一邊解析,對于大型文檔的解析有巨大優(yōu)勢,盡管不是W3C標(biāo)準(zhǔn),卻得到了廣泛的認(rèn)可。
3)ElementTree:相對于DOM有更好的性能,與SAX性能差不多,API使用也很方便。綜上考慮采用ElementTree方式。
根據(jù)數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)流程如下:
圖2 提取數(shù)據(jù)流程
Adams
附件說明
用戶需要在pre_defined_name.xlsx表格中定義結(jié)果名稱,運(yùn)行python文件后,會生成data_output.xlsx數(shù)據(jù)文件。
提交
CIMES 2024??怂箍?構(gòu)建智能制造生態(tài)系統(tǒng) 賦能行業(yè)數(shù)字化轉(zhuǎn)型
質(zhì)量管理丨數(shù)字化文檔管理夯實(shí)質(zhì)量管理體系基礎(chǔ)
生產(chǎn)制造 | 模具設(shè)計(jì)與制造-VISI 教您掌握簡單正確展開沖壓件
設(shè)計(jì)仿真 | 基于VTD的V2X仿真應(yīng)用
設(shè)計(jì)仿真 | ODYSSEE 加速電機(jī)仿真優(yōu)化