本文展示了如何設(shè)置一個計算速度較快的3維標(biāo)量物理場的滑動平均處理。
如何使用指數(shù)移動平均法(Exponential Moving Average)進(jìn)行快速場平滑處理?
(field mean + Sliding Sample Window)
在工程中,經(jīng)常需要在模擬過程中計算物理場的平均值。在Simcenter STAR-CCM+中,可以通過創(chuàng)建一個場均值監(jiān)視器(Field Mean Monitor)來輕松實現(xiàn)這一目標(biāo),該監(jiān)視器會以給定的頻率對給定的物理場進(jìn)行采樣,并提供其平均值。在模擬開始時,流動通常不是完全物理的,也就是還沒有發(fā)展起來,需要經(jīng)過一段時間才能穩(wěn)定下來。為了避免在這個初始階段對流場進(jìn)行采樣,可以使用Field Mean Monitor的Start選項,指示Simcenter STAR-CCM+僅在經(jīng)過一定數(shù)量的迭代或時間步數(shù)后才開始采樣物理場數(shù)據(jù)。如果使用Stop選項,則可以定義一個特定的窗口進(jìn)行平均,可以指定采樣數(shù)據(jù)的開始和停止的范圍。
然而,有時候流動達(dá)到統(tǒng)計穩(wěn)定并準(zhǔn)備好進(jìn)行有效采樣的時間事先是未知的。或者,平均值可能被用作平滑短期波動的一種方式,同時保持對固有非穩(wěn)定性的跟蹤。在這種情況下,可以通過勾選啟用滑動采樣窗口選項并指定一個作為保留樣本數(shù)量的窗口大小來使用Field Mean Monitor的滑動窗口功能(Sliding Sample Window)。
然而,這種方法存在一個主要缺點,即為了計算僅包括最近N個時間步樣本的平均值,必須存儲所有最近N個時間步的物理場數(shù)據(jù)。這意味著計算成本隨著N的增加而增加,特別是內(nèi)存需求(包括RAM和保存.sim文件的磁盤空間)隨著N和體網(wǎng)格大小的增加而增加。對于大窗口采樣平均的N和大網(wǎng)格模型,內(nèi)存成本可能是不可接受的。
Exponential Moving Average
當(dāng)使用具有大小為N的滑動窗口的Field Mean Monitor時,最新時間步n處的移動平均值(Moving Average)MA的值計算如下。

這意味著在這個平均值中,最近的N個時間步樣本被等權(quán)重地加權(quán)為1/N,每個時間步的樣子的加權(quán)因子相等,而N個時間步驟之前的樣本被舍棄,即加權(quán)為0。比如,讓N=10,且當(dāng)前計算到了第99個時間步,那么第90個時間步之前的所有時間步的樣本都對這個移動平均MA沒有任何影響。
這種類型的平均值是眾所周知的,其意義很容易理解。然而,該平均值的嚴(yán)格數(shù)學(xué)屬性可能并不重要,對于特定的流程情況,其他類型的樣本加權(quán)可能更合適。

其中α是介于0和1之間的平滑因子。在這種平均中,之前的樣本永遠(yuǎn)不會完全被舍棄,而是用指數(shù)衰減的權(quán)重加權(quán)。
從下面的圖我們可以看到每種平均方法在不同窗口大小(N值)和相應(yīng)平滑因子下α的響應(yīng)情況:
根據(jù)(eq2),我們分別列出
的展開式:

將(eq3)兩邊都乘以
得到:

(eq4)的右邊就等于(eq2)的右邊第二項及以后所有項的和;這樣(eq2)就可以寫成:

指數(shù)移動平均法的
優(yōu)點從(eq5)可以看出:只需要知道
當(dāng)前時間步物理場x_n和
上一個時間步的平均值EMA_n-1,也就是只需要額外存儲上一個迭代時間步的數(shù)據(jù)。相對于數(shù)學(xué)平均方法而言,保存N個時間步的物理場x_n-1、x_n-2、x_n-3---等,這可以節(jié)省大量的內(nèi)存。(x_n中,x表示某個要進(jìn)行平均的物理量,比如壓力,溫度等,n表示的當(dāng)前時間步,n-1表示前一個時間步,n-2表示往前第2個時間步,n-3 ---依次類推)
為了在STAR-CCM+中實現(xiàn)物理場的高效移動平均,可以參考下面步驟。
-
首先,創(chuàng)建一個新的物理場函數(shù)field function,比如將其重命名為EMA。
先暫時將其定義為空,也就是先讓其空著,因為需要用到其自己在上一個迭代步中自己的值,而此時還不可用。
-
創(chuàng)建一個包含上一個時間步驟EMA值的監(jiān)測函數(shù)。
通過STAR-CCM+軟件的Monitor節(jié)點,新建一個Field Mean,這里取名為EMA_previous,激活Enable Sliding Sample Window,并將其值設(shè)定為1.這個定義的EMA_previous monitor將會在軟件中表征為 ${EMA_previousMonitor}場函數(shù),可以被引用或進(jìn)行云圖顯示。也可以再另外定義一個新的場函數(shù)field function ,來直接引用這個EMA_previous monitor,如下圖。
請注意,該方法僅適用于非穩(wěn)態(tài)模擬,以獲取以前時間步的物理場值,但無法獲取以前迭代次的物理場值(相對于穩(wěn)態(tài)分析而言)。
-
定義一個全局參數(shù)Parameter,在Tool-Parameter節(jié)點進(jìn)行新建。用于定義前面提及的平滑因子α。
這里創(chuàng)建一個新的標(biāo)量參數(shù)alpha,用于保存平滑因子的值。將其值設(shè)置為介于0和1之間的所需水平,以提供與具有窗口大小N的等權(quán)重移動平均值相對相似的行為。比如要達(dá)到與數(shù)學(xué)移動平均,取N=10滑動采樣,相接近的數(shù)值,可以參考下面公式進(jìn)行計算。α=2/(10+1)=~0.18。

-
返回去補(bǔ)充定義EMA場函數(shù)。(這里假定對
壓力進(jìn)行采樣)
參考(eq3)
定義:
${alpha}*${Pressure} + (1-${alpha}) * ${EMA_previous}
-
后續(xù)就可以使用這個EMA指數(shù)移動平均場函數(shù)了。
這里以一個圓柱繞流案例,體網(wǎng)格1M,數(shù)學(xué)移動平均中N取4000,每4000個時間步做物理量數(shù)值平均,比較了MA與EMA的計算效率與存儲文件大小。供參考。

文章來源:STAR-CCM-Online