定义噪声源区和阻尼区

使用声波模型时,您要通过设定流体区域的适当物理条件和物理值来指定噪声源和声学阻尼。

声波模型需要您定义两个系数的场函数:

  • 噪声源加权系数,定义生成噪声的空间。
  • 声学阻尼系数Simcenter STAR-CCM+ 用于抑制噪声源封闭空间外部的声反射。

在此教程中,噪声区阻尼区场函数分别定义这些量。这两个场函数使用 Hanning 窗口进行值 0 和 1 的转换。

为了方便起见,在此教程中,您可以运行宏来创建适当的场函数。宏 CreateUserFieldFunctions.java 作为 Simcenter STAR-CCM+ 安装目录的 doc/startutorialsdata/aeroacoustics/data 子目录的输入文件提供。

要创建用户场函数:

  1. 选择文件 > > 播放宏
  2. 打开对话框中,导航至工作目录并选择 CreateUserFieldFunctions.java
  3. 单击打开以运行该宏。
要指定噪声源区域和声学阻尼函数:
  1. 编辑体 1 > 物理值节点,然后设置下列属性:
    节点 属性 设置
    噪声源加权系数 方法 场函数
    标量函数 NoiseZone
    声学阻尼系数 方法 场函数
    标量函数 DampingZone
  2. 保存模拟。

可视化噪声源区和阻尼区

噪声区场函数定义的噪声源区如下所示:



噪声源是圆柱体周围的区域(红色),圆柱体的涡流脱落会导致气流(从左向右)在此处产生声波。请注意整个噪声源区的精细网格。

阻尼区场函数定义的声学阻尼区如下所示:



相关区域(蓝色)无阻尼,其他任意地方为全阻尼(红色)。请注意整个非阻尼区的精细网格和网格转换时应用的阻尼。

场函数定义

本教程所用场函数如下表所列:

函数名

类型

定义

CombinedShape

标量 (${JoinZones} > 1) ? 1 : ${JoinZones}

DampingZone

标量 1-${CombinedShape}

dnSlope

标量 ${ydn_up}+($$Position[0]*tan((${ydn_dn}-${ydn_up})/(${xdn}-${xup})))

HanningCircle

标量 1-(0.5*(1-cos($pi*($Radius-$Rm)/$thk)))

HanningLong

标量 ($$Position[1] < ${upSlope}+${thkLong} && $$Position[1] > ${upSlope} ) ? 1-(0.5*(1-cos($pi*($$Position[1]+${thkLong}-${upSlope})/${thkLong}))) : 1-(0.5*(1-cos($pi*($$Position[1]+${thkLong}-${dnSlope})/${thkLong})))

HanningSrc

标量 1-(0.5*(1-cos($pi*($Radius-${Rsrc})/${thkSrc})))

JoinZones

标量 sqrt( (${ZoneLong}*${ZoneLong}) + (${ZoneCircle}*${ZoneCircle}) )

NoiseZone

标量 (${Radius} < ${Rsrc}) ? 1 : ((${Radius} > ${Rsrc} && ${Radius} < ${Rsrc}+${thkSrc}) ? ${HanningSrc} : 0)

pi

标量 4*atan(1)

半径

标量 sqrt(($$Position[0]*$$Position[0])+($$Position[1]*$$Position[1]))

Rm

标量 0.05

Rp

标量 $Rm+$thk

Rsrc

标量 0.025

thk

标量 0.02

thkLong

标量 0.03

thkSrc

标量 0.02

upSlope

标量 ${yup_up}+($$Position[0]*tan((${yup_dn}-${yup_up})/(${xdn}-${xup})))

xdn

标量 0.3

xup

标量 0.0065

ydn_dn

标量 -0.1

ydn_up

标量 -0.02

yup_dn

标量 0.1

yup_up

标量 0.02

ZoneCircle

标量 (${Radius} < ${Rm}) ? 1 : ((${Radius} > ${Rm} && ${Radius} < ${Rp}) ? ${HanningCircle} : 0)

ZoneLong

标量 ($$Position[0] > ${xup}) ? ( (abs($$Position[1]) > ${upSlope}+${thkLong}) ? 0 : ((abs($$Position[1]) < ${upSlope}) ? 1 : 1-${HanningLong} ) ) : 0