首页 / 资讯中心 / 文章详情

Fluent流噪声计算全攻略:从FW-H声源面到声压级频谱

Fluent流噪声计算全攻略:从FW-H声源面到声压级频谱 ★ FEATURED ARTICLE
1. 流噪声计算这件事Fluent到底能扛多少我最早碰流噪声是因为一个风机项目甲方盯着噪声指标不放实验样机改了两轮每次开模都是一笔不小的钱。当时导师丢给我一句话先用Fluent算算看。说实话第一个月我是懵的——Fluent是个CFD软件算流场天经地义让它算噪声听起来总觉得隔了一层。后来把气动声学的东西摸了一遍才明白流噪声这件事本质上就是流场里的压力脉动怎么变成了远场听到的声音。只要你能把产生噪声的非定常流场算准声学部分是有成熟理论可以接力的。而Fluent真正厉害的地方在于它把这些理论做成了模块化的选择让你不用从Lighthill方程开始手推公式就能在工程精度要求下拿到可用的噪声数据。我自己的判断是Fluent能做的流噪声计算大致分四类第一类是远场噪声预测就是经典FW-H方法的路子。你先做一个非定常CFD计算在流场里放一个或者几个声源面穿透面Fluent会在求解过程中记录面上的压力脉动然后用FW-H方程做远场积分直接输出监测点位置的声压、声压级、频谱。这类最适合旋转机械风扇、风机、螺旋桨、圆柱绕流、空腔流动这类问题。第二类是宽带噪声模型这个不走瞬态计算而是基于雷诺平均N-S方程RANS的湍流统计量通过半经验公式估算声功率或者声压级省掉瞬态模拟的高昂成本。适合早期设计阶段做方案对比比如两个风道形状哪个噪声更低不需要精确的频谱只想要个量级Trend。第三类是近场声学直接模拟就是所谓的直接法或者CAA计算气动声学思路。流场和声场一起解要求网格足够细、数值格式足够低耗散算出来的是近场的压力脉动本身。这个成本极高工程上用得少但像那种需要研究空腔噪声自持振荡机理、或者近场声载荷的问题Fluent也不是不能算关键是你能不能接受那个网格量和计算时间。第四类是声源诊断与数据导出。Fluent算完流场你可以在壁面上提取压力脉动分布找到主要声源区域也可以把瞬态压力数据导出交给专业的声学软件比如Actran、Virtual.Lab做声振耦合或者传播计算。这其实是工程里很常见的一条路Fluent扮演声源求解器的角色。一句话总结Fluent的能力边界它能把流场里的非定常特征算得足够准再通过积分或半经验模型把声学量输出给你。但如果你想算声音在复杂结构里的反射、散射、透射或者做一个完整的声振耦合那Fluent不是终点它是上游。有个容易混的概念得先掰扯清楚Fluent算出来的噪声到底是声源还是声场大多数情况下你拿到手的是声源强度或者自由场远场解。比如FW-H方法给出的远场声压是基于自由空间格林函数的解析解它不考虑实际安装环境墙壁反射、机箱遮挡、消声器吸收。所以别指望Fluent直接告诉你装进机箱之后整体噪音是多少分贝那个问题需要声学软件或者实验介入。2. 方法选型的底层逻辑声源类型决定你的上限刚开始做流噪声的人最容易犯的错是一上来就问哪个方法最好。实际上方法没有绝对好坏只有匹配不匹配。而匹配的核心判断依据是流场里占主导的声源类型。气动声学里把声源分成三类单极子、偶极子、四极子。单极子对应质量的脉动比如排气过程中气体的体积突然膨胀或收缩。亚声速流动里单极子效率极高但工程上大多数流噪声问题风机叶片噪声、汽车风噪、圆柱绕流涡脱噪声并不以单极子为主它更多出现在排气噪声、燃烧噪声这类问题中。偶极子对应力的脉动也就是流体对固体表面的非定常作用力。叶片通过频率噪声、湍流来流撞击翼型产生的噪声本质都是偶极子主导。Fluent里用FW-H方法计算时偶极子源对应的是声源面上的压力脉动项这是最常规、算得最准的一类。四极子对应湍流应力脉动在自由剪切层、高速射流里占主导。四极子源的声效率很低亚声速下和马赫数的五次方相关但高速射流比如喷气发动机喷流里它才是主角。FW-H方法也能计入四极子项但体积分需要额外体积源计算开销大Fluent默认主要是面源积分四极子通常被忽略或者粗略估计。落实到选型逻辑我自己习惯按下面这个思路走如果你关心的是远场某个点的声压级和频谱而且流场里主要是固体表面和流体相互作用产生的噪声风机、泵、阀门、汽车后视镜直接上LES或者DES配合FW-H方法。如果你在方案设计早期算得粗糙一点没关系只要拿来做相对比较那就用RANS配合宽带噪声模型一小时出结果趋势基本可靠。如果问题里包含强共振反馈机制比如空腔流动、剪切层与反馈声波耦合那FW-H方法可能不够因为声场和流场强耦合光靠穿透面积分会把反馈机制丢一部分这时候考虑直接法或者用大涡模拟配合穿透面放在合适位置来近似。如果客户要的是结构表面的声载荷压力脉动幅值、频谱那就不是算不算噪声的问题了你得保证近壁湍流算得准然后用Fluent输出壁面压力脉动后续做振动响应分析。表格整理下我这几年常用的选型参考问题类型推荐方法计算成本典型输出风机/螺旋桨远场噪声LES/DES FW-H高远场声压级、1/3倍频程频谱管道/风道方案对比RANS 宽带噪声模型低声功率分布、声功率级圆柱绕流/钝体涡脱噪声LES FW-H中高涡脱频率处的离散峰值高速射流噪声LES FW-H含四极子极高远场宽频噪声空腔流动噪声DES/SAS FW-H或直接法高窄带峰值、振荡频率壁面压力脉动声载荷WMLES 精细近壁网格高表面压力脉动PSD再说一个容易被忽略的点方法选型还受目标频率范围约束。FW-H方法本身不关心频率上限但这个上限由你的瞬态时间步长和网格分辨率决定。你算出来的最高有效频率取决于声源面网格尺寸和库朗数——后面实操章节细讲。3. 一条完整的FW-H流噪声计算流程从网格到频谱这个流程我以圆柱绕流为例最合适因为这是流噪声的经典基准题文献多、规律清晰、几何简单但麻雀虽小五脏俱全。整个流程走通了换成真实风机、后视镜、阀门思路完全一样。3.1 网格准备一切精度的地基先认清一个现实瞬态声学计算的网格比同工况的RANS计算要密得多。原因是声学需要分辨的尺度不只是边界层还有声源区和非定常涡结构的迁移。圆柱绕流这个例子直径D不要取得太小建议至少0.01m量级方便设时间步长。计算域做成矩形上游5D下游15D横向各8D这样尾流能充分发展远场监测点也不至于被边界反射干扰。网格用Fluent Meshing做我一般用水密几何工作流。很多人卡在Fluent Meshing创建体网格出来的还是面网格这其实是没分清对象层级Fluent Meshing里先生成的是面网格边界网格随后基于面网格用Poly-Prism方法填充体网格。如果你只看到面网格而没有体网格多半是漏了Add Boundary Layers和Add Volume Mesh这两个步骤。注意看左下角的树状菜单体网格生成之后模型会显示为体网格着色。边界层网格层数我习惯做15到20层第一层高度根据目标y来算。虽然很多LES壁面模型允许y偏大但如果你做的是WMLES壁面模化大涡模拟第一层网格也不用太变态。圆柱表面y目标定在1以下是最稳的这需要雷诺数一旦定下来先估一下摩擦速度再反推第一层厚度。体网格尺寸方面圆柱表面附近网格尺寸做到0.01D量级尾流区加密到0.02D声源面所在的区域要保证网格足够均匀避免尺寸突变导致伪声源。总网格量对于圆柱绕流这种二维延伸的几何控制在200万到500万之间比较常见。3.2 求解设置瞬态不是随便点点就行湍流模型的选择直接决定声源算得准不准。我的建议很直接声学计算至少用LES或者它的工程替代方案。纯RANS算出来的平均流场给不了压力脉动宽带噪声模型除外。但LES也不是唯一解。工程上如果雷诺数较高、几何复杂度大全解析LES网格量爆炸可以退而求其次用DES分离涡模拟或者SAS尺度自适应模拟。这两个模型在近壁区表现得像RANS在分离区转化为类似LES的行为声源区的涡结构能解析一部分。我个人做流噪声用得最多的是WMLES它比LES省网格比DES在壁面湍流统计上更可控。时间步长用库朗数来定。库朗数的定义是CFL u * Δt / Δx其中u是当地流速Δt是时间步长Δx是最小网格尺寸。对于显式格式CFL通常要求小于1Fluent的耦合求解器是隐式的CFL限制比显式宽得多但声学计算里为了时间精度我通常还是控制CFL在0.5到1的范围内。也就是说Δt CFL * Δx_min / u_max举个例子圆柱绕流来流速度10m/s最小网格0.0002m取CFL0.8那么时间步长大约1.6e-5秒。再对应你要算的最高频率假设目标是10kHz那么你至少需要每周期20个时间步对应Δt最大不超过5e-6秒两个条件取更严格的那个。初始化的坑比较隐蔽。Fluent里有混合初始化和标准初始化两种。标准初始化就是你在面板里手动填速度、压力等初始值混合初始化是基于求解域边界条件自动算一个合理的初始流场。我做瞬态LES时从来不直接用初始化结果直接开算因为瞬态计算开始时流场离真实物理状态很远前几个流动通过时间的数据全是瞬态污染如果声源面从一开始就在记录前段FFT会被严重污染。标准做法是先用稳态RANS比如k-omega SST算一个收敛的平均流场以此作为LES的初始场再用一个较小的物理时间步推进等流动充分发展后再打开FW-H声源面记录。这个过渡时间通常取5到10个流动通过时间通过时间L/U具体看监测点流量是否进入统计稳态。3.3 FW-H声源面的设置与监测点Fluent里FW-H的设置在Model Acoustics下。勾选FW-H模型后需要指定声源面Source Surfaces。声源面是你在计算域里定义的一组面Fluent一边算瞬态一边在这些面上积累声源数据。理论上声源面应该包裹所有主要的噪声源并且尽量处于网格较均匀的区域。对于圆柱绕流我习惯把声源面做成一个包围圆柱和尾流区的矩形框离圆柱表面3D到5D的距离。注意声源面不是越靠近物体越好太近会把近场非声学压力脉动当成声源这是FW-H方法使用中一个非常常见的误差来源太远又会因为数值耗散丢失高频信号。经验法则是让声源面处于流动已经充分发展的区域但不接触计算域出口边界。监测点的设置在Boundary Conditions或者Solution Report Definitions里选择Receiver类型。你定义一个空间点坐标Fluent会在FW-H求解器里直接算这个点的声压。圆柱绕流的经典监测点布置在垂直于来流的方向上距离圆柱中心10D或者几十D的位置。我一般同时放三个监测点一个在垂直方向10D处一个在尾流方向10D处一个在45度方向10D处这样能看出声辐射的方向性。3.4 后处理频谱才是你真正要交付的东西瞬态算完之后在Fluent里可以直接生成监测点的声压级频谱。进入Results Plots FFT选择Receiver窗口类型建议用Hamming分辨率取决于你截取的瞬态时长。有一个关键参数要提前规划总计算物理时间决定最低可分辨频率。如果你要看到100Hz的频谱成分那么计算时长至少要0.5秒5个周期以上换算成时间步数就相当可观了。工程上常见问题是客户报一个低频范围你却只算了0.05秒FFT出来低频全是泄漏什么有效信息都拿不到。后处理里还有个坑是声压级的参考值。Fluent默认声压参考值是2e-5Pa这是空气中听阈的声压和水中声学参考值1e-6Pa完全不同。做水下流噪声时一定要改这个参数否则结果会整体偏差120dB以上对过一次就知道多离谱。4. 实测中最容易翻车的几个细节这一节是我自己踩坑踩出来的每一件事都对应过我或同事在项目里多花的一周时间。4.1 出入口流量正负判定与边界条件的方向性Fluent里看报告时经常遇到一个困惑明明入口设置的是正的质量流率报告里显示却是负的。这背后是Fluent的方向约定——所有的通量都是相对于面法向方向而言的。入口边界面的法向默认指向计算域内部流量为正意味着流体是流进计算域的出口边界面法向指向计算域外部流出时流量为正。如果你发现入口流量报告为负通常检查一下几何有没有翻转、或者边界条件类型是不是被设成了出口。这个细节对流噪声的影响在于FW-H声源面的法向方向直接决定了声源项的正负号。穿透面是内部面它的正负方向由网格生成时的面法向决定如果声源面法向指向不统一远场声压可能被抵消或者反相叠加导致频谱结果差之千里。跑瞬态之前务必在Surface Integrals里检查一下声源面的净质量通量确保所有穿透面穿过的流量方向一致。4.2 混合初始化与标准初始化的区别以及它如何影响声学结果这个热搜词问的人太多了。直接说结论标准初始化是用你手动填写的值对整个流场赋予均匀的初场。适合简单流动或者你想完全控制初始条件的情况但如果你填的速度和真实流场差太多瞬态计算前期会剧烈震荡。混合初始化是Fluent基于边界条件自动推导各区域的初始场它考虑了几何和边界条件的影响给出来的初始场更接近物理实际。对新用户来说混合初始化几乎总是比标准初始化更可靠。但对于流噪声计算我更推荐上面说的那套流程稳态RANS先行以收敛的稳态结果做初场。原因是稳态RANS至少把边界层的厚度、尾流的基本形态给预演化出来了LES启动阶段只需要在已有平均流场上叠加湍流脉动所需的过渡时间大幅缩短。4.3 时间步长与库朗数的匹配问题前面给了公式这里说一个实际问题时间步长太小计算资源撑不住太大声学结果高频部分衰减严重。很多人在Fluent里跑LES面板提示收敛了就不管了但FFT出来的频谱在高频段明显掉得比实验快十有八九是库朗数超标。我自己的经验FW-H声学计算声源区网格的CFL不超过1最好控制在0.5到0.8之间。怎么查CFLFluent可以在Custom Field Functions里自定义一个变量等于速度除以网格尺寸再乘以时间步长然后在云图里看看声源区的分布。这个办法虽然土但直观高效。还有一个常见误区网格加密的同时没有减小时间步长结果CFL暴涨算出来的高频噪声全是数值振荡还误以为是物理信号。网格和时间步长是绑定的动一个就得重新检查另一个。4.4 声压级、A计权和频谱平滑的工程约定交付报告的时候工程师和声学工程师之间经常出现鸡同鸭讲。在Fluent里FFT出来的原始频谱是窄带的如果你直接拿窄带频谱的峰值声压级和实验的1/3倍频程结果对比数值上必然对不上。记得用窄带频谱积分换算到1/3倍频程或者直接在Origin里做频带积分。A计权的问题也很实际。Fluent里默认输出的是线性声压级不计权但人耳对不同频率敏感度不同客户关心的往往是dBA。你可以在后处理阶段自己加A计权修正也可以在实验对比时确认对方给的是dBA还是dB(lin)否则一个几千赫兹的噪声源两者能差10多dB。我自己因为在报告里没标注计权方式被客户质疑过一次后来习惯在每张频谱图的标题里写清楚dB(lin)Ref:2e-5Pa1/3 OCT再也没出过歧义。5. 进阶把Fluent流噪声能力延伸到工程闭环里算完噪声频谱只是第一步。真正的工程价值在于你拿着这些结果能做决策、能改设计、能联合其他仿真工具。5.1 从声源到声振耦合导出壁面压力脉动很多结构噪声问题比如汽车天窗风振、飞机舱内噪声本质是流动激励壁面、壁面振动辐射噪声。Fluent能提供的最关键数据不是远场声压而是壁面压力脉动的时间历程或功率谱密度PSD。操作上在瞬态计算过程中通过File Export ASCII或者自定义监测面记录壁面压力脉动格式建议用CSV或者Ensight。导出的数据量可能很大一个面几万个节点每个节点几千个时间步文件动辄几个GB。建议先只在关键区域布点比如天窗前沿、A柱附近、后视镜底座每个区域选几十个代表性点位导出。把PSD数据加载到结构分析或者声学软件里做频响分析这套流程我实践下来的体会是网格匹配是大坑。CFD网格和结构网格往往节点不重合需要做插值映射。专业声学软件自带映射还好如果手动处理务必检查映射误差避免把一个本来很光滑的压力场插出虚假梯度。5.2 UDF在流噪声计算中的扩展Fluent自带的FW-H和声学报告功能已经覆盖了大部分需求但遇到下面这些情况就得靠UDF你需要自定义监测量比如某条线上的压力脉动积分、某个区域的湍流动能时间导数。你想在特定时间触发声源面的记录开启/关闭比如等流动稳定后再开始采集。你需要自定义入口边界条件的脉动信号比如模拟湍流来流涡方法或合成湍流叠加周期性扰动。你想输出自定义格式的声源数据供外部程序做进一步处理。搜索引擎里常有人问如何修改Fluent的udf.bat这个文件本质上是编译UDF的环境脚本。新版Fluent2020R2以后在Windows下编译UDF用的是Visual Studio的编译环境udf.bat里配置的就是编译器的路径和版本。报错最常见的原因是VS版本和Fluent要求的版本不匹配比如Fluent 2023R1要求VS2019你机器上装了VS2022就会出现编译失败。解决办法是装一个对应版本的VS Community或者用Fluent自带的Environment设置工具重新选择编译器。一个实用的UDF例子自定义一个监测点声压输出宏。#include udf.h DEFINE_EXECUTE_AT_END(monitor_pressure) { real p_total 0.0; real p_ref 2e-5; real SPL_dB; Domain *domain Get_Domain(1); cell_t c; Thread *t; /* 遍历所有cell求平均压力脉动这里示意为主实际监测点需用坐标定位 */ thread_loop_c(t, domain) { begin_c_loop_all(c, t) { p_total C_P(c, t); } end_c_loop_all(c, t) } SPL_dB 20.0 * log10((p_total 1e-12) / p_ref); Message0(SPL: %f dB\n, SPL_dB); }这个宏很简单但能说明问题UDF给了你完全的控制权可以在每个时间步结束时做任何计算和输出。5.3 与专业声学软件联合的注意点Fluent算完声源后续的传播问题交给声学软件处理时有几个数据交接的细节直接影响准确性。首先是数据格式。多数声学软件接受CGNS、Ensight Gold或者HDF5格式的瞬态数据。Fluent的CGNS导出支持瞬态数据但要注意导出的频率——不要每个时间步都导出磁盘会爆炸通常每10到20个时间步导一次具体看你要分析的最高频率和分析软件的插值需求。其次是声源面的封闭性。导出给声学软件做边界元或有限元计算的声源面必须是封闭的否则声学计算会出漏声问题。Fluent里如果声源面是半开放的你要在导出前自行补充虚构面封闭它哪怕这个面上的压力脉动意义不大至少从声学上保证连续性。最后是单位制度。CFD里默认国际单位制但声学软件偶尔会遇到长度单位不是米的模型。导出之前统一检查一遍一个差1000倍的单位错误能让你调试到怀疑人生。6. 算完一遍之后值得复盘的事如果你能完整跑通上面这套流程说明你对Fluent算流噪声这件事已经有了一个体系化的认知。但作为过来人我还是建议你在交付报告之前再做几件自我验证的事第一把一个简单基准题比如圆柱绕流的结果跟文献里的实验或者LES基准数据对比一下。圆柱绕流涡脱噪声的经典数据在Strouhal数、声压级频谱形状上都有公开参考如果你的圆柱算例结果偏差在3dB以内说明你的流程是可靠的可以放心去算工程模型。第二算完之后回来审视声源面位置是否合理。做一个灵敏度测试把声源面从3D挪到5D看远场声压变化多少。如果变化超过1dB说明你的声源区和解算区域交互还没有完全分开需要调整。第三记录所有的数值参数。我做项目都会建一个表格记录每个工况的网格量、时间步长、总物理时间、湍流模型、声源面位置、过渡时间、库朗数范围。这个表走到哪里都有用尤其是客户问你之前那个工况用什么设置算的你翻出来直接复用能省大半天的调试时间。流噪声计算的入门门槛不高但做好的门槛在细节里。Fluent把很多复杂的声学理论封装成了勾选项这是好事但也意味着你必须理解每个选项背后的物理含义才能在结果不合理的时候知道该调什么、往哪个方向调。希望这篇东西能帮你少走一些弯路。
阅读完成 · 觉得有帮助?
咨询建站