用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模型做的,请忽视实际结果大小):
最新资讯
-
NVIDIA 发布 2025 财年第三季度财务报告
2024-11-21 13:30
-
Mack卡车为买家推出创新的虚拟现场探索体验
2024-11-21 13:29
-
氢燃料电池卡车从1到100要多长时间?戴姆勒
2024-11-21 13:28
-
聚焦消费者用车极限环境,2024中国汽研汽车
2024-11-21 13:21
-
新能源汽车高寒环境可靠性行驶试验研究
2024-11-21 13:19