你有沒有遇到過這樣一種情況:在笛卡爾平面內,有一組非均勻分布的點,用于對表面高度進行采樣,例如地圖等高線上的點或表示某些材料屬性數據的數據點?你可能還想在這些點之間重建或插值一個連續的光滑表面。你可以使用 COMSOL Multiphysics 的核心功能,即徑向基函數來構建這樣的表面。接下來,讓我們來看看如何操作。
徑向基函數簡介
一個簡單的徑向基函數(RBF) 是指根據距某點的距離(或半徑)定義的任意一個函數:
(1)
式中,w 是徑向基函數的權重; 是點的坐標或中心 ; r是從 XY 平面內的任何其他點到此中心的距離。
徑向基函數本身可以是許多不同類型的函數的一種。多諧波樣條系列通常用于插值,特別是薄板樣條函數。薄板樣條基函數為:
(2) 僅僅一個徑向基函數并不是那么吸引人,但我們可以在有限數量的具有不同權重的不同中心上進行求和,并選擇性地添加一個具有權重的線性多項式項
從而得到函數:
(3)
如果有足夠的中心點,那么一組基函數的總和可以用來表示非常復雜的單值函數。當使用薄板樣條基函數時,還有一個額外的優點,就是這個功能在任何地方都是平滑的,并且可以無限微分。
現在讓我們來看看如何使用這些徑向基函數插值光滑表面。如果我們獲得一組有限的中心點位置 ,以及它們對應的已知高度
,那么可以寫一個線性方程組:
(4)

其中,系統矩陣項 是各中心點之間計算的徑向基函數。
當使用薄板樣條基函數時,幾乎所有的非對角線項都是非零的,因此這個系統矩陣非常密集。線性系統可以求解所有權重,我們可以計算 xy 平面中任何其他點的加權徑向基函數之和,從而得到平滑插值函數?,F在,讓我們看看如何使用 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 做什么?您對徑向基函數的功能還有其他疑問嗎?歡迎聯系我們尋求幫助。
鍋爐之家客服熱線:











