您有没有遇到过想要将实验数据作为载荷或边界条件的情况?如果这些数据随空间或时间变化并且包含噪声,那么可能需要非常精细的网格,或者求解器可能需要非常短的时步。实际上,我们通常不希望或不需要这样做。一种可能的解决方案是,对输入数据进行滤波来使其更加平滑。接下来,让我们了解更多详细操作。
使用基于方程的建模方法滤波噪声数据
首先,假设一些输入数据样本,如下图所示。我们先不考虑数据代表什么,并假设横轴代表空间或时间。可以观察到,这些数据包含明显的噪声,并且具有明显的趋势。在模型中使用这些数据之前,我们想降低噪声。包含明显噪声的数据样本。
在这里,我们可以使用一种被称为亥姆霍兹滤波器(Helmholtz filter)的技术。这种类型的滤波器是近期提出并被证明在拓扑优化领域非常有用。实际上,这个功能是 COMSOL 优化模块的内置功能,但也可以手动实现,这也是我们将要介绍的内容。式中,是输入数据,是滤波后的数据。方程中有一个参数 ,我们称之为滤波器半径。除了控制方程外,还需要设置边界条件。我们将从齐次诺依曼条件(homogeneous Neumann condition)开始,即在边界处,场的梯度为零。原因在后文进行了解释(为了保证滤波后的数据满足能量守恒)。我们将在一维组件中通过系数形式偏微分方程接口,使用基于方程的建模方法求解上述控制方程和边界条件。首先,将实验数据读入插值表格特征,如下面的屏幕截图所示。将外推设置为常数。我们很快会发现,由于亥姆霍兹滤波器中的边界条件,需要对插值函数做扩展,获得“缓冲区”,以使滤波后的数据更符合真实情况。软件正在读入实验数据并设置外推方法。
接下来,我们将一维组件引入模型并将单位制设置为无。然后,在几何中创建一个间隔特征,如下面的屏幕截图所示。注意为插值函数的扩展数据留出求解域。软件正在定义应用滤波器的域。
针对单个未知数 u,我们现在将系数形式偏微分方程接口引入组件中,如下方截图所示。保持离散化为默认的二次拉格朗日设置,并再次保持所有数据无量纲。在系数形式偏微分方程特征设置中,我们定义如下设置。将扩散系数设置为全局参数 FilterSize 的平方,将吸收系数设置为1。将实验数据作为源,并将所有其他项设置为零。默认的边界条件零通量就是所需的齐次诺依曼条件,在计算域的两端,将滤波后数据的导数固定为零,为滤波器引入末端效应,这就是向几何和数据引入扩展填充区域的原因。也可以使用狄利克雷边界条件,在边界处固定 u 的值。此外,还需要手动将网格大小设置为小于实验数据的分辨率。使用基于方程的建模方法定义亥姆霍兹滤波器方程。
使用亥姆霍兹滤波器方程滤波模型数据
现在,我们可以求解不同滤波器大小的值并比较结果。如下所述,滤波器大小增大将导致平滑效果增强,随着滤波器半径增大,滤波后的数据逐渐接近原始数据的平均值。滤波器大小非常小时,几乎没有影响。了解亥姆霍兹滤波器这个关键特性很重要:只要使用齐次诺伊曼边界条件,它就能保持能量守恒。这意味着原始数据和滤波后的数据在整个计算域上的积分是相同的。然而,在两端没有缓冲区的子域上,上述并不完全正确。还需要注意的是,狄利克雷边界条件不能实现能量守恒,因此应谨慎使用。使用不同半径的滤波器过滤的数据示例。
现在,我们已经滤波了数据,接下来看看如何在模型中使用这些数据。以一个二维轴对称材料的瞬态加热为例,滤波后的数据将代表在暴露表面施加的热载荷。在我们的模型中,由于热模型将被用于不同的组件中,因此需要引入一种方法将数据从一维组件移动到时间维度,以便在二维轴对称组件中使用。这可以通过广义拉伸算子来实现,即将 t 的 x 表达式定义为一个目标映射。这项特征会将来自一维组件的数据映射或拉伸到时间轴上,并使其在整个模型中可用。屏幕截图显示了广义拉伸算子的设置。
在二维轴对称组件的热模型中,我们可以施加一个热源,如下面的屏幕截图所示,热载荷为 comp1.genext1(u)[W/m^2]。请注意,我们为载荷添加了单位,因为 u 是无量纲的。将组件1定义的滤波数据调用到组件2的热模型中。
我们可以将研究分为两个步骤。第一个步骤为求解滤波方程的稳态步骤;第二步为求解热问题的瞬态步骤。我们将求解更严格的相对容差 1e-4,并以求解器采用的所有时步输出结果。还需要注意的是,如果数据在不包含噪声的情况下具有明显的、剧烈的幅度变化,则应改用事件接口通知求解器。求解不同的滤波半径值,并绘制域内峰值温度随时间的变化,我们可以看到滤波对传热问题求解的影响。对于这个示例,峰值温度随时间的变化较小。热模型的结果绘图,使用不同的滤波半径滤波后的数据作为热源。
是否使用滤波器的最大的差异在于求解时间不同。求解没有滤波的模型共需要约 700 个自适应时步,而以中等滤波器大小求解模型需要约 130 个时步,求解效率提高了 5 倍以上!结语
在今天的文章中,我们展示了如何基于附加组件和滤波方程对输入模型的数据使用亥姆霍兹滤波器。我们不仅可以对一维数据,还可以对二维或三维数据进行滤波,并且可以对任意几何形状和任意密度的输入数据进行处理。特别是在二维或三维中,这种方法将优于大多数其他滤波技术,因为它利用了有限元基函数的局部紧凑支持,并允许非均匀空间网格离散化,从而获得可以高效求解的稀疏线性矩阵。通过亥姆霍兹滤波器在任意表面上进行空间滤波。滤波后的数据用较粗的网格就可以很好地求解。
上图示例展示了任意表面上未滤波和滤波后的场分布,直观地呈现了二维平滑处理。请注意,对数据进行滤波意味着使用此数据的模型可以在相对较粗的网格上求解,这为我们带来了额外的计算优势。事实证明,我们甚至可以使用这个亥姆霍兹滤波器来设计一种网格,使其可以很好地满足输入数据的变化,这将是另一个话题了,欢迎继续关注我们的文章!如需了解文中提到的案例详情,请点击底部“阅读原文”查看。如果您有相关问题,或者文中介绍的内容没有涉及您所关注的问题,欢迎留言讨论。