浦 瑋, 劉清惓,c, 史雪雪, 王定奧
(南京信息工程大學(xué) a.電子與信息工程學(xué)院;b.江蘇省氣象探測(cè)與信息處理重點(diǎn)實(shí)驗(yàn)室;c.江蘇省大氣環(huán)境與設(shè)備技術(shù)協(xié)同創(chuàng)新中心,南京 210044)
自動(dòng)氣象站溫度傳感器采用的自然通風(fēng)防輻射罩易受到太陽(yáng)輻射加熱的影響,從而產(chǎn)生輻射誤差[1]。由于防輻射罩的材料以及防輻射板外部的涂層材料不同,其反射太陽(yáng)輻射的能力不同,即不同表面反射率的防輻射罩在復(fù)雜的大氣環(huán)境下對(duì)傳感器造成的輻射誤差也不同。美國(guó)Young的41003自然通風(fēng)防輻射罩在不同的大氣環(huán)境下的輻射誤差達(dá)到0.4~1.5 ℃,芬蘭VAISALA的DTR500系列防輻射罩輻射誤差[2]達(dá)到-0.1~0.2 ℃。氣溫是自動(dòng)氣象站觀測(cè)的一項(xiàng)重要數(shù)據(jù),相對(duì)準(zhǔn)確的觀測(cè)結(jié)果對(duì)大氣科學(xué)以及天氣氣候的預(yù)測(cè)、氣候變化的研究具有重要意義。根據(jù)唐國(guó)利[3]的研究結(jié)果,自1873年以來(lái),中國(guó)氣候呈顯著增暖趨勢(shì),其中年平均氣溫約上升了0.96 ℃,年平均最高、最低氣溫分別上升約1.20 ℃和0.70 ℃,20世紀(jì)初以來(lái),平均氣溫升高約0.80 ℃。鑒于上述資料,自動(dòng)氣象站需提供更加準(zhǔn)確的觀測(cè)數(shù)據(jù),才能更為準(zhǔn)確地研究我國(guó)氣溫變化。
為提升自動(dòng)氣象站溫度傳感器溫度測(cè)量的準(zhǔn)確性,對(duì)自然通風(fēng)防輻射罩進(jìn)行輻射誤差分析與修正,本文提出采用計(jì)算流體力學(xué)(Computational Fluid Dynamics,CFD)[4-5]方法,獲得不同太陽(yáng)輻射強(qiáng)度、風(fēng)速、表面反射率下的自然通風(fēng)防輻射罩的輻射誤差。采用BP神經(jīng)網(wǎng)絡(luò)算法對(duì)計(jì)算結(jié)果進(jìn)行擬合,獲得輻射誤差修正方程。通過(guò)CFD方法對(duì)防輻射罩進(jìn)行仿真數(shù)值分析,得到一組離散的輻射誤差值。將這組輻射誤差值作為BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型進(jìn)行訓(xùn)練,對(duì)比訓(xùn)練結(jié)果與BP預(yù)測(cè)結(jié)果,嘗試獲得高精度的輻射誤差修正方程,并開(kāi)發(fā)Web平臺(tái)將擬合的輻射誤差修正方程實(shí)際應(yīng)用。
本文采用商用軟件ANSYS SpaceClaim對(duì)自然通風(fēng)防輻射罩進(jìn)行模型仿真,其仿真模型結(jié)構(gòu)示意圖如圖1所示。
圖1 自然通風(fēng)防輻射罩仿真模型結(jié)構(gòu)示意圖
通過(guò)CFD建立自然通風(fēng)防輻射罩以及外圍空氣域的物理模型,氣流進(jìn)口在防輻射罩左側(cè),右側(cè)為氣流出口,如圖2所示。
使用ANSYS Meshing對(duì)計(jì)算流體物理模型進(jìn)行網(wǎng)格劃分,采用非結(jié)構(gòu)化四面體網(wǎng)格劃分技術(shù),得到的四面體網(wǎng)格示意圖,如圖3所示。
使用有限元分析軟件Fluent,以整個(gè)空氣域作為計(jì)算流域,空氣域6個(gè)面設(shè)置為壁面以及邊界條件,對(duì)不同大氣環(huán)境下的自然通風(fēng)防輻射罩進(jìn)行流-固耦合傳熱計(jì)算得到防輻射罩的溫度場(chǎng)分布[6],當(dāng)風(fēng)速0.5 m/s、太陽(yáng)輻射強(qiáng)度200 W/m2時(shí),溫度場(chǎng)分布情況如圖4所示。
圖2 計(jì)算流體物理模型示意圖
圖3 四面體網(wǎng)格示意圖
圖4 溫度場(chǎng)分布圖
從圖4可以看出,在該環(huán)境下溫度由左側(cè)進(jìn)風(fēng)口向右側(cè)壓力出口遞減,符合傳熱物理定律,通過(guò)CFD-POST計(jì)算可知自然通風(fēng)防輻射罩升溫為0.535 K。本文分別對(duì)不同風(fēng)速下,防輻射罩表面反射率和輻射強(qiáng)度產(chǎn)生的輻射誤差進(jìn)行數(shù)值仿真分析,得到當(dāng)表面反射率為80%時(shí),由風(fēng)速和太陽(yáng)輻射強(qiáng)度計(jì)算出來(lái)的輻射誤差值,如圖5所示。
圖5 不同太陽(yáng)輻射強(qiáng)度時(shí)的輻射誤差
當(dāng)太陽(yáng)輻射強(qiáng)度為1 kW時(shí),由表面反射率和風(fēng)速計(jì)算出來(lái)的輻射誤差值如圖6所示。
計(jì)算結(jié)果表明,輻射誤差與太陽(yáng)輻射強(qiáng)度、表面反射率呈正相關(guān),與風(fēng)速呈負(fù)相關(guān),并且可以看出太陽(yáng)輻射強(qiáng)度對(duì)輻射誤差的影響更為顯著。
圖6 不同表面反射率時(shí)的輻射誤差
BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程[7]為信號(hào)的正向傳播與誤差的反向傳播兩個(gè)過(guò)程。1989年,Robert Hecht-Nielsen證明了對(duì)于任何閉區(qū)間內(nèi)的一個(gè)連續(xù)函數(shù)都可以用一個(gè)隱含層的BP網(wǎng)絡(luò)來(lái)逼近,即萬(wàn)能逼近定理,所以一個(gè)3層的BP網(wǎng)絡(luò)可以完成任意的m~n維的映射。
信號(hào)的正向傳播為逐層波浪式地傳遞輸出值,輸入樣本不經(jīng)過(guò)計(jì)算從輸入層進(jìn)行輸入。本文將仿真結(jié)果太陽(yáng)輻射強(qiáng)度、風(fēng)速、表面反射率作為BP神經(jīng)網(wǎng)絡(luò)的輸入,則輸入層的節(jié)點(diǎn)個(gè)數(shù)為3,以輻射誤差為輸出,輸出層節(jié)點(diǎn)個(gè)數(shù)為1。
在BP神經(jīng)網(wǎng)絡(luò)中,輸入層和輸出層的節(jié)點(diǎn)個(gè)數(shù)都是確定的,而隱含層通過(guò)激活函數(shù),根據(jù)經(jīng)驗(yàn)公式:
(1)
式中:h為隱含層節(jié)點(diǎn)數(shù)目;m為輸入層節(jié)點(diǎn)數(shù)目;n為輸出層節(jié)點(diǎn)數(shù)目;a為1~10之間的調(diào)節(jié)常數(shù),運(yùn)用試湊法確定網(wǎng)絡(luò)隱含層節(jié)點(diǎn)個(gè)數(shù)為6。
若輸出層的實(shí)際輸出與期望的輸出不等,則轉(zhuǎn)到誤差反向傳播階段,反向傳播的基本思想就是通過(guò)計(jì)算輸出層與期望值之間的誤差來(lái)調(diào)整網(wǎng)絡(luò)參數(shù),從而使得誤差變小。信號(hào)的正向傳播與誤差的反向傳播的各層權(quán)值不斷調(diào)整,網(wǎng)絡(luò)不斷學(xué)習(xí)訓(xùn)練來(lái)得到最佳的絕對(duì)誤差。具有一個(gè)隱層的三層BP神經(jīng)網(wǎng)絡(luò)能在閉集上以任意精度逼近任意非線(xiàn)性函數(shù)[8]。因此本文選擇單隱層BP神經(jīng)網(wǎng)絡(luò),結(jié)構(gòu)如圖7所示。
圖7 3層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
采用基于Matlab的BP神經(jīng)網(wǎng)絡(luò)經(jīng)行輻射誤差預(yù)測(cè),編程代碼簡(jiǎn)單、調(diào)試方便、運(yùn)行效率高,其BP神經(jīng)網(wǎng)絡(luò)工具箱功能強(qiáng)大[9]。由于BP神經(jīng)網(wǎng)絡(luò)輸入?yún)?shù)的數(shù)據(jù)范圍較大且單位不統(tǒng)一,所以在訓(xùn)練神經(jīng)網(wǎng)絡(luò)前需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理,即將數(shù)據(jù)映射到[0,1]或[-1,1]區(qū)間。將網(wǎng)絡(luò)的學(xué)習(xí)速率設(shè)為0.05,訓(xùn)練結(jié)果設(shè)為0.000 004,訓(xùn)練次數(shù)設(shè)為5 000,按照設(shè)定好的網(wǎng)絡(luò)結(jié)構(gòu)編寫(xiě)程序進(jìn)行訓(xùn)練。
記錄下完成訓(xùn)練后BP神經(jīng)網(wǎng)絡(luò)各層的權(quán)值與閾值,并且由此得出擬合公式,輸出更高精度的輻射誤差,
ΔT=purelin{tansig(PWi1+vWi2+
RWi3+θi)Wki+ak}
(2)
式中:Wi1、Wi2、Wi3分別為輻射強(qiáng)度P、風(fēng)速v和表面反射率R對(duì)應(yīng)的由隱含層到輸入層的權(quán)值,輸入層神經(jīng)元為3,輸出層為1,則j=3,k=1;Wki為輸出層到隱含層的權(quán)值;θi為隱含層閾值;ak為輸出層閾值,
αk=2.356 183
為驗(yàn)證算法的可靠性,將BP的預(yù)測(cè)結(jié)果與仿真結(jié)果進(jìn)行對(duì)照,如圖8所示。
圖8 仿真輸出與訓(xùn)練輸出對(duì)照結(jié)果
結(jié)果表明,仿真輸出的輻射誤差值與訓(xùn)練輸出輻射誤差值基本吻合。為了更加直觀地分析結(jié)果,將仿真輸出與訓(xùn)練輸出相減得到絕對(duì)誤差,如圖9所示。由此可知,仿真輸出與訓(xùn)練輸出的絕對(duì)誤差基本控制在[-0.001,0.002],說(shuō)明BP神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)擬合算法的擬合度較高。
圖9 仿真輸出與訓(xùn)練輸出的絕對(duì)誤差
本文用Java對(duì)完成訓(xùn)練后的BP神經(jīng)網(wǎng)絡(luò)得到的輻射誤差修正方程進(jìn)行封裝,并開(kāi)發(fā)算法修正平臺(tái)方便從業(yè)人員的調(diào)用。Web平臺(tái)是基于Node.js開(kāi)發(fā)環(huán)境[10],Vue.js為開(kāi)發(fā)框架[11],ElementUI、Echarts提供相應(yīng)的組件庫(kù)完成軟件的前端開(kāi)發(fā)[12],后臺(tái)服務(wù)端使用的技術(shù)棧是SpringBoot框架[13],通過(guò)Spring-boot-jpa作為DAO層框架與MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。
整個(gè)系統(tǒng)是一個(gè)3層的B/S結(jié)構(gòu)[14],設(shè)計(jì)圖如圖10所示。用戶(hù)在操作界面輸入數(shù)據(jù),邏輯層處理用戶(hù)行為,并將Ajax請(qǐng)求[15]發(fā)送至服務(wù)器,服務(wù)器接收到請(qǐng)求后將所需的JSON數(shù)據(jù)[16]返回邏輯層,邏輯層再將數(shù)據(jù)返回給用戶(hù),實(shí)現(xiàn)了數(shù)據(jù)的動(dòng)態(tài)加載。每次進(jìn)入操作界面邏輯層會(huì)向CDN內(nèi)容分發(fā)網(wǎng)絡(luò)[17]初始化請(qǐng)求,CDN能夠?qū)崟r(shí)將用戶(hù)請(qǐng)求導(dǎo)向離用戶(hù)最近的服務(wù)節(jié)點(diǎn)上,提高數(shù)據(jù)接收速度和性能。
圖10 軟件系統(tǒng)設(shè)計(jì)圖
如圖11所示,是整個(gè)軟件的主界面。第1部分是實(shí)時(shí)修正結(jié)果,用戶(hù)設(shè)置常用防輻射罩型號(hào),當(dāng)前修正溫度將會(huì)實(shí)時(shí)顯示在界面上。第2部分用戶(hù)輸入溫度、輻射強(qiáng)度、傳感器型號(hào),點(diǎn)擊修正,經(jīng)過(guò)調(diào)用輻射誤差修正方法修正后,修正結(jié)果會(huì)在第3部分顯示,同時(shí)保存修正歷史數(shù)據(jù)。
(1) 應(yīng)用計(jì)算流體力學(xué)的方法對(duì)自然通風(fēng)防輻射罩進(jìn)行數(shù)值分析,模擬出防輻射罩在太陽(yáng)輻射下的溫度場(chǎng)分布,獲得在不同大氣環(huán)境下的輻射誤差。
圖11 修正軟件界面設(shè)計(jì)圖
(2) 利用BP神經(jīng)網(wǎng)絡(luò)對(duì)離散的輻射誤差進(jìn)行數(shù)據(jù)擬合,絕對(duì)誤差控制在[-0.001,0.002]。
(3) 用Java封裝BP神網(wǎng)絡(luò)擬合出的輻射誤差修正公式,并進(jìn)行了誤差修正平臺(tái)的開(kāi)發(fā)和算法應(yīng)用,增加了算法的實(shí)用性。