一種基于hgsa-bp算法的傳感器誤差補(bǔ)償方法
【專利摘要】本發(fā)明涉及流量變送器傳感器的信號(hào)處理和應(yīng)用【技術(shù)領(lǐng)域】,特別是一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法。該方法設(shè)計(jì)了一種具有收斂性能好、尋優(yōu)能力和泛化能力強(qiáng)的混合神經(jīng)網(wǎng)絡(luò)模型,即HGSA-BP)算法,并采用HGSA-BP算法對(duì)傳感器進(jìn)行誤差補(bǔ)償;根據(jù)該算法原理,編制了高精度的流量測(cè)量及補(bǔ)償程序,采用VC++、MATLAB和Access數(shù)據(jù)庫(kù)三者的混合編程技術(shù)來(lái)實(shí)現(xiàn)HGSA-BP算法的在線應(yīng)用;完成了流量變送器傳感器的信號(hào)調(diào)理電路設(shè)計(jì),及相應(yīng)的硬件補(bǔ)償電路,以初步校正和補(bǔ)償差壓、絕壓和溫度信號(hào)。本發(fā)明方法通過(guò)仿真調(diào)試和實(shí)際測(cè)試,補(bǔ)償后的傳感器達(dá)到較高的測(cè)試精度。
【專利說(shuō)明】—種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及流量變送器傳感器的信號(hào)處理和應(yīng)用【技術(shù)領(lǐng)域】,特別是一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法。
【背景技術(shù)】
[0002]要獲得較高測(cè)量精度的流量變送器系統(tǒng),必須要有高精度的傳感器配套,而傳感器由于受環(huán)境及自身特性等影響而存在較大的測(cè)量誤差,因此傳感器的補(bǔ)償環(huán)節(jié)設(shè)計(jì)是流量變送器系統(tǒng)設(shè)計(jì)與應(yīng)用的一項(xiàng)重要內(nèi)容。多年來(lái)國(guó)內(nèi)外許多學(xué)者先后發(fā)表了大量有關(guān)傳感器補(bǔ)償技術(shù)的文獻(xiàn),提出了有關(guān)傳感器誤差補(bǔ)償?shù)姆椒?,并已將一些研究成果?yīng)用于工業(yè)生產(chǎn)中,隨著對(duì)流量測(cè)量精度要求的不斷提高,補(bǔ)償理論和方法也隨之發(fā)展。
[0003]近年來(lái),軟件補(bǔ)償算法中的神經(jīng)網(wǎng)絡(luò)及其改進(jìn)算法因其獨(dú)特的優(yōu)勢(shì)在信號(hào)處理、工業(yè)控制等方面的應(yīng)用越來(lái)越廣泛了,相關(guān)的研究報(bào)道已經(jīng)見諸文獻(xiàn),如,李俊等人分別運(yùn)用BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)對(duì)傳感器進(jìn)行溫度誤差補(bǔ)償,通過(guò)MATLAB仿真結(jié)果表明BP網(wǎng)絡(luò)占用資源少、算法容易實(shí)現(xiàn)、計(jì)算相對(duì)簡(jiǎn)單,RBF網(wǎng)絡(luò)訓(xùn)練速度快等優(yōu)點(diǎn)。SkakebA.Khan等人了用ANN神經(jīng)網(wǎng)絡(luò)逆模型對(duì)應(yīng)變式傳感器的環(huán)境非線性因素進(jìn)行了補(bǔ)償,采用Levenberg-Marguardt最快速下降算法,用MATLAB的ANN工具箱實(shí)現(xiàn)。但是這些文獻(xiàn)研究都沒(méi)有對(duì)網(wǎng)絡(luò)進(jìn)行泛化能力的驗(yàn)證,也沒(méi)有將其運(yùn)用到實(shí)際測(cè)量環(huán)境中去,而且,目前常用的BP神經(jīng)網(wǎng)絡(luò)存在容易陷入局部最小值,收斂速度慢等缺點(diǎn),有必要發(fā)展一種有較快收斂速度,減少訓(xùn)練失敗的次數(shù),提高神經(jīng)網(wǎng)絡(luò)的進(jìn)化能力的算法。傳統(tǒng)的GA-BP算法一般不能同時(shí)優(yōu)化網(wǎng)絡(luò)的權(quán)值和結(jié)構(gòu),因此就無(wú)法得到最佳權(quán)值和存在冗余結(jié)構(gòu),而且傳統(tǒng)的優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)方法中還存在不少問(wèn)題,因此本發(fā)明引入了控制基因,可以同時(shí)且有效地對(duì)網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)值進(jìn)行優(yōu)化。另外,由于GA算法存在早熟、局部搜索能力不足等問(wèn)題,因此在遺傳算法中引入模擬退火算法(SA),提高其局部尋優(yōu)能力,加速收斂于全局最優(yōu)解,這樣就形成了改進(jìn)的遺傳模擬退火B(yǎng)P神經(jīng)網(wǎng)絡(luò)算法(Hierarchical Genetic Stimulated Annealingalgorithm - BP Neural Network, HGSA-BP)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種提高傳感器補(bǔ)償精度的基于HGSA-BP算法的傳感器誤差補(bǔ)償方法。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法,包括如下步驟,
步驟S1:采集傳感器輸出信號(hào)數(shù)據(jù),對(duì)該數(shù)據(jù)進(jìn)行A/D轉(zhuǎn)換及歸一化處理,獲得樣本數(shù)
據(jù);
步驟S2:根據(jù)所述步驟SI獲得的樣本數(shù)據(jù)及最大隱含層節(jié)點(diǎn)數(shù),建立初始BP神經(jīng)網(wǎng)絡(luò)模型,以初步確定該BP神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)及權(quán)值參數(shù)的基本解空間;
步驟S3:以最大隱含層節(jié)點(diǎn)數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)為標(biāo)準(zhǔn)進(jìn)行編碼,并確定適應(yīng)度函數(shù);步驟S4:進(jìn)行遺傳操作,得到優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu);
步驟S5:通過(guò)BP算子對(duì)所述步驟S4得到的優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,若達(dá)到傳感器的預(yù)定精度,則保存該BP神經(jīng)網(wǎng)絡(luò);否則繼續(xù)訓(xùn)練,直到滿足預(yù)定精度要求。
[0006]在本發(fā)明實(shí)施例中,采用VC++、MATLAB和Access數(shù)據(jù)庫(kù)三者的混合編程技術(shù)來(lái)實(shí)現(xiàn)HGSA-BP算法的在線測(cè)量及補(bǔ)償程序。
[0007]在本發(fā)明實(shí)施例中,所述步驟S3確定適應(yīng)度函數(shù)的具體過(guò)程為:將BP神經(jīng)網(wǎng)絡(luò)的染色體矩陣求解即得到為BP神經(jīng)網(wǎng)絡(luò)相應(yīng)的權(quán)值、閾值,賦給BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并將訓(xùn)練返回的均方誤差的倒數(shù)作為適應(yīng)度函數(shù)。
[0008]在本發(fā)明實(shí)施例中,所述BP神經(jīng)網(wǎng)絡(luò)的染色體包括三個(gè)基因段,分別為隱含層、隱含層的各個(gè)節(jié)點(diǎn)及節(jié)點(diǎn)相應(yīng)的權(quán)值;上一級(jí)的基因段能夠控制下一級(jí)基因的激活狀態(tài),隱含層層數(shù)及各隱含層的節(jié)點(diǎn)數(shù)根據(jù)基因的值來(lái)進(jìn)行增加或刪除,同時(shí)節(jié)點(diǎn)相應(yīng)的權(quán)值跟
著一起進(jìn)化。
[0009]在本發(fā)明實(shí)施例中,所述基因的值為O或I。
[0010]在本發(fā)明實(shí)施例中,所述步驟S4,具體實(shí)現(xiàn)過(guò)程如下,
設(shè)定初始種群數(shù),確定自適應(yīng)交叉率4和自適應(yīng)變異率&,其公式如下,
【權(quán)利要求】
1.一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法,其特征在于:包括如下步驟, 步驟S1:采集傳感器輸出信號(hào)數(shù)據(jù),對(duì)該數(shù)據(jù)進(jìn)行A/D轉(zhuǎn)換及歸一化處理,獲得樣本數(shù)據(jù); 步驟S2:根據(jù)所述步驟SI獲得的樣本數(shù)據(jù)及最大隱含層節(jié)點(diǎn)數(shù),建立初始BP神經(jīng)網(wǎng)絡(luò)模型,以初步確定該BP神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)結(jié)構(gòu)及權(quán)值參數(shù)的基本解空間; 步驟S3:以最大隱含層節(jié)點(diǎn)數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)為標(biāo)準(zhǔn)進(jìn)行編碼,并確定適應(yīng)度函數(shù); 步驟S4:進(jìn)行遺傳操作,得到優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu); 步驟S5:通過(guò)BP算子對(duì)所述步驟S4得到的優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,若達(dá)到傳感器的預(yù)定精度,則保存該BP神經(jīng)網(wǎng)絡(luò);否則繼續(xù)訓(xùn)練,直到滿足預(yù)定精度要求。
2.根據(jù)權(quán)利要求1所述的一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法,其特征在于:采用VC++、MATLAB和Access數(shù)據(jù)庫(kù)三者的混合編程技術(shù)來(lái)實(shí)現(xiàn)HGSA-BP算法的在線測(cè)量及補(bǔ)償程序。
3.根據(jù)權(quán)利要求2所述的一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法,其特征在于:所述步驟S3確定適應(yīng)度函數(shù)的具體過(guò)程為:將BP神經(jīng)網(wǎng)絡(luò)的染色體矩陣求解即得到BP神經(jīng)網(wǎng)絡(luò)相應(yīng)的權(quán)值、閾值,賦給BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并將訓(xùn)練返回的均方誤差的倒數(shù)作為適應(yīng)度函數(shù)。
4.根據(jù)權(quán)利要求3所述的一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法,其特征在于:所述BP神經(jīng)網(wǎng)絡(luò)的染色體包括三個(gè)基因段,分別為隱含層、隱含層的各個(gè)節(jié)點(diǎn)及節(jié)點(diǎn)相應(yīng)的權(quán)值;上一級(jí)的基因段能夠控制下一級(jí)基因的激活狀態(tài),隱含層層數(shù)及各隱含層的節(jié)點(diǎn)數(shù)根據(jù)基因的值來(lái)進(jìn)行增加或刪除,同時(shí)節(jié)點(diǎn)相應(yīng)的權(quán)值跟著一起進(jìn)化。
5.根據(jù)權(quán)利要求4所述的一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法,其特征在于:所述基因的值為O或I。
6.根據(jù)權(quán)利要求1所述的一種基于HGSA-BP算法的傳感器誤差補(bǔ)償方法,其特征在于:所述步驟S4,具體實(shí)現(xiàn)過(guò)程如下, 設(shè)定初始種群數(shù),確定自適應(yīng)交叉率&和自適應(yīng)變異率其公式如下,
【文檔編號(hào)】G01F25/00GK103983332SQ201410238070
【公開日】2014年8月13日 申請(qǐng)日期:2014年5月31日 優(yōu)先權(quán)日:2014年5月31日
【發(fā)明者】林偉, 黃世震, 林淑玲 申請(qǐng)人:福州大學(xué)