設計仿真 | Python解析Adams res結果文件
Adams背景簡介
對Adams軟件進行二次開發(fā)看峻,簡化建模流程房轿、仿真流程等進而減少工作量浓冒。一般的分析流程栽渴,可分為前處理、求解和后處理三個方面稳懒,均可開展二次開發(fā)工作闲擦。
對后處理的二次開發(fā),第一步便是提取原始的仿真數(shù)據(jù)场梆。Adams的仿真結果文件存放在后綴為.res的文件中墅冷。本文對res文件進行介紹,并利用Python實現(xiàn)原始的數(shù)據(jù)提取辙谜,更多的數(shù)據(jù)對比俺榆、分析及展示工作還需用戶進一步實現(xiàn)。
不少用戶選擇用Matlab或者其他語言實現(xiàn)后處理装哆,道理相通罐脊,此文選用Python是因為其跨平臺且開源。
Adamsres文件數(shù)據(jù)結構
res文件可以用Notepad等編輯軟件打開昆秩,用戶可以查看其組成萎雁。基本的數(shù)據(jù)結構如下圖所示聂帜。
圖1 res數(shù)據(jù)結構
從上圖可以看出Results包含兩大類:Bibiliography及Analysis您眉,前者包含MSC公司信息、用戶名等無用信息涡趟,后者包含模型林皇、單位、數(shù)據(jù)等有用信息呼泪。其中stepmap中包含結果名稱妓付、Data中包含結果數(shù)據(jù)。
AdamsPython實現(xiàn)數(shù)據(jù)提取
res實質(zhì)是xml格式宗窗,問題轉(zhuǎn)換為用Python解析xml文件滚胎。
xml(extensible markup language)可擴展標記語言÷瘢基本語法:1田搏、xml后綴名為.xml;2、第一行必須定義為文檔聲明着憨;3墩衙、xml文檔中有且僅有一個根標簽;4享扔、屬性值必須使用雙引號或單引號底桂;5、標簽必須是開始和結束惧眠;6、xml區(qū)分大小寫于个。
Python有三種方法解析xml文檔:
1)DOM:DOM譯為文檔對象模型氛魁,是W3C組織推薦的標準編程接口,它將xml數(shù)據(jù)在內(nèi)存中解析成一個樹厅篓,通過操作樹解析xml秀存。
2)SAX:SAX是一個用于處理xml事件驅(qū)動的模型,它逐行掃描文檔羽氮,一邊掃描一邊解析或链,對于大型文檔的解析有巨大優(yōu)勢,盡管不是W3C標準舀美,卻得到了廣泛的認可嚎衡。
3)ElementTree:相對于DOM有更好的性能,與SAX性能差不多玉桅,API使用也很方便漓荞。綜上考慮采用ElementTree方式。
根據(jù)數(shù)據(jù)結構掷锻,設計流程如下:
圖2 提取數(shù)據(jù)流程
Adams附件說明
用戶需要在pre_defined_name.xlsx表格中定義結果名稱拟卢,運行python文件后,會生成data_output.xlsx數(shù)據(jù)文件蔑来。
(航噬克斯康工業(yè)軟件)
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng),轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡分享澈虱,并不代表本站贊同其觀點和對其真實性負責帖豫,也不構成任何其他建議。本站部分作品是由網(wǎng)友自主投稿和發(fā)布碘展、編輯整理上傳竿丙,對此類作品本站僅提供交流平臺,不為其版權負責言秸。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻软能、圖片、文字如涉及作品版權問題,請第一時間告知查排,我們將根據(jù)您提供的證明材料確認版權并按國家標準支付稿酬或立即刪除內(nèi)容凳枝,以保證您的權益!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn跋核。
- 暫無反饋