风噪声数值模拟(自己录制---2大节、4小节) 主要两种风噪声计算步骤 1,频域FEM法车玻璃...

张开发
2026/4/28 6:14:58 15 分钟阅读

分享文章

风噪声数值模拟(自己录制---2大节、4小节) 主要两种风噪声计算步骤 1,频域FEM法车玻璃...
风噪声数值模拟自己录制---2大节、4小节 主要两种风噪声计算步骤 1频域FEM法车玻璃风噪声计算 2时域BEM法叶片风噪声计算 可以掌握基本的仿真步骤可以绘制声压级云图、噪声频谱图等。风噪声数值模拟在工程领域应用广泛从汽车玻璃到风力发电机叶片都需要精准预测。最近折腾了两个典型场景的仿真方案今天直接上干货重点聊聊频域FEM法和时域BEM法的实现套路。先说车窗玻璃的风噪频域仿真。这活儿核心在于把振动响应转换成声场分布用Python的SciPy库就能搞个简易版流程。先得生成车窗网格这里用三角形单元举个栗子import meshio points [(0,0), (1,0), (1,0.5), (0,0.5)] cells [(triangle, [[0,1,2], [0,2,3]])] mesh meshio.Mesh(points, cells) mesh.write(windshield.vtk)这段代码生成的是个简单梯形网格实际项目得用专业前处理软件。但原理相通——把几何离散成有限单元。材料参数设置要注意各向异性玻璃的杨氏模量通常在70GPa左右泊松比取0.23比较合理。风噪声数值模拟自己录制---2大节、4小节 主要两种风噪声计算步骤 1频域FEM法车玻璃风噪声计算 2时域BEM法叶片风噪声计算 可以掌握基本的仿真步骤可以绘制声压级云图、噪声频谱图等。求解环节用频域波动方程重点处理流体-结构耦合边界。这里有个坑声压计算必须考虑空气的阻抗匹配。用NumPy处理频域数据时记得做窗函数处理避免频谱泄漏from scipy.fft import rfft pressure_data np.loadtxt(surface_pressure.txt) hanning_window np.hanning(len(pressure_data)) fft_result rfft(pressure_data * hanning_window)算完了别急着关程序先看看云图长啥样。用PyVista做后处理声压级云图直接上代码import pyvista as pv mesh pv.read(acoustic_field.vtk) mesh.plot(scalarsSPL, cmapjet, show_edgesFalse)再来说说叶片风噪的时域仿真这得请出边界元法BEM。和FEM不同BEM只需要在表面布点适合处理无限域问题。时间推进算法选显式差分稳定性条件得满足CFL数小于1。这里用Numba加速时间迭代循环速度能提升十几倍numba.jit(nopythonTrue) def time_marching(pressure_old, pressure_new, dt): for i in range(1, len(pressure_old)-1): pressure_new[i] 2*pressure_old[i] - pressure_old[i] (c*dt/dx)**2 * (pressure_old[i1] - 2*pressure_old[i] pressure_old[i-1]) return pressure_new噪声频谱分析建议用Welch法比直接FFT靠谱。Scipy的signal模块自带实现from scipy import signal freqs, psd signal.welch(pressure_signal, fs5000, nperseg1024) plt.semilogy(freqs, psd) plt.xlabel(Frequency (Hz)) plt.ylabel(PSD (dB/Hz))几个实战经验网格质量直接影响结果震荡遇到发散先查单元长宽比时域仿真总能量是否守恒是重要检验指标做频谱对比时别忘了修正采样频率。最后提醒别在办公室跑全尺寸模型记得用简化模型调参——除非你想让工作站风扇比风噪还响。

更多文章