一種基于改進(jìn)pso-bp神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)預(yù)測領(lǐng)域,尤其是一種基于改進(jìn)PS0-BP神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測方 法。
【背景技術(shù)】
[0002] 在自動化控制領(lǐng)域,特別是在石油化工、發(fā)電站等控制領(lǐng)域,對運行設(shè)備進(jìn)行實時 監(jiān)控是至關(guān)重要的。在實時監(jiān)控時需要采集不同類型的數(shù)據(jù),包括溫度、水位、壓力、流量 等。在實際運行設(shè)備監(jiān)控中,傳感器會出現(xiàn)數(shù)據(jù)"壞點"的情況,而這些數(shù)據(jù)"壞點"將會直 接影響設(shè)備監(jiān)控系統(tǒng)的判斷。出現(xiàn)數(shù)據(jù)"壞點"的情況主要有以下兩種:1、由于數(shù)據(jù)源的不 穩(wěn)定,使數(shù)據(jù)出現(xiàn)突然跳動。2、由于傳感器在使用中長期未檢修或更換,會逐漸失效,導(dǎo)致 采集的數(shù)據(jù)"壞點"越來越多。在以上兩種情況中,第二種情況較為普遍。
[0003] 為了提高采集到的數(shù)據(jù)的可靠性,減少數(shù)據(jù)"壞點"對采集數(shù)據(jù)的影響,通常采用 的方法有以下幾種方法:1、采用冗余控制,在同一數(shù)據(jù)區(qū)域采用多個傳感器進(jìn)行數(shù)據(jù)采集, 提高數(shù)據(jù)可靠性,但同時增加了硬件成本。2、在安全閾值前加設(shè)報警信號來提早警示設(shè)備 運行人員,但這必須配備設(shè)備運行人員且運行人員將處于高度警戒狀態(tài)。3、增加合理的延 時時間用于消除數(shù)據(jù)"壞點"的影響,但可靠程度提高有限,還可能影響設(shè)備的安全運行。以 上方法都存在一些自身缺點,而無法克服。
【發(fā)明內(nèi)容】
[0004] 為了克服現(xiàn)有的數(shù)據(jù)"壞點"處理方法的無法兼顧可靠性和硬件成本的不足,本發(fā) 明提出一種基于改進(jìn)PS0-BP神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測方法,其能夠有效處理數(shù)據(jù)"壞點",兼顧 可靠性和硬件成本。
[0005] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如以下內(nèi)容:
[0006] 一種基于改進(jìn)PS0-BP神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測方法,該方法包括如下步驟:
[0007] 1)、BP神經(jīng)網(wǎng)絡(luò)模型構(gòu)建,過程如下:
[0008] (1. 1)輸入層和輸出層節(jié)點數(shù)確定
[0009] 神經(jīng)網(wǎng)絡(luò)模型用公式描述為:
[0010] T0Ut=f(Tinl,Tin2,...,T inn) (1)
[0011] 式中:Twt是神經(jīng)網(wǎng)絡(luò)需要預(yù)測的數(shù)據(jù)值,T inl~T inn分別是神經(jīng)網(wǎng)絡(luò)輸入層輸入 的n個數(shù)據(jù)值;
[0012] (1.2)隱層節(jié)點數(shù)確定
[0013] BP神經(jīng)網(wǎng)絡(luò)隱層層數(shù)采用1層,在隱層節(jié)點的選擇上使用公式⑵來確定:
[0014] p =yn + q + a (2)
[0015] 式中:n為輸入層節(jié)點數(shù),q為輸出層節(jié)點數(shù),a為1~10之間的常數(shù);
[0016] BP神經(jīng)網(wǎng)絡(luò)模型的基本結(jié)構(gòu)公式:
[0017] Y = Sigmoid [W^SigmoicKff^X-O^-Oj (3)
[0018] 式中:X為BP神經(jīng)網(wǎng)絡(luò)輸入矩陣;Y為BP神經(jīng)網(wǎng)絡(luò)輸出矩陣W2分別為BP神 經(jīng)網(wǎng)絡(luò)中輸入層到隱層、隱層到輸出層的連接權(quán)值矩陣辦為為BP神經(jīng)網(wǎng)絡(luò)中輸入層到隱 層、隱層到輸出層的閾值矩陣,激勵函數(shù)Sigmoid為
【主權(quán)項】
1. 一種基于改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測方法,其特征在于:該方法包括如下步 驟: 1) 、BP神經(jīng)網(wǎng)絡(luò)模型構(gòu)建,過程如下: (I. 1)輸入層和輸出層節(jié)點數(shù)確定 神經(jīng)網(wǎng)絡(luò)模型用公式描述為: Tout=f(Tinl,Tin2,…,TiJ (1) 式中:Trat是神經(jīng)網(wǎng)絡(luò)需要預(yù)測的數(shù)據(jù)值,Tinl~Tinn分別是神經(jīng)網(wǎng)絡(luò)輸入層輸入的n個 數(shù)據(jù)值; (1. 2)隱層節(jié)點數(shù)確定 BP神經(jīng)網(wǎng)絡(luò)隱層層數(shù)采用1層,在隱層節(jié)點的選擇上使用公式(2)來確定:
式中m為輸入層節(jié)點數(shù),q為輸出層節(jié)點數(shù),a為1~10之間的常數(shù); BP神經(jīng)網(wǎng)絡(luò)模型的基本結(jié)構(gòu)公式: Y=Sigmoid[ff2*Sigmoid(W1^X-O1)-O2] (3) 式中:X為BP神經(jīng)網(wǎng)絡(luò)輸入矩陣;Y為BP神經(jīng)網(wǎng)絡(luò)輸出矩陣W1,W2分別為BP神經(jīng)網(wǎng) 絡(luò)中輸入層到隱層、隱層到輸出層的連接權(quán)值矩陣;O1,O2SBP神經(jīng)網(wǎng)絡(luò)中輸入層到隱層、
2) 、采用改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型構(gòu)建,過程如下: (2. 1)粒子群算法粒子速度改進(jìn) 粒子速度調(diào)整公式為:
式中:4為當(dāng)前需要速度調(diào)整粒子的第k代位置矢量;Cl、c2、C3為學(xué)習(xí)因子;rpr2、r3 為[〇, 1]之間的隨機數(shù); (2. 2)粒子群算法粒子慣性權(quán)重改進(jìn) 慣性權(quán)重w是用來調(diào)整粒子前一次的速度對當(dāng)前速度的影響程度,通過二次函數(shù)擬合 推導(dǎo),提出如下權(quán)值調(diào)整公式:
式中為初始慣性權(quán)重,wmin為最終慣性權(quán)重,k_為最大迭代次數(shù),k為當(dāng)前迭代次 數(shù); (2. 3)確定粒子群算法中粒子維數(shù) 根據(jù)已確定的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,確定BP神經(jīng)網(wǎng)絡(luò)中連接權(quán)值和閾值總數(shù),連接權(quán) 值和閾值總數(shù)公式: d=np+pq+p+q(6) 式中:d為連接權(quán)值和閾值總數(shù),n為輸入層節(jié)點數(shù),p為隱層節(jié)點數(shù),q為輸出層節(jié)點 數(shù); (2.4)改進(jìn)粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)實現(xiàn) 通過對粒子速度和位置調(diào)整使得BP神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值不斷更新?lián)Q代,使得BP神經(jīng)網(wǎng)絡(luò)總誤差小于設(shè)定值或者達(dá)到迭代次數(shù),過程如下: (2. 4. 1)根據(jù)BP神經(jīng)網(wǎng)絡(luò)的閾值、權(quán)值來確定粒子維數(shù),并產(chǎn)生初始粒子群;
或達(dá)到迭代次數(shù)為原則,評價每一代粒子群中的所有個體,并從中找到當(dāng)前最優(yōu)位置Pi,再 與已獲得的最優(yōu)位置Pg進(jìn)行比較生成新的Pg,經(jīng)過多次迭代,直到找到全局最優(yōu)位置Pg; (2. 4. 3)依據(jù)pg確定BP神經(jīng)網(wǎng)絡(luò)的初始連接權(quán)值和閾值; (2. 4. 4)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),得到最終的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型; (2. 4. 5)訓(xùn)練結(jié)束; 3)、數(shù)據(jù)預(yù)測模塊生成及應(yīng)用 使用MATLAB7. 1實現(xiàn)(2.4)的設(shè)計流程,得到最終的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,選用MATLAB7. 1和VC6作為開發(fā)工具將預(yù)測模型轉(zhuǎn)換成DLL文件;按步驟分別在MATLAB中進(jìn)行 mex-setup,mbuild-setup操作,設(shè)置好編譯器;在設(shè)置完參數(shù)之后,命令行中輸入111(^-Wcpplib:shujuyuce_Tlink:libshujuyuce.m生成DLL文件;生成的DLL文件由編程軟 件調(diào)用,將預(yù)測數(shù)據(jù)與采集數(shù)據(jù)進(jìn)行對比,以實際采集數(shù)據(jù)為準(zhǔn),計算預(yù)測數(shù)據(jù)與采集數(shù)據(jù) 之差是否大于設(shè)定閾值,若大于設(shè)定閾值則視為數(shù)據(jù)"壞點"。
【專利摘要】一種基于改進(jìn)PSO-BP神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測方法,通過對傳感器采集到的連續(xù)若干個數(shù)據(jù)來預(yù)測下一個將要采集的數(shù)據(jù),將預(yù)測數(shù)據(jù)與采集數(shù)據(jù)進(jìn)行對比并判斷采集數(shù)據(jù)是否為數(shù)據(jù)“壞點”,首先根據(jù)傳感器采集到的數(shù)據(jù)的特點確定BP神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點數(shù)、輸出節(jié)點數(shù)和隱層節(jié)點數(shù);接著使用改進(jìn)的粒子群算法來優(yōu)化該BP神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值,并得到最終的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型;然后通過MATLAB7.1和VC6將預(yù)測模型生成DLL文件;最后通過編程軟件調(diào)用DLL文件將預(yù)測數(shù)據(jù)與采集數(shù)據(jù)進(jìn)行對比,并判斷采集到的數(shù)據(jù)是否為數(shù)據(jù)“壞點”。本發(fā)明能夠有效處理數(shù)據(jù)“壞點”,兼顧可靠性和硬件成本。
【IPC分類】G06N3-02
【公開號】CN104715282
【申請?zhí)枴緾N201510078332
【發(fā)明人】趙燕偉, 應(yīng)偉軍, 任設(shè)東, 陳相云, 壽開榮, 冷龍龍
【申請人】浙江工業(yè)大學(xué)
【公開日】2015年6月17日
【申請日】2015年2月13日