本發(fā)明屬于機(jī)器人與信息技術(shù)交叉領(lǐng)域,具體涉及一種兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法。
背景技術(shù):
自平衡車是近年來出現(xiàn)的一種個人便捷交通工具,傳統(tǒng)平衡車的控制都是基于經(jīng)典pid控制方法。傳統(tǒng)的pid控制方法需要具備一定的先驗知識,才能實現(xiàn)對平衡車的自動控制,導(dǎo)致應(yīng)用不靈活。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在至少解決上述技術(shù)問題之一。
為此,本發(fā)明的目的在于提出一種兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法,無需模型的先驗知識,具有自學(xué)習(xí)、自適應(yīng)的優(yōu)點,應(yīng)用靈活。
為了實現(xiàn)上述目的,本發(fā)明的實施例公開了一種兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法,包括以下步驟:s1:獲取平衡車當(dāng)前的狀態(tài)量,所述狀態(tài)量包括傾角和角速度;s2:根據(jù)最優(yōu)行為的概率、當(dāng)前狀態(tài)下的狀態(tài)行為指標(biāo)和所述當(dāng)前的狀態(tài)量得到驅(qū)動電機(jī)的控制信號;s3:根據(jù)所述控制信號控制驅(qū)動電機(jī)運行,使所述平衡車趨于平衡,并采用預(yù)設(shè)評價函數(shù)對所述平衡車的狀態(tài)量改變進(jìn)行評價得到報酬評價值;s4:根據(jù)所述報酬評價值更新當(dāng)前狀態(tài)下的狀態(tài)行為指標(biāo);s5:觀測并更新所述平衡車的狀態(tài)量,并返回步驟s1。
進(jìn)一步地,步驟s2進(jìn)一步包括:根據(jù)以下公式并以概率∈從所有可能的a取值域中隨機(jī)選擇行為a:
a=argmaxa′{q(s,a′)}
其中,
進(jìn)一步地,采用以下公式得到所述報酬評價值:
其中c1和c2為正常數(shù),r(s,a)為所述報酬評價值。
進(jìn)一步地,采用以下公式更新所述狀態(tài)行為指標(biāo):
q(s,a)←q(s,a)+α[r(s,a)+γmaxa'q(s',a')-q(s,a)]
其中,q(s,a)是當(dāng)前狀態(tài)下的狀態(tài)行為指標(biāo),γ是折扣因子且0<γ<1,α是一個慣性因子常數(shù)。
進(jìn)一步地,利用陀螺儀測量得到所述平衡車的傾角和角速度。
本發(fā)明實施例的兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法,與現(xiàn)有技術(shù)相比具有如下優(yōu)點:
1、本發(fā)明的控制方法無需知道被控對象平衡車的物理模型和先驗知識,學(xué)習(xí)得到的控制策略能夠自適應(yīng)被控對象的變化,當(dāng)被控對象、運行環(huán)境發(fā)生較大變化時,無需像傳統(tǒng)pid控制需要調(diào)整參數(shù),本發(fā)明能夠通過自學(xué)習(xí)逐漸習(xí)得新的最優(yōu)控制律;
2、本發(fā)明的學(xué)習(xí)算法是在線學(xué)習(xí)算法,可以在實際運行中不斷進(jìn)行策略更新,進(jìn)而逐漸改進(jìn)控制效果;
3、本發(fā)明對設(shè)備有著較少的設(shè)定要求。可直接在現(xiàn)有室內(nèi)環(huán)境控制設(shè)備中實現(xiàn)。該系統(tǒng)與算法獨立于底層設(shè)備的具體控制算法,推廣性更強。
本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是本發(fā)明一個實施例的兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法的流程圖。
具體實施方式
下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
在本發(fā)明的描述中,需要理解的是,術(shù)語“中心”、“縱向”、“橫向”、“上”、“下”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底”、“內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明的限制。此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。
參照下面的描述和附圖,將清楚本發(fā)明的實施例的這些和其他方面。在這些描述和附圖中,具體公開了本發(fā)明的實施例中的一些特定實施方式,來表示實施本發(fā)明的實施例的原理的一些方式,但是應(yīng)當(dāng)理解,本發(fā)明的實施例的范圍不受此限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
以下結(jié)合附圖描述本發(fā)明。
圖1是本發(fā)明一個實施例的兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法的流程圖。如圖1所示,本發(fā)明的兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法,包括以下步驟:
s1:獲取平衡車當(dāng)前的狀態(tài)量,所述狀態(tài)量包括傾角和角速度。
在本發(fā)明的一個實施例中,利用陀螺儀測量得到所述平衡車的傾角和角速度。
s2:根據(jù)最優(yōu)行為的概率、當(dāng)前狀態(tài)下的狀態(tài)行為指標(biāo)和所述當(dāng)前的狀態(tài)量得到驅(qū)動電機(jī)的控制信號。
在本發(fā)明的一個實施例中,步驟s2進(jìn)一步包括:
根據(jù)以下公式并以概率∈從所有可能的a取值域中隨機(jī)選擇行為a:
a=argmaxa′{q(s,a′)}
其中,
s3:根據(jù)所述控制信號控制驅(qū)動電機(jī)運行,使所述平衡車趨于平衡,并采用預(yù)設(shè)評價函數(shù)對所述平衡車的狀態(tài)量改變進(jìn)行評價得到報酬評價值。
在本發(fā)明的一個實施例中,采用以下公式得到所述報酬評價值:
其中c1和c2為正常數(shù),r(s,a)為所述報酬評價值。
s4:根據(jù)所述報酬評價值更新當(dāng)前狀態(tài)下的狀態(tài)行為指標(biāo)。
在本發(fā)明的一個實施例中,采用以下公式更新所述狀態(tài)行為指標(biāo):
q(s,a)←q(s,a)+α[r(s,a)+γmaxa'q(s',a')-q(s,a)]
其中,q(s,a)是當(dāng)前狀態(tài)下的狀態(tài)行為指標(biāo),γ是折扣因子且0<γ<1,α是一個慣性因子常數(shù)。
s5:觀測并更新所述平衡車的狀態(tài)量,并返回步驟s1。
具體地,首先本發(fā)明實施例的兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法,具體包括:
狀態(tài)定義:即當(dāng)前平衡車的環(huán)境測量信息。所述狀態(tài)定義,即對當(dāng)前平衡車的狀態(tài),由平衡車的傳感器測量得到。在平衡車上一般配置陀螺儀傳感器以測量車體傾角,因此狀態(tài)可定義為
控制行為:即平衡車電機(jī)的輸出力矩。所述控制行為,指控制策略可控量,在平衡車上一般來說其控制變量為驅(qū)動電機(jī)的力矩,因此控制行為可定義為平衡車電機(jī)的輸出力矩u,即a=u,其中u為當(dāng)前時刻的電機(jī)輸出力矩,其正負(fù)代表電機(jī)的不同轉(zhuǎn)動方向。
狀態(tài)行為報酬:即對已執(zhí)行的控制行為的評價。其中,狀態(tài)行為報酬的選擇可以綜合考慮多方面的因素,包括當(dāng)前平衡車的傾角及其角速度、位移距離等相關(guān)信息,具體定義方式需要視情況改變。在當(dāng)前狀態(tài)下的某個行為導(dǎo)致系統(tǒng)所得的報酬降低,進(jìn)而影響到對該行為的評價,直到該控制行為被排除在最優(yōu)控制策略之外。
所述狀態(tài)行為報酬,為在特定狀態(tài)下,執(zhí)行某一控制行為后,控制系統(tǒng)對于該行為執(zhí)行效果的一個評價。在該問題中,報酬函數(shù)r的選擇需要滿足r≤0,且當(dāng)車體越傾斜時r越小,當(dāng)車體完全豎直且角速度為零時標(biāo)定為r=0的理想狀態(tài)。報酬函數(shù)的選擇可以綜合考慮多方面因素,合理的報酬函數(shù)選擇對最終學(xué)習(xí)算法的性能存在影響。例如,可以定位為當(dāng)傾角超過某個指定閾值θ0(如取值為2度)時都為-1懲罰,也即r=0,ifθ<θ0;r=-1,ifθ≥θ0;更合理的是引入角速度來區(qū)分車體處于正在回正的好傾向,還是會變得更加傾斜的壞傾向,例如一個簡單的線性加權(quán)做法是
策略更新:即根據(jù)對控制行為的評價,更新已有的控制行為評價,同時選擇評價最高的控制行為,形成更新后的控制策略。所述策略更新,指在每次獲得該行為報酬時,與之前該狀態(tài)行為已有的報酬指標(biāo)進(jìn)行融合計算,獲得更新后的狀態(tài)行為指標(biāo)。更新的控制策略則選取在各個狀態(tài)下,該項指標(biāo)最好的控制行為。即先根據(jù)當(dāng)前獲得的行為報酬值r對當(dāng)前的狀態(tài)行為指標(biāo)q進(jìn)行迭代更新,獲得更新后的狀態(tài)行為指標(biāo)值q(s,a)←q(s,a)+α[r+γmaxa'q(s',a')-q(s,a)],其中q(s,a)是當(dāng)前狀態(tài)下的狀態(tài)行為指標(biāo);γ是折扣因子,其取值在0至1范圍內(nèi);α是一個慣性因子常數(shù),也可認(rèn)為是算法的學(xué)習(xí)速率,其取值一般為一個較小的正值,也可隨時間而變化。
所述控制決策選擇,是根據(jù)當(dāng)前的狀態(tài)來選取最優(yōu)的控制行為,即選擇合適電機(jī)輸出力矩u使得學(xué)習(xí)算法關(guān)注的優(yōu)化目標(biāo)能夠得到提升:以概率1-∈來選擇a=argmaxa′{q(s,a′)};以概率∈來隨機(jī)選取其他的控制行為,其中∈為很小的非負(fù)數(shù),例如∈=0.05。
連續(xù)變量的離散化:由于上述狀態(tài)和控制行為其本質(zhì)均為連續(xù)變量,連續(xù)變量的無窮多取值對學(xué)習(xí)算法的工程實現(xiàn)造成障礙,需要將其進(jìn)行離散化,也即將傾角、角速度、輸出力矩的取值進(jìn)行離散化。所述連續(xù)變量的離散化,是將陀螺儀所測得的傾角取值、角速度取值以及電機(jī)驅(qū)動力矩取值進(jìn)行離散化,便于學(xué)習(xí)算法的工程實現(xiàn)。具體離散精度需要綜合考慮算法收斂速度以及復(fù)雜度要求,一般來說,離散化精度越高,模型與真實系統(tǒng)越接近,但是算法復(fù)雜度越大,收斂速度也會受到影響。在工程實現(xiàn)中一般不會取太精細(xì)的離散化程度,且進(jìn)行非均勻離散化,例如在該問題中取傾角為零度、正負(fù)2度、正負(fù)5度、正負(fù)10度,取電機(jī)驅(qū)動力矩為零、正負(fù)4nm。
本發(fā)明實施例的兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法,與現(xiàn)有技術(shù)相比具有如下優(yōu)點:
1、本發(fā)明的控制方法無需知道被控對象平衡車的物理模型和先驗知識,學(xué)習(xí)得到的控制策略能夠自適應(yīng)被控對象的變化,當(dāng)被控對象、運行環(huán)境發(fā)生較大變化時,無需像傳統(tǒng)pid控制需要調(diào)整參數(shù),本發(fā)明能夠通過自學(xué)習(xí)逐漸習(xí)得新的最優(yōu)控制律;
2、本發(fā)明的學(xué)習(xí)算法是在線學(xué)習(xí)算法,可以在實際運行中不斷進(jìn)行策略更新,進(jìn)而逐漸改進(jìn)控制效果;
3、本發(fā)明對設(shè)備有著較少的設(shè)定要求??芍苯釉诂F(xiàn)有室內(nèi)環(huán)境控制設(shè)備中實現(xiàn)。該系統(tǒng)與算法獨立于底層設(shè)備的具體控制算法,推廣性更強。
另外,本發(fā)明實施例的兩輪自平衡車的機(jī)器學(xué)習(xí)控制方法的其它構(gòu)成以及作用對于本領(lǐng)域的技術(shù)人員而言都是已知的,為了減少冗余,不做贅述。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
盡管已經(jīng)示出和描述了本發(fā)明的實施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同限定。