我們都知道, COMSOL Multiphysics 通過有限元方法求解偏微分方程,因此也可以求解偏導(dǎo)數(shù)。
那么,你知道 COMSOL 也可以計(jì)算積分嗎?
求解有限元問題需要對函數(shù)進(jìn)行積分,COMSOL 不僅可以計(jì)算積分,還可以求解未知積分限的問題!
下面讓我來介紹方法。
對函數(shù)進(jìn)行積分
考慮一個(gè)求解二次函數(shù)積分的問題:
積分可以獲得陰影區(qū)域的面積。
我們可以在 COMSOL Multiphysics 中使用積分函數(shù)來計(jì)算這個(gè)積分,這個(gè)函數(shù)的語法為:integrate(u^2, u, 0, 2, 1e-3)。其中,第一個(gè)參數(shù)是表達(dá)式,第二個(gè)參數(shù)是要積分的變量,第三和第四個(gè)參數(shù)是積分的極限,可選擇的第五個(gè)參數(shù)是必須在 0 到 1 之間的的積分相對容差。如果省略第五個(gè)參數(shù),就將使用默認(rèn)值 1e-3。我們可以在模型設(shè)置中的任意位置調(diào)用這個(gè)函數(shù)。

用于積分的全局方程計(jì)算了指定極限之間的積分。
到目前為止,這里沒有什么太大的驚喜。我們可以在 COMSOL Multiphysics 中求解這個(gè)問題,或者手算得到結(jié)果。但假設(shè)我們把問題稍微想復(fù)雜一點(diǎn),如果我們知道積分的計(jì)算結(jié)果,但不知道積分的上限怎么辦?
我們來看看如何求解下面這個(gè)
的上限問題:
我們可以通過改變?nèi)址匠虂砬蠼膺@個(gè)問題,這樣就可以得到積分上限:
u_b 的全局方程求解了積分的上限,計(jì)算結(jié)果為 6。
上面的全局方程有一些變化。其中的變量更改為 u_b,必須等于零的表達(dá)式變?yōu)椋?-integrate(u^2, u, 0, u_b)。因此,軟件將找到一個(gè) u_b 值,使積分等于指定的值。
由于我們使用 Newton-Raphson 方法來求解這個(gè)問題,因此不應(yīng)該從函數(shù)斜率為零的點(diǎn)開始。經(jīng)過求解,我們發(fā)現(xiàn) u_b = 2.621。
現(xiàn)在,我們讓事情變得復(fù)雜一點(diǎn),這次需要求解的是
和
這兩個(gè)極限:
由于我們有兩個(gè)未知數(shù),顯然需要在這里再加一個(gè)方程,所以讓我們再假設(shè)
。
添加了一個(gè)額外的方程來指定區(qū)間上限和下限之間的差值。
求解如上所示的模型,將得到 u_a = 1.932 和 u_b = 2.932 的值。實(shí)際上也可以用單個(gè)全局方程來求解這個(gè)問題,方法是將 6-integrate(u^2, u, u_b-1, u_b) 寫成求解 u_b 的方程,但有趣的是,我們可以同時(shí)求解多個(gè)方程。
一個(gè)傳熱示例
接下來,讓我們將上文中介紹的技術(shù)用于實(shí)踐,來確定換熱器的運(yùn)行條件。以 COMSOL 案例庫中的一個(gè)示例來說明,即通過一個(gè)浸沒在池塘中的管道網(wǎng)絡(luò)循環(huán)對水進(jìn)行地?zé)峒訜帷?/span>
通過水下管道網(wǎng)絡(luò)泵送的水被加熱。
在這個(gè)示例中,管道流模塊用于模擬 5°C(278.15 K)的水被泵入管網(wǎng),并被池塘中相對較溫暖的水加熱。池塘中的水溫隨深度在 10°C 至 20°C 之間變化,輸出端的計(jì)算溫度為 11.1°C(284.25 K)。如果水的質(zhì)量流量指定為 4 kg/s,那么吸收的總熱量為:
其中,
是質(zhì)量流量,
是與溫度有關(guān)的比熱。
實(shí)際上,這里的管道網(wǎng)絡(luò)是一個(gè)閉環(huán)系統(tǒng),但我們根本沒有對管道出口和入口之間的系統(tǒng)部分進(jìn)行建模,這里包含一個(gè)隱含的假設(shè),就是當(dāng)水從出口泵回入口時(shí),它被精確冷卻到 5°C。
因此,與其假設(shè)進(jìn)入管道的水的溫度是恒定溫度,不如考慮這個(gè)閉環(huán)系統(tǒng)連接到另一個(gè)換熱器,通過它來去除指定的熱量。假設(shè)該換熱器只能提取 10 kW,那么管道中的水溫是多少?
顯然,就未知極限
和
而言,這里的第一步是寫出提取熱量的積分:
我們需要包括的第二個(gè)條件是輸入和輸出溫度之間的關(guān)系,這是由我們現(xiàn)有的有限元模型計(jì)算得出的。現(xiàn)有模型在管道入口處使用一個(gè)固定的溫度邊界條件,并沿管道的整個(gè)長度計(jì)算溫度。因此,對于提取的熱量而言,我們需要做的就是在現(xiàn)有模型中添加一個(gè)全局方程來計(jì)算(最初未知的)入口溫度,T_in,以及入口和出口之間的溫差。
全局方程指定了從池塘回路中提取的總熱量。
讓我們詳細(xì)看一下管道流動模型的入口溫度 T_in 的方程:
10[kW]-integrate(4[kg/s]*mat1.def.Cp, T, T_in, T_out)
從右側(cè)開始,T_out 是計(jì)算的出口溫度,可以通過使用在流動管網(wǎng)出口點(diǎn)定義的積分耦合算子在全局方程計(jì)算。也就是說,T_out=intop1(T),在組件定義中設(shè)置為全局變量。
T_in 是管網(wǎng)入口處的溫度,這是我們要計(jì)算的量;T 是溫度變量,在材料定義中會使用;mat1.def.Cp 是在材料分支中定義的溫度與比熱的關(guān)系表達(dá)式。
閉環(huán)解決方案,在這個(gè)工況點(diǎn)提取 10 kW。請注意在這些操作條件下,池塘內(nèi)的水是如何加熱和冷卻的。
結(jié)語
從文中介紹的內(nèi)容可以看出,您不僅可以進(jìn)行積分,甚至可以求解該積分的極限,并使其成為模型其余部分的一部分。仔細(xì)想想,文中給出的示例考慮了換熱器,您還能在哪里用到這種技術(shù)呢?