本發(fā)明涉及無人帆船控制,具體涉及一種基于深度強(qiáng)化學(xué)習(xí)算法的無人帆船控制方法。
背景技術(shù):
1、機(jī)器人技術(shù)和人工智能技術(shù)的發(fā)展將海洋探測(cè)逐步導(dǎo)向無人化、智能化的層面。無人帆船是一種以海洋可再生能源為驅(qū)動(dòng)的新型長(zhǎng)續(xù)航力海洋機(jī)器人,突破了傳統(tǒng)能源供給受限的瓶頸。在海氣界面大范圍環(huán)境要素觀測(cè)需求逐步增長(zhǎng)的背景下,無人帆船能夠更好地解決中尺度和亞中尺度的觀測(cè)數(shù)據(jù)稀缺性問題。
2、目前使用人工智能技術(shù)(主要是深度強(qiáng)化學(xué)習(xí)技術(shù))實(shí)現(xiàn)無人帆船控制決策的方法基本上依賴速度預(yù)測(cè)程序(vpp)。vpp最初的設(shè)計(jì)和應(yīng)用是幫助船員更好地駕駛帆船,通過建立船體與風(fēng)帆的力學(xué)模型(包括流體力學(xué)模型、空氣動(dòng)力學(xué)模型),生成一套確保穩(wěn)定航行的速度極圖。在獲得真實(shí)風(fēng)向和真實(shí)風(fēng)速的情況下,船員能夠通過極圖找到對(duì)應(yīng)的最大平穩(wěn)航行速度,進(jìn)而做出決策。?在深度強(qiáng)化學(xué)習(xí)的應(yīng)用中,vpp為智能體(agent)提供下一個(gè)時(shí)間步內(nèi)的可能存在的動(dòng)作選擇,深度強(qiáng)化學(xué)習(xí)通過馬爾科夫決策過程將整個(gè)運(yùn)動(dòng)過程的動(dòng)作選擇進(jìn)行優(yōu)化,從而獲得從起點(diǎn)到終點(diǎn)最優(yōu)的航行決策。這種方法為無人帆船的航行競(jìng)速提供了很大的幫助,但是,vpp對(duì)輸入的真實(shí)風(fēng)向和真實(shí)風(fēng)速存在著準(zhǔn)確性的要求,而實(shí)際的測(cè)量往往存在著誤差,因此還需要人為的設(shè)計(jì)一套用于修正或預(yù)測(cè)風(fēng)速風(fēng)向的程序,一定程度上增加了整套控制系統(tǒng)的復(fù)雜度。
3、另外,一些傳統(tǒng)的控制方法也需要檢測(cè)風(fēng)速風(fēng)向來作為必要的參數(shù)。例如人們通過使用模糊控制來提升無人帆船在復(fù)雜未知環(huán)境下的自主航行適應(yīng)能力,無人帆船能夠通過人為設(shè)定的一個(gè)風(fēng)場(chǎng)域值來選擇輸出帆角和舵角,相比于數(shù)值計(jì)算動(dòng)力學(xué)部分,風(fēng)向風(fēng)速與帆角舵角準(zhǔn)確的對(duì)應(yīng)關(guān)系,模糊控制幫助無人帆船能夠像“有人駕駛”一樣行駛。但是,模糊控制中對(duì)于域的劃分往往需要大量的“專家經(jīng)驗(yàn)”,制定一套能夠滿足所有情況的模糊控制集是繁瑣的。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)存在的不足,提供一種基于深度強(qiáng)化學(xué)習(xí)算法的無人帆船控制方法。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于深度強(qiáng)化學(xué)習(xí)算法的無人帆船控制方法,包括:
3、采集無人帆船的位置坐標(biāo)信息,其中,為無人帆船的橫坐標(biāo),為無人帆船的縱坐標(biāo),為無人帆船的速度,為無人帆船的偏航角;
4、基于無人帆船的位置坐標(biāo)信息計(jì)算無人帆船坐標(biāo)系的速度為:
5、
6、其中,為無人帆船沿前后方向的移動(dòng)速度,為無人帆船沿橫向的移動(dòng)速度;
7、采集無人帆船的三軸的線加速度和三軸角速度,其中,和分別表示無人帆船在x軸方向的線加速度和角速度,和分別表示無人帆船在y軸方向的線加速度和角速度,和分別表示無人帆船在z軸方向的線加速度和角速度;并令,,同時(shí)計(jì)算無人帆船的橫搖角;
8、將所述、、、、、、、作為當(dāng)前的狀態(tài)量,并將當(dāng)前的舵角和帆角作為當(dāng)前的動(dòng)作量輸入至訓(xùn)練合格的神經(jīng)網(wǎng)絡(luò)模型,所述神經(jīng)網(wǎng)絡(luò)模型根據(jù)當(dāng)前的狀態(tài)量和動(dòng)作量預(yù)測(cè)下一時(shí)刻的舵角和帆角;
9、控制無人帆船的風(fēng)帆舵機(jī)與船舵舵機(jī)根據(jù)神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)的舵角和帆角工作。
10、進(jìn)一步的,所述神經(jīng)網(wǎng)絡(luò)模型包括第一critic網(wǎng)絡(luò)、第二critic網(wǎng)絡(luò)和actor網(wǎng)絡(luò),所述第一critic網(wǎng)絡(luò)和第二critic網(wǎng)絡(luò)用以分別根據(jù)當(dāng)前的狀態(tài)量和動(dòng)作量輸出一個(gè)q值,所述q值用于對(duì)actor網(wǎng)絡(luò)的決策產(chǎn)生影響,所述actor網(wǎng)絡(luò)用以根據(jù)當(dāng)前的狀態(tài)量、所述q值輸出舵角和帆角的均值及標(biāo)準(zhǔn)差。
11、進(jìn)一步的,所述第一critic網(wǎng)絡(luò)包括第一輸入模塊和第二輸入模塊,所述第一輸入模塊和第二輸入模塊分別用以接收輸入的當(dāng)前的狀態(tài)量和動(dòng)作量,所述第一輸入模塊和第二輸入模塊分別與第一全連接模塊和第二全連接模塊連接,所述第一全連接模塊和第二全連接模塊均使用256個(gè)神經(jīng)元分別與狀態(tài)量和動(dòng)作量全連接,以分別生成256個(gè)特征,所述第一全連接模塊和第二全連接模塊均與拼接模塊連接,所述拼接模塊用以將狀態(tài)量和動(dòng)作量的特征進(jìn)行串聯(lián),以形成512個(gè)特征組合,且其與第一激活模塊、第三全連接模塊、第二激活模塊和第四全連接模塊依次串聯(lián)連接,所述第一激活模塊用以對(duì)串聯(lián)后的特征進(jìn)行激活,以產(chǎn)生512個(gè)非負(fù)特征并傳入第三全連接模塊,所述第三全連接模塊用以采用256個(gè)神經(jīng)元與512個(gè)特征全連接,以獲得256個(gè)高級(jí)特征表示狀態(tài)量特征與動(dòng)作量特征之間的高級(jí)特征關(guān)系,所述第二激活模塊用以對(duì)第三全連接模塊輸出的高級(jí)特征進(jìn)行激活,以根據(jù)256個(gè)高級(jí)特征產(chǎn)生256個(gè)非負(fù)特征,所述第四全連接模塊用以根據(jù)第二激活模塊產(chǎn)生的256個(gè)非負(fù)特征計(jì)算獲得q值。
12、進(jìn)一步的,所述第二critic網(wǎng)絡(luò)與第一critic網(wǎng)絡(luò)的結(jié)構(gòu)相同,但其第一全連接模塊和第二全連接模塊均使用128個(gè)神經(jīng)元生成相應(yīng)的特征。
13、進(jìn)一步的,所述actor網(wǎng)絡(luò)包括第三輸入模塊,所述第三輸入模塊用以接收輸入的當(dāng)前的狀態(tài)量,且其與第五全連接模塊連接,所述第五全連接模塊使用256個(gè)神經(jīng)元與狀態(tài)量全連接,以生成256個(gè)特征,且其與第三激活模塊連接,所述第三激活模塊用以對(duì)第五全連接模塊輸出的特征進(jìn)行激活,以產(chǎn)生256個(gè)非負(fù)特征并分別傳入第六全連接模塊和第七全連接模塊;
14、所述第六全連接模塊使用256個(gè)神經(jīng)元與第三激活模塊輸出的非負(fù)特征全連接,以生成動(dòng)作量均值的256個(gè)初級(jí)特征,所述第六全連接模塊與第四激活模塊、第八全連接模塊、第五激活模塊和第九全連接模塊依次串聯(lián)連接,所述第四激活模塊用以對(duì)動(dòng)作量均值的256個(gè)初級(jí)特征進(jìn)行激活,所述第八全連接模塊使用128個(gè)神經(jīng)元與第四激活模塊激活后的初級(jí)特征全連接,以生成動(dòng)作量均值的128個(gè)高級(jí)特征,所述第五激活模塊用以對(duì)動(dòng)作量均值的128個(gè)高級(jí)特征進(jìn)行激活,所述第九全連接模塊使用2個(gè)神經(jīng)元與第五激活模塊激活后的動(dòng)作量均值的128個(gè)高級(jí)特征進(jìn)行全連接,獲得舵角和帆角的均值,并作為預(yù)測(cè)出的下一時(shí)刻的舵角和帆角輸出;
15、所述第七全連接模塊使用256個(gè)神經(jīng)元與第三激活模塊輸出的256個(gè)非負(fù)特征全連接,以生成動(dòng)作量標(biāo)準(zhǔn)差的256個(gè)初級(jí)特征,所述第七全連接模塊與第六激活模塊、第十全連接模塊、第七激活模塊、第十一全連接模塊和第八激活模塊依次串聯(lián)連接,所述第六激活模塊用以對(duì)動(dòng)作量標(biāo)準(zhǔn)差的256個(gè)初級(jí)特征進(jìn)行激活,所述第十全連接模塊使用128個(gè)神經(jīng)元與動(dòng)作量標(biāo)準(zhǔn)差的256個(gè)初級(jí)特征全連接,形成動(dòng)作量標(biāo)準(zhǔn)差的128個(gè)高級(jí)特征,所述第七激活模塊用以對(duì)動(dòng)作量標(biāo)準(zhǔn)差的128個(gè)高級(jí)特征進(jìn)行激活,所述第十一全連接模塊使用2個(gè)神經(jīng)元與激活后的動(dòng)作量標(biāo)準(zhǔn)差的128個(gè)高級(jí)特征全連接,獲得舵角和帆角的標(biāo)準(zhǔn)差,所述第八激活模塊用以對(duì)舵角和帆角的標(biāo)準(zhǔn)差進(jìn)行激活,獲得非負(fù)的舵角和帆角的標(biāo)準(zhǔn)差。
16、進(jìn)一步的,還包括:基于狀態(tài)誤差卡爾曼濾波算法實(shí)現(xiàn)對(duì)系統(tǒng)狀態(tài)的動(dòng)態(tài)估計(jì)和修正。
17、進(jìn)一步的,所述神經(jīng)網(wǎng)絡(luò)模型通過以下方式訓(xùn)練:
18、通過航行器在目標(biāo)海域采集相對(duì)風(fēng)速和相對(duì)風(fēng)向數(shù)據(jù),并將相對(duì)風(fēng)速和相對(duì)風(fēng)向轉(zhuǎn)化為絕對(duì)風(fēng)速和絕對(duì)風(fēng)向;
19、根據(jù)所述絕對(duì)風(fēng)速和絕對(duì)風(fēng)向設(shè)計(jì)模擬風(fēng)速函數(shù)和模擬風(fēng)向函數(shù);
20、設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù)來優(yōu)化學(xué)習(xí)效果,所述獎(jiǎng)勵(lì)函數(shù)被設(shè)計(jì)為:
21、
22、
23、其中,為計(jì)算出的獎(jiǎng)勵(lì)值,為無人帆船目標(biāo)終點(diǎn)的坐標(biāo),為根據(jù)當(dāng)前狀態(tài)計(jì)算得到的距離終點(diǎn)的預(yù)測(cè)值,為到達(dá)終點(diǎn)的巨大獎(jiǎng)勵(lì),t是單次仿真下的實(shí)時(shí)仿真時(shí)間,中包含了對(duì)帆角變化過大的懲罰和保持帆角不變的獎(jiǎng)勵(lì),中包含了對(duì)舵角變化過大的懲罰和保持舵角不變的獎(jiǎng)勵(lì);
24、基于所述模擬風(fēng)速函數(shù)、模擬風(fēng)向函數(shù)和獎(jiǎng)勵(lì)函數(shù)對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
25、進(jìn)一步的,所述模擬風(fēng)速函數(shù)和模擬風(fēng)向函數(shù)分別為:
26、
27、
28、其中,為一次采樣時(shí)間的模擬風(fēng)速,為給定的風(fēng)速中值,為上一個(gè)采樣時(shí)間風(fēng)速,為標(biāo)準(zhǔn)正態(tài)分布函數(shù),為一次采樣時(shí)間的模擬風(fēng)向,為給定的風(fēng)向中值,為上一個(gè)采樣時(shí)間風(fēng)速。
29、有益效果:1、本發(fā)明只需要采集當(dāng)前的帆角、舵角和狀態(tài)數(shù)據(jù),就能夠進(jìn)行后續(xù)控帆、控舵決策的強(qiáng)化學(xué)習(xí)方法,不需要對(duì)風(fēng)速、風(fēng)向進(jìn)行實(shí)時(shí)監(jiān)測(cè);
30、2、本發(fā)明提出一種分段漸進(jìn)式的獎(jiǎng)勵(lì)函數(shù)優(yōu)化思路,在保證訓(xùn)練效果的前提下,提升訓(xùn)練結(jié)果中航行效率與航行所需能源的平衡性;
31、3、本發(fā)明能夠有效抵抗隨機(jī)風(fēng)場(chǎng)波動(dòng)的外部干擾;
32、4、本發(fā)明對(duì)于無人帆船而言可以省去風(fēng)速風(fēng)向儀的裝配,降低環(huán)境變化對(duì)依賴風(fēng)速風(fēng)向控制算法的影響,同時(shí)提升帆船整體的集成性。