肖 冉, 魏子清, 翟曉強
(上海交通大學(xué) 制冷與低溫工程研究所,上海 200240)
近年來,我國建筑能耗保持上升趨勢,全國建筑總能耗已達(dá)到8.99億噸標(biāo)準(zhǔn)煤,公共建筑能耗占比為38.53%[1].公共建筑的節(jié)能減排主要通過節(jié)能改造和優(yōu)化建筑管理實現(xiàn).建筑能耗預(yù)測是建筑管理的重要一環(huán),為能源的供需匹配和建筑能源系統(tǒng)智能控制提供了參考[2-3].當(dāng)前的建筑預(yù)測模型主要分為兩類,一類是基于熱力學(xué)計算的物理模型,另一類為基于機器學(xué)習(xí)的數(shù)據(jù)模型[4].相較于基于仿真計算的物理模型,數(shù)據(jù)模型具有預(yù)測精度高、計算速度快的優(yōu)勢,在歷史數(shù)據(jù)充足的情況下多采用數(shù)據(jù)模型[5].數(shù)據(jù)模型使用機器學(xué)習(xí)算法學(xué)習(xí)大量歷史數(shù)據(jù)中的規(guī)律、逼近影響因素和建筑能耗間的函數(shù)關(guān)系[6].能耗預(yù)測領(lǐng)域常用算法包括隨機森林(RF)、人工神經(jīng)網(wǎng)絡(luò)(ANN)及支持向量機(SVM)等[7].
建筑運行能耗受到氣象條件和人員使用等多參數(shù)的影響,同時存在隨機事件的擾動,因此能耗變化規(guī)律有著較強的非線性和不確定性.機器學(xué)習(xí)算法中,SVM算法對建筑能耗非線性特性有較好的擬合能力[8]且運算量較小,因此廣泛應(yīng)用在建筑能耗預(yù)測領(lǐng)域[9].此外,當(dāng)前多數(shù)預(yù)測模型僅給出能耗預(yù)測值,模型預(yù)測誤差與建筑運行不確定性無法區(qū)分.僅使用單一的預(yù)測值難以全面反映建筑運行狀態(tài),而使用置信區(qū)間可以處理建筑能耗預(yù)測的不確定性問題[10].
針對上述問題,本文采用實際辦公建筑的歷史運行能耗數(shù)據(jù)和當(dāng)?shù)貧庀髷?shù)據(jù),基于SVM算法建立了建筑逐時總能耗的預(yù)測模型.通過單變量模型驗證模型輸入變量,使用網(wǎng)格搜索優(yōu)化模型超參數(shù),從而提高了模型的預(yù)測精度.在高精度預(yù)測模型對運行非線性規(guī)律進(jìn)行解釋的基礎(chǔ)上,結(jié)合擬合誤差的置信區(qū)間,使用預(yù)測區(qū)間描述建筑運行的不確定性,最終實現(xiàn)對辦公建筑能耗變化趨勢及波動范圍的準(zhǔn)確預(yù)測.
SVM是一種強大的有監(jiān)督的機器學(xué)習(xí)方法,可以有效處理非線性的分類和回歸問題,并且能高效地處理高維空間問題[11].使用SVM算法處理回歸問題時,算法根據(jù)訓(xùn)練集數(shù)據(jù),逼近變量間的關(guān)系函數(shù):
f(x)=〈w,φ(x)〉+b
(1)
式中:x為輸入向量;w為權(quán)值系數(shù);φ(x)為映射函數(shù);b為偏置.
SVM算法在逼近函數(shù)關(guān)系過程中,通過最小化權(quán)值系數(shù)平方和來保證函數(shù)關(guān)系的平滑;同時容許小于ε的誤差,以提高模型的泛化性能[12].因此通過求解下述二次凸規(guī)劃問題確定w和b[13]:
(2)
引入隱式的核函數(shù)替代顯式的φ(x),將非線性問題映射到高維空間,從而構(gòu)造出線性可分離平面并求解[13].為解決建筑能耗與影響因子間的非線性關(guān)聯(lián),選擇常用于處理非線性問題的核函數(shù)為徑向基函數(shù)(RBF):
(3)
C、ε及γ參數(shù)被稱為模型超參數(shù),其在模型訓(xùn)練過程中為常數(shù),調(diào)節(jié)模型超參數(shù)可以改變模型性能.
為對比不同模型間的預(yù)測性能,量化評價模型的預(yù)測誤差,利用平均絕對百分比誤差(MAPE)和決定系數(shù)(R2)作為模型誤差評價指標(biāo).其中,MAPE反映誤差與實際值的相對大小.R2為1減去模型未解釋的變量方差與總方差之比,其越接近1則說明模型性能越好.MAPE與R2由分別由下式計算:
(4)
(5)
不斷調(diào)節(jié)模型超參數(shù)來獲得更好的模型評價指標(biāo),從而優(yōu)化模型性能.調(diào)節(jié)超參數(shù)的方法有隨機搜索法、網(wǎng)格搜索法、遺傳算法及粒子群算法等.其中,隨機搜索法穩(wěn)定性較差;而遺傳算法和粒子群算法運算時間過長;網(wǎng)格搜索法在控制計算量的同時,可以搜索較廣的參數(shù)空間.故選取網(wǎng)格搜索法作為超參數(shù)調(diào)節(jié)的方法.網(wǎng)格搜索法通過計算指定的參數(shù)網(wǎng)格中所有節(jié)點,最終確定最優(yōu)參數(shù)組合.本文模型使用Scikit-learn算法庫提供的SVM算法包,該算法包通過對標(biāo)準(zhǔn)數(shù)據(jù)集的測試設(shè)定了默認(rèn)參數(shù),將其默認(rèn)參數(shù)C=1、γ=0.036及ε=0.1作為網(wǎng)格的基準(zhǔn)值,在其附近建立網(wǎng)格[11].使用10為底的指數(shù)網(wǎng)格提升搜索范圍,經(jīng)過在本文數(shù)據(jù)集上的初步測試后,選擇模型可以正常工作的參數(shù)范圍作進(jìn)一步優(yōu)化.各節(jié)點的參數(shù)設(shè)定值分別來自如下集合:C∈{0.01,0.1,1,10,100}、γ∈{0.001,0.01,0.1,1,10}及ε∈{0.001,0.01,0.1,1,10},參數(shù)節(jié)點交叉組成5×5×5的網(wǎng)格.通過交叉驗證計算每個參數(shù)組下的模型性能,訓(xùn)練數(shù)據(jù)被隨機兩等分,使用其中一半數(shù)據(jù)訓(xùn)練模型,另一半數(shù)據(jù)用于驗證模型性能.為提升模型在數(shù)據(jù)上整體的擬合能力,以最大化R2為目標(biāo)進(jìn)行優(yōu)化.
辦公建筑能耗預(yù)測主要內(nèi)容為建立模型與輸出預(yù)測結(jié)果,圖1所示為基于SVM的建筑能耗預(yù)測流程.建立模型的步驟包含準(zhǔn)備數(shù)據(jù)集與訓(xùn)練模型.數(shù)據(jù)集為建筑的歷史能耗數(shù)據(jù)和運行信息.對數(shù)據(jù)進(jìn)行預(yù)處理以適用于模型.根據(jù)數(shù)據(jù)的類型,數(shù)據(jù)被分為輸入變量和輸出變量.按照時間節(jié)點,數(shù)據(jù)集被劃分為訓(xùn)練集和測試集.算法訓(xùn)練過程中,先由網(wǎng)格搜索算法提供模型超參數(shù),之后根據(jù)訓(xùn)練集數(shù)據(jù),由SVM算法求解權(quán)值系數(shù).由網(wǎng)格搜索優(yōu)化確定最優(yōu)模型超參數(shù)后,使用全部訓(xùn)練集數(shù)據(jù)重新訓(xùn)練得到最終模型.根據(jù)測試集輸入,模型計算對應(yīng)預(yù)測值,對照測試集真實能耗值計算模型性能指標(biāo).最后結(jié)合模型擬合誤差,輸出辦公建筑能耗的預(yù)測區(qū)間.
圖1 基于SVM的建筑能耗預(yù)測流程Fig.1 Flowchart of building energy consumption forecast based on SVM
采用上海市某辦公建筑實際運行過程中能耗監(jiān)測系統(tǒng)采集的逐時總能耗數(shù)據(jù).數(shù)據(jù)集包含2017~2018年內(nèi)共 15 360 個數(shù)據(jù)點.建筑總能耗E隨時間T的逐時變化如圖2所示.辦公建筑能耗有如下特點:① 季節(jié)性,可分為供暖季節(jié)、過渡季節(jié)及供冷季節(jié);② 較強的周期性,與辦公人員的作息規(guī)律一致.
圖2 2018年辦公建筑逐時總能耗曲線Fig.2 Curves of hourly energy consumption of office building in 2018
建立預(yù)測模型還需要對應(yīng)的影響因素數(shù)據(jù),包括室外氣象參數(shù)和建筑運行信息.室外氣象參數(shù)由氣象監(jiān)測站數(shù)據(jù)取得[14],為逐時數(shù)據(jù),包括室外溫濕度、風(fēng)速及降雨量等.辦公建筑運行的規(guī)律性較強,因此將建筑運行特征、歷史能耗數(shù)據(jù)等與建筑運行規(guī)律相關(guān)的數(shù)據(jù)作為運行信息輸入.
訓(xùn)練模型前進(jìn)行數(shù)據(jù)清洗和數(shù)據(jù)歸一化.建筑能耗數(shù)據(jù)常見異常值有負(fù)值和過大值兩類,針對本文數(shù)據(jù)集采用[0,1 000]的區(qū)間篩選并剔除異常數(shù)據(jù),之后通過線性插值對缺失點進(jìn)行補全.數(shù)據(jù)歸一化對所有數(shù)據(jù)進(jìn)行比例縮放,映射到[0,1]區(qū)間.數(shù)據(jù)歸一化保證了模型的計算穩(wěn)定性,最終模型輸出值由逆向區(qū)間縮放得到預(yù)測值.
本案例的預(yù)測情景為不同季節(jié)條件下預(yù)測辦公建筑未來一段時間的能耗曲線.為使數(shù)據(jù)模型適用于辦公樓的能耗預(yù)測情景,需要確定合適的模型輸入變量.模型輸入變量為建筑能耗的影響因素,包括氣象參數(shù)(室外氣溫,室外相對濕度,風(fēng)速)、運行規(guī)律變量(當(dāng)前時刻,工作日與否)及時間序列參數(shù).
運行規(guī)律中,對當(dāng)前時刻變量進(jìn)行One-hot編碼,將數(shù)值型的時刻轉(zhuǎn)化為類別變量.時間序列參數(shù)來自建筑歷史能耗值序列.通過自相關(guān)函數(shù)(ACF)篩選該參數(shù),ACF值反映了該序列與其自身在N個小時前的序列的相關(guān)性[15].對辦公樓全年能耗數(shù)據(jù)計算ACF值,如圖3所示.在盡可能減少輸入的前提下,可選擇1 h、24 h前能耗值作為輸入變量.
圖3 辦公建筑能耗序列自相關(guān)函數(shù)值Fig.3 Autocorrelation function for energy consumption sequence of office building
鑒于建筑能耗的非線性特性,使用模型檢驗法選擇變量.使用單變量模型擬合數(shù)據(jù),計算模型在訓(xùn)練集上的性能指標(biāo).使用默認(rèn)參數(shù)的SVM模型,在夏季能耗數(shù)據(jù)(7~8月)上,對比各單變量模型的R2,反映該變量與模型輸出的相關(guān)性,結(jié)果如表1所示.
表1 單變量模型檢驗的R2Tab.1 R2 of univariate model test
實際應(yīng)用場景中,為獲取未來一整天的能耗預(yù)測曲線,不使用1 h前能耗值作為輸入.工作日與否變量在逐時預(yù)測里相關(guān)性略低,但仍是反映逐周能耗變化規(guī)律的重要變量.最終確定的模型輸入變量有當(dāng)前時刻、工作日與否、室外氣溫、室外相對濕度及24 h前能耗值.
分別在供暖季節(jié)、過渡季節(jié)和供冷季節(jié)進(jìn)行建模預(yù)測,并檢驗?zāi)P皖A(yù)測性能.受季節(jié)條件限制,使用不同季節(jié)中前兩個月數(shù)據(jù)作為訓(xùn)練集.為減少驗證結(jié)果的偶然性,連續(xù)預(yù)測接下來一周的逐時能耗曲線.供暖季節(jié)訓(xùn)練集時間為2017年12月~2018年1月,預(yù)測2月第1周能耗.過渡季節(jié)訓(xùn)練集為2018年3月~2018年4月,預(yù)測5月第1周能耗.供冷季節(jié)訓(xùn)練集時間為2018年7月~2018年8月,預(yù)測9月第1周能耗.
使用訓(xùn)練集數(shù)據(jù)訓(xùn)練模型后,用得到的模型分別計算一次訓(xùn)練集和測試集,檢驗?zāi)P蛿M合訓(xùn)練數(shù)據(jù)和預(yù)測未知數(shù)據(jù)的能力.分別使用默認(rèn)參數(shù)的SVM與網(wǎng)格搜索優(yōu)化的SVM模型(GS-SVM)訓(xùn)練及檢驗,結(jié)果如表2所示.
表2 不同季節(jié)下的模型性能對比Tab.2 Comparison of model performance in different seasons
所有季節(jié)條件下,GS-SVM的模型擬合及預(yù)測的性能指標(biāo)均優(yōu)于默認(rèn)參數(shù)下的SVM模型,說明網(wǎng)格搜索法優(yōu)化模型超參數(shù)有效提升了模型性能.模型存在季節(jié)間的差異,供暖季節(jié)和供冷季節(jié)的預(yù)測性能指標(biāo)略優(yōu)于過渡季節(jié).GS-SVM在不同季節(jié)預(yù)測時,均需要重新搜索最優(yōu)的模型超參數(shù).使用算術(shù)平均代表模型全年整體性能.SVM的整體MAPE為11.0%,整體R2為0.925.GS-SVM的整體MAPE為7.56%,降低31.3%;整體R2為0.953,模型未解釋方差比例(1-R2)降低37.3%.說明該預(yù)測方法能較好擬合建筑的非線性變化特性.
通過GS-SVM模型獲得了高精度的模型預(yù)測,還需要對建筑運行的不確定性進(jìn)行描述,用以表現(xiàn)建筑能耗的變化情況.將GS-SVM模型擬合的誤差e視為滿足獨立同分布條件的隨機變量,采用置信度為(1-α)的置信區(qū)間[eα/2,e1-α/2],即數(shù)據(jù)有(1-α)的概率落入置信區(qū)間內(nèi),eα/2、e1-α/2分別表示上、下分位點.在模型輸出上疊加置信區(qū)間,預(yù)測值轉(zhuǎn)化為預(yù)測區(qū)間.就預(yù)測模型而言,預(yù)測區(qū)間補充了當(dāng)前模型未納入的隱藏變量.針對建筑運行,預(yù)測區(qū)間基于歷史規(guī)律,表現(xiàn)了隨機擾動下的建筑能耗正常波動范圍.
辦公建筑最主要的相關(guān)變量為當(dāng)前時刻,因此按各個時刻將誤差分類.將擬合數(shù)據(jù)中每個時刻的所有誤差值排序,取α=0.1,將排序位于95%和5%的誤差值分別作為上下分位點,形成置信度0.9的誤差置信區(qū)間.按小時不同,預(yù)測值疊加誤差上下限后,得到辦公樓夏季的總能耗預(yù)測區(qū)間,以供冷季節(jié)為例,結(jié)果如圖4所示.
圖4 供冷季節(jié)辦公樓總能耗預(yù)測區(qū)間示意圖Fig.4 Diagram of energy consumption prediction interval for office building in cooling seasons
區(qū)間內(nèi)的能耗值視為已被準(zhǔn)確預(yù)測,不計算誤差.對區(qū)間外的點計算與上下限之間的誤差,得到更新后的MAPE.同時統(tǒng)計實際能耗位于區(qū)間內(nèi)的比例Pin.針對不同季節(jié)的模型,結(jié)果如表3所示.
表3 預(yù)測區(qū)間的預(yù)測性能Tab.3 Forecast performance of prediction interval
加入預(yù)測區(qū)間后,MAPE<1.5%,Pin>75%,說明預(yù)測區(qū)間較好地覆蓋了建筑的能耗變化范圍.使用預(yù)測區(qū)間的方法可以更全面反映建筑運行狀態(tài).
針對建筑運行能耗因非線性及不確定性較強而難以預(yù)測的問題,本文提出了一種基于SVM的建筑能耗預(yù)測方法,可有效地預(yù)測建筑能耗變化趨勢.在辦公樓案例上的驗證結(jié)果表明:
(1) 與默認(rèn)參數(shù)的SVM模型相比,GS-SVM模型整體MAPE和1-R2分別降低31.3%與37.3%,模型誤差顯著減小,更好地擬合了建筑能耗的非線性特性;
(2) 使用能耗預(yù)測區(qū)間替換能耗預(yù)測值,各季節(jié)中MAPE均減小至1.5%以下,反映了建筑在不確定條件下的能耗波動范圍.本方法在不同季節(jié)的測試中預(yù)測性能均較優(yōu)且相互差異小,具備全年不同工況下穩(wěn)定運行的潛力,可為建筑運行診斷及優(yōu)化提供參考.