風(fēng)光發(fā)電技術(shù) 課件 第4章 風(fēng)力發(fā)電負(fù)載調(diào)節(jié)系統(tǒng)的研究_第1頁(yè)
風(fēng)光發(fā)電技術(shù) 課件 第4章 風(fēng)力發(fā)電負(fù)載調(diào)節(jié)系統(tǒng)的研究_第2頁(yè)
風(fēng)光發(fā)電技術(shù) 課件 第4章 風(fēng)力發(fā)電負(fù)載調(diào)節(jié)系統(tǒng)的研究_第3頁(yè)
風(fēng)光發(fā)電技術(shù) 課件 第4章 風(fēng)力發(fā)電負(fù)載調(diào)節(jié)系統(tǒng)的研究_第4頁(yè)
風(fēng)光發(fā)電技術(shù) 課件 第4章 風(fēng)力發(fā)電負(fù)載調(diào)節(jié)系統(tǒng)的研究_第5頁(yè)
已閱讀5頁(yè),還剩96頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

4.1功率負(fù)載線

4.2負(fù)載控制器

4.3電場(chǎng)風(fēng)資源與風(fēng)力發(fā)電機(jī)組的匹配

4.4風(fēng)電輸出與電網(wǎng)的匹配4.1功率負(fù)載線4.1.1最佳功率負(fù)載線在不同風(fēng)速下,風(fēng)輪機(jī)的輸出功率與風(fēng)輪機(jī)轉(zhuǎn)速的關(guān)系如圖41所示。從圖中曲線可以看出,在不同風(fēng)速下,風(fēng)輪機(jī)的輸出功率與轉(zhuǎn)速的關(guān)系特性曲線中皆有一個(gè)最大輸出功率值,如a、b、c…g點(diǎn),將這些點(diǎn)連成曲線,就得到風(fēng)輪機(jī)的最佳功率輸出線,即最佳功率負(fù)載線,如圖41中虛線所示。前已闡明,風(fēng)輪機(jī)的輸出功率

而功率系數(shù)CP是風(fēng)輪機(jī)的高速性系數(shù)(或葉尖速比)λ的函數(shù),即

變化時(shí),CP值是變化的,在某一個(gè)λ值時(shí),CP值達(dá)到最大值,對(duì)應(yīng)于此最大CP值(CPmax)的λ值,稱為最佳葉尖速比。因此所謂最佳功率負(fù)載線即意味著在這條線上的各點(diǎn)皆是運(yùn)行于最佳葉尖速比情況下。這就是說(shuō),當(dāng)風(fēng)速增大時(shí),風(fēng)輪機(jī)轉(zhuǎn)速也應(yīng)隨之增高(即v增加,n增加),從而維持葉尖速比為最佳的葉尖速比,即λ=ωR/v不變(最佳),以達(dá)到維持風(fēng)能利用系數(shù)CP=CPmax不變,風(fēng)輪機(jī)的輸出功率也將達(dá)最大值。從最大限度地利用風(fēng)能的角度看,應(yīng)使風(fēng)輪機(jī)運(yùn)行在最佳功率負(fù)載上,但從圖41可以看出,若風(fēng)輪機(jī)運(yùn)行在最佳功率負(fù)載線上,則風(fēng)輪機(jī)的轉(zhuǎn)速應(yīng)隨風(fēng)速的變化而在很大的范圍內(nèi)變化。在獨(dú)立運(yùn)行的風(fēng)力發(fā)電系統(tǒng)中,一般多采用同步發(fā)電機(jī),而同步發(fā)電機(jī)輸出電能的頻率與其轉(zhuǎn)速有固定的比例關(guān)系(即頻率f∝n),這將導(dǎo)致供電質(zhì)量達(dá)不到要求。因此實(shí)際上風(fēng)力發(fā)電機(jī)在運(yùn)行過(guò)程中應(yīng)按照用戶用電設(shè)備對(duì)電能質(zhì)量(如頻率、電壓)的要求,使風(fēng)輪機(jī)在盡可能接近最佳功率負(fù)載線的情況下運(yùn)行,而不是在實(shí)際最佳功率負(fù)載線上運(yùn)行。4.1.2實(shí)際功率負(fù)載線的確定及負(fù)載調(diào)節(jié)為了保證輸出電能的質(zhì)量(頻率、電壓等),風(fēng)輪機(jī)不可能完全按照最佳功率負(fù)載線運(yùn)行,但應(yīng)盡量接近最佳功率負(fù)載線,特別是額定風(fēng)速及接近額定風(fēng)速時(shí),風(fēng)輪機(jī)應(yīng)運(yùn)行在最佳功率負(fù)載線上或靠近最佳功率負(fù)載線,如圖42所示。例如額定風(fēng)速為8m/s,則實(shí)際功率負(fù)載線應(yīng)選擇如圖42中實(shí)線所示,可以看出,當(dāng)如此選擇時(shí),在6~8m/s風(fēng)速內(nèi)運(yùn)行時(shí),風(fēng)輪機(jī)的實(shí)際功率負(fù)載線與最佳功率負(fù)載線是靠近的。由圖42中還可以看出,按照所選擇的實(shí)際功率負(fù)載運(yùn)行時(shí),風(fēng)輪機(jī)轉(zhuǎn)速的變化,遠(yuǎn)較按照最佳功率負(fù)載線運(yùn)行時(shí)要小,這樣,輸出電能的質(zhì)量可以得到保證。圖42中,ns為額定風(fēng)速下風(fēng)輪機(jī)的轉(zhuǎn)速。而當(dāng)風(fēng)輪機(jī)在4~12m/s的風(fēng)速下運(yùn)行時(shí),風(fēng)輪機(jī)的轉(zhuǎn)速

為ns±Δn,相

應(yīng)

發(fā)

機(jī)

為f(50Hz)±Δf。由圖42可以看出,當(dāng)風(fēng)速變化時(shí),為了使風(fēng)輪機(jī)能沿著實(shí)際功率負(fù)載線運(yùn)行,必須相應(yīng)地增加或減少負(fù)載,以使風(fēng)輪機(jī)的輸出功率與負(fù)載上所吸收(或消耗)的功率平衡,這就是負(fù)載調(diào)節(jié)。負(fù)載調(diào)節(jié)可以按照風(fēng)輪機(jī)在風(fēng)速(或負(fù)載)變化時(shí)轉(zhuǎn)速的變化來(lái)相應(yīng)地增加(投入)或減少(切除)負(fù)載,也可以按照發(fā)電機(jī)輸出電能頻率的變化來(lái)調(diào)節(jié)負(fù)載,從而使風(fēng)輪機(jī)轉(zhuǎn)速達(dá)到穩(wěn)定。所以,也可以認(rèn)為負(fù)載調(diào)節(jié)即是利用改變負(fù)載來(lái)穩(wěn)定風(fēng)輪機(jī)的轉(zhuǎn)速。由圖中可以看出,當(dāng)實(shí)際負(fù)載功率線選定的轉(zhuǎn)速變化范圍如果很小時(shí),顯然可以提高發(fā)電機(jī)的供電質(zhì)量,但相對(duì)于比較小的轉(zhuǎn)速變化所需增加或減少的負(fù)載就顯得較大,對(duì)機(jī)組有沖擊作用,對(duì)機(jī)組運(yùn)行的穩(wěn)定性會(huì)有影響。4.2負(fù)

器4.2.1分級(jí)負(fù)載控制器獨(dú)立運(yùn)行的風(fēng)力發(fā)電系統(tǒng)最大的特點(diǎn)是不需要蓄能設(shè)備,直接向用戶的用電設(shè)備提供交流電能。采用負(fù)載調(diào)節(jié),理想的情況是根據(jù)來(lái)自發(fā)電機(jī)的頻率信號(hào)的變化連續(xù)地改變用戶負(fù)載,以使風(fēng)輪機(jī)的輸出功率與用戶負(fù)載達(dá)到平衡。實(shí)際上是采用分級(jí)投入或切除負(fù)載的方式來(lái)平衡風(fēng)輪機(jī)輸出功率的變化,只要每級(jí)負(fù)載的變化不是太大,風(fēng)輪機(jī)就能靠近最佳功率負(fù)載線運(yùn)行。在采用負(fù)載調(diào)節(jié)的風(fēng)力發(fā)電系統(tǒng)中,經(jīng)常變動(dòng)(投入或切除)的負(fù)載宜采用電阻式設(shè)備(如電熱器、電爐等)。這種性質(zhì)的負(fù)載屬于線性變化元件,對(duì)于提高整個(gè)系統(tǒng)運(yùn)行的穩(wěn)定性有利,當(dāng)然變動(dòng)負(fù)載的最大功率值應(yīng)按照風(fēng)輪機(jī)及發(fā)電機(jī)的最大允許功率值來(lái)確定,這樣,當(dāng)系統(tǒng)內(nèi)屬于經(jīng)常固定的負(fù)載因不需要而減少時(shí),則可由系統(tǒng)內(nèi)的變動(dòng)負(fù)載來(lái)補(bǔ)足。分級(jí)負(fù)載控制器的原理如圖43所示。將負(fù)載分成幾級(jí),每一級(jí)負(fù)載的投入或切除動(dòng)作點(diǎn)頻率皆不同,可以事先調(diào)整確定。當(dāng)發(fā)電機(jī)的輸出頻率大于該級(jí)負(fù)載投入動(dòng)作點(diǎn)頻率,該級(jí)負(fù)載便投入;當(dāng)頻率變得小于該級(jí)負(fù)載切除動(dòng)作點(diǎn)頻率,該級(jí)負(fù)載便切除。由于負(fù)載的投入和切除是分級(jí)進(jìn)行的,當(dāng)投入或切除負(fù)載時(shí)會(huì)引起發(fā)電機(jī)輸出頻率相應(yīng)的變化。因此如果選擇某一級(jí)負(fù)載的投入與切除動(dòng)作點(diǎn)的頻率相同,則可能引起該級(jí)負(fù)載在動(dòng)作點(diǎn)反復(fù)投入和切除,為了避免這種現(xiàn)象,在同一級(jí)負(fù)載的投入動(dòng)作點(diǎn)與切除動(dòng)作點(diǎn)之間設(shè)置了回滯區(qū),使投入點(diǎn)頻率略高于標(biāo)稱動(dòng)作點(diǎn)值,而切除點(diǎn)頻率略低于標(biāo)稱動(dòng)作點(diǎn)頻率值。如圖44所

示,若

標(biāo)

動(dòng)

點(diǎn)

為50Hz,回

區(qū)

為-0.25Hz~0.25Hz,則該級(jí)負(fù)載投入點(diǎn)頻率為50.25Hz,切除點(diǎn)頻率為49.75Hz。這種負(fù)載投入點(diǎn)頻率與切除點(diǎn)頻率之間的回滯差,保證了整個(gè)系統(tǒng)的穩(wěn)定。利用負(fù)載調(diào)節(jié)系統(tǒng)中的分級(jí)負(fù)載控制器,可以自動(dòng)依次投入或切除負(fù)載,使獨(dú)立的風(fēng)電系統(tǒng)達(dá)到穩(wěn)定運(yùn)行,發(fā)電機(jī)的頻率可控制在49~51Hz或48~52Hz之間。為了防止獨(dú)立運(yùn)行的風(fēng)力發(fā)電機(jī)組超負(fù)載運(yùn)行,風(fēng)輪機(jī)應(yīng)具有槳距調(diào)節(jié)裝置或失速葉片,當(dāng)大風(fēng)或超速運(yùn)行時(shí)能自動(dòng)降低風(fēng)輪機(jī)輸出功率,保證系統(tǒng)的安全。4.2.2負(fù)載控制器與變速恒頻風(fēng)力發(fā)電當(dāng)風(fēng)輪機(jī)轉(zhuǎn)速波動(dòng)(或停轉(zhuǎn)),發(fā)電機(jī)電壓低于蓄電池電壓時(shí),發(fā)電機(jī)不但不能對(duì)蓄電池充電,相反,蓄電池卻要向發(fā)電機(jī)送出電流。為了防止這種情況出現(xiàn),在發(fā)電機(jī)電樞回路與蓄電池組之間加入截流器,其作用是當(dāng)發(fā)電機(jī)電壓低于蓄電池電壓時(shí),截流器動(dòng)作斷開兩者之間的連接。風(fēng)輪機(jī)帶動(dòng)主發(fā)電機(jī)轉(zhuǎn)子旋轉(zhuǎn)后,由于發(fā)電機(jī)有剩磁,在發(fā)電機(jī)的附加繞組中產(chǎn)生感應(yīng)電勢(shì)。感應(yīng)電勢(shì)經(jīng)二極管全波整流后,供給勵(lì)磁機(jī)勵(lì)磁繞組。風(fēng)輪機(jī)與勵(lì)磁機(jī)的三相交流繞組同軸旋轉(zhuǎn),在三相交流繞組中感應(yīng)出交流電勢(shì),經(jīng)三相半波旋轉(zhuǎn)二極管整流后供給主發(fā)電機(jī)勵(lì)磁繞組。主發(fā)電機(jī)勵(lì)磁繞組通電后,則在主發(fā)電機(jī)繞組中產(chǎn)生感應(yīng)電勢(shì),同時(shí)又在附加繞組中感應(yīng)電勢(shì),增大了勵(lì)磁機(jī)的勵(lì)磁繞組中的電流,從而又增大了主發(fā)電機(jī)勵(lì)磁繞組中的電流,如此反復(fù),在主發(fā)電機(jī)勵(lì)磁繞組內(nèi)的電流越來(lái)越大,而主發(fā)電機(jī)三相繞組內(nèi)感應(yīng)的電勢(shì)也越來(lái)越大,最后趨于穩(wěn)定,并建立起電壓。風(fēng)能是一種隨機(jī)性很強(qiáng)的能源,風(fēng)的方向不斷變化,風(fēng)力的大小時(shí)強(qiáng)時(shí)弱。風(fēng)速的變化會(huì)引起風(fēng)輪機(jī)轉(zhuǎn)速的變化,如果沒有必要的機(jī)械或電氣控制,則由風(fēng)輪機(jī)驅(qū)動(dòng)的交流發(fā)電機(jī)的轉(zhuǎn)速也將隨之變化,因而發(fā)電機(jī)的輸出電壓及頻率都不是恒定的。無(wú)論是單獨(dú)由風(fēng)電站供電或是與其他類型發(fā)電機(jī)組(例如柴油發(fā)電機(jī)組)并聯(lián)運(yùn)行,或是與電網(wǎng)并聯(lián),這都是不允許的。另一方面,眾所周知,風(fēng)能與風(fēng)速的立方成比例,當(dāng)風(fēng)速在一定范圍內(nèi)變化時(shí),如果允許風(fēng)輪機(jī)變速運(yùn)行,使風(fēng)輪機(jī)始終維持或接近在最佳葉尖速比下運(yùn)行,也就是維持葉尖速比為最佳值并保持不變,從而使風(fēng)輪機(jī)的功率系數(shù)值不變,則能達(dá)到更好地利用風(fēng)能的目的。因此,變速恒頻發(fā)電方式具有重要的現(xiàn)實(shí)意義。實(shí)現(xiàn)變速恒頻發(fā)電可以有多種不同方案,例如交流

直流

交流轉(zhuǎn)換系統(tǒng);交流整流子發(fā)電機(jī)方式;磁場(chǎng)調(diào)制發(fā)電機(jī)及降頻轉(zhuǎn)換系統(tǒng)等。各種系統(tǒng)各有不同的特點(diǎn),并且都在進(jìn)一步的研究和發(fā)展中。交流

直流

交流轉(zhuǎn)換系統(tǒng)是將變速運(yùn)轉(zhuǎn)的風(fēng)輪機(jī)轉(zhuǎn)子和交流發(fā)電機(jī)連接,發(fā)電機(jī)發(fā)出的變頻交流電,經(jīng)整流器變成直流,再經(jīng)逆變器轉(zhuǎn)變?yōu)楣ゎl交流電。這種方法在技術(shù)上是成熟的,但由于采用整流及逆變裝置,電子設(shè)備成本較高,會(huì)導(dǎo)致發(fā)電設(shè)備的投資費(fèi)用提高。當(dāng)風(fēng)輪機(jī)的轉(zhuǎn)速由于風(fēng)速的變化而改變時(shí),電磁滑差連接裝置的主動(dòng)軸轉(zhuǎn)速將隨之改變,但與交流同步發(fā)電機(jī)硬性連接的電磁滑差連接裝置的從動(dòng)軸轉(zhuǎn)速則可以通過(guò)自動(dòng)調(diào)節(jié)電磁滑差連接裝置的磁場(chǎng)(通過(guò)調(diào)節(jié)勵(lì)磁電流)而維持不變,也就是使電磁滑差連接裝置的主動(dòng)軸與從動(dòng)軸之間的轉(zhuǎn)速差(滑差)作相應(yīng)的變化。磁場(chǎng)的調(diào)節(jié)是通過(guò)測(cè)速機(jī)構(gòu)及電子調(diào)節(jié)裝置而實(shí)現(xiàn)的。所以電磁滑差連接裝置變速恒頻發(fā)電系統(tǒng)是在風(fēng)輪機(jī)及發(fā)電機(jī)之間借助電磁聯(lián)系實(shí)現(xiàn)滑差連接,并通過(guò)調(diào)節(jié)電磁滑差連接裝置的磁場(chǎng)。改變滑差,就能在風(fēng)輪機(jī)風(fēng)速變化的情況下,保證在發(fā)電機(jī)端得到穩(wěn)定頻率的電源。電磁滑差連接裝置實(shí)質(zhì)上是一個(gè)特殊電機(jī),起著離合器的作用。它由兩個(gè)旋轉(zhuǎn)的部分組成,區(qū)別于一般電磁離合器的地方,是在這兩個(gè)旋轉(zhuǎn)部分之間沒有機(jī)械上的硬性連接,而是以電磁場(chǎng)的方式實(shí)現(xiàn)從原動(dòng)機(jī)到被驅(qū)動(dòng)機(jī)械之間的彈性連接來(lái)傳遞力矩。從結(jié)構(gòu)原理上看,電磁連接裝置與工業(yè)上日趨廣泛使用的滑差電機(jī)相似。在工業(yè)上當(dāng)交流電動(dòng)機(jī)由恒定頻率的電網(wǎng)供電時(shí),滑差電機(jī)可作為均勻調(diào)速的裝置,實(shí)現(xiàn)由恒頻電能到變速機(jī)械能的能量轉(zhuǎn)換。而電磁滑差連接裝置與交流發(fā)電機(jī)一起則可以實(shí)現(xiàn)由變速的機(jī)械能到恒頻電能的轉(zhuǎn)換。電磁滑差連接裝置的結(jié)構(gòu)形式可以是多種多樣的。考慮到運(yùn)行可靠簡(jiǎn)單,可以采用不帶滑環(huán)的無(wú)刷勵(lì)磁方式,其不足之處是滑差功率不能利用,特別是在滑差值比較大時(shí)整個(gè)系統(tǒng)的效率會(huì)受到影響。為提高整個(gè)系統(tǒng)的效率,同時(shí)獲得可以利用的直流電能,則可考慮采用轉(zhuǎn)動(dòng)部分帶有滑環(huán)的結(jié)構(gòu)形式,通過(guò)滑環(huán)將滑差功率引出,當(dāng)然隨著滑差的變化,在滑環(huán)上引出的滑差功率的頻率及電壓也是變化的,但這種結(jié)構(gòu)形式對(duì)于充分利用風(fēng)能是有效的。由滑環(huán)引出的滑差功率經(jīng)過(guò)整流設(shè)備整流以后可以對(duì)蓄電池充電,并將這部分電功率輸送到需要直流電的網(wǎng)路上去。由滑環(huán)引出的滑差功率也可以經(jīng)過(guò)整流器及逆變器,先轉(zhuǎn)變成直流,再轉(zhuǎn)變成工頻交流電饋給電網(wǎng)。這也是一種交流

直流

交流轉(zhuǎn)換系統(tǒng)。4.3電場(chǎng)風(fēng)資源與風(fēng)力發(fā)電機(jī)組的匹配風(fēng)力發(fā)電的匹配問(wèn)題包括兩個(gè)方面,一是風(fēng)力發(fā)電機(jī)組與風(fēng)電場(chǎng)風(fēng)資源的匹況,二是風(fēng)電場(chǎng)與電網(wǎng)的匹配?;鹆Πl(fā)電廠裝機(jī)容量越大,發(fā)電量也就越多,但風(fēng)力發(fā)電則不同,風(fēng)力發(fā)電機(jī)組必須和風(fēng)場(chǎng)資源相匹配,才能提高發(fā)電量。另外,在具有風(fēng)力發(fā)電的電網(wǎng)中,風(fēng)電場(chǎng)容量也不是越大越好,只有保持一定的比例,才能保證電力系統(tǒng)可靠、穩(wěn)定、經(jīng)濟(jì)運(yùn)行,這就是風(fēng)電場(chǎng)與電網(wǎng)的匹配問(wèn)題。對(duì)于一個(gè)特定的風(fēng)電場(chǎng),風(fēng)力發(fā)電機(jī)組的輸出功率取決于多種因素。這些因素包括風(fēng)電場(chǎng)址的平均風(fēng)速,風(fēng)力發(fā)電機(jī)組輸出特性,特別是輪轂高度、切入風(fēng)速vc、額定風(fēng)速vr和切出風(fēng)速vf,如圖45所示。現(xiàn)在,市場(chǎng)上銷售的風(fēng)力發(fā)電機(jī)組種類很多,容量從11kW到1.5MW不等。對(duì)于某一個(gè)風(fēng)電場(chǎng),應(yīng)選擇最好而又適合的風(fēng)力發(fā)電機(jī)組,而不能局限于風(fēng)力發(fā)電機(jī)組容量。平均容量系數(shù)反映風(fēng)力發(fā)電機(jī)組與風(fēng)電場(chǎng)風(fēng)資源匹配信況,下面介紹怎樣計(jì)算風(fēng)力發(fā)電機(jī)組的平均容量系數(shù)。4.4風(fēng)電輸出與電網(wǎng)的匹配風(fēng)力發(fā)電機(jī)組并網(wǎng)運(yùn)行,對(duì)電網(wǎng)有一定的影響。由于風(fēng)力發(fā)電機(jī)組單機(jī)容量比較小,一般不超過(guò)2MW,對(duì)于一個(gè)大電網(wǎng),影響很小,可以忽略。但對(duì)一個(gè)風(fēng)電場(chǎng)來(lái)說(shuō),由幾十臺(tái)、上百臺(tái)機(jī)組組成,總裝機(jī)容量超過(guò)幾十萬(wàn)千瓦,對(duì)于一個(gè)容量不大的電網(wǎng),就會(huì)造成很大的影響,影響程度與風(fēng)電容量所占電網(wǎng)容量的比例有關(guān)。風(fēng)電場(chǎng)對(duì)電網(wǎng)有多大影響,為了保證電網(wǎng)安全可靠運(yùn)行,風(fēng)電場(chǎng)容量應(yīng)占多大比例比較合適,這就是本節(jié)要研究的風(fēng)電場(chǎng)與電網(wǎng)的匹配問(wèn)題。據(jù)丹麥專家分析,風(fēng)電比例低于10%對(duì)電網(wǎng)不會(huì)構(gòu)成危險(xiǎn)。德國(guó)也曾提出過(guò),風(fēng)電場(chǎng)并入人口稀少地區(qū)的電網(wǎng)可能受到容量的潛在限制。我國(guó)原電力部頒布的《風(fēng)力發(fā)電場(chǎng)并網(wǎng)運(yùn)行管理規(guī)定》中有一條:風(fēng)電場(chǎng)容量與電網(wǎng)統(tǒng)一調(diào)度的原則是由穩(wěn)態(tài)運(yùn)行下的電能質(zhì)量、最小線路損失和暫態(tài)穩(wěn)定性等因素決定。當(dāng)風(fēng)電場(chǎng)容量占電網(wǎng)統(tǒng)一調(diào)度容量的5%以下時(shí),一般無(wú)需裝控制設(shè)備,當(dāng)超過(guò)5%時(shí),應(yīng)與電網(wǎng)調(diào)度機(jī)構(gòu)協(xié)商解決。對(duì)于某電網(wǎng),目前風(fēng)電裝機(jī)容量已約占3.3%,有必要對(duì)風(fēng)電場(chǎng)與電網(wǎng)的匹配問(wèn)題進(jìn)行深入的研究,從而既充分利用風(fēng)能資源,又保證電網(wǎng)的安全、可靠、經(jīng)濟(jì)運(yùn)行。風(fēng)電場(chǎng)對(duì)電網(wǎng)穩(wěn)態(tài)頻率的影響是指電網(wǎng)受到擾動(dòng)后,從一個(gè)穩(wěn)態(tài)頻率到另一個(gè)穩(wěn)態(tài)頻率的情況,而不考慮期間的頻率變化過(guò)程。風(fēng)力發(fā)電的不穩(wěn)定性表現(xiàn)在間歇性和難以預(yù)計(jì)性。陣風(fēng)、從有風(fēng)到無(wú)風(fēng)等,都會(huì)對(duì)電網(wǎng)曲率產(chǎn)生影響。眾所周知,電力系統(tǒng)的作用是維持發(fā)電輸出功率和用電負(fù)荷的動(dòng)態(tài)平衡。當(dāng)風(fēng)電場(chǎng)輸出功率突然增加時(shí),對(duì)電網(wǎng)產(chǎn)生影響,電網(wǎng)頻率有增加的趨勢(shì),電網(wǎng)對(duì)這種變化適應(yīng)能力比較強(qiáng)。當(dāng)風(fēng)電場(chǎng)電輸出功率下降時(shí),或者用電負(fù)荷增加時(shí),這樣就破壞了原有電力平衡,旋轉(zhuǎn)備用容量經(jīng)一次調(diào)頻和二次調(diào)頻后,若仍不能達(dá)到新的電力平衡,即仍有功率缺額ΔP,則電網(wǎng)球頻率必然下降,同時(shí)用電負(fù)荷的功率隨之下降,其下降額度等于功率缺額ΔP時(shí),重新達(dá)到電力平衡,電網(wǎng)頻率也就穩(wěn)定下來(lái)。負(fù)荷的這種對(duì)頻率的補(bǔ)償作用稱為負(fù)荷的頻率靜特性。該特性在50Hz附近可以近似為一條直線,其數(shù)學(xué)表達(dá)式為式中:k為負(fù)荷頻率調(diào)節(jié)效應(yīng)系數(shù),P0為初始用電負(fù)荷,f0為初始電網(wǎng)頻率,ΔP為功率缺額,Δf為允許頻率偏差。假設(shè)一個(gè)風(fēng)電場(chǎng)的裝機(jī)容量為P風(fēng),風(fēng)電負(fù)載率為mi,則電風(fēng)場(chǎng)輸出功率為miP風(fēng)

。常規(guī)電源裝機(jī)總?cè)萘繛镻0,常規(guī)電源開機(jī)容量P風(fēng),旋轉(zhuǎn)備用容量的比率mc,則常規(guī)電源輸出(1-mc)P開

。電網(wǎng)總的容量為從以上公式可以看出,風(fēng)電比例與電網(wǎng)正常運(yùn)行頻率、允許頻率偏差、負(fù)荷頻率調(diào)節(jié)效應(yīng)系數(shù)以及風(fēng)電負(fù)載率、允許的常規(guī)電源旋轉(zhuǎn)備用容量等因素有關(guān)系。解決風(fēng)電場(chǎng)與電網(wǎng)的匹配問(wèn)題,常規(guī)電源開機(jī)容量占最大負(fù)荷的比例、風(fēng)電裝機(jī)容量占最大負(fù)荷的比例、風(fēng)電裝機(jī)容量占常規(guī)開機(jī)容量的比例可以參考式(410)~(412)進(jìn)行。實(shí)際上,計(jì)算復(fù)雜度是O(n3),n是狀態(tài)數(shù)量。因此直接求解僅適用于小規(guī)模的MRP。大

規(guī)

模MRP的

使

法。

有:動(dòng)

態(tài)

規(guī)

劃、蒙

評(píng)

估、

時(shí)

學(xué)

習(xí),后文會(huì)逐步講解這些方法。4.馬爾科夫決策過(guò)程相較于馬爾科夫獎(jiǎng)勵(lì)過(guò)程,馬爾科夫決策過(guò)程多了一個(gè)行為集合A,它是這樣的一個(gè)元組:<S,A,P,R,γ>??雌饋?lái)很類似馬爾科夫獎(jiǎng)勵(lì)過(guò)程,但這里的P和R都與具體的行為a對(duì)應(yīng),而不像馬爾科夫獎(jiǎng)勵(lì)過(guò)程那樣僅對(duì)應(yīng)于某個(gè)狀態(tài),A表示的是有限的行為的集合。具體的數(shù)學(xué)表達(dá)式如下:在學(xué)生馬爾科夫問(wèn)題中,圖4.8所示為一個(gè)可能的MDP的狀態(tài)轉(zhuǎn)化圖。圖中的文字表示的是采取的行為,而不是先前的狀態(tài)名。對(duì)比之前的學(xué)生MRP示例可以發(fā)現(xiàn),即時(shí)獎(jiǎng)勵(lì)與行為對(duì)應(yīng)了,同一個(gè)狀態(tài)下采取不同的行為得到的即時(shí)獎(jiǎng)勵(lì)是不一樣的。由于引入了行為,容易與狀態(tài)名混淆,因此此圖沒有給出各狀態(tài)的名稱;此圖還把“通過(guò)”和“睡覺”狀態(tài)合并成一個(gè)終止?fàn)顟B(tài);另外當(dāng)選擇“看書”這個(gè)動(dòng)作時(shí),主動(dòng)進(jìn)入了一個(gè)臨時(shí)狀態(tài)(圖中用黑色小實(shí)點(diǎn)表示),隨后被動(dòng)地被環(huán)境按照其動(dòng)力學(xué)分配到另外三個(gè)狀態(tài),也就是說(shuō)此時(shí)智能體沒有選擇權(quán)決定去哪一個(gè)狀態(tài)。策略π是概率的集合或分布,其元素π(a|s)為對(duì)過(guò)程中的某一狀態(tài)s采取可能的行為a的概率:一個(gè)策略完整地定義了個(gè)體的行為方式,也就是說(shuō)定義了個(gè)體在各個(gè)狀態(tài)下的各種可能的行為方式以及其概率的大小。策略僅和當(dāng)前的狀態(tài)有關(guān),與歷史信息無(wú)關(guān);同時(shí)某一確定的策略是靜態(tài)的,與時(shí)間無(wú)關(guān);但是個(gè)體可以隨著時(shí)間更新策略。當(dāng)給定一個(gè)MDP:M=<S,A,P,R,γ>和一個(gè)策略π時(shí),狀態(tài)序列S1,S2,…是一個(gè)馬爾科夫過(guò)程<S,Pπ>;同樣,狀態(tài)和獎(jiǎng)勵(lì)序列S1,R2,S2,R3,S3,…是一個(gè)馬爾科夫獎(jiǎng)勵(lì)過(guò)程<S,Pπ,Rπ,γ>,并且在這個(gè)獎(jiǎng)勵(lì)過(guò)程中滿足下面的方程:通俗地講,在執(zhí)行策略π時(shí),狀態(tài)從s轉(zhuǎn)移至s'的概率等于一系列概率的和,這一系列概率指的是在執(zhí)行當(dāng)前策略時(shí),執(zhí)行某一個(gè)行為的概率與該行為能使?fàn)顟B(tài)從s轉(zhuǎn)移至s'的概率的乘積。獎(jiǎng)勵(lì)函數(shù)表示如下:當(dāng)前狀態(tài)s下執(zhí)行某一指定策略得到的即時(shí)獎(jiǎng)勵(lì)是該策略下所有可能行為得到的獎(jiǎng)勵(lì)與該行為發(fā)生的概率的乘積的和。策略在MDP中的作用相當(dāng)于智能體可以在某一個(gè)狀態(tài)時(shí)做出選擇,進(jìn)而有形成各種馬爾科夫過(guò)程的可能,而且基于策略產(chǎn)生的每一個(gè)馬爾科夫過(guò)程是一個(gè)馬爾科夫獎(jiǎng)勵(lì)過(guò)程,各過(guò)程之間的差別是不同的選擇產(chǎn)生了不同的后續(xù)狀態(tài)以及對(duì)應(yīng)的不同的獎(jiǎng)勵(lì)?;诓呗缘膬r(jià)值函數(shù),定義vπ(s)是在MDP下基于策略π的狀態(tài)價(jià)值函數(shù),表示從狀態(tài)s開始,遵循當(dāng)前策略時(shí)所獲得的期望;或者說(shuō)在執(zhí)行當(dāng)前策略π時(shí),衡量個(gè)體處在狀態(tài)s時(shí)的價(jià)值大小,數(shù)學(xué)表示如下:注意策略是靜態(tài)的、關(guān)于整體的概念,不隨狀態(tài)改變而改變;變化的是在某一個(gè)狀態(tài)時(shí),依據(jù)策略可能產(chǎn)生的具體行為,因?yàn)榫唧w的行為是有一定的概率的,策略就是用來(lái)描述各個(gè)不同狀態(tài)下執(zhí)行各個(gè)不同行為的概率。定義qπ(s,a)為行為價(jià)值函數(shù),表示在執(zhí)行策略π時(shí),對(duì)當(dāng)前狀態(tài)s執(zhí)行某一具體行為a所能收獲的期望;或者說(shuō)在遵循當(dāng)前策略π時(shí),衡量對(duì)當(dāng)前狀態(tài)執(zhí)行行為a的價(jià)值大小。行為價(jià)值函數(shù)一般都是與某一個(gè)特定的狀態(tài)相對(duì)應(yīng)的,其公式如下:圖4.9解釋了行為價(jià)值函數(shù),其中vπ(s)(π(a|s))=0.5,γ=1。1)貝爾曼(Bellman)期望方程MDP下的狀態(tài)價(jià)值函數(shù)(見圖4.10)和行為價(jià)值函數(shù)與MRP下

價(jià)

數(shù)(見

圖4.11)可以改用下一時(shí)刻狀態(tài)價(jià)值函數(shù)或行為價(jià)值函數(shù)來(lái)表達(dá),具體方程如下:其中:γ表示離開當(dāng)前狀態(tài)的獎(jiǎng)勵(lì)。vπ(s)和qπ(s,a)的關(guān)系可由圖4.10和圖4.11所示。圖中,空心圓圈表示狀態(tài),黑色實(shí)心小圓表示的是動(dòng)作本身,連接狀態(tài)和動(dòng)作的線條僅僅把該狀態(tài)以及該狀態(tài)下可以采取的行為關(guān)聯(lián)起來(lái)??梢钥闯?在遵循策略π時(shí),狀態(tài)s的價(jià)值體現(xiàn)為在該狀態(tài)下遵循某一策略而采取所有可能行為的價(jià)值按行為發(fā)生概率的乘積求和,即有類似地,一個(gè)行為價(jià)值函數(shù)也可以表示成狀態(tài)價(jià)值函數(shù)的形式:式(4.28)表明,某一個(gè)狀態(tài)下采取一個(gè)行為的價(jià)值可以分為兩部分:其一是離開這個(gè)狀態(tài)的價(jià)值,其二是所有進(jìn)入新的狀態(tài)的價(jià)值與其轉(zhuǎn)移概率乘積的和。如果組合起來(lái),可以得到下面的結(jié)果,如圖4.12所示:也可以得到下面的結(jié)果,如圖4.13所示:在學(xué)生馬爾科夫問(wèn)題中,圖4.14解釋了空心圓圈狀態(tài)的狀態(tài)價(jià)值是如何計(jì)算的,其遵循隨機(jī)策略,即所有可能的行為有相同的概率被選擇執(zhí)行:Bellman期望方程如下:2)最優(yōu)價(jià)值函數(shù)最優(yōu)狀態(tài)價(jià)值函數(shù)v*(s)指的是在從所有策略產(chǎn)生的狀態(tài)價(jià)值函數(shù)中,選取使?fàn)顟B(tài)s價(jià)值最大的函數(shù):類似地,最優(yōu)行為價(jià)值函數(shù)q*(s,a)指的是從所有策略產(chǎn)生的行為價(jià)值函數(shù)中,選取出狀態(tài)行為對(duì)<s,a>價(jià)值最大的函數(shù):最優(yōu)價(jià)值函數(shù)明確了MDP的最優(yōu)可能表現(xiàn),當(dāng)我們知道了最優(yōu)價(jià)值函數(shù)時(shí),也就知道了每個(gè)狀態(tài)的最優(yōu)價(jià)值,這時(shí)便認(rèn)為MDP得到了解決。學(xué)生MDP問(wèn)題的最優(yōu)狀態(tài)價(jià)值如圖4.15所示。學(xué)生MDP問(wèn)題的最優(yōu)行為價(jià)值如圖4.16所示,其中q*(s,a),γ=1代表最優(yōu)價(jià)值。3)最優(yōu)策略若對(duì)于任何狀態(tài)s,遵循策略π的價(jià)值不小于遵循策略π'下的價(jià)值,則策略π優(yōu)于策略π':定理4.1.1對(duì)于任何MDP,下面幾點(diǎn)成立:(1)存在一個(gè)最優(yōu)策略,比任何其他策略更好或至少相等。(2)所有的最優(yōu)策略都有相同的最優(yōu)價(jià)值函數(shù)。(3)所有的最優(yōu)策略都具有相同的行為價(jià)值函數(shù)。一般地,可以通過(guò)最大化最優(yōu)行為價(jià)值函數(shù)來(lái)找到最優(yōu)策略:對(duì)于任何MDP問(wèn)題,總存在一個(gè)確定性的最優(yōu)策略;同時(shí)如果我們知道最優(yōu)行為價(jià)值函數(shù),則表明已找到了最優(yōu)策略。在學(xué)生MDP問(wèn)題

中,圖4.17所

優(yōu)

略,圖

優(yōu)

略π*(a|s),γ=1的行為。4)Bellman最優(yōu)方程針對(duì)v*,一個(gè)狀態(tài)的最優(yōu)價(jià)值等于從該狀態(tài)出發(fā)采取的所有行為產(chǎn)生的行為價(jià)值中最大的那個(gè)行為價(jià)值,如圖4.18所示,其公式如下:針對(duì)q*,在某個(gè)狀態(tài)s下,采取某個(gè)行為的最優(yōu)價(jià)值由兩部分組成:一部分是離開狀態(tài)s的即刻獎(jiǎng)勵(lì),另一部分則是所有能到達(dá)的狀態(tài)s'的最優(yōu)狀態(tài)價(jià)值按出現(xiàn)概率求和。如圖4.19所示,其公式如下:組合起來(lái),針對(duì)v*,如圖4.20所示,有針對(duì)q*,如圖4.21所示,有Bellman最優(yōu)方程(如圖4.22所示)學(xué)生MDP示例:Bellman最優(yōu)方程是非線性的,沒有固定的解決方案,可通過(guò)一些迭代方法來(lái)解決,如價(jià)值迭代算法、策略迭代算法、Q學(xué)習(xí)算法、Sarsa算法等,后續(xù)會(huì)逐步展開講解。4.1.4動(dòng)態(tài)規(guī)劃1.動(dòng)態(tài)規(guī)劃簡(jiǎn)介動(dòng)態(tài)規(guī)劃是運(yùn)籌學(xué)的一個(gè)分支,是求解決策過(guò)程最優(yōu)化的過(guò)程。20世紀(jì)50年代初,美國(guó)數(shù)學(xué)家貝爾曼等人在研究多階段決策過(guò)程的優(yōu)化問(wèn)題時(shí),提出了著名的最優(yōu)化原理,從而創(chuàng)立了動(dòng)態(tài)規(guī)劃。動(dòng)態(tài)規(guī)劃的應(yīng)用極其廣泛,包括工程技術(shù)、經(jīng)濟(jì)、工業(yè)生產(chǎn)、軍事以及自動(dòng)化控制等領(lǐng)域,并在背包問(wèn)題、生產(chǎn)經(jīng)營(yíng)問(wèn)題、資金管理問(wèn)題、資源分配問(wèn)題、最短路徑問(wèn)題和復(fù)雜系統(tǒng)可靠性問(wèn)題等中取得了顯著的效果。其基本思想是將待求解問(wèn)題分解成若干個(gè)子問(wèn)題,先求解子問(wèn)題,然后從這些子問(wèn)題的解中得到原問(wèn)題的解。適合于用動(dòng)態(tài)規(guī)劃求解的問(wèn)題,經(jīng)分解得到的子問(wèn)題往往不是相互獨(dú)立的,因此在解決子問(wèn)題的時(shí)候,通常需要將結(jié)果存儲(chǔ)起來(lái)用以解決后續(xù)復(fù)雜問(wèn)題。這樣就可以避免大量地重復(fù)計(jì)算,節(jié)省了時(shí)間。動(dòng)態(tài)規(guī)劃體現(xiàn)的是“分而治之”的思想。能夠通過(guò)動(dòng)態(tài)規(guī)劃來(lái)解決的問(wèn)題至少需要滿足以下兩個(gè)條件:(1)一個(gè)復(fù)雜問(wèn)題的最優(yōu)解由數(shù)個(gè)小問(wèn)題的最優(yōu)解構(gòu)成,可以通過(guò)尋找子問(wèn)題的最優(yōu)解來(lái)得到復(fù)雜問(wèn)題的最優(yōu)解。(2)子問(wèn)題在復(fù)雜問(wèn)題內(nèi)重復(fù)出現(xiàn),使得子問(wèn)題的解可以被存儲(chǔ)起來(lái)重復(fù)利用。2.策略迭代算法策略迭代算法是動(dòng)態(tài)規(guī)劃中求最優(yōu)策略的基本方法之一。它借助于動(dòng)態(tài)規(guī)劃基本方程,交替使用“策略評(píng)估”和“策略改進(jìn)”兩個(gè)步驟,求出逐次改進(jìn)的、最終達(dá)到或收斂于最優(yōu)策略的策略序列。求解給定策略的狀態(tài)價(jià)值函數(shù)的過(guò)程叫作策略評(píng)估。策略評(píng)估的基本思路是從任意一個(gè)狀態(tài)價(jià)值函數(shù)開始,依據(jù)給定的策略,結(jié)合貝爾曼期望方程、狀態(tài)轉(zhuǎn)移概率和獎(jiǎng)勵(lì)同步迭代更新狀態(tài)價(jià)值函數(shù),直至其收斂,得到該策略下最終的狀態(tài)價(jià)值函數(shù)。在用迭代法求解狀態(tài)價(jià)值函數(shù)時(shí),先為所有狀態(tài)的價(jià)值函數(shù)設(shè)置初始值,然后用公式更新所有狀態(tài)的價(jià)值函數(shù),第k次迭代時(shí)狀態(tài)價(jià)值函數(shù)的計(jì)算公式為策略評(píng)估的目的是找到更好的策略,即策略改進(jìn)。策略改進(jìn)通過(guò)按照某種規(guī)則對(duì)當(dāng)前策略進(jìn)行調(diào)整從而得到更好的策略。假設(shè)π'和π是兩個(gè)不同的策略,如果對(duì)于所有狀態(tài)s,都有Qπ[s,π'(s)]>Vπ(s),則稱策略π'比π更好??梢员闅v所有狀態(tài)和所有動(dòng)作,采用貪心策略獲得新策略。具體做法是對(duì)于所有狀態(tài)都按照下面的公式計(jì)算新的策略:每次選擇的都是能獲得最好回報(bào)的動(dòng)作,用它們來(lái)更新每個(gè)狀態(tài)下的策略函數(shù),從而完成對(duì)策略函數(shù)的更新。策略迭代是策略評(píng)估和策略改進(jìn)的結(jié)合。從一個(gè)初始策略開始,不斷地改進(jìn)這個(gè)策略達(dá)到最優(yōu)解。在每次迭代中,首先進(jìn)行策略評(píng)估,根據(jù)當(dāng)前策略估計(jì)其狀態(tài)價(jià)值函數(shù)。然后進(jìn)行策略改進(jìn),根據(jù)評(píng)估結(jié)果調(diào)整策略以優(yōu)化其性能。最后計(jì)算新策略的狀態(tài)價(jià)值函數(shù),如此反復(fù)直到收斂。策略迭代的原理如圖4.23所示。3.價(jià)值迭代算法由于最優(yōu)策略對(duì)應(yīng)最優(yōu)價(jià)值函數(shù),因此可以通過(guò)直接求出最優(yōu)價(jià)值函數(shù)推出最優(yōu)策略,這就是價(jià)值迭代算法的思路。根據(jù)貝爾曼最優(yōu)化原理,如果一個(gè)策略是最優(yōu)策略,整體最優(yōu)的解的局部也一定最優(yōu),因此,最優(yōu)策略可以分解成兩部分:從狀態(tài)s到s'采用了最優(yōu)策略,在狀態(tài)s'時(shí)采用的策略也是最優(yōu)的。根據(jù)這一原理,每次選擇當(dāng)前回報(bào)和未來(lái)回報(bào)之和最大的動(dòng)作,價(jià)值迭代的更新公式為價(jià)值迭代算法與策略迭代算法的區(qū)別在于,前者不是對(duì)某一策略的狀態(tài)價(jià)值函數(shù)進(jìn)行計(jì)算的,而是直接收斂到最優(yōu)的價(jià)值函數(shù)。價(jià)值迭代算法的流程如算法4.2所示。4.1.5蒙特卡羅算法蒙特卡羅算法也稱為統(tǒng)計(jì)模擬方法、隨機(jī)抽樣技術(shù),是一種隨機(jī)模擬方法,它以概率和統(tǒng)計(jì)理論方法為基礎(chǔ),是可使用隨機(jī)數(shù)來(lái)解決很多計(jì)算問(wèn)題的方法。將所求解的問(wèn)題與一定的概率模型相聯(lián)系,用電子計(jì)算機(jī)實(shí)現(xiàn)統(tǒng)計(jì)模擬或抽樣,以獲得問(wèn)題的近似解。由于該方法可以象征性地表示概率統(tǒng)一特征,故借用賭城蒙特卡羅命名。1.算法簡(jiǎn)介蒙特卡羅算法通過(guò)隨機(jī)樣本來(lái)計(jì)算目標(biāo)函數(shù)的值,它使用隨機(jī)數(shù)來(lái)進(jìn)行場(chǎng)景的模擬或者過(guò)程的仿真,其核心思想就是通過(guò)模擬出來(lái)的大量樣本集或者隨機(jī)過(guò)程去近似我們想要研究的實(shí)際問(wèn)題對(duì)象。當(dāng)我們?cè)趶?qiáng)化學(xué)習(xí)中使用蒙特卡羅方法的時(shí)候,需要對(duì)來(lái)自不同片段或隨機(jī)過(guò)程中的每個(gè)狀態(tài)

動(dòng)作對(duì)相應(yīng)的獎(jiǎng)勵(lì)值取平均。最開始,我們可能無(wú)法對(duì)狀態(tài)價(jià)值有一個(gè)很好的預(yù)估,但是當(dāng)我們做出更多的嘗試以后,平均狀態(tài)價(jià)值會(huì)向它們的真實(shí)值靠近。2.蒙特卡羅預(yù)測(cè)蒙特卡羅預(yù)測(cè)是一種基于智能體與環(huán)境之間的交互片段來(lái)估計(jì)價(jià)值函數(shù)的方法。在這里先定義片段的概念,它是從某一狀態(tài)開始,執(zhí)行一些動(dòng)作,直到終止?fàn)顟B(tài)為止的一個(gè)完整的狀態(tài)和動(dòng)作序列,這類似于循環(huán)神經(jīng)網(wǎng)絡(luò)中的時(shí)間序列樣本。蒙特卡羅算法從這些片段樣本中學(xué)習(xí),估算出狀態(tài)價(jià)值函數(shù)和動(dòng)作價(jià)值函數(shù)。實(shí)現(xiàn)方法非常簡(jiǎn)單:按照一個(gè)策略執(zhí)行,得到一個(gè)狀態(tài)和回報(bào)序列,即片段;通過(guò)多次執(zhí)行,收集多個(gè)這樣的片段;然后基于這些片段樣本來(lái)估計(jì)價(jià)值函數(shù)。在蒙特卡羅算法中,狀態(tài)價(jià)值函數(shù)的估計(jì)值是所有片段中以該狀態(tài)計(jì)算得到的回報(bào)的平均值。具體實(shí)現(xiàn)時(shí),根據(jù)給定的策略生成一些片段樣本:如果要計(jì)算狀態(tài)s的價(jià)值函數(shù),則在這些片段中找到s出現(xiàn)的位置,假設(shè)為st,然后按照狀態(tài)價(jià)值函數(shù)的定義計(jì)算它的價(jià)值函數(shù)值:可能會(huì)出現(xiàn)這種情況:遇到從狀態(tài)s離開后又返回此狀態(tài)的情形時(shí),蒙特卡羅算法有兩種處理策略,即First-Visit和Every-Visit。前者只使用第一次到達(dá)狀態(tài)s時(shí)所計(jì)算的價(jià)值函數(shù)值,后者對(duì)每次進(jìn)入狀態(tài)s時(shí)的價(jià)值函數(shù)值累加取平均。蒙特卡羅預(yù)測(cè)算法的流程如算法4.3所示。3.蒙特卡羅控制在動(dòng)態(tài)規(guī)劃中介紹了策略迭代,現(xiàn)在可以把策略迭代運(yùn)用到蒙特卡羅算法中。策略迭代包括策略評(píng)估和策略改進(jìn)兩個(gè)部分。策略評(píng)估的過(guò)程與在動(dòng)態(tài)規(guī)劃中一樣。在此主要介紹策略改進(jìn)。對(duì)狀態(tài)

動(dòng)作使用貪心策略,確保在一個(gè)狀態(tài)下有最高價(jià)值的動(dòng)作:對(duì)于每一次策略改進(jìn),都需要根據(jù)qπt來(lái)構(gòu)造πt+1。策略改進(jìn)通過(guò)下列方式實(shí)現(xiàn):式(4.46)表明πt+1優(yōu)于πt,即會(huì)在迭代策略改進(jìn)后最終找到最優(yōu)策略。蒙特拉羅控制算法流程如算法4.4所示。與價(jià)值迭代算法類似,這里首先計(jì)算了所有的狀態(tài)

動(dòng)作對(duì)的價(jià)值函數(shù),然后更新策略,將每種狀態(tài)下的動(dòng)作置為使得動(dòng)作價(jià)值函數(shù)最大的動(dòng)作,反復(fù)迭代直至收斂4.1.6時(shí)序差分算法時(shí)序差分概念最早是由A.sammuel在他的跳棋算法中提出的。1988年,Sutton首次證明了時(shí)序差分算法在最小均方誤差上的收斂性。時(shí)序差分算法是強(qiáng)化學(xué)習(xí)中的另一種核心方法,它結(jié)合了動(dòng)態(tài)規(guī)劃和蒙特卡羅算法的思想。與動(dòng)態(tài)規(guī)劃相似,時(shí)序差分算法在估算的過(guò)程中使用了自舉;和蒙特卡羅算法一樣的是,它不需要在學(xué)習(xí)過(guò)程中了解環(huán)境的全部信息。最基本的TD算法用貝爾曼方程估計(jì)價(jià)值函數(shù)的值,然后構(gòu)造更新項(xiàng)。迭代更新公式為式中:Rt+1+γV(St+1)稱為TD目標(biāo)值,Rt+1+γV(St+1)-V(St)稱為TD誤差,α為步長(zhǎng)參數(shù)。這種方法也叫作TD(0)或者單步TD。通過(guò)將目標(biāo)值改為在N步未來(lái)中的折扣回報(bào)和N步過(guò)后的估計(jì)狀態(tài)價(jià)值可實(shí)現(xiàn)N步TD。TD(0)學(xué)習(xí)算法流程如算法4.5所示。1.Sarsa算法———在線策略TD控制Sarsa算法是由Rummmy和Niranjan于1994年提出的。它的迭代更新公式如下:該算法描述的是這一過(guò)程:在一個(gè)狀態(tài)St下,選擇一個(gè)行為At,形成一個(gè)狀態(tài)-行為對(duì)(St,At),經(jīng)過(guò)與環(huán)境交互后得到回報(bào)Rt+1,然后進(jìn)入下一個(gè)狀態(tài)St+1;選擇一個(gè)新的動(dòng)作At+1產(chǎn)生第二個(gè)狀態(tài)-行為對(duì)(St+1,At+1),利用后一個(gè)狀態(tài)-行為對(duì)的值函數(shù)Q(St+1,At+1)更新前一個(gè)狀態(tài)-行為對(duì)的值函數(shù)Q(St,At)。Sarsa算法的流程如算法4.6所示。2.Q學(xué)習(xí)算法--離線策略TD控制Q學(xué)習(xí)算法是Watkins和Dayan于1992年提出的。它的要點(diǎn)是目標(biāo)值不再依賴所使用的策略,而只依賴狀態(tài)-動(dòng)作對(duì)的價(jià)值函數(shù)。其更新公式如下:4.1.7算法實(shí)踐———迷宮尋寶本節(jié)通過(guò)“迷宮尋寶”來(lái)對(duì)上述內(nèi)容進(jìn)行實(shí)踐,本節(jié)的“迷宮尋寶”主要參考了《強(qiáng)化學(xué)習(xí)》相關(guān)內(nèi)容。1.環(huán)境描述迷宮是一個(gè)5×5的網(wǎng)格世界,對(duì)應(yīng)的馬爾可夫決策模型共有24個(gè)狀態(tài),如圖4.24所示。網(wǎng)格世界每個(gè)格子的邊長(zhǎng)是40像素,空心方塊表示智能體,邊長(zhǎng)為30像素。狀態(tài)用空心智能體移動(dòng)至當(dāng)前格子時(shí),空心方塊與網(wǎng)格格子中心重疊后,空心方塊左上和右下角的坐標(biāo)表示。例如,網(wǎng)格世界第一行第一列的格子所代表的狀態(tài)可表示為(5,5,35,35),以此類推,可得到迷宮游戲的全部狀態(tài)空間。其中有七個(gè)陷阱(圖中實(shí)心方塊所在位置)和一個(gè)寶藏區(qū)(圖中實(shí)心圓所在位置)。空心方塊表示智能體,可執(zhí)行的行為分別為朝上、下、左、右移動(dòng)一步,則動(dòng)作空間標(biāo)記為A={0,1,2,3},0、1、2、3分別對(duì)應(yīng)上、下、左、右。在這個(gè)迷宮游戲中,智能體一旦進(jìn)入陷阱位置,就獲得負(fù)1回報(bào),游戲終止;智能體一旦進(jìn)入寶藏區(qū),就獲得正1回報(bào),游戲終止。除此之外,智能體任何移動(dòng)的回報(bào)都為0;并且當(dāng)智能體位于網(wǎng)格世界邊緣格子時(shí),任何使得智能體試圖離開格子世界的行為都會(huì)使得智能體停留在移動(dòng)前的位置。對(duì)于智能體來(lái)說(shuō),它不清楚整個(gè)格子世界的構(gòu)造,不知道格子是長(zhǎng)方形還是正方形,不知道格子世界的邊界在哪里,也不清楚陷阱和寶藏的具體位置。智能體能做的就是不斷地進(jìn)行上下左右移動(dòng),與環(huán)境進(jìn)行交互,通過(guò)環(huán)境反饋的回報(bào)不斷調(diào)整自己的行為。假設(shè)在此網(wǎng)格世界游戲中,智能體的狀態(tài)轉(zhuǎn)移概率,折扣因子γ=1。接下來(lái)求解此網(wǎng)格世界尋找寶藏的最優(yōu)策略。2.環(huán)境代碼下面根據(jù)上述內(nèi)容構(gòu)建網(wǎng)格尋寶環(huán)境,環(huán)境代碼主要由一個(gè)Maze類構(gòu)成,包含如下方法。def_build_maze(self):構(gòu)建迷宮的方法,該方法給出了陷阱位置、寶藏位置及智能體的初始位置;并且定義了動(dòng)作空間,給出了狀態(tài)轉(zhuǎn)換過(guò)程以及行為回報(bào)。defstep(self,action):根據(jù)當(dāng)前行為,返回下一步的位置、立即回報(bào),以及判斷游戲是否終止。defreset(self):根據(jù)當(dāng)前狀態(tài),重置畫布,defrenderby_policy(self,policy,result_list):根據(jù)傳人策略進(jìn)行界面渲染。環(huán)境代碼如下:3.算法詳情本節(jié)使用Sarsa算法對(duì)帶陷阱的網(wǎng)格世界馬爾可夫決策問(wèn)題進(jìn)行求解??傮w思路是以ε-貪心策略采樣數(shù)據(jù)生成軌跡。針對(duì)每一條軌跡的每個(gè)時(shí)間步,進(jìn)行次策略評(píng)估,根據(jù)下式更新狀態(tài)-行為對(duì)的行為值函數(shù):每條軌跡結(jié)束后,根據(jù)更新的值函數(shù)對(duì)策略進(jìn)行改進(jìn)。規(guī)定軌跡總數(shù)目為100條。超出軌跡數(shù)目之后,輸出最優(yōu)策略。具體操作過(guò)程如下。(1)初始化全部行為值函數(shù)Q(s,a)=0。當(dāng)前的q值以q表形式存儲(chǔ),創(chuàng)建q表,代碼如下:(2)初始化環(huán)境,得到初始狀態(tài)s1。這里指的是智能體的初始位置,s1=(5,5,35,35),代碼如下:(3)基于狀態(tài)s1,遵循ε-貪心策略選擇行為為a1。例如,得到動(dòng)作a1=2(表示向右移動(dòng)一格),得到第一個(gè)狀態(tài)-行為對(duì)(s1,a1)。(4)動(dòng)作a1作用于環(huán)境,獲得立即回報(bào)R1和下一個(gè)狀態(tài)s2,同時(shí)得到了軌跡是否終止的標(biāo)識(shí)。這里:s2=(45,5,75,35),R1=0,done=false(表示軌跡未終止)。代碼如下:(5)基于狀態(tài)s2,繼續(xù)遵循ε-貪心策略,得到行為a2。這里動(dòng)作a2=0(表示向右移動(dòng)一格),得到第二個(gè)狀態(tài)-行為對(duì)(s2,a2)。代碼如下:(6)通過(guò)第二個(gè)狀態(tài)-行為對(duì)(s2,a2)的行為值函數(shù)Q(s2,a2)更新第一個(gè)狀態(tài)-行為對(duì)(s2,a2)的行為值函數(shù)Q(s2,a2)。根據(jù)公式Q(s1,a1)←Q(s1,a1)+α[r+γQ(s2,a2)-Q(s1,a1)],計(jì)算得到Q(s1,a1)=0,緊接著,令s2=s1。代碼如下:(7)重復(fù)步驟(3)和(6),直至軌跡結(jié)束。(8)結(jié)合更新后的行為值函數(shù),采用ε-貪心法對(duì)原始策略進(jìn)行更新。代碼如下:(9)重復(fù)步驟(2)~(8),直至軌跡數(shù)等于100。最終得到的最優(yōu)策略如圖4.25所示。圖4.25所示為智能體從起點(diǎn)出發(fā)找到寶藏的最優(yōu)路徑。最優(yōu)路徑所在狀態(tài)經(jīng)歷了多次探索,由此可得到比較準(zhǔn)確的最優(yōu)行為。而其他狀態(tài)經(jīng)歷次數(shù)很少,給出的最優(yōu)行為不精確。例如,寶藏左右兩側(cè)的網(wǎng)格位置,因?yàn)橹悄荏w從沒有經(jīng)歷過(guò),因此其四個(gè)方向的行為值函數(shù)均為0,對(duì)應(yīng)的最優(yōu)行為為四個(gè)方向中的任意一個(gè)。為簡(jiǎn)要地說(shuō)明問(wèn)題,僅列出最優(yōu)路徑經(jīng)歷的狀態(tài)及采取的最優(yōu)行為,見表4.3。其中最優(yōu)行為是帶有ε隨機(jī)性的隨機(jī)行為,以ε的概率選擇當(dāng)前最優(yōu)動(dòng)作,以1-ε的概率隨機(jī)選擇一種行為。4.核心代碼Sarsa算法中最核心的方法是update()方法,循環(huán)遍歷100條軌跡中的每一個(gè)時(shí)間步;進(jìn)行行為的選擇和行為值函數(shù)的更新,并基于行為值函數(shù)進(jìn)行策略改進(jìn)。update()方法調(diào)用的其他基礎(chǔ)方法均寫在RL類中,例如:defchoose_action(str(observation)):基于輸人狀態(tài),根據(jù)ε貪心策略選擇行為。deflearn(str(observation),action,reward,str(observation_),action_):Sarsa的值函數(shù)更新方法。由代碼可見,Sarsa算法自始至終都在維護(hù)一個(gè)q表(q_table,行為值函數(shù)表),此表記錄了智能體所經(jīng)歷過(guò)的狀態(tài)-行為對(duì)的行為值函數(shù),defgetpolicy(…):基于當(dāng)前g表,繪制最優(yōu)策略圖。具體代碼如下。4.2路徑規(guī)劃算法4.2.1傳統(tǒng)路徑規(guī)劃算法傳統(tǒng)路徑規(guī)劃算法包括Dijkstra算法、A*算法、D*算法、人工勢(shì)場(chǎng)法等,下面著重介紹Dijkstra算法和A*算法。1.Dijkstra算法Dijkstra算法由荷蘭計(jì)算機(jī)科學(xué)家EdsgerW.Dijkstra于1959年提出。Dijkstra算法是很有代表性的最短路徑算法,用于計(jì)算一個(gè)結(jié)點(diǎn)到其他結(jié)點(diǎn)的最短路徑。該算法指定一個(gè)點(diǎn)(源點(diǎn))到其余各個(gè)結(jié)點(diǎn)的最短路徑,因此也叫作單源最短路徑算法。Dijkstra算法的思想是廣度優(yōu)

略。對(duì)

計(jì)

權(quán)

徑,也

使

法。Dijkstra算法是對(duì)貪心算法的推廣,以起始點(diǎn)為中心向外層擴(kuò)展,并且每一次都選擇最優(yōu)的結(jié)點(diǎn)進(jìn)行擴(kuò)展,直到擴(kuò)展到終點(diǎn)為止。Dijkstra算法可以劃歸為貪心算法,下一條路徑都是由當(dāng)前更短的路徑派生出來(lái)的更長(zhǎng)的路徑。該算法在移動(dòng)機(jī)器人路徑規(guī)劃領(lǐng)域應(yīng)用得非常廣泛,算法4.8為Dijkstra算法偽代碼。算法中,G為帶權(quán)重的有向圖,s是起點(diǎn)(源點(diǎn)),V表示G中所有頂點(diǎn)的集合,(u,v)表示頂點(diǎn)u到v有路徑相連,w(u,v)表示頂點(diǎn)u到v之間的非負(fù)權(quán)重。算法是通過(guò)為每個(gè)頂點(diǎn)u保留當(dāng)前為止找到的從s到v的最短路徑進(jìn)行工作的。初始時(shí),源點(diǎn)s的路徑權(quán)重被賦為0,所以d[s]=0。若對(duì)于頂點(diǎn)u存在能夠直接到達(dá)的邊(s,u),則把d[v]設(shè)為w(s,u),同時(shí)把所有其他源點(diǎn)s不能直接到達(dá)的頂點(diǎn)的路徑長(zhǎng)度設(shè)為無(wú)窮大,即表示當(dāng)前還不知道任何通向這些頂點(diǎn)的路徑。當(dāng)算法結(jié)束時(shí),d[v]中存儲(chǔ)的便是從s到u的最短路徑,如果路徑不存在,則其值是無(wú)窮大。Dijkstra算法中邊的拓展如下:如果存在一條從u到v的邊,那么從s到u的最短路徑可以通過(guò)將邊(s,u)添加到從s到u的路徑尾部拓展一條從s到v的路徑。這條路徑的長(zhǎng)度是d[u]+w(u,v)。如果這個(gè)值比當(dāng)前已知的d[v]的值小,則可以用新值替代當(dāng)前d[v]中的值。拓展邊的操作,一直運(yùn)行到所有的d[v]都代表從s到v的最短路徑的長(zhǎng)度值。此算法的組織令d[u]達(dá)到其最終值時(shí),每條邊(u,v)都只被拓展一次。算法維護(hù)兩個(gè)頂點(diǎn)集合S和Q。集合S保留所有已知最小d[v]值的頂點(diǎn)v,而集合Q則保留其他所有頂點(diǎn)。集合S的初始狀態(tài)為空,而后每一步都有一個(gè)頂點(diǎn)從Q移動(dòng)到S。這個(gè)被選擇的頂點(diǎn)是Q中擁有最小d[u]值的頂點(diǎn)。當(dāng)一個(gè)頂點(diǎn)u從Q中轉(zhuǎn)移到S中時(shí),算法對(duì)u的每條外接邊(u,v)進(jìn)行拓展。同時(shí),上述算法保留圖G中源點(diǎn)s到每一個(gè)頂點(diǎn)v的最短距離d[v],同時(shí)找出并保留v在此最短路徑上的“前趨”,即沿此路徑由s前往v,到達(dá)v之前所到達(dá)的頂點(diǎn)。其中,函數(shù)ExtractMin(Q)將頂點(diǎn)集合Q中擁有最小d[u]值的頂點(diǎn)u從Q中刪除并返回u。在移動(dòng)機(jī)器人導(dǎo)航應(yīng)用中,通常只需要求出起點(diǎn)到目標(biāo)點(diǎn)間的最短距離,此時(shí)可在上述經(jīng)典算法結(jié)構(gòu)中添加判斷,判斷當(dāng)前點(diǎn)是否為目標(biāo)點(diǎn),若為目標(biāo)點(diǎn),即結(jié)束。2.A*算法作為Dijkstra算法的拓展,A*算法最早由Stanford研究院的PeterHart、NilsNilsson以及BertramRaphael于1968年發(fā)表,是一種啟發(fā)式搜索算法。A*算法作為啟發(fā)式搜索算法的典型代表,在移動(dòng)機(jī)器人最短路徑問(wèn)題中廣泛應(yīng)用。該算法最核心的部分是合理地設(shè)計(jì)估價(jià)函數(shù),利用估價(jià)函數(shù)評(píng)估路徑中頂點(diǎn)的價(jià)值。當(dāng)然,如果估價(jià)值和實(shí)際目標(biāo)值接近,就認(rèn)為估價(jià)函數(shù)是合理的。A*算法可以說(shuō)是一個(gè)具有完備性的最優(yōu)搜索算法,是靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法。A*算法核心表達(dá)式為式中:f(n)是節(jié)點(diǎn)n的綜合優(yōu)先級(jí)。當(dāng)我們選擇下一個(gè)要遍歷的節(jié)點(diǎn)時(shí),總會(huì)選取綜合優(yōu)先級(jí)最高(值最小)的節(jié)點(diǎn)。g(n)是節(jié)點(diǎn)n距離起點(diǎn)的代價(jià)。h(n)是節(jié)點(diǎn)n距離終點(diǎn)的預(yù)計(jì)代價(jià),也就是A*算法的啟發(fā)函數(shù)。經(jīng)典的A*算法偽代碼見算法4.9。算法中創(chuàng)建了兩個(gè)表:一個(gè)是openSet表,用于存放已

經(jīng)

問(wèn)

過(guò)

節(jié)

點(diǎn);一

個(gè)

是closedSet表,用

經(jīng)

問(wèn)

過(guò)

節(jié)

點(diǎn)。cameFrom[n]是從起點(diǎn)start到當(dāng)前節(jié)點(diǎn)的最佳路徑上的n的父節(jié)點(diǎn),gScore[n]是從n到當(dāng)前

節(jié)

點(diǎn)

價(jià),d(current,neighbor)是

當(dāng)

節(jié)

點(diǎn)current到

節(jié)

點(diǎn)neighbor之間邊

權(quán)

重。tentative_gScore是

節(jié)

點(diǎn)

經(jīng)

過(guò)current到neighbor的距離。若A*算法的估價(jià)函數(shù)中啟發(fā)式代價(jià)的影響增大,則該算法在路徑規(guī)劃中的搜索方向更趨向于有目的地接近終點(diǎn),因此該算法的效率更高。另一方面,A*算法的估價(jià)函數(shù)直接將實(shí)際代價(jià)和啟發(fā)式代價(jià)相加。實(shí)際上,在最佳估價(jià)函數(shù)中,實(shí)際代價(jià)和啟發(fā)式代價(jià)的權(quán)重往往是不相等的。因此,為不同環(huán)境下的啟發(fā)式代價(jià)設(shè)定一定的權(quán)重,可以改善A*算法的評(píng)估功能。4.2.2基于采樣的路徑規(guī)劃算法路徑規(guī)劃算法大致可以分為兩類,一類是基于搜索的規(guī)劃,另一類是基于采樣的規(guī)劃。基于采樣的規(guī)劃算法的核心在于隨機(jī)采樣,從父節(jié)點(diǎn)開始,隨機(jī)在地圖上生成子節(jié)點(diǎn),連接父子節(jié)點(diǎn)并進(jìn)行碰撞檢測(cè),如果無(wú)碰撞,就擴(kuò)展該子節(jié)點(diǎn)。這樣不斷地隨機(jī)擴(kuò)展樣本點(diǎn),直到生成一條連接起點(diǎn)和終點(diǎn)的路徑。采樣規(guī)劃算法中,常用的有概率路圖法和快速擴(kuò)展隨機(jī)樹法。1.概率路圖法概率路圖法是由LydiaKavraki、Jean-ClaudeLatomde提出的一種基于圖搜索的算法,是基于啟發(fā)式節(jié)點(diǎn)增強(qiáng)策略的一種路徑規(guī)劃方法,很好地解決了在高維空間中構(gòu)造有效路徑圖的困難。該算法通過(guò)在構(gòu)形空間中進(jìn)行采樣、對(duì)采樣點(diǎn)進(jìn)行碰撞檢測(cè)、測(cè)試相鄰采樣點(diǎn)是否能夠連接來(lái)表示路徑圖的連通性。此方法的一個(gè)優(yōu)點(diǎn)是,其復(fù)雜度主要依賴尋找路徑的難度,跟整個(gè)規(guī)劃場(chǎng)景的大小和構(gòu)形空間的維數(shù)關(guān)系不大。概率路圖法主要分為兩個(gè)階段,即學(xué)習(xí)階段和查詢階段。在學(xué)習(xí)階段,隨機(jī)采樣大量的機(jī)器人位姿點(diǎn),為每個(gè)節(jié)點(diǎn)搜索鄰居節(jié)點(diǎn)并建立連接,構(gòu)建出路標(biāo)地圖;在查詢階段,根據(jù)起始點(diǎn)、目標(biāo)點(diǎn)、路標(biāo)地圖信息,采用啟發(fā)式搜索算法從路標(biāo)圖中搜索出一條可行路徑。概率路圖法可以有效避免對(duì)位姿空間中的障礙物進(jìn)行精確建模,能夠有效解決復(fù)雜的運(yùn)動(dòng)動(dòng)力學(xué)約束下的路徑規(guī)劃問(wèn)題1)學(xué)習(xí)階段學(xué)習(xí)階段可以在自由空間中盡可能隨機(jī)且均勻地進(jìn)行采樣,然后連接各個(gè)點(diǎn),構(gòu)建出一幅路徑網(wǎng)絡(luò)圖。PRM算法學(xué)習(xí)階段是指在地圖內(nèi)進(jìn)行隨機(jī)采樣,對(duì)采樣點(diǎn)進(jìn)行碰撞檢測(cè),從而保證采樣點(diǎn)不會(huì)落在地圖障礙物內(nèi),采樣點(diǎn)隨機(jī)均勻地分布在自由無(wú)障礙空間內(nèi)。采樣完成后通過(guò)連接各個(gè)點(diǎn)構(gòu)建路徑網(wǎng)絡(luò)圖。構(gòu)建網(wǎng)絡(luò)圖時(shí),采用從一個(gè)點(diǎn)開始向周圍點(diǎn)擴(kuò)散的方法,如果兩個(gè)點(diǎn)之間可以連接,且沒有碰到障礙物,就把路線添加到網(wǎng)絡(luò)圖中,反之則舍棄,從而構(gòu)建出整幅路徑網(wǎng)絡(luò)圖,如圖4.26所示。其中:左下角圓點(diǎn)代表起始點(diǎn),右上角圓點(diǎn)代表終點(diǎn),四邊形為障礙物,小點(diǎn)為采樣點(diǎn),細(xì)線為路徑網(wǎng)絡(luò)圖中的路徑。2)查詢階段查詢階段利用學(xué)習(xí)階段建立好的無(wú)向路徑網(wǎng)絡(luò)圖,在無(wú)向路徑網(wǎng)絡(luò)圖中設(shè)置好起點(diǎn)和終點(diǎn),根據(jù)設(shè)置好的起點(diǎn)和終點(diǎn)搜索出一條符合需求的路徑,具體可以分為以下三步:(1)把地圖中離起始點(diǎn)和目標(biāo)點(diǎn)最近的兩個(gè)點(diǎn)分別進(jìn)行連接。(2)在網(wǎng)絡(luò)圖中搜索路徑,找到起始點(diǎn)到目標(biāo)點(diǎn)的路徑。(3)找到路徑后,通過(guò)平滑處理,優(yōu)化路徑。最終結(jié)果如圖4.26(c)所示,深色粗線為規(guī)劃出的路徑。傳統(tǒng)的PRM算法中的采樣策略是均勻采樣策略,它在整個(gè)空間中采樣的概率處處相等,采樣點(diǎn)數(shù)目與空間的大小成正比,狹窄通道內(nèi)的采樣點(diǎn)數(shù)相對(duì)其他區(qū)域較少,不能很好地連通狹窄通道兩端的區(qū)域,所以當(dāng)機(jī)器人路徑規(guī)劃需要經(jīng)過(guò)狹窄通道時(shí),往往效率低下,因此需要改進(jìn)PRM算法。常用的改進(jìn)算法之一是在PRM算法中引入人工勢(shì)場(chǎng)。對(duì)落在威脅體內(nèi)的點(diǎn)施加勢(shì)場(chǎng)力,使之移動(dòng)到自由空間內(nèi),從而增加狹窄通道內(nèi)的節(jié)點(diǎn)數(shù)量,在不增加采樣次

數(shù)

構(gòu)

建;另

將PRM算

法結(jié)合。2.快速擴(kuò)展隨機(jī)樹法快速擴(kuò)展隨機(jī)樹法是一種在多維空間中通過(guò)遞增采樣實(shí)現(xiàn)高效率的搜索規(guī)劃的方法,其主要優(yōu)點(diǎn)是能夠快速地在新場(chǎng)景中找到一條可行路徑解。它以一個(gè)初始點(diǎn)作為根節(jié)點(diǎn),通過(guò)對(duì)狀態(tài)空間中的采樣點(diǎn)進(jìn)行碰撞檢測(cè),避免了對(duì)空間的建模,能夠有效地解決高維空間和復(fù)雜約束的路徑規(guī)劃問(wèn)題。逐步提高擴(kuò)展樹的分辨率,當(dāng)隨機(jī)樹中的葉子節(jié)點(diǎn)包含目標(biāo)點(diǎn)或進(jìn)入了目標(biāo)區(qū)域時(shí),便可以在隨機(jī)樹中找到一條由樹節(jié)點(diǎn)組成的從初始點(diǎn)到目標(biāo)點(diǎn)的路徑。RRT算法的流程如下:(1)將起點(diǎn)作為根節(jié)點(diǎn)。(2)在機(jī)器人的工作空間中,隨機(jī)生成一個(gè)位姿點(diǎn)。(3)在位姿樹上尋找(2)中位姿點(diǎn)的最近鄰位姿點(diǎn)。(4)在(3)中的兩個(gè)位姿點(diǎn)之間構(gòu)造插值點(diǎn),判斷它們是否與障礙物碰撞。若不碰撞,則將(2)中的位姿加入位姿樹。(5)判斷隨機(jī)位姿點(diǎn)是否到達(dá)目標(biāo)點(diǎn)附近或迭代步數(shù)到達(dá)最大值,如到達(dá)目標(biāo)點(diǎn),溯源獲得路徑。圖4.27所示為RRT算法在空間中的拓展過(guò)程。圖中,機(jī)器人的起始點(diǎn)在右下角,目標(biāo)位置在左上角,每條線代表樹中的拓展邊,通過(guò)不斷采樣遍歷工作中的可達(dá)空間尋找目標(biāo)位置。RRT算法見算法4.10。在原始RRT算法中,將起始位置初始化為隨機(jī)樹的父節(jié)點(diǎn)。先初始化樹并將起始位置插入樹中。然后通過(guò)在可達(dá)空間中選擇隨機(jī)的、無(wú)碰撞的節(jié)點(diǎn),嘗試將樹擴(kuò)展到該位置。這個(gè)階段繼續(xù)進(jìn)行,對(duì)空間進(jìn)行采樣并添加新的頂點(diǎn)和邊,直到達(dá)到最大允許頂點(diǎn)數(shù),或者根據(jù)設(shè)定的終止條件找到目標(biāo)。在算法描述的函數(shù)中,Δt稱為生長(zhǎng)節(jié)點(diǎn)的預(yù)定步長(zhǎng)。生長(zhǎng)步長(zhǎng)對(duì)樹的擴(kuò)張可以產(chǎn)生顯著的影響。若步長(zhǎng)過(guò)小,最終得到的隨機(jī)搜索樹會(huì)有很多短枝,需要更多的節(jié)點(diǎn)探索可達(dá)空間并找到可行路徑,整個(gè)算法的搜索時(shí)間也會(huì)變長(zhǎng)。若步長(zhǎng)過(guò)大,樹會(huì)有長(zhǎng)枝,但是擴(kuò)展樹將有可能頻繁地遇到障礙物而節(jié)點(diǎn)更新失敗,導(dǎo)致算法重新采樣新的位置,因此在指定生長(zhǎng)步長(zhǎng)方面需要選擇合適的值?;诳焖贁U(kuò)展隨機(jī)樹的路徑規(guī)劃算法通過(guò)對(duì)狀態(tài)空間中的采樣點(diǎn)進(jìn)行碰撞檢測(cè),避免了對(duì)空間的建模,能夠有效地解決高維空間和復(fù)雜約束的路徑規(guī)劃問(wèn)題。該方法的特點(diǎn)是能夠快速有效地搜索高維空間,通過(guò)狀態(tài)空間的隨機(jī)采樣點(diǎn),把搜索導(dǎo)向空白區(qū)域,從而尋找一條從起始點(diǎn)到目標(biāo)點(diǎn)的規(guī)劃路徑,適合解決多自由度機(jī)器人在復(fù)雜環(huán)境下和動(dòng)態(tài)環(huán)境下的路徑規(guī)劃。但RRT算法由于隨機(jī)性太強(qiáng),也有一些缺點(diǎn)。由于隨機(jī)樹在自由空間中的生長(zhǎng)方向隨機(jī),同時(shí)障礙物不斷運(yùn)動(dòng),因此在動(dòng)態(tài)環(huán)境中路徑規(guī)劃的穩(wěn)定性較差。而且由該算法得到的路徑不是最優(yōu)的,不會(huì)收斂到漸進(jìn)最優(yōu)解。若地圖中存在可行路徑解,基于搜索的路徑規(guī)劃算法則可以通過(guò)不停地迭代計(jì)算找到最優(yōu)路徑,RRT算法的目標(biāo)則是快速找到一條可行路徑,而這條可行路徑是由單個(gè)節(jié)點(diǎn)連接形成的,由于冗余節(jié)點(diǎn)的存在和連接方式造成的曲折,該路徑一定不是最優(yōu)路徑。此外,該算法還有搜索過(guò)于平均、浪費(fèi)資源時(shí)間、偏離最優(yōu)解等缺陷,這些缺陷可在應(yīng)用中改進(jìn)。4.2.3現(xiàn)代智能路徑規(guī)劃算法在未知?jiǎng)討B(tài)環(huán)境下處理路徑規(guī)劃問(wèn)題時(shí),傳統(tǒng)的算法已經(jīng)無(wú)法滿足路徑規(guī)劃的相關(guān)要求,由此仿生智能算法應(yīng)運(yùn)而生,該方法在解決移動(dòng)機(jī)器人路徑規(guī)劃方面表現(xiàn)出色。常用的現(xiàn)代仿生智能路徑規(guī)劃算法有蟻群算法、遺傳算法、粒子群算法等。1.蟻群算法蟻群算法是一種用來(lái)尋找優(yōu)化路徑的概率型算法。它由MarcoDorigo于1992年在他的博士論文中提出,其靈感來(lái)源于螞蟻在尋找食物過(guò)程中發(fā)現(xiàn)路徑的行為。這種算法具有分布計(jì)算、信息正反饋和啟發(fā)式搜索的特征,本質(zhì)上是進(jìn)化算法中的一種啟發(fā)式全局優(yōu)化算法。螞蟻在尋找食物源時(shí),會(huì)在其經(jīng)過(guò)的路徑上釋放一種信息素,并能夠感知其他螞蟻釋放的信息素。信息素濃度的大小表征到食物源路徑的遠(yuǎn)近,信息素濃度越高,表示對(duì)應(yīng)的路徑距離越短。通常,螞蟻會(huì)以較大的概率優(yōu)先選擇信息素濃度較高的路徑,并釋放一定量的信息素,以增強(qiáng)該條路徑上的信息素濃度,這樣會(huì)形成一種正反饋。伴隨信息素的揮發(fā),選擇較差路徑的螞蟻數(shù)量減少,形成負(fù)反饋。這個(gè)不斷反饋的過(guò)程使得蟻群的搜索變成一個(gè)集體的“智能”行為。最終,螞蟻能夠找到一條從巢穴到食物源的最佳路徑,即最短距離。由上述分析可知,蟻群算法最重要的參數(shù)是路徑距離和信息素,進(jìn)行路徑規(guī)劃前,應(yīng)先建立算法的數(shù)學(xué)模型。假定螞蟻總數(shù)為m,螞蟻從某個(gè)節(jié)點(diǎn)向另一個(gè)節(jié)點(diǎn)移動(dòng)是由路徑上的信息素濃度決定的。在t時(shí)刻,螞蟻k從節(jié)點(diǎn)i移動(dòng)到節(jié)點(diǎn)j的狀態(tài)轉(zhuǎn)移概率

為式中:allowedk是螞蟻k在下一步的可選路徑節(jié)點(diǎn)集合;信息啟發(fā)因子α表示路徑上的信息素對(duì)螞蟻選擇該路徑的影響程度,取值越大,信息素的作用越強(qiáng);β是期望啟發(fā)因子,反映下一目標(biāo)點(diǎn)的距離在指導(dǎo)蟻群搜索過(guò)程中的相對(duì)重要程度,β值越大,轉(zhuǎn)移概率越靠近貪心算法;τij(t)是節(jié)點(diǎn)i和節(jié)點(diǎn)j間的信息素濃度;ηij(t)是啟發(fā)函數(shù),一般取節(jié)點(diǎn)i和節(jié)點(diǎn)j間歐幾里得距離的倒數(shù),即蟻群算法是正反饋算法,隨著時(shí)間的推移,某條路徑上的信息素值會(huì)累積到很大,啟發(fā)函數(shù)的作用會(huì)減弱,直至最終消失,故需要對(duì)信息素進(jìn)行更新。信息素的更新可采用實(shí)時(shí)信息素更新與路徑信息素更新兩種方式,前者是指蟻群中每只螞蟻在到達(dá)其選擇的路徑節(jié)點(diǎn)后,對(duì)路徑節(jié)點(diǎn)的信息素進(jìn)行更新,更新公式如下:式中:τ0

是節(jié)點(diǎn)信息素的初始值;可調(diào)參數(shù)ρ∈[0,1],是信息素?fù)]發(fā)系數(shù)。路徑信息素更新是指蟻群中的所有螞蟻從起點(diǎn)走到目標(biāo)點(diǎn),完成一次迭代搜索之后,路徑(i,j)上的信息素更新,更新公式如下:式中有三種不同的基本蟻群算法模型,此處取Ant-Cycle模型中的算式:式中:Q是信息素強(qiáng)度,Lk

是螞蟻k所走的路徑的總長(zhǎng)度。蟻群算法流程如圖4.28所示。按照上述傳統(tǒng)蟻群算法雖然能夠找到機(jī)器人的全局最優(yōu)路徑,但是效率不高,迭代次數(shù)較多,收斂較慢,當(dāng)環(huán)境模型更加復(fù)雜時(shí),算法的時(shí)間和空間復(fù)雜度都會(huì)增長(zhǎng),因此需要對(duì)算法進(jìn)行優(yōu)化。蟻群算法的優(yōu)化大致有兩個(gè)方向:一是優(yōu)化蟻群算法中參數(shù)的設(shè)定值,包括螞蟻群體的個(gè)數(shù)、信息素重要程度因子、啟發(fā)函數(shù)重要程度因子、信息素?fù)]發(fā)因子以及信息素釋放總量等;二是將蟻群算法和其他算法相結(jié)合,取長(zhǎng)補(bǔ)短,以改進(jìn)蟻群算法。2.遺傳算法遺傳算法最早由美國(guó)的JohnHolland于20世紀(jì)70年代提出,該算法是根據(jù)大自然中生物體的進(jìn)化規(guī)律而設(shè)計(jì)提出的,是模擬達(dá)爾文生物進(jìn)化論的自然選擇和遺傳學(xué)機(jī)理的生物進(jìn)化過(guò)程的計(jì)算模型,也是一種通過(guò)模擬自然進(jìn)化過(guò)程搜索最優(yōu)解的方法。該算法通過(guò)數(shù)學(xué)的方式,利用計(jì)算機(jī)仿真運(yùn)算,將問(wèn)題的求解過(guò)程轉(zhuǎn)換成類似生物進(jìn)化中染色體基因的交叉、變異等過(guò)程。在求解較為復(fù)雜的組合優(yōu)化問(wèn)題時(shí),相對(duì)一些常規(guī)的優(yōu)化算法,通常能夠較快地獲得較好的優(yōu)化結(jié)果。基本遺傳算法是一種群體型操作,該操作以群體中的所有個(gè)體為對(duì)象,只使用基本遺傳算子,即選擇算子、交叉算子和變異算子,其遺傳進(jìn)化操作過(guò)程簡(jiǎn)單,容易理解,是其他一些遺傳算法的基礎(chǔ),它不僅給各種遺傳算法提供了一個(gè)基本框架,同時(shí)也具有一定的應(yīng)用價(jià)值。選擇、交叉和變異算子是遺傳算法的3個(gè)主要操作算子,它們構(gòu)成了遺傳操作,使遺傳算法具有了其他方法沒有的特點(diǎn)。遺傳算法主要由染色體編碼、初始化種群、適應(yīng)度函數(shù)、遺傳算子、算法終止條件等模塊組成。以下將簡(jiǎn)要介紹遺傳算法的步驟。1)染色體編碼(1)編碼。染色體編碼關(guān)系到解空間中的解在遺傳算法中的表示形式。從問(wèn)題的解到基因型的映射稱為編碼,即把一個(gè)問(wèn)題的可行解從其解空間轉(zhuǎn)換到遺傳算法的搜索空間的轉(zhuǎn)換方法。遺傳算法在進(jìn)行搜索之前先將解空間的解表示成遺傳算法的基因型串(也就是染色體)結(jié)構(gòu)數(shù)據(jù),這些串結(jié)構(gòu)數(shù)據(jù)的不同組合就構(gòu)成了不同的點(diǎn)。常見的編碼方法有二進(jìn)制編碼、格雷碼編碼、浮點(diǎn)數(shù)編碼、各參數(shù)級(jí)聯(lián)編碼、多參數(shù)交叉編碼等。幾種編碼方式的特點(diǎn)如下:①

二進(jìn)制編碼:組成染色體的基因序列是由二進(jìn)制數(shù)表示的,具有編碼解碼簡(jiǎn)單易用,交叉變異易于程序?qū)崿F(xiàn)等特點(diǎn)。②

格雷編碼:兩個(gè)相鄰的數(shù)用格雷碼表示,其對(duì)應(yīng)的碼位只有一個(gè)不相同,從而可以提高算法的局部搜索能力。這是格雷編碼相比二進(jìn)制編碼而言所具備的優(yōu)勢(shì)。③

浮點(diǎn)數(shù)編碼:將個(gè)體范圍映射到對(duì)應(yīng)浮點(diǎn)數(shù)區(qū)間范圍,精度可以隨浮點(diǎn)數(shù)區(qū)間大小而改變.以二進(jìn)制編碼為例,設(shè)某一參數(shù)的取值范圍為[U1,U2],用長(zhǎng)度為k的二進(jìn)制編碼符號(hào)來(lái)表示該參數(shù),則它總共產(chǎn)生2k種不同的編碼,參數(shù)與編碼的對(duì)應(yīng)關(guān)系如下:(2)解碼。解碼即遺傳算法染色體向問(wèn)題解的轉(zhuǎn)換。假設(shè)某一個(gè)體采用二進(jìn)制編碼,則對(duì)應(yīng)的解碼公式為2)初始化種群設(shè)最大進(jìn)化代數(shù)為T,群體大小為M,交叉概率為Pc,變異概率為Pm,隨機(jī)生成M個(gè)個(gè)體作為初始化群體p0。3)適應(yīng)度函數(shù)適應(yīng)度函數(shù)表明個(gè)體或解的優(yōu)劣性。對(duì)于不同的問(wèn)題,適應(yīng)度函數(shù)的定義方式不同。根據(jù)具體問(wèn)題,計(jì)算群體P(t)中各個(gè)個(gè)體的適應(yīng)度。適應(yīng)度尺度變換是指算法迭代的不同階段能夠通過(guò)適當(dāng)改變個(gè)體的適應(yīng)度大小,進(jìn)而避免群體間適應(yīng)度相當(dāng)而造成的競(jìng)爭(zhēng)減弱,導(dǎo)致種群收斂于局部最優(yōu)解。尺度變換選用的經(jīng)典方法包括線性尺度變換、乘冪尺度變換以及指數(shù)尺度變換。(1)線性尺度變換:用一個(gè)線性函數(shù)表示,其中a為比例系數(shù),b為平移系數(shù),F為變換前適應(yīng)度尺度,變換后適應(yīng)度尺度F'如下:(2)乘冪尺度變換:將原適應(yīng)度尺度F取k次冪,其中k為冪,F為轉(zhuǎn)變前適應(yīng)度尺度,F'為轉(zhuǎn)變后適應(yīng)度尺度。(3)指數(shù)尺度變換:首先將原尺度乘以系數(shù)β,然后取反,將βF作為自然底數(shù)e的冪,其中系數(shù)β的大小決定了適應(yīng)度尺度變換的強(qiáng)弱。4)遺傳算子遺傳算法使用以下三種遺傳算子。(1)選擇。選擇操作從舊群體中以一定的概率選擇優(yōu)良個(gè)體組成新的種群,以繁殖得到下一代個(gè)體。個(gè)體被選中的概率跟適應(yīng)度值有關(guān),個(gè)體適應(yīng)度值越高,被選中的概率越大。以輪盤賭法為例,若設(shè)種群數(shù)為M,個(gè)體i的適應(yīng)度為fi,則個(gè)體i被選取的概率為當(dāng)個(gè)體選擇的概率給定后,產(chǎn)生[0,1]之間的均勻隨機(jī)數(shù)來(lái)決定由哪個(gè)個(gè)體參加交配。若個(gè)體的選擇概率大,則有機(jī)會(huì)被多次選中,那么它的遺傳基因就會(huì)在種群中擴(kuò)大;若個(gè)體的選擇概率小,則被淘汰的可能性會(huì)大。(2)交叉。交叉操作是指從種群中隨機(jī)選擇兩個(gè)個(gè)體,通過(guò)兩個(gè)染色體的交換組合,把父串的優(yōu)秀特征遺傳給子串,從而產(chǎn)生新的優(yōu)秀個(gè)體。在實(shí)際應(yīng)用中,使用率最高的是單點(diǎn)交叉算子,該算子在配對(duì)的染色體中隨機(jī)選擇一個(gè)交叉位置,然后在該交叉位置對(duì)配對(duì)的染色體進(jìn)行基因位變換。其他交叉算子有雙點(diǎn)交叉或多點(diǎn)交叉、均勻交叉、算術(shù)交叉,讀者可自行了解。(3)變異。為了防止遺傳算法在優(yōu)化過(guò)程中陷入局部最優(yōu)解,在搜索過(guò)程中,需要對(duì)個(gè)體進(jìn)行變異。在實(shí)際應(yīng)用中,主要采用單點(diǎn)變異(也叫位變異),即只需要對(duì)基因序列中的某一個(gè)位進(jìn)行變異。以二進(jìn)制編碼為例,即0變?yōu)?,而1變?yōu)?,如圖4.29所示。群體P(t)經(jīng)過(guò)選擇、交叉、變異運(yùn)算后得到下一代群體P(t+1)。5)算法終止條件若t≤T,則t←t+1,轉(zhuǎn)到步驟2;否則以進(jìn)化過(guò)程中所得到的具有最大適應(yīng)度的個(gè)體作為最好的解輸出,終止運(yùn)算。遺傳算法流程如圖4.30。由遺傳算法流程圖可以看出,進(jìn)化操作過(guò)程簡(jiǎn)單,容易理解,它給其他各種遺傳算法提供了一個(gè)基本框架。需要注意的是:遺傳算法有4個(gè)運(yùn)行參數(shù)需要預(yù)先設(shè)定,即M:種群大小。T:遺傳算法的終止進(jìn)化代數(shù)。Pc:交叉概率,一般為0.4~0.99。Pm:變異概率,一般取0.001~0.1。3.粒子群算法粒子群算法(PSO)是1995年Eberhart博士和Kennedy博士一起提出的。粒子群算法是通過(guò)模擬鳥群捕食行為設(shè)計(jì)的一種群智能算法。區(qū)域內(nèi)有大大小小不同的食物源,鳥群的任務(wù)是找到最大的食物源(全局最優(yōu)解)。鳥群在整個(gè)搜尋過(guò)程中,通過(guò)相互傳遞各自位置的信息,讓其他的鳥知道食物源的位置,最終整個(gè)鳥群都能聚集在食物源周

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論