python仿真报告自动化——excite TD齿轮角加速度级计算

python仿真报告自动化------excite TD齿轮角加速度级计算

  • [1 、问题-燃油泵相位优化](#1 、问题-燃油泵相位优化)
  • [2、难点-excite TD结果文件的提取](#2、难点-excite TD结果文件的提取)
  • 3、代码

1 、问题-燃油泵相位优化

用excite TD对齿轮系进行仿真,模拟不同燃油泵相位对齿轮传动振动的影响,用齿轮角加速度级作为评价指标,需要计算大量的数据,用IMPRESS Chart手动处理,太麻烦。

2、难点-excite TD结果文件的提取

excite TD结果文件.GID在用python读取时,有大量的空格,需合并连续空格,再用空格分割提取齿轮角角速度FFT的数据。
用正则化表达式处理:

line=re.sub(r'\s+',' ',line)

3、代码

计算各齿轮的角加速度级,绘图,并将数据写入excel中。

python 复制代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import re

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

file_excel_fullname=r'E:\NVH_sim_\ppt\ai_gear.xlsx'
cirv_name=['G-Crankshaft','G-SteppedidleBig','G-SteppedidleSmall','G-Camidle2','G-Camidle1','G-Intake','G-Exhaust',\
           'G-FIP','G-AirPumpidle','G-AirPump','G-OilPumpidle','G-OilPump']
file_name=['SHGE_164_F.GID','SHGE_191_F.GID','SHGE_201_F.GID','SHGE_212_F.GID','SHGE_215_F.GID','SHGE_219_F.GID','SHGE_218_F.GID',\
           'SHGE_193_F.GID','SHGE_169_F.GID','SHGE_171_F.GID','SHGE_180_F.GID','SHGE_183_F.GID']
NUM=12
fi=np.zeros((226,NUM))
ai=np.zeros((226,NUM))
a_db=np.zeros(NUM)
for j in range(NUM):
    file_path = r'E:\NVH_sim_\excite_td\TD-1600rpm\results'+'\\'+file_name[j]
    with open(file_path) as f:
        content=f.read()
        #拆分内容
        lines=content.split('\n')
        for i,line in enumerate(lines[149:375]):
            #利用正则表达式将连续的空格合并为一个空格
            line=re.sub(r'\s+',' ',line)
            item=line.split(' ')
            fi[i,j]=float(item[1])
            ai[i,j]=float(item[32])
        a_db[j]=10*np.log10(np.sum(ai[:,j]*ai[:,j]))
for j in range(NUM):
    plt.plot(fi[:,j],10*np.log10(ai[:,j]*ai[:,j]),label='$%s:%5.2f$'%(cirv_name[j],a_db[j]))
plt.legend()
plt.xlabel('fi/Hz')
plt.ylabel('ai/Db')
plt.show()
print(a_db)

# c创建一个DataFrame数据类型,并写入表头
dataFrame = pd.DataFrame(columns=("fi", 'G-Crankshaft','G-SteppedidleBig','G-SteppedidleSmall','G-Camidle2','G-Camidle1','G-Intake','G-Exhaust',\
                                  'G-FIP','G-AirPumpidle','G-AirPump','G-OilPumpidle','G-OilPump'))
#添加两行数据
for i in range(226):
    dataFrame.loc[i+1] = [fi[i,0], ai[i,0], ai[i,1],ai[i,2], ai[i,3],ai[i,4], ai[i,5],ai[i,6], \
                          ai[i,7],ai[i,8],ai[i,9], ai[i,10],ai[i,11]]
dataFrame.loc[i+2]=['overall',a_db[0], a_db[1],a_db[2], a_db[3], a_db[4],a_db[5], a_db[6],\
                    a_db[7], a_db[8],a_db[9], a_db[10], a_db[11]]
# 写入excel文件
#dataFrame.values[:,0]=fi[:,0]
dataFrame.to_excel(file_excel_fullname)
复制代码
相关推荐
晨曦中的暮雨1 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪2 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风2 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
在世修行4 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_962885724 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI4 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
Wang's Blog4 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
信誓旦旦的程序猿5 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫5 小时前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
下一站春风里5 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)
开发语言·c++·算法