你有没有遇到过这样一种情况:在笛卡尔平面内,有一组非均匀分布的点,用于对表面高度进行采样,例如地图等高线上的点或表示某些材料属性数据的数据点?你可能还想在这些点之间重建或插值一个连续的光滑表面。你可以使用 COMSOL Multiphysics 的核心功能,即径向基函数来构建这样的表面。接下来,让我们来看看如何操作。
径向基函数简介
一个简单的径向基函数(RBF) 是指根据距某点的距离(或半径)定义的任意一个函数:
(1)
式中,w 是径向基函数的权重; 是点的坐标或中心 ; r是从 XY 平面内的任何其他点到此中心的距离。
径向基函数本身可以是许多不同类型的函数的一种。多谐波样条系列通常用于插值,特别是薄板样条函数。薄板样条基函数为:
(2) 仅仅一个径向基函数并不是那么吸引人,但我们可以在有限数量的具有不同权重的不同中心上进行求和,并选择性地添加一个具有权重的线性多项式项
从而得到函数:
(3)
如果有足够的中心点,那么一组基函数的总和可以用来表示非常复杂的单值函数。当使用薄板样条基函数时,还有一个额外的优点,就是这个功能在任何地方都是平滑的,并且可以无限微分。
现在让我们来看看如何使用这些径向基函数插值光滑表面。如果我们获得一组有限的中心点位置 ,以及它们对应的已知高度
,那么可以写一个线性方程组:
(4)

其中,系统矩阵项 是各中心点之间计算的径向基函数。
当使用薄板样条基函数时,几乎所有的非对角线项都是非零的,因此这个系统矩阵非常密集。线性系统可以求解所有权重,我们可以计算 xy 平面中任何其他点的加权径向基函数之和,从而得到平滑插值函数。现在,让我们看看如何使用 COMSOL Multiphysics 的核心功能计算这些权重并将插值函数可视化。
使用 COMSOL Multiphysics 中的径向基函数进行表面插值
我们从建立一个包含三维组件的模型开始,该模型使用无量纲单位系统,可以在 组件 1 设置中选择。如果数据代表材料属性而不是几何形状,那么无量纲单位系统使用起来更简单。
模型中的几何图形由两个特征组成。首先,点 功能用于定义点集(可以从文本文件复制坐标列表)。累积选择 用于定义所有这些点的命名选择,如下面的屏幕截图所示。此外,还有一个块 功能,它的尺寸略大于数据点的范围,并被定位为包围所有数据点。


定义几何图形后,我们在刚刚创建的点上定义一个积分组件耦合 算子。由于积分是在一组点上完成的,因此这个运算符等效于获取在一组点上计算的表达式的总和。接下来,我们定义三个变量,如下面的屏幕截图所示。
首先,变量 r = eps+sqrt((dest(x)-x)^2+(dest(y)-y)^2) 将用于计算所有中心之间的距离。请注意运算符 dest() 的用法,这会强制在目标点而不是源点上计算运算符中的表达式。添加一个非常小的非零项(eps 是机器精度),以使这个表达式永远不会精确地为零。
接下来,变量 phi = r^2*log(r) 是方程(2),薄板样条基函数。请注意,当半径为零,此函数收敛为零,但由于对数函数,我们确实需要使半径稍微不为零,以便可以在零处计算基函数。还值得一提的是,这个函数可以更改为任何其他所需的基函数。
最后,定义 RBF = intop1(w*phi)+a0+a1*x+a2*y 是方程(3),即插值表面本身,其权重尚未计算。请记住,积分组件耦合算子用于获取算子中表达式在这些点上的总和。

现在几何已经设置好了,所有变量都定义了,我们已经准备好求解径向基函数和多项式项的权重了。这是通过点常微分 和微分代数方程 接口完成的,该接口在我们要插值的点上定义,如下面的屏幕截图所示。我们可以将所有单位设置为无量纲,因为点位置也是无量纲的。这些设置定义了一组未知数 w,每个点将具有不同的值。

在这个物理场接口中,只需要修改两个功能。首先,需要调整分布式常微分方程 的设置,如下图所示。源项 定义为 z-RBF。由于求解稳态研究时方程中的所有其他项均为零,因此该项表示在所有选定点处 RBF=z。使用这个功能,我们可以定义等式(4) 的第 1 行到第 N 行。

其次,我们需要定义等式(4)的最后三行。这是通过全局方程 功能完成的,如下面的屏幕截图所示。这三个方程求解权重 a0,a1 和 a2。同样,积分耦合运算符用于获取所有选定点的表达式之和。有了这两个功能,问题就完全定义了,几乎可以解决。

求解这个模型要求我们在所有点上都有一个网格,因此我们在边界框上应用了自由四面体网格,然后使用稳态求解器求解。问题求解后,我们就可以绘制插值函数,RBF 变量,如下所示。

将功能打包到一个仿真 App 中
如果你想直接使用这个功能,而不在自己的模型中设置所有这些功能,也欢迎你从 COMSOL 案例库中下载我们的演示仿真 App,该 App 从一个用逗号分隔的文件中获取 xyz 数据点并计算插值表面。使用此演示 App 最多可插值 5000 个数据点。
除了计算此表面之外,该 App 还可以写出描述表面的完整分析函数,还可以写出该表面本身的 COMSOL 格式 的CAD 文件,所有这些都是 COMSOL Multiphysics 的核心功能。CAD 数据是 NURBS 表面,因此仅近似表示函数,但对于相当光滑的表面,精度非常高。该仿真 App 用户界面的屏幕截图如下所示。

更多资源
如果你有兴趣了解有关模型开发器 和 COMSOL Server™ 的更多信息(它们可用于开发和运行此仿真 App),请查看以下资源。
- 阅读 App 开发器简介手册中的完整说明摘要
- 观看视频,了解如何使用 App 开发期和 COMSOL Server™
- 阅读博客文章,了解如何在各种应用中使用仿真 App
你想使用 COMSOL Multiphysics 做什么?您对径向基函数的功能还有其他疑问吗?欢迎联系我们寻求帮助。