用Python如何处理整车路躁结果

说完了仿真,现在大致说一下实验。一般整车路躁实验采集的是时域的麦克声压数据,通过傅里叶变化变成频域,然后再处理成dB(A),所以最后得到的曲线是一条横坐标为频率,纵坐标为dB(A)的曲线。同时,会求一个给定频域段内的RMS(root meam square),就是均方根值,也就是这个频域段内的有效值,这个值就是我们常说的噪声大小。

路躁仿真结果的处理就是要把仿真曲线处理成同实验规格一致,方便理解也方便同实验对标。这就要求两个:后处理的曲线纵坐标应该是A记权的声压级以及在给定频率段的RMS值。
首先第一个,就是要把输出的声压的功率谱密度最终转化成dB(A)。这个还是比较简单的,声压的功率谱密度乘以频率间隔即得到声压的平方(Pa^2),然后开方得到声压大小(Pa),到这个地步应该就比较容易了,采用基准声压2E-5Pa取20倍的log,得到无量纲的声压级——dB,再转成A记权的声压级——dB(A)。
第二个,如何求解给定频域段内的RMS值。这个稍微有点复杂,首先看看LMS test.lab关于RMS的算法的解释:
输出的是线性谱,即:

如果是功率谱,即:

其实本质是一样的,所谓线性谱,就是单位为Pa(或者dB或者dB(A)),所谓功率谱,就是Pa^2,但是至于你处理的是线性谱还是功率谱,其实在"Channel Processing"设置即可,AutoPowers Linear代表线性谱,AutoPowers PSD代表功率谱。
不管是线性谱还是功率谱,其求解的RMS本质来说都是一样的,就是求解曲线与横坐标围城的面积,也就是最终能量功率的概念,抓住这个本质,就很好理解这两者之间的关系,求解RMS(均方根值或者说有效值)也很简单了。那么你会问了,CAE仿真得到的是线性谱还是功率谱呢?首先来看输出的DISPLACEMENT的解释:

和随机响应输出的有关的定义红色圈圈已经标记出来,默认的输出格式为PSDF,即为功率谱密度,当然,也可以输出ATOC自相关函数,CRMS即累加的均方根值,RALL即把前三者全部输出。这样搞清楚了吧,有且只能输出功率谱密度。其实,早最终的结果*.pch文件中可以看到,输出的是功率谱密度:

算法大致搞清楚了,不嫌麻烦可以使用商业软件HyperGraph处理了,但是步骤繁琐,还得自己写脚本,计算两小时,你要花30分钟来处理这个结果,显然不太理想,这个时候Python的数据处理就能排上用场了,简直就是简单又暴力。
这是处理出来的数据,实际实验中声压常用dB(A),振动响应常用加速度幅值,所以处理出来的结果如下(随便找了Altair模型做的,请忽视实际结果大小):


最新资讯
-
温度测量,如此简单!imc ARGUSfit T-10 新
2025-03-06 08:29
-
考虑制动盘温度场和应力场的摩擦副匹配性分
2025-03-06 08:27
-
都是盲区监测法规,GB/T 39265与R151有何差
2025-03-06 08:21
-
标准解读 | 汽车芯片功能安全GB/T 34590《
2025-03-05 20:48
-
提高电动汽车生产率的传感器解决方案
2025-03-05 16:13