本發(fā)明涉及太陽跟蹤器技術(shù)領(lǐng)域,具體來說是用于太陽跟蹤器的跟蹤系統(tǒng)及跟蹤方法。
背景技術(shù):
為了能夠精確的跟蹤太陽,用于太陽能發(fā)電和移動(dòng)車載測量的掩日通量遙測技術(shù)(Solar-occulation flux,SOF)的太陽跟蹤器應(yīng)運(yùn)而生。用于太陽能發(fā)電的太陽跟蹤器是定點(diǎn)監(jiān)測,目前多采用雙軸太陽跟蹤器,根據(jù)經(jīng)緯度信息,可算出太陽實(shí)時(shí)的方位角和高度角,該輸出做出控制信號用于調(diào)節(jié)俯仰軸和方位軸的狀態(tài)從而實(shí)現(xiàn)太陽跟蹤。而用于車載SOF的太陽跟蹤器,目前采用PSD作為反饋元件,根據(jù)PSD上光斑的位置作為反饋信號用于調(diào)節(jié)主反射鏡的位置,從而使后端的光譜儀獲得最大的光強(qiáng)。而在控制算法上,根據(jù)PSD輸出信號的大小設(shè)置不同的調(diào)節(jié)步長。
其中,x為調(diào)節(jié)步長,a,b為常數(shù),且a>b,e為PSD輸出的太陽實(shí)際位置與中心點(diǎn)的誤差信號,e0為設(shè)定的閾值常數(shù)。目前的控制算法跟蹤速度慢和精度差且魯棒性差,當(dāng)車輛出現(xiàn)顛簸或有其他因素帶來的干擾信號時(shí),會出現(xiàn)跟蹤效果差甚至不能跟蹤的情況。為了改進(jìn)移動(dòng)太陽跟蹤器的性能,采用GA算法優(yōu)化BP網(wǎng)絡(luò)的二自由度PID控制。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有技術(shù)中太陽跟蹤器的控制算法跟蹤速度慢和精度差且魯棒性差,當(dāng)車輛出現(xiàn)顛簸或有其他因素帶來的干擾信號時(shí),會出現(xiàn)跟蹤效果差甚至不能跟蹤的缺陷,提供用于太陽跟蹤器的跟蹤系統(tǒng)及跟蹤方法來解決上述問題。
為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案如下:
用于太陽跟蹤器的跟蹤系統(tǒng),包括GA樣本數(shù)據(jù)預(yù)處理模塊、BP網(wǎng)絡(luò)調(diào)整模塊、PID控制器模塊;
所述GA樣本數(shù)據(jù)預(yù)處理模塊根據(jù)樣本數(shù)據(jù)進(jìn)行個(gè)體尋優(yōu),得到適應(yīng)度最大的個(gè)體并傳遞給BP網(wǎng)絡(luò)調(diào)整模塊作為最優(yōu)初值進(jìn)行訓(xùn)練;
在最優(yōu)初值的基礎(chǔ)上,通過BP網(wǎng)絡(luò)調(diào)整模塊反向傳輸,調(diào)整隱含層和輸出層的權(quán)值和閾值,使得到的誤差評價(jià)函數(shù)小于設(shè)定的誤差閾值,得到調(diào)整好的P、I、D參數(shù);
BP網(wǎng)絡(luò)調(diào)整模塊將調(diào)整好的P、I、D參數(shù)傳遞給PID控制器模塊,PID控制器模塊根據(jù)二自由度對被控對象進(jìn)行控制,使PID控制器跟蹤性能和抗干擾性能達(dá)到最佳。
優(yōu)選的,跟蹤系統(tǒng)還包括反饋系統(tǒng)模塊;所述反饋系統(tǒng)獲取被控對象的輸出信號和PID控制器的輸入信息,反饋系統(tǒng)根據(jù)給定的輸入信號和被控對象的輸出信號求得誤差信號并根據(jù)誤差信號進(jìn)行調(diào)節(jié),形成一個(gè)閉環(huán)控制。
優(yōu)選的,所述GA樣本數(shù)據(jù)預(yù)處理模塊包括選擇、交叉、變異算子操作單元;所述選擇、交叉、變異算子操作單元對交叉率pc和變異率pm進(jìn)行自適應(yīng)調(diào)整求得種群中適應(yīng)度最優(yōu)的個(gè)體,并將適應(yīng)度最優(yōu)的個(gè)體不經(jīng)任何交叉、變異操作直接進(jìn)入下一代種群,即新種群。
優(yōu)選的,所述GA樣本數(shù)據(jù)預(yù)處理模塊還包括災(zāi)變判斷單元;所述災(zāi)變判斷單元計(jì)算所述新種群的適應(yīng)度,若災(zāi)變停止或到達(dá)設(shè)定的災(zāi)變次數(shù),則GA算法預(yù)處理完成,將得到的最優(yōu)初始權(quán)值和閾值傳遞給BP網(wǎng)絡(luò)。
優(yōu)選的,所述BP網(wǎng)絡(luò)調(diào)整模塊包括BP網(wǎng)絡(luò)訓(xùn)練單元;所述BP網(wǎng)絡(luò)訓(xùn)練單元獲取優(yōu)化后的權(quán)值和閾值作為初始值,根據(jù)動(dòng)量-自適應(yīng)學(xué)習(xí)率調(diào)整初始權(quán)值和閾值,并采用Levenberg-Marquardt算法最優(yōu)化算法尋找最優(yōu)的PID參數(shù)值。
本發(fā)明還提供一種應(yīng)用于上述任一所述的用于太陽跟蹤器的跟蹤系統(tǒng)的跟蹤方法,該方法首先以跟蹤性能最佳為控制目標(biāo)進(jìn)行PID參數(shù)調(diào)節(jié),再以抗干擾性能最佳為控制目標(biāo)進(jìn)行參數(shù)調(diào)節(jié),具體調(diào)節(jié)步驟如下:
1)樣本數(shù)據(jù)預(yù)處理
先通過GA算法對樣本數(shù)據(jù)進(jìn)行個(gè)體尋優(yōu),得到適應(yīng)度最大的個(gè)體并傳遞給BP網(wǎng)絡(luò)作為最優(yōu)初值進(jìn)行訓(xùn)練;
2)BP網(wǎng)絡(luò)訓(xùn)練
在最優(yōu)初值的基礎(chǔ)上,通過BP網(wǎng)絡(luò)反向傳輸,調(diào)整隱含層和輸出層的權(quán)值和閾值,使得到的誤差評價(jià)函數(shù)小于設(shè)定的誤差閾值,得到調(diào)整好的P、I、D參數(shù);
3)PID控制
BP網(wǎng)絡(luò)調(diào)整模塊將調(diào)整好的P、I、D參數(shù)傳遞給PID控制器模塊,PID控制器模塊根據(jù)二自由度對被控對象進(jìn)行控制,使PID控制器跟蹤性能和抗干擾性能達(dá)到最佳。
優(yōu)選的,所述跟蹤方法還包括信號反饋調(diào)節(jié)過程;具體為:
所述反饋系統(tǒng)獲取被控對象的輸出信號和PID控制器的輸入信息,反饋系統(tǒng)根據(jù)PID控制器的輸入信號和被控對象的輸出信號求得誤差信號并根據(jù)誤差信號進(jìn)行調(diào)節(jié),形成一個(gè)閉環(huán)控制。
優(yōu)選的,所述步驟1)中,具體為通過選擇、交叉、變異算子操作單元對交叉率pc和變異率pm進(jìn)行自適應(yīng)調(diào)整求得種群中適應(yīng)度最優(yōu)的個(gè)體,并將適應(yīng)度最優(yōu)的個(gè)體不經(jīng)任何交叉、變異操作直接進(jìn)入下一代種群,即新種群;采用的自適應(yīng)交叉率pc和變異率pm的計(jì)算公式為:
其中,α1,α2為兩個(gè)大于0的常數(shù),pc1,pc2,pm1,pm2為根據(jù)經(jīng)驗(yàn)得出的常數(shù),分別為0.85、0.65、0.1、0.001;favg、fmax、fc'分別為該種群的平均適應(yīng)度、總適應(yīng)度、該個(gè)體的適應(yīng)度。
優(yōu)選的,得到所述新種群后,再對該新種群的適應(yīng)度進(jìn)行災(zāi)變判斷,若災(zāi)變停止或到達(dá)設(shè)定的災(zāi)變次數(shù),則GA算法預(yù)處理完成,將得到的最優(yōu)初始權(quán)值和閾值傳遞給BP網(wǎng)絡(luò)。
優(yōu)選的,所述步驟2)中,所述BP網(wǎng)絡(luò)訓(xùn)練單元獲取優(yōu)化后的權(quán)值和閾值作為初始值,根據(jù)動(dòng)量-自適應(yīng)學(xué)習(xí)率調(diào)整初始權(quán)值和閾值,并采用Levenberg-Marquardt算法最優(yōu)化算法尋找最優(yōu)的PID參數(shù)值;其中,動(dòng)量-自適應(yīng)學(xué)習(xí)速率調(diào)整計(jì)算公式為:
β(k+1)=τ*3λ*β(k)
其中,β為學(xué)習(xí)速率因子,λ為梯度方向,τ為學(xué)習(xí)誤差系數(shù);
Levenberg‐Marquardt算法的計(jì)算公式為:
Δw=(JTJ+μI)-1JTe
其中,e為誤差量,J是網(wǎng)絡(luò)誤差度對權(quán)值的雅可比矩陣,I為的單位矩陣,μ為比例系數(shù)。
本發(fā)明的與現(xiàn)有技術(shù)相比,具有以下有益效果:
二自由度ID分別采用跟蹤性能最佳和抗干擾能力最佳為控制參數(shù),分別對PID參數(shù)進(jìn)行調(diào)整。將遺傳算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合,充分利用了兩者的優(yōu)點(diǎn),使控制系統(tǒng)既有神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)功能,魯棒性和泛化能力,又有遺傳算法的全局搜索優(yōu)化能力。
在本專利中采用GA算法優(yōu)化BP網(wǎng)絡(luò)根據(jù)控制參數(shù)分別完成PID參數(shù)的整定,從而在最短的時(shí)間內(nèi),得到最精確的P、I、D參數(shù),從而輸入更準(zhǔn)確地控制信號,對于在太陽跟蹤器而言,即是實(shí)現(xiàn)太陽的實(shí)時(shí)精確跟蹤。
采用啟發(fā)式學(xué)習(xí)規(guī)則中的動(dòng)量項(xiàng)和自適應(yīng)學(xué)習(xí)率和數(shù)字優(yōu)化學(xué)習(xí)方法相結(jié)合的方法,每個(gè)改進(jìn)方法互補(bǔ),有效的改善了BP網(wǎng)絡(luò)存在的收斂速度緩慢,已陷入極小值的缺點(diǎn),大大改善了后期的控制精度和速度。
該算法用于對閉環(huán)的太陽跟蹤系統(tǒng)的控制,具有跟蹤精度高調(diào)節(jié)時(shí)間短,抗干擾能力強(qiáng)的特點(diǎn)
附圖說明
圖1為本發(fā)明實(shí)施例1的模塊結(jié)構(gòu)框圖;
圖2為本發(fā)明實(shí)施例1的系統(tǒng)原理框圖;
圖3為本發(fā)明實(shí)施例2中的4:7:3BP網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖;
圖4為本發(fā)明實(shí)施例2的算法流程圖;
圖5為本發(fā)明實(shí)施例2的算法功能模塊框圖;
圖6為本發(fā)明實(shí)施例3中太陽跟蹤器的控制回路圖。
具體實(shí)施方式
為使對本發(fā)明的結(jié)構(gòu)特征及所達(dá)成的功效有更進(jìn)一步的了解與認(rèn)識,用以較佳的實(shí)施例及附圖配合詳細(xì)的說明,說明如下:
概念說明:下述中的樣本為所有個(gè)體的組合,種群是一定數(shù)量個(gè)體的組合,這個(gè)數(shù)量由設(shè)定的種群大小決定。而個(gè)體則是神經(jīng)網(wǎng)絡(luò)初始值或是隨機(jī)產(chǎn)生的訓(xùn)練數(shù)據(jù)。
實(shí)施例1
如圖1、圖2所示,用于太陽跟蹤器的跟蹤系統(tǒng),包括GA樣本數(shù)據(jù)預(yù)處理模塊、BP網(wǎng)絡(luò)調(diào)整模塊、PID控制器模塊、反饋系統(tǒng)模塊。
GA樣本數(shù)據(jù)預(yù)處理模塊根據(jù)樣本數(shù)據(jù)進(jìn)行個(gè)體尋優(yōu),得到適應(yīng)度最大的個(gè)體并傳遞給BP網(wǎng)絡(luò)調(diào)整模塊作為最優(yōu)初值進(jìn)行訓(xùn)練;
在最優(yōu)初值的基礎(chǔ)上,通過BP網(wǎng)絡(luò)調(diào)整模塊反向傳輸,調(diào)整隱含層和輸出層的權(quán)值和閾值,使得到的誤差評價(jià)函數(shù)小于設(shè)定的誤差閾值,得到調(diào)整好的P、I、D的參數(shù);
BP網(wǎng)絡(luò)調(diào)整模塊將調(diào)整好的P、I、D的參數(shù)傳遞給PID控制器模塊,PID控制器模塊根據(jù)二自由度進(jìn)行控制,分別使跟蹤性能和抗干擾性能達(dá)到最佳。
被控對象的輸出信號通過反饋系統(tǒng)模塊傳輸?shù)絇ID控制器的輸入端,反饋系統(tǒng)根據(jù)PID控制器的輸入信號和被控對象的輸出信號求得誤差信號并根據(jù)誤差信號進(jìn)行調(diào)節(jié),形成一個(gè)閉環(huán)控制。
其中,GA樣本數(shù)據(jù)預(yù)處理模塊包括設(shè)置迭代次數(shù)和參數(shù)初值單元、編碼單元、適應(yīng)度計(jì)算單元、選擇/交叉/變異算子操作單元、災(zāi)變判斷單元;BP網(wǎng)絡(luò)調(diào)整模塊包括網(wǎng)絡(luò)結(jié)構(gòu)確定單元、初始化網(wǎng)絡(luò)單元、獲取初始值單元、BP網(wǎng)絡(luò)訓(xùn)練單元、精度判斷單元。
首先通過設(shè)置迭代次數(shù)和參數(shù)初值單元初始化GA算法的迭代次數(shù)n、交叉率pc、變異率pm、種群規(guī)模m;然后通過網(wǎng)絡(luò)結(jié)構(gòu)確定單元確定BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)總共為三層:輸入層、隱含層、輸出層;其中輸入層有4個(gè)神經(jīng)元分別為指定輸入信號rin(k),實(shí)際輸出信號yout(k),誤差量e(k)和常數(shù)a;輸出層的三個(gè)神經(jīng)元分別對應(yīng)PID控制的三個(gè)參數(shù)kp,ki,kd;而隱含層的神經(jīng)元個(gè)數(shù)根據(jù)經(jīng)驗(yàn)公式為基礎(chǔ),經(jīng)過不斷地仿真調(diào)試,確定隱含層神經(jīng)元的個(gè)數(shù)為7個(gè),即BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為4:7:3,如圖3所示。初始化網(wǎng)絡(luò)單元對BP網(wǎng)絡(luò)的權(quán)值和閾值初始值以及誤差評價(jià)函數(shù)和誤差閾值,并計(jì)算在初始值的情況下誤差信號是否小于誤差閾值,若是,則BP網(wǎng)絡(luò)無需訓(xùn)練,直接進(jìn)入測試階段,否則,進(jìn)入訓(xùn)練階段。
如果進(jìn)入訓(xùn)練階段,則通過編碼單元對含有BP網(wǎng)絡(luò)初始值的種群進(jìn)行實(shí)數(shù)編碼,并將適應(yīng)度函數(shù)定義為期望數(shù)據(jù)與實(shí)際輸出數(shù)據(jù)之差,然后通過適應(yīng)度計(jì)算單元進(jìn)行適應(yīng)度計(jì)算,具體為GA操作包括選擇算子、交叉算子、變異算子;其中交叉率pc和變異率pm采用自適應(yīng)方法求得該種群中適應(yīng)度最優(yōu)的個(gè)體,然后將適應(yīng)度最優(yōu)的個(gè)體不經(jīng)任何交叉、變異操作直接進(jìn)入下一代種群,即新種群,其他的個(gè)體進(jìn)入下一種群的概率與其在整個(gè)種群中的相對適應(yīng)度成正比;采用的自適應(yīng)交叉率pc和變異率pm的計(jì)算公式為:
其中,α1、α2為兩個(gè)大于0的常數(shù),pc1,pc2,pm1,pm2為根據(jù)經(jīng)驗(yàn)得出的常數(shù),分別為0.85、0.65、0.1、0.001;favg、fmax、fc'分別為該種群的平均適應(yīng)度、總適應(yīng)度、該個(gè)體的適應(yīng)度,最后通過災(zāi)變判斷單元計(jì)算產(chǎn)生的新種群的總適應(yīng)度,若連續(xù)n代未出現(xiàn)更優(yōu)秀的個(gè)體時(shí),這說明GA算法出現(xiàn)了早熟線程,陷入局部極小值,此時(shí)需要進(jìn)行災(zāi)變,殺死當(dāng)前種群所有優(yōu)秀的個(gè)體,進(jìn)入一下代。若若干次災(zāi)變后,適應(yīng)度值與未災(zāi)變前一樣,則停止災(zāi)變;若災(zāi)變停止或到達(dá)設(shè)定的災(zāi)變次數(shù),則GA算法預(yù)處理完成,將得到的最優(yōu)初始權(quán)值和閾值傳遞給獲取初始值單元,獲取初始值單元將獲取到的初始值傳輸給BP網(wǎng)絡(luò)訓(xùn)練單元。BP網(wǎng)絡(luò)訓(xùn)練單元根據(jù)動(dòng)量-自適應(yīng)學(xué)習(xí)率調(diào)整初始權(quán)值和閾值,并采用Levenberg-Marquardt算法最優(yōu)化算法尋找最優(yōu)的PID參數(shù)值;
動(dòng)量-自適應(yīng)學(xué)習(xí)速率調(diào)整計(jì)算公式為:
β(k+1)=τ*3λ*β(k)
其中,β為學(xué)習(xí)速率因子,λ為梯度方向,τ為學(xué)習(xí)誤差系數(shù);
Levenberg‐Marquardt算法的計(jì)算公式為:
Δw=(JTJ+μI)-1JTe
其中,e為誤差量,J是網(wǎng)絡(luò)誤差度對權(quán)值的雅可比矩陣,I為的單位矩陣,μ為比例系數(shù);當(dāng)μ很大時(shí),即為Gauss-Newton算法,當(dāng)μ很小時(shí),接近梯度下降法。精度判斷單元進(jìn)行最后評價(jià),當(dāng)BP網(wǎng)絡(luò)的誤差評價(jià)函數(shù)小于誤差閾值時(shí),則整個(gè)BP網(wǎng)絡(luò)的學(xué)習(xí)過程完成,然后再用測試數(shù)據(jù)測試BP網(wǎng)絡(luò)的學(xué)習(xí)效果和泛化能力。
實(shí)施例2
如圖4、圖5所示,用于太陽跟蹤器的跟蹤方法,應(yīng)用于實(shí)施例1提供的跟蹤系統(tǒng)中。該算法首先以跟蹤性能最佳為控制目標(biāo)進(jìn)行PID參數(shù)調(diào)節(jié),再以抗干擾性能最佳為控制目標(biāo)進(jìn)行參數(shù)調(diào)節(jié),具體調(diào)節(jié)步驟如下:
步驟1.隨機(jī)產(chǎn)生2000組數(shù)據(jù),其中1500組數(shù)據(jù)用于訓(xùn)練BP網(wǎng)絡(luò),另外500組數(shù)據(jù)用于測試BP網(wǎng)絡(luò),并將數(shù)據(jù)進(jìn)行歸一化處理;
步驟2.確定BP網(wǎng)絡(luò)結(jié)構(gòu)
首先確定網(wǎng)絡(luò)總共為三層:輸入層、隱含層、輸出層;其中輸入層有4個(gè)神經(jīng)元分別為指定輸入信號rin(k),實(shí)際輸出信號yout(k),誤差量e(k)和常數(shù)a;輸出層的三個(gè)神經(jīng)元分別對應(yīng)PID控制的三個(gè)參數(shù)kp,ki,kd;而隱含層的神經(jīng)元個(gè)數(shù)根據(jù)經(jīng)驗(yàn)公式為基礎(chǔ),經(jīng)過不斷地仿真調(diào)試,確定隱含層神經(jīng)元的個(gè)數(shù)為7個(gè),即BP網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為4:7:3,如圖3所示。
步驟3.初始化BP網(wǎng)絡(luò)
設(shè)置BP網(wǎng)絡(luò)的權(quán)值和閾值初始值以及誤差評價(jià)函數(shù)和誤差閾值,并計(jì)算在初始值的情況下誤差信號是否小于誤差閾值,若是,則BP網(wǎng)絡(luò)無需訓(xùn)練,直接進(jìn)入測試階段,否則,進(jìn)入步驟4);其中初始值為權(quán)值和閾值初值;
步驟4.初始化GA算法的進(jìn)化次數(shù)n、交叉率pc、變異率pm、種群規(guī)模m;
步驟5.對含有BP網(wǎng)絡(luò)初始值的種群進(jìn)行實(shí)數(shù)編碼,并將適應(yīng)度函數(shù)定義為期望數(shù)據(jù)與實(shí)際輸出數(shù)據(jù)之差;
步驟6.執(zhí)行GA操作
GA操作包括選擇算子、交叉算子、變異算子;其中交叉率pc和變異率pm采用自適應(yīng)方法求得該種群中適應(yīng)度最優(yōu)的個(gè)體,然后將適應(yīng)度最優(yōu)的個(gè)體不經(jīng)任何交叉、變異操作直接進(jìn)入下一代種群,即新種群,其他的個(gè)體進(jìn)入下一種群的概率與其在整個(gè)種群中的相對適應(yīng)度成正比;采用的自適應(yīng)交叉率pc和變異率pm的計(jì)算公式為:
其中,α1,α2為兩個(gè)大于0的常數(shù),pc1,pc2,pm1,pm2為根據(jù)經(jīng)驗(yàn)得出的常數(shù),分別為0.85、0.65、0.1、0.001;favg、fmax、fc'分別為該種群的平均適應(yīng)度、總適應(yīng)度、該個(gè)體的適應(yīng)度;
步驟7.災(zāi)變判斷,計(jì)算產(chǎn)生的新種群的總適應(yīng)度,若連續(xù)n代未出現(xiàn)更優(yōu)秀的個(gè)體時(shí),這說明GA算法出現(xiàn)了早熟線程,陷入局部極小值,此時(shí)需要進(jìn)行災(zāi)變,殺死當(dāng)前種群所有優(yōu)秀的個(gè)體,進(jìn)入一下代。若若干次災(zāi)變后,適應(yīng)度值與未災(zāi)變前一樣,則停止災(zāi)變;若災(zāi)變停止或到達(dá)設(shè)定的災(zāi)變次數(shù),則GA算法優(yōu)化完成,將得到的最優(yōu)初始權(quán)值和閾值傳遞給BP網(wǎng)絡(luò);
步驟8.BP網(wǎng)絡(luò)訓(xùn)練
根據(jù)接收到的GA算法優(yōu)化后的權(quán)值和閾值作為初始值,根據(jù)動(dòng)量-自適應(yīng)學(xué)習(xí)率調(diào)整初始權(quán)值和閾值,并采用Levenberg-Marquardt算法最優(yōu)化算法尋找最優(yōu)的PID參數(shù)值;
動(dòng)量-自適應(yīng)學(xué)習(xí)速率調(diào)整計(jì)算公式為:
β(k+1)=τ*3λ*β(k)
其中,β為學(xué)習(xí)速率因子,λ為梯度方向,τ為學(xué)習(xí)誤差系數(shù);
Levenberg‐Marquardt算法的計(jì)算公式為:
Δw=(JTJ+μI)-1JTe
其中,e為誤差量,J是網(wǎng)絡(luò)誤差度對權(quán)值的雅可比矩陣,I為的單位矩陣,μ為比例系數(shù);當(dāng)μ很大時(shí),即為Gauss-Newton算法,當(dāng)μ很小時(shí),接近梯度下降法。
步驟9.當(dāng)BP網(wǎng)絡(luò)的誤差評價(jià)函數(shù)小于誤差閾值時(shí),則整個(gè)BP網(wǎng)絡(luò)的學(xué)習(xí)過程完成,然后再用測試數(shù)據(jù)測試BP網(wǎng)絡(luò)的學(xué)習(xí)效果和泛化能力。
實(shí)施例3
本實(shí)施例將介紹現(xiàn)有技術(shù)到實(shí)施例2提供的算法的演變過程。
二自由度
PID控制系統(tǒng)的控制指標(biāo)主要有:外擾抑制作用和目標(biāo)跟蹤特性,在采用一自由度控制時(shí),兩者呈現(xiàn)相反的變化趨勢,不同同時(shí)達(dá)到最優(yōu)性能。二自由度PID(Two degree of freedom PID,2DOF PID)控制就是使目標(biāo)跟蹤特性為最優(yōu)和外擾抑制特性為最優(yōu)的PID參數(shù)分別進(jìn)行整定,使整個(gè)控制系統(tǒng)的性能達(dá)到最佳。
在采用2DOF PID控制時(shí),需滿足易懂,結(jié)構(gòu)簡單,與傳統(tǒng)技術(shù)有較好的結(jié)合性且能繼承其技術(shù)成果的要求。在對于太陽跟蹤器的控制回路中,采用目標(biāo)值濾波器型的2DOF PID控制。控制回路圖6所示。
目標(biāo)值濾波器H(s)可表示為:
其中,α為比例增益的二自由度化系數(shù)(一般0≤α≤1),β為積分時(shí)間的二自由度化系數(shù)(一般0≤β<1),γ為微分時(shí)間的二自由度化系數(shù)(一般0≤γ<2),1/η為微分增益(一般0.1≤γ≤1)。
采用二自由度化系數(shù)可變的方法進(jìn)行太陽跟蹤器的PID控制,調(diào)整步驟為:加外擾,調(diào)整Kp,Ki,Kd,使外擾抑制特性為最佳;根據(jù)Chian-Hrone-Reswick(CHR)調(diào)整法初步得到α,γ的值,根據(jù)工程經(jīng)驗(yàn),取β=0.15;根據(jù)目標(biāo)值的變化量,在設(shè)定值附近微調(diào)二自由度化系數(shù)α,β,γ,使目標(biāo)跟蹤特性為最佳。
二自由度既能改善控制特性,又易進(jìn)行調(diào)整,只需增加目標(biāo)值濾波器,在保證結(jié)構(gòu)簡單的情況下,可實(shí)現(xiàn)控制性能達(dá)到最佳。
BP網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)出現(xiàn)在20世紀(jì)40年代,由眾多的而神經(jīng)元可調(diào)的連接權(quán)值連接而成,在智能控制領(lǐng)域取得很好的應(yīng)用成果.作為應(yīng)用最廣泛的人工神經(jīng)網(wǎng)絡(luò)模型,誤差反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)具有實(shí)現(xiàn)任何復(fù)雜非線性映射的能力,能以任何精度逼近任何非線性連續(xù)函數(shù);并行分布處理方式;具有自學(xué)習(xí)能力;具有一定的推廣,概括和自適應(yīng)能力,具有泛化能力,即將這組權(quán)值應(yīng)用于一般情形的能力;數(shù)據(jù)融合的能力,可同時(shí)處理定量和定性信息;可用于多變量系統(tǒng)和在線學(xué)習(xí)的能力。
BP算法基本思想是最小二乘法,它采用梯度搜索技術(shù),使網(wǎng)絡(luò)的實(shí)際輸出值與期望輸出值的誤差均方值為最小。算法的學(xué)習(xí)過程由信息的正向傳播和誤差的反向傳播組成。輸入信息從輸入層經(jīng)隱含層逐層處理后傳向輸出層,每層神經(jīng)元節(jié)點(diǎn)的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。當(dāng)輸出層不能得到期望的輸出時(shí),則轉(zhuǎn)入反向傳播,將誤差信號沿著原來的連接通路返回,通過修改各層神經(jīng)元的連接權(quán)值和閉值,使誤差函數(shù)沿著負(fù)梯度方向下降,最終達(dá)到實(shí)際輸出值與期望輸出值之間的誤差最小。
BP神經(jīng)網(wǎng)路有輸入層,隱層和輸出層,每層都不同的神經(jīng)元個(gè)數(shù)。根據(jù)研究對象結(jié)構(gòu)和復(fù)雜程度不同,神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)也各不相同。在該系統(tǒng)中,采用一個(gè)輸入層,一個(gè)隱含層,一個(gè)輸出層,且神經(jīng)元個(gè)數(shù)為3:5:3的拓?fù)浣Y(jié)構(gòu)。
三個(gè)輸入信號分別為指定輸入信號rin(k),實(shí)際輸出信號yout(k),誤差量e(k)。三個(gè)輸出信號分別對應(yīng)PID控制的三個(gè)參數(shù)kp,ki,kd。
BP網(wǎng)絡(luò)的學(xué)習(xí)過程由正向傳播和反向傳播兩部分組成。首先是信號的正向傳播過程,輸入層的信息向前傳播到隱含層的節(jié)點(diǎn)上,經(jīng)過個(gè)單元的激活函數(shù)運(yùn)算,并把隱含層的信息傳輸?shù)捷敵鰧拥墓?jié)點(diǎn),再經(jīng)過輸出層上各節(jié)點(diǎn)的激活函數(shù)的運(yùn)算輸出。在正向傳播過程中,每一層的神經(jīng)元狀態(tài)只影響下一層神經(jīng)元網(wǎng)絡(luò)。若實(shí)際輸出與期望輸出值之間的誤差大于設(shè)定的誤差函數(shù)閾值,則轉(zhuǎn)向反向傳播過程,將誤差信號反向傳播,逐次修改各層神經(jīng)元的權(quán)值,再經(jīng)正向傳播得到修正后的輸出,兩個(gè)過程的反復(fù)應(yīng)用,使得誤差信號最小。當(dāng)實(shí)際誤差信號小于設(shè)定的誤差閾值時(shí),網(wǎng)絡(luò)的學(xué)習(xí)過程結(jié)束。
在正向傳播過程中,隱含層節(jié)點(diǎn)的輸入輸出為:
輸出層的輸入輸出為:
wij,wjk分別為輸入層與隱含層,隱含層與輸出層之間的連接權(quán)值。分別為隱含層和輸出層的輸出值。f(k),g(k)為激活函數(shù),用來加入非線性因素,從而彌補(bǔ)線性模型表達(dá)力不夠的缺點(diǎn),激活函數(shù)的選擇需滿足單調(diào)遞增有界且一階可微的特點(diǎn),經(jīng)過仿真,隱含層的激活函數(shù)雙極S形函數(shù):
誤差評估函數(shù)表示為:
根據(jù)誤差評估函數(shù)經(jīng)反向傳播過程對每個(gè)節(jié)點(diǎn)的權(quán)值進(jìn)行調(diào)整,權(quán)值的修正量與誤差的負(fù)梯度方向成正比,即:令則
隱含層與輸入層之間的權(quán)值調(diào)整量為:
令有Δwij=ηδjxi
其中,η為學(xué)習(xí)步長,即學(xué)習(xí)速率。下一次迭代時(shí)隱含層與輸出層任一節(jié)點(diǎn)之間的權(quán)值,輸入層與隱含層之間的權(quán)值分別為:
wjk(k)=Δwjk+wjk(k)
wij(k)=Δwij+wij(k)
然而,這種標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)路實(shí)際上也是一種梯度下降搜索法,存在收斂速度慢,易陷入局部極小值的缺點(diǎn),而這些缺點(diǎn)可以通過使用改進(jìn)的BP算法進(jìn)行校正,改進(jìn)的BP算法可分為兩類,一是采用啟發(fā)式學(xué)習(xí)規(guī)則,如添加附加動(dòng)量項(xiàng),采用自適應(yīng)學(xué)習(xí)率等;二是基于數(shù)值優(yōu)化的學(xué)習(xí)方法,如共軛梯度法,擬牛頓法和Levenberg-Marquardt方法(簡稱L-M法),
1.加入動(dòng)量項(xiàng)
為了加快收斂速度,在權(quán)值的修正量加上上一次修正權(quán)系數(shù),把他作為本次修正的依據(jù)之一,即有:
Δwij(k+1)=ηδjxi+αΔwij(k)
其中,α為動(dòng)量因子。
2.動(dòng)量‐自適應(yīng)學(xué)習(xí)速率調(diào)整算法
在進(jìn)行學(xué)習(xí)速率的自適應(yīng)調(diào)整時(shí),基本思想是在學(xué)習(xí)收斂的情況下,增大η,以縮短學(xué)習(xí)時(shí)間;當(dāng)η偏大致使不能收斂時(shí),要及時(shí)減小η,直到收斂為止。
β(k+1)=τ*3λ*β(k)
其中,β為學(xué)習(xí)速率因子,λ為梯度方向,τ為學(xué)習(xí)誤差系數(shù)。
3.采用Levenberg-Marquardt算法
L-M法實(shí)質(zhì)上是梯度下降法和牛頓法的結(jié)合,網(wǎng)絡(luò)權(quán)值較少時(shí)具有很高的收斂速度。L-M優(yōu)化算法的權(quán)值調(diào)整率為:
Δw=(JTJ+μI)-1JTe
其中,e為誤差量,J是網(wǎng)絡(luò)誤差度對權(quán)值的雅可比矩陣,I為的單位矩陣,μ為比例系數(shù),當(dāng)μ很大時(shí),即為Gauss‐Newton算法,當(dāng)μ很小時(shí),接近梯度下降法。
動(dòng)量項(xiàng)的加入改善了收斂速度,但是對學(xué)習(xí)率的選擇存在困難,且對初值要求較高;自適應(yīng)學(xué)習(xí)速率大大的改善了易陷入局部極小值的缺點(diǎn),但是收斂速度較慢。
Levenberg-Marquardt算法大大的提高了收斂速度,但是卻并不能改善易陷入局部極小值的問題,采用啟發(fā)式學(xué)習(xí)規(guī)則中的動(dòng)量項(xiàng)和自適應(yīng)學(xué)習(xí)率和數(shù)字優(yōu)化學(xué)習(xí)方法相結(jié)合的方法,每個(gè)改進(jìn)方法互補(bǔ),有效的改善了BP網(wǎng)絡(luò)存在的收斂速度緩慢,已陷入極小值的缺點(diǎn),大大改善了后期的控制精度和速度。
改進(jìn)的BP算法降低了進(jìn)入局部極小值得概率,但是沒有從根本上實(shí)現(xiàn)快速的全局搜索,GA算法GA時(shí)一種模擬自然界生物進(jìn)化機(jī)制的搜索技術(shù),具有全局搜索的能力,因此,采用GA算法和BP網(wǎng)絡(luò)相結(jié)合的模式可以更好地進(jìn)行網(wǎng)絡(luò)權(quán)值的調(diào)節(jié),實(shí)現(xiàn)快速,高精度的PID控制。
GA算法:
GA-BPNN算法的主要思想:首先用GA算法較快地搜索到最優(yōu)解附近,在解空間中定位出一個(gè)較好的搜索空間,并給BP網(wǎng)絡(luò)提供較好的初始值,然后采用BP算法在這個(gè)小的搜索空間搜索出最優(yōu)解。GA算法與BP算法之間的切換可通過誤差的大小來實(shí)現(xiàn),如果誤差大于某個(gè)值時(shí)采用GA算法,當(dāng)小于該值時(shí)采用BP算法,直到達(dá)到所限制的精度或最大步數(shù)為止。
簡單的GA算法使用了選擇算子,交叉算子,變異算子,GA過程如下:
1.確定編碼方式:實(shí)現(xiàn)解空間到搜索空間的轉(zhuǎn)換,編碼形式為:
其中,分別為輸入層與隱含層,隱含層與輸出層之間的連接權(quán)值。
2.確定參數(shù):群體大小,交叉,變異概率,終止迭代的次數(shù);
3.初始化:隨機(jī)生成n個(gè)個(gè)體,提供初始種群P(0);
4.評價(jià):譯碼到解空間,計(jì)算候補(bǔ)解,解集合的適應(yīng)度,平均適應(yīng)度。
5.GA操作:包括選擇算子、交叉算子、變異算子,對種群P(t)進(jìn)行操作,產(chǎn)生下一代P(t+1)。
6.重復(fù)4,5,直至參數(shù)收斂或達(dá)到預(yù)定的指標(biāo)。
簡單的GA算法以易出現(xiàn)早熟,即過早的想局部最優(yōu)解收斂的情況,因此,需要對交叉率和變異率進(jìn)行自適應(yīng)調(diào)整。改進(jìn)的自適應(yīng)交叉率pc和變異率pm的計(jì)算公式為:
α1,α2為兩個(gè)大于0的常數(shù),pc1,pc2,pm1,pm2為根據(jù)經(jīng)驗(yàn)得出的常數(shù),分別為0.9、0.6、0.1、0.001。
以上顯示和描述了本發(fā)明的基本原理、主要特征和本發(fā)明的優(yōu)點(diǎn)。本行業(yè)的技術(shù)人員應(yīng)該了解,本發(fā)明不受上述實(shí)施例的限制,上述實(shí)施例和說明書中描述的只是本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下本發(fā)明還會有各種變化和改進(jìn),這些變化和改進(jìn)都落入要求保護(hù)的本發(fā)明的范圍內(nèi)。本發(fā)明要求的保護(hù)范圍由所附的權(quán)利要求書及其等同物界定。