專利名稱:基于神經(jīng)網(wǎng)絡(luò)的污水泵站水位預(yù)測方法
技術(shù)領(lǐng)域:
本發(fā)明屬于自動化技術(shù)領(lǐng)域,具體涉及一種基于神經(jīng)網(wǎng)絡(luò)的城市排水系統(tǒng)雨污混流管網(wǎng)泵站水位預(yù)測方法。
背景技術(shù):
隨著城市的飛速發(fā)展,城市排水已成為制約城市快速發(fā)展的瓶頸之一。然而目前 已有的城市排水管網(wǎng)系統(tǒng)中,流經(jīng)各個管網(wǎng)和泵站的污水流量和水位只能靠人經(jīng)驗估計, 系統(tǒng)由此無法預(yù)測洪水的產(chǎn)生、管道溢出,更無法通過調(diào)度泵站機組的開啟來達(dá)到泵站節(jié) 能的目的?,F(xiàn)有城市排水系統(tǒng)數(shù)據(jù)采集與監(jiān)控系統(tǒng)(SCADA系統(tǒng))已積累大量泵站運行數(shù)據(jù), 而神經(jīng)網(wǎng)絡(luò)具有強大的非線性映射能力和良好的容錯性,可以很好的逼近系統(tǒng)的真實狀態(tài) 數(shù)據(jù),它逼近精度高、訓(xùn)練學(xué)習(xí)速度快。因此采用神經(jīng)網(wǎng)絡(luò)方法建立污水泵站預(yù)測模型,對 污水泵站的污水量和水位進(jìn)行預(yù)測,可為城市排水安全運行控制提供依據(jù)。
發(fā)明內(nèi)容
本發(fā)明針對現(xiàn)有技術(shù)的不足,提供一種基于神經(jīng)網(wǎng)絡(luò)的城市污水泵站水位的預(yù)測 方法。該方法的具體步驟是步驟(1)選擇預(yù)測模型變量。采用神經(jīng)網(wǎng)絡(luò)技術(shù)建立污水泵站水位預(yù)測模型,為保證基于數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)建模 有效性,避免純黑箱建模的盲目性,首先利用機理分析和先驗信息,合理選擇預(yù)測模型的輸 入輸出變量?;跈C理分析選擇泵站前池水位為神經(jīng)網(wǎng)絡(luò)模型的輸出變量,選擇影響泵站前池 水位主要因素為神經(jīng)網(wǎng)絡(luò)模型輸入變量①上游泵站提升量;②前池液位變化量;③本泵 站排出量;④開關(guān)泵液位控制設(shè)定量。對于SCADA系統(tǒng)采樣的時間序列數(shù)據(jù),計算輸入序列和輸出序列的自相關(guān)系數(shù)和 互相關(guān)系數(shù),確定互相關(guān)系數(shù)大的輸入序列和輸出序列作為訓(xùn)練樣本。步驟⑵數(shù)據(jù)歸一化處理。訓(xùn)練樣本中的輸入數(shù)據(jù)包含四項,數(shù)量級相差較大,為保證各因素同等地位,加快 收斂速度,對數(shù)據(jù)進(jìn)行歸一化處理,轉(zhuǎn)化為W,1]區(qū)間范圍的值i。<formula>formula see original document page 3</formula>其中Xmax為輸入數(shù)據(jù)中的最大值,Xmin為輸入數(shù)據(jù)中的最小值。X為輸入數(shù)據(jù),i為 輸入數(shù)據(jù)歸一化處理后的值。步驟(3)搭建BP神經(jīng)網(wǎng)絡(luò)框架。調(diào)用Matlab7. 1神經(jīng)網(wǎng)絡(luò)工具箱中的newf f函數(shù)建立BP神經(jīng)網(wǎng)絡(luò),Net = newff(PR, [s1; s2,…,Si],(TF1, TF2,…,TFj,BTF, BLF, PF) ;Net 為 BP 神經(jīng)網(wǎng)絡(luò)框架,PR為輸入矩陣中由最大元素和最小元素決定的一個取值范圍,Si為第i層神經(jīng)元的個數(shù),TFi為第i層的傳遞函數(shù),1 ^ i ^ N1, N1為神經(jīng)網(wǎng)絡(luò)總層數(shù),BTF為BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù), BLF為權(quán)值和偏置值,PF為網(wǎng)絡(luò)性能函數(shù)。步驟(4)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)。具體方法是a、初始化BP神經(jīng)網(wǎng)絡(luò),利用隨機函數(shù)產(chǎn)生的值賦值給權(quán)值和偏置值,然后調(diào)用 init函數(shù)來初始化BP神經(jīng)網(wǎng)絡(luò)。b、設(shè)置網(wǎng)絡(luò)訓(xùn)練次數(shù)和訓(xùn)練目標(biāo)誤差。C、設(shè)置訓(xùn)練數(shù)據(jù)為輸入矩陣P,設(shè)置目標(biāo)值為矩陣T,調(diào)用Matlab7. 1神經(jīng)網(wǎng)絡(luò)工 具箱中的train函數(shù)對BP神經(jīng)網(wǎng)絡(luò)Net進(jìn)行數(shù)據(jù)訓(xùn)練直至收斂,Net = train (Net, P,Τ)。步驟(5)測試BP神經(jīng)網(wǎng)絡(luò)。對訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,將歷史數(shù)據(jù)組成泵站前池水位預(yù)測網(wǎng)絡(luò)測試 矩陣P_test,直接調(diào)用Matlab7. 1神經(jīng)網(wǎng)絡(luò)工具箱中的sim函數(shù),D = sim(Net, P_test), 對測試矩陣進(jìn)行仿真,其中D為目標(biāo)函數(shù)。步驟(6)數(shù)據(jù)反歸一化處理。對測試所得的污水泵站前池水位數(shù)據(jù)按照公式x’ = <im +^xLx 進(jìn)行反歸一 化處理,其中X'為反歸一化處理后的泵站前池水位數(shù)據(jù),; 為仿真測試得到的泵站前池水 位數(shù)據(jù),X' _為泵站前池水位數(shù)據(jù)中的最大值,X' min為泵站前池水位數(shù)據(jù)中的最小值。本發(fā)明將利用計算機的仿真計算能力,搭建一個誤差反向傳播(BP)神經(jīng)網(wǎng)絡(luò),從 泵站運行歷史數(shù)據(jù)中自動獲取知識,逐步地把新知識結(jié)合到其映射函數(shù)中,從而實現(xiàn)非線 性函數(shù)的逼近,能夠?qū)ξ鬯谜玖髁亢退贿M(jìn)行準(zhǔn)確的預(yù)報。本發(fā)明方法的有益效果1. BP神經(jīng)網(wǎng)絡(luò)具有逼近非線性映射函數(shù)的能力,因此利用泵站運行歷史數(shù)據(jù)來預(yù) 測泵站前池水位,比傳統(tǒng)恒定流計算方法得到的預(yù)測精度高。2.基于BP神經(jīng)網(wǎng)絡(luò)的污水泵站前池水位預(yù)測避免了求解傳統(tǒng)基于圣維南方程組 的水力學(xué)模型,同時也避免計算機求解對模型邊界條件等基礎(chǔ)數(shù)據(jù)精度的要求,只需利用 大量的泵站歷史運行數(shù)據(jù),實用更強。3.增加BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)的長度、輸入矩陣的維數(shù),提高計算機的計算速度, 能提高預(yù)測精度。
圖1為磁帶廠泵站前池液位自相關(guān)曲線圖;圖2為磁帶廠泵站前池液位與上游泵站提升量的互相關(guān)曲線圖。
具體實施例方式以杭州排水一污線磁帶廠泵站為例,開展基于BP神經(jīng)網(wǎng)絡(luò)的污水泵站水位預(yù)測 建模具體實施方式
。步驟(1)預(yù)測模型變量選擇(a)機理分析。模型的輸出為泵站前池液位,給定前池截面積,前池截面積乘以泵 站前池水位可求得前池儲水量的變化。根據(jù)流量平衡定律,泵站前池儲水量=泵站前池的進(jìn)水量-泵站污水排出量,其中進(jìn)水量主要為上游泵站的排出量和本地污水入流之和。由排水系統(tǒng)的SCADA系統(tǒng)可知各泵站的污水排出量,若已知上游泵站排出污水流入到該泵站 的流經(jīng)時間(滯后時間)及本地污水入流量則可確定本泵站前池儲水量,其中滯后時間和 本地污水入流量具有不確定性。現(xiàn)有污水泵站控制方式為液位控制,泵站的進(jìn)水量和開關(guān) 泵的設(shè)定液位值有關(guān)?;谏鲜鰴C理分析可確定神經(jīng)網(wǎng)絡(luò)模型的輸入為4項上游泵站提 升量、前池液位變化量、本泵站污水排出量和開關(guān)泵控制液位設(shè)定量。(b)相關(guān)性分析。對于SCADA系統(tǒng)采樣的時間序列數(shù)據(jù),基于變量的自相關(guān)性和互 相關(guān)性分析確定模型的輸入序列,選擇與輸出序列的互相關(guān)系數(shù)大的序列組成訓(xùn)練樣本。以杭州市磁帶廠泵站為例,泵站的前池液位自相關(guān)和前池液位與上游泵站提升量 的互相關(guān)性分析曲線如圖1和圖2所示。由互相關(guān)曲線分析,前池液位與上游泵站提升量 的互相關(guān)性在[20 30]增加??紤]模型精度,采用N = 10的延遲單元,即將連續(xù)10個時段 的前池液位量和上游泵站提升量,前20到30時刻的上游泵站提升量及液位控制設(shè)定量為 輸入,數(shù)據(jù)時間間隔為1分鐘。令A(yù)矩陣為上游泵站提升量,B矩陣為前池液位值,C矩陣為本泵站的排出量,D矩 陣為開關(guān)泵液位設(shè)定量。則輸入矩陣P = [ABC D],具體的排列方式為<formula>formula see original document page 5</formula>
其中ai到aN_2(1為第1時刻到N-20時刻的上游泵站提升量,bn到bN_1(1為第11個時刻到第N-IO個時刻的污水泵站前池水位值,C11到cN_1(1為第11個時刻到第N-IO個時刻的本泵站排水量值,dn和dN_1(1為第11個時刻到第N-IO個時刻的泵站開泵設(shè)定水位。相應(yīng)的前池液位目標(biāo)輸出矩陣<formula>formula see original document page 5</formula>
步驟(2)數(shù)據(jù)歸一化處理利用歸一化公式<formula>formula see original document page 5</formula>分別對輸入輸出矩陣進(jìn)行歸一化處理。
Biiix min對于輸入矩陣P,具體做法是分別對A,B, C,D四個矩陣進(jìn)行歸一化處理。以A矩
陣為例<formula>formula see original document page 5</formula>對A矩陣中的每一列按照歸一化公式進(jìn)行歸一化處理,共處理10列。再依次對B, C,D矩陣進(jìn)行類似的處理,歸一化處理后的輸入矩陣為P' = [A' B' C' D']。對于輸出矩陣T = [b31 b32…bN]T,Xi為待處理的前池水位數(shù)據(jù),Xmin為前池水位 數(shù)據(jù)中的最小值,Xmax為前池水位數(shù)據(jù)中的最大值,i為歸一化處理之后的前池水位值。歸一 化后的輸入矩陣為T'。
步驟(3)構(gòu)建BP神經(jīng)網(wǎng)絡(luò)搭建BP神經(jīng)網(wǎng)絡(luò)框架,調(diào)用Matlab. 1函數(shù)庫中的newff函數(shù),Net = newff (threshold, [20,1],, tansig', ‘ purelin', trainlm)其中Threshold是一個40*1的矩陣定義40個輸入輸出向量的最小值和最大值;[20,1]表示第一層有20個神經(jīng)元,第二層有1個神經(jīng)元;tansig為輸入層傳遞函數(shù); purelin為輸出層傳遞函數(shù);trainlm為基于l_m算法的訓(xùn)練函數(shù)。步驟⑷訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)a.初始化網(wǎng)絡(luò)net. initFcn用來決定整個網(wǎng)絡(luò)的初始化函數(shù)。參數(shù)net. layer {i}. initFcn 用來決定每一層的初始化函數(shù)。initwb函數(shù)根據(jù)每一層自己的初始化參數(shù)(net. inputffeights{i, j}. initFcn)初始化權(quán)重矩陣和偏置,初始化權(quán)重通常設(shè)為rands,具體 方法如下net. layers {1}. initFcn =,initwb,;net. inputffeights {1,1}. initFcn =,rands';net. Iayerffeights {2,1}. initFcn =,rands';net. biases {1,1}. initFcn =' rands';net. biases {2,1}. initFcn =' rands';net = init(net);net. IW{1,1}為輸入層到隱含層的權(quán)重矩陣net. Lff {2,1}為隱含層和輸出層間的權(quán)重矩陣;net.b{l,l}為隱含層的閥值向量,net.b{2,l}為輸出接點的閥值;b.設(shè)置網(wǎng)絡(luò)訓(xùn)練次數(shù)、訓(xùn)練目標(biāo)誤差及用來顯示的步數(shù)net. trainParam. epochs = 2000 ;net. trainParam. goal = 0. 0008 ;net. trainParam. show = 100 ;設(shè)置網(wǎng)絡(luò)訓(xùn)練次數(shù)為2000步,訓(xùn)練目標(biāo)誤差為0. 0008,顯示訓(xùn)練步數(shù)為100步。c.利用輸入矩陣P'和目標(biāo)矩陣設(shè)為T',通過調(diào)用train函數(shù),net = train (net, P',T')進(jìn)行污水泵站前池水位預(yù)測網(wǎng)絡(luò)訓(xùn)練直至收斂。步驟(5)網(wǎng)絡(luò)測試將用于測試的歷史數(shù)據(jù)按照步驟(1)中的輸入矩陣格式組成用于污水泵站前池 水位網(wǎng)絡(luò)測試的矩陣P_test,再按照步驟(2)進(jìn)行歸一化處理,歸一化后的測試矩陣為 P' _test。調(diào)用Matlab工具箱中的simO函數(shù),對訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行仿真。調(diào)用程序代碼 為D = sim(net, p' _test) ;D矩陣即為污水泵站前池水位預(yù)測值。步驟(6)反歸一化處理對測試所得的泵站前池水位數(shù)據(jù)按照公式X' = Xmin +x(xmm 進(jìn)行反歸一化 處理,其中X'為反歸一化處理后最終的前池液位數(shù)據(jù),$為仿真測試得到的前池液位數(shù)據(jù), Xfflax為前池液位數(shù)據(jù)中的最大值,Xmin為前池液位數(shù)據(jù)中的最小值。反歸一化后的污水泵站 前池水位為T' _test,即測試所得到的污水泵站前池水位為T' _test。
權(quán)利要求
基于神經(jīng)網(wǎng)絡(luò)的污水泵站水位預(yù)測方法,其特征在于該方法包括如下步驟步驟(1)選擇預(yù)測模型變量,確定訓(xùn)練樣本;具體方法為利用機理分析和先驗信息,選擇預(yù)測模型的輸入變量和輸出變量,輸入變量包括上游泵站提升量、前池液位變化量、本泵站排出量、開關(guān)泵液位控制設(shè)定量;輸出變量為泵站前池水位;對于采集與監(jiān)控系統(tǒng)采樣的時間序列數(shù)據(jù),計算輸入序列和輸出序列的自相關(guān)系數(shù)和互相關(guān)系數(shù),確定互相關(guān)系數(shù)大的輸入序列和輸出序列作為訓(xùn)練樣本;所述的輸入序列由輸入變量組成,包括上游泵站提升量輸入序列、前池液位變化量輸入序列、本泵站排出量輸入序列和開關(guān)泵液位控制設(shè)定量輸入序列;所述的輸出序列為泵站前池水位序列;步驟(2)數(shù)據(jù)歸一化處理,對輸入序列和輸出序列中的數(shù)據(jù)進(jìn)行歸一化處理,轉(zhuǎn)化為
范圍的值 <mrow><mover> <mi>x</mi> <mo>^</mo></mover><mo>=</mo><mfrac> <mrow><mi>x</mi><mo>-</mo><msub> <mi>x</mi> <mi>min</mi></msub> </mrow> <mrow><msub> <mi>x</mi> <mi>max</mi></msub><mo>-</mo><msub> <mi>x</mi> <mi>min</mi></msub> </mrow></mfrac> </mrow>其中xmax為輸入數(shù)據(jù)中的最大值,xmin為輸入數(shù)據(jù)中的最小值;x為輸入數(shù)據(jù),為輸入數(shù)據(jù)歸一化處理后的值;步驟(3)搭建BP神經(jīng)網(wǎng)絡(luò)框架,具體方法是調(diào)用Matlab7.1神經(jīng)網(wǎng)絡(luò)工具箱中的newff函數(shù)建立BP神經(jīng)網(wǎng)絡(luò),Net=newff(PR,[s1,s2,...,si],{TF1,TF2,...,TFi},BTF,BLF,PF);Net為BP神經(jīng)網(wǎng)絡(luò)框架,PR為輸入矩陣中由最大元素和最小元素決定的一個取值范圍,si為第i層神經(jīng)元的個數(shù),TFi為第i層的傳遞函數(shù),1≤i≤N1,N1為神經(jīng)網(wǎng)絡(luò)總層數(shù),BTF為BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù),BLF為權(quán)值和偏置值,PF為網(wǎng)絡(luò)性能函數(shù);步驟(4)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò);具體方法是a、初始化BP神經(jīng)網(wǎng)絡(luò),利用隨機函數(shù)產(chǎn)生的值賦值給權(quán)值和偏置值,然后調(diào)用init函數(shù)來初始化BP神經(jīng)網(wǎng)絡(luò);b、設(shè)置網(wǎng)絡(luò)訓(xùn)練次數(shù)和訓(xùn)練目標(biāo)誤差;c、設(shè)置訓(xùn)練數(shù)據(jù)為輸入矩陣P,設(shè)置目標(biāo)值為矩陣T,調(diào)用Matlab7.1神經(jīng)網(wǎng)絡(luò)工具箱中的train函數(shù)對BP神經(jīng)網(wǎng)絡(luò)Net進(jìn)行數(shù)據(jù)訓(xùn)練直至收斂,Net=train(Net,P,T);步驟(5)測試BP神經(jīng)網(wǎng)絡(luò);對訓(xùn)練完成的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,將歷史數(shù)據(jù)組成泵站前池水位預(yù)測網(wǎng)絡(luò)測試矩陣P_test,直接調(diào)用Matlab7.1神經(jīng)網(wǎng)絡(luò)工具箱中的sim函數(shù),D=sim(Net,P_test),對測試矩陣進(jìn)行仿真,其中D為目標(biāo)函數(shù);步驟(6)數(shù)據(jù)反歸一化處理;對測試所得的污水泵站前池水位數(shù)據(jù)按照公式進(jìn)行反歸一化處理,其中x′為最終所預(yù)測得到的泵站前池水位數(shù)據(jù),為仿真測試得到的泵站前池水位數(shù)據(jù),x′max為泵站前池水位數(shù)據(jù)中的最大值,x′min為泵站前池水位數(shù)據(jù)中的最小值。FSA00000077227400011.tif,FSA00000077227400013.tif,FSA00000077227400021.tif,FSA00000077227400022.tif
全文摘要
本發(fā)明公開了一種基于神經(jīng)網(wǎng)絡(luò)的污水泵站水位預(yù)測方法。本發(fā)明方法首先選擇預(yù)測模型變量,包括出入變量上游泵站提升量、前池液位變化量、本泵站排出量、開關(guān)泵液位控制設(shè)定量,輸出變量泵站前池水位;其次對上述的數(shù)據(jù)進(jìn)行歸一化處理;然后搭建BP神經(jīng)網(wǎng)絡(luò)框架,并訓(xùn)練BP神經(jīng)網(wǎng)絡(luò);最后對經(jīng)神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)反歸一化處理。本發(fā)明方法比傳統(tǒng)恒定流計算方法得到的預(yù)測精度更高。
文檔編號G05B13/02GK101819407SQ20101014018
公開日2010年9月1日 申請日期2010年4月2日 優(yōu)先權(quán)日2010年4月2日
發(fā)明者何必仕, 周曉慧, 左燕, 徐哲, 薛安克, 鄔玲懿 申請人:杭州電子科技大學(xué)