基于AGA的仿人機(jī)器人PID控制參數(shù)優(yōu)化
1 引言
PID控制原理簡(jiǎn)單,適應(yīng)性強(qiáng),容易實(shí)現(xiàn),是機(jī)器人控制的常用方法,PID控制系統(tǒng)設(shè)計(jì)的核心內(nèi)容是如何確定其比例系數(shù)Kp、積分常數(shù)Ti和微分常數(shù)Td的最優(yōu)解。控制參數(shù)的選定直接影響仿人機(jī)器人控制系統(tǒng)的響應(yīng)速度、調(diào)節(jié)偏差的強(qiáng)度,以及控制系統(tǒng)的精度。
針對(duì)PID控制參數(shù)確定,主要有傳統(tǒng)參數(shù)整定方法以及結(jié)合智能算法對(duì)參數(shù)進(jìn)行優(yōu)化。傳統(tǒng)參數(shù)整定方法主要有試湊法、經(jīng)驗(yàn)數(shù)據(jù)法和擴(kuò)充臨界比例度法。應(yīng)用傳統(tǒng)參數(shù)整定方法有時(shí)并不能達(dá)到有效的控制效果。近年來(lái),隨著智能算法的發(fā)展,模糊算法、神經(jīng)網(wǎng)絡(luò)以及遺傳算法等都運(yùn)用到PID參數(shù)優(yōu)化當(dāng)中。
其中遺傳算法是一種新型的、模擬生物進(jìn)化機(jī)制的隨機(jī)化搜索和優(yōu)化方法,具有并行計(jì)算、全局收斂、編碼操作等特點(diǎn)。由于其算法結(jié)構(gòu)的開(kāi)放性,易于與問(wèn)題結(jié)合,便于運(yùn)算,已成功的應(yīng)用于求解多種復(fù)雜的優(yōu)化問(wèn)題,遺傳算法的特點(diǎn)使得將其運(yùn)用于PID參數(shù)的優(yōu)化是可行的。
針對(duì)仿人機(jī)器人PID控制參數(shù)優(yōu)化存在的問(wèn)題,結(jié)合智能算法的優(yōu)勢(shì),本文提出了一種自適應(yīng)遺傳算法優(yōu)化PID控制參數(shù)的方法,并在ADAMS環(huán)境下進(jìn)行了仿真,得到較為滿意的結(jié)果,表明該方法是可行且有效的。
2 仿人機(jī)器人關(guān)節(jié)PID控制
2.1 常規(guī)PID控制原理
PID作為最早實(shí)用化的控制調(diào)節(jié)方法,是模擬控制系統(tǒng)中技術(shù)最成熟的一種調(diào)節(jié)方式。PID調(diào)節(jié)根據(jù)給定值與實(shí)際值的偏差進(jìn)行比例調(diào)節(jié),并且引入積分、微分環(huán)節(jié)提高控制系統(tǒng)的性能和品質(zhì),其基本控制流程如圖1。
圖1 PID控制過(guò)程示意圖
在PID控制中,Kp、Ti和Td這3個(gè)參數(shù)的選擇直接影響著PID控制的優(yōu)劣,所以PID控制的設(shè)計(jì)關(guān)鍵問(wèn)題始終是如何選擇這三個(gè)參數(shù)。常規(guī)的PID控制器由于受到參數(shù)設(shè)定不良、性能欠佳以及對(duì)運(yùn)行工況適應(yīng)性較差的影響,往往達(dá)不到理想的控制效果,從而使PID控制的應(yīng)用受到限制。
遺傳算法是一種借鑒生物界自然選擇和自然遺傳機(jī)制的隨機(jī)化搜索方法,屬于直接搜索法,對(duì)適應(yīng)度函數(shù)基本無(wú)限制,既不要求函數(shù)連續(xù),也不要求函數(shù)可微,因而采用遺傳算法對(duì)PID參數(shù)進(jìn)行調(diào)節(jié)是一種較好方法。但是,標(biāo)準(zhǔn)遺傳算法在線性方面具有一些不足之處,而自適應(yīng)遺傳算法則是針對(duì)這些不足之處改進(jìn)而來(lái)的。所以本文采用的是自適應(yīng)遺傳算法來(lái)優(yōu)化PID參數(shù)。
2.2 基于自適應(yīng)遺傳算法PID參數(shù)優(yōu)化
在仿人機(jī)器人行走仿真控制過(guò)程中,僅保證機(jī)器人行走過(guò)程的穩(wěn)定性還不夠,為了能夠提高控制系統(tǒng)的響應(yīng)速度與控制精度,必須尋找仿人機(jī)器人控制系統(tǒng)的最優(yōu)PID控制參數(shù)以充分發(fā)揮控制系統(tǒng)的性能?;谶z傳算法的PID控制系統(tǒng)框圖,如圖2。
圖2 遺傳算法優(yōu)化PID控制原理框圖
2.2.1 自適應(yīng)遺傳算法
自適應(yīng)遺傳算法針對(duì)標(biāo)準(zhǔn)遺傳算法進(jìn)行如下改進(jìn):
1)根據(jù)適應(yīng)度函數(shù)和進(jìn)化代數(shù)自動(dòng)調(diào)整個(gè)體的交叉率和變異率,AGA自適應(yīng)交叉率、變異率按如下公式進(jìn)行調(diào)整。
通過(guò)這種遺傳算子的調(diào)整,當(dāng)種群個(gè)體適應(yīng)度較差時(shí),賦予種群個(gè)體交叉算子的最大值和變異算子的最小值,保證算法能在進(jìn)化過(guò)程中進(jìn)行全局搜索;當(dāng)個(gè)體適應(yīng)度值較大時(shí)(個(gè)體優(yōu)良),隨迭代次數(shù)的增大,不斷的減小交叉算子、增大變異算子,從而提高算法的局部搜索能力。
2)最優(yōu)個(gè)體保留策略與新個(gè)體優(yōu)良判別。通過(guò)對(duì)交叉、變異后產(chǎn)生的新個(gè)體進(jìn)行適應(yīng)度值的計(jì)算,并與原來(lái)個(gè)體的適應(yīng)度值進(jìn)行比較,能夠有效選擇更為優(yōu)良的個(gè)體。
經(jīng)過(guò)對(duì)標(biāo)準(zhǔn)遺產(chǎn)算法改進(jìn)后的自適應(yīng)遺傳算法除了具有標(biāo)準(zhǔn)遺傳算法的優(yōu)點(diǎn)外,還具有如下優(yōu)點(diǎn):
1) 避免過(guò)早收斂問(wèn)題,提高全局搜索能力;
2) 避免算法收斂時(shí)產(chǎn)生振蕩,提高局部搜索能力;
3) 使遺傳算子具有方向性,提高遺傳算法的收斂性。
2.2.2 AGA程序設(shè)計(jì)
在AGA設(shè)計(jì)過(guò)程中,需要使用一系列算法參數(shù),如選擇、交叉、變異算子以及最大迭代次數(shù)等,在編寫算法之前,先確定其相關(guān)參數(shù)。
1) 確定遺傳算法的優(yōu)化參數(shù)
在遺傳算法設(shè)計(jì)中,算法基因與優(yōu)化參數(shù)沒(méi)有直接的聯(lián)系,因此首先確定算法需要優(yōu)化的參數(shù):PID控制參數(shù)比例調(diào)節(jié)常數(shù)Kp、積分常數(shù)Ti和微分常數(shù)Td。通過(guò)選擇最優(yōu)控制參數(shù)保證仿人機(jī)器人的控制精度和響應(yīng)速度。
2) 遺傳算法編碼
編碼是將問(wèn)題的解用一種代碼方式表示,從而將問(wèn)題的狀態(tài)空間與遺傳算法的解空間相對(duì)應(yīng)。編碼方式的不同不僅決定了染色體的形式,而且很大程度的影響遺傳算子(選擇算子、交叉算子、變異算子)的運(yùn)算方式。編碼方式對(duì)于不同的優(yōu)化問(wèn)題有所不同。主要的編碼方式有:0-1編碼、順序編碼、實(shí)數(shù)編碼和整數(shù)編碼。
本文為了保證優(yōu)化的最優(yōu)參數(shù)有足夠的精度,采用實(shí)數(shù)編碼的方式對(duì)PID控制參數(shù)進(jìn)行編碼,與之對(duì)應(yīng)的染色體形式為:
3) 種群初始化
初始種群是遺傳算法進(jìn)行迭代優(yōu)化的起點(diǎn),其產(chǎn)生方式主要取決于編碼方式,本文采用隨機(jī)函數(shù)產(chǎn)生遺傳算法的初始種群。
4) 種群規(guī)模ps
在遺傳算法優(yōu)化過(guò)程中,種群規(guī)模ps的確定對(duì)算法實(shí)現(xiàn)有重要影響。種群規(guī)模ps過(guò)小,則種群缺乏多樣性,將導(dǎo)致進(jìn)化的過(guò)早收斂,種群規(guī)模過(guò)大,則會(huì)導(dǎo)致計(jì)算收斂變慢,影響遺傳算法的效率,此外種群規(guī)模對(duì)算法的選擇壓力和種群多樣性等其他因素都有影響。因此合理的種群規(guī)模對(duì)算法十分重要,本文通過(guò)反復(fù)實(shí)驗(yàn),最終確定種群規(guī)模為ps=20。
5) 適應(yīng)度函數(shù)
在自適應(yīng)遺傳算法(AGA)中,適應(yīng)度函數(shù)幾乎是評(píng)價(jià)種群個(gè)體優(yōu)良的唯一標(biāo)準(zhǔn),群個(gè)體的選擇復(fù)制、交叉、變異都與適應(yīng)度函數(shù)密切相關(guān)。適應(yīng)度函數(shù)通常有兩種設(shè)計(jì)方法:第一種,原始適應(yīng)度函數(shù),也就是直接將目標(biāo)函數(shù)作為個(gè)體的適應(yīng)度函數(shù);第二種,標(biāo)準(zhǔn)適應(yīng)度函數(shù),由于遺傳算法求解過(guò)程中,適應(yīng)度函數(shù)通常要求非負(fù),且適應(yīng)度函數(shù)越大,則種群個(gè)體越優(yōu)良,通常目標(biāo)函數(shù)需要做一定變換才能獲得標(biāo)準(zhǔn)適應(yīng)度函數(shù)。
本文中,仿人機(jī)器人控制系統(tǒng)主要控制仿人機(jī)器人關(guān)節(jié)力矩,通過(guò)力矩驅(qū)動(dòng)仿人機(jī)器人關(guān)節(jié)運(yùn)動(dòng),并保證仿人機(jī)器人實(shí)際輸出的關(guān)節(jié)位移與理論關(guān)節(jié)位移相符合。因此本文中將仿人機(jī)器人行走過(guò)程中實(shí)際關(guān)節(jié)軌跡與理論關(guān)節(jié)軌跡的最大偏差作為控制的目標(biāo)函數(shù),目標(biāo)函數(shù)越小,則控制精度越高,由于適應(yīng)度函數(shù)要求適應(yīng)度函數(shù)值越大,則個(gè)體越優(yōu)良,因此,在這里需要對(duì)目標(biāo)函數(shù)做一定的更改,將目標(biāo)函數(shù)的最小值與適應(yīng)度函數(shù)的最大值相對(duì)應(yīng),具體的辦法是通過(guò)一個(gè)較大的數(shù)減去目標(biāo)函數(shù),獲得適應(yīng)度函數(shù)值,其函數(shù)關(guān)系關(guān)系式為:
6) 遺傳算子的確定
遺傳算法的基本思想就是優(yōu)勝劣汰,主要通過(guò)選擇、交叉、變異方法,隨進(jìn)化代數(shù)的增加,最終獲得最優(yōu)個(gè)體。在進(jìn)化過(guò)程中,選擇算子、交叉和變異算子對(duì)算法性能產(chǎn)生很大的影響。
在遺傳算法的設(shè)計(jì)中,不同的選擇策略會(huì)導(dǎo)致不同的選擇壓力,選擇壓力過(guò)大,優(yōu)秀個(gè)體復(fù)制較多,會(huì)導(dǎo)致算法收斂過(guò)快,最終導(dǎo)致早熟現(xiàn)象,壓力過(guò)小,則種群多樣化明顯,會(huì)導(dǎo)致算法收斂過(guò)慢。常見(jiàn)的選擇策略有:輪盤賭式選擇、基于排名的選擇和錦標(biāo)賽選擇。
本文中針對(duì)算法的適應(yīng)度函數(shù),采用適應(yīng)度比例選擇策略,如式5-3所示。同時(shí)對(duì)此方法做一定的修改,通過(guò)精英保留策略,在算法的后期,直接保留最優(yōu)個(gè)體的基因,通過(guò)這種方法,可以有效避免在遺傳算法的后期丟失最優(yōu)個(gè)體的可能。
7) 終止條件確定
遺傳算法的常見(jiàn)終止條件有兩種,第一,實(shí)際值與期望值的偏差在公差允許的范圍內(nèi)時(shí),算法迭代終止。第二,采用遺傳算法的最大迭代次數(shù)作為算法的終止條件,并將最后一代種群中最優(yōu)個(gè)體作為最優(yōu)解輸出。本文采用第二種算法終止方法,并規(guī)定最大迭代次數(shù)為20代。
3 仿真研究
3.1 遺傳算法在ADAMS中的實(shí)現(xiàn)
根據(jù)上述自適應(yīng)遺傳算法對(duì)PID參數(shù)進(jìn)行優(yōu)化的基本思想,基于VC++語(yǔ)言編寫AGA優(yōu)化程序,通過(guò)ADAMS自帶的控制工具箱,建立基于自適應(yīng)遺傳PID算法的控制系統(tǒng),進(jìn)行仿真,驗(yàn)證虛擬樣機(jī)模型的正確性。
構(gòu)建AGA結(jié)合ADAMS的仿真流程圖。在優(yōu)化設(shè)計(jì)過(guò)程中,ADAMS首先對(duì)接口進(jìn)行初始化,將優(yōu)化目標(biāo)函數(shù)、設(shè)計(jì)變量與范圍傳遞到遺傳算法中,通過(guò)遺傳算法產(chǎn)生初始群體,并將參數(shù)提交給ADAMS進(jìn)行目標(biāo)函數(shù)計(jì)算,遺傳算法根據(jù)目標(biāo)函數(shù)值計(jì)算個(gè)體適應(yīng)度。然后判斷終止條件,如果未達(dá)到終止條件,則通過(guò)遺傳進(jìn)化產(chǎn)生新種群,計(jì)算新的適應(yīng)度值;如果滿足終止條件,則向ADAMS提交最優(yōu)解及相關(guān)參數(shù),并終止優(yōu)化程序。如圖3。
圖3 AGA在ADAMS中仿真流程圖
其中將遺傳算法引入ADAMS中,可以不用考慮遺傳算法優(yōu)化中機(jī)械系統(tǒng)的數(shù)學(xué)模型,就能很方便獲得適應(yīng)度函數(shù)值,簡(jiǎn)化了遺傳算法的設(shè)計(jì)過(guò)程。
根據(jù)仿真流程圖,以控制仿人機(jī)器人左膝關(guān)節(jié)軌跡為例,建立優(yōu)化算法控制系統(tǒng),進(jìn)行仿真。
首先,建立優(yōu)化設(shè)計(jì)的設(shè)計(jì)變量,即variable_P、variable_I、variable_D。由于遺傳算法具有很強(qiáng)的全局尋優(yōu)能力,因此確定variable_P的范圍為[1,2500],variable_I的范圍為[1,500],variable_D的范圍為[1,2500],并將三個(gè)設(shè)計(jì)變量與控制系統(tǒng)PID環(huán)節(jié)關(guān)聯(lián)以保證遺傳算法的全局搜索。
其次,建立優(yōu)化目標(biāo)函數(shù)。以實(shí)際關(guān)節(jié)軌跡與理論關(guān)節(jié)軌跡差值的絕對(duì)值作為設(shè)計(jì)目標(biāo),目標(biāo)函數(shù)值越小,控制精度越高。由于機(jī)器人關(guān)節(jié)軌跡為復(fù)雜的分段函數(shù),為方便起見(jiàn),采用樣條擬合的方法將理論軌跡輸入到ADAMS中。
最后,通過(guò)ADAMS的DesignEvaluationTools確定優(yōu)化目標(biāo)與設(shè)計(jì)變量,并設(shè)置優(yōu)化的相關(guān)屬性,如顯示設(shè)置、輸出設(shè)置以及優(yōu)化參數(shù)設(shè)置,將‘Optimizer…’中的優(yōu)化算法設(shè)置為‘User1’,并進(jìn)行仿真。
3.2 PID參數(shù)優(yōu)化后處理
從優(yōu)化結(jié)果來(lái)看,PID控制精度有明顯的提高,AGA算法以最大迭代次數(shù)作為終止條件,收斂速度相對(duì)較慢但優(yōu)化結(jié)果準(zhǔn)確,說(shuō)明遺傳算法具有較強(qiáng)的全局尋優(yōu)能力。
進(jìn)入ADAMS/PostProcessor模塊,可以將AGA優(yōu)化仿真結(jié)果跟ADAMS軟件自帶的SQP優(yōu)化模塊仿真結(jié)果進(jìn)行對(duì)比,圖4的上半部分為AGA優(yōu)化結(jié)果,下半部分為SQP優(yōu)化結(jié)果,在兩種算法中,控制偏差隨時(shí)間的變化趨勢(shì)大體相同,且偏差值大小相比為優(yōu)化前都有大幅的減小,充分體現(xiàn)了優(yōu)化設(shè)計(jì)在控制系統(tǒng)中的作用,如圖4。
圖4 優(yōu)化目標(biāo)函數(shù)值對(duì)比
此外通過(guò)對(duì)目標(biāo)函數(shù)進(jìn)行數(shù)據(jù)處理,查看目標(biāo)函數(shù)在控制過(guò)程中的最大值、最小值以及平均偏差值,可知使用遺傳算法進(jìn)行的控制優(yōu)化,無(wú)論目標(biāo)函數(shù)的最大值還是平均值,都比采用ADAMS自帶的SQP算法的計(jì)算結(jié)果要小,見(jiàn)表1。
表1 目標(biāo)函數(shù)各項(xiàng)數(shù)值對(duì)比
將AGA優(yōu)化后的仿人機(jī)器人左膝關(guān)節(jié)角運(yùn)動(dòng)過(guò)程的實(shí)際軌跡跟理論軌跡重合情況跟優(yōu)化前進(jìn)行比較,圖中,藍(lán)色虛線表示關(guān)節(jié)角的實(shí)際軌跡,紅色實(shí)線表示關(guān)節(jié)角的理論軌跡。仿真結(jié)果,如圖5和圖6。
圖5 優(yōu)化前關(guān)節(jié)理論與實(shí)際軌跡重合情況
圖6 優(yōu)化后關(guān)節(jié)理論與實(shí)際軌跡重合情況
比較圖6與圖7中可以看出,控制系統(tǒng)經(jīng)過(guò)自適應(yīng)遺傳算法優(yōu)化后,其控制性能較之優(yōu)化前有極大提升,關(guān)節(jié)運(yùn)動(dòng)的實(shí)際軌跡與理論軌跡更加接近,保證了仿人機(jī)器人行走的穩(wěn)定性、可控制精度,提高了控制系統(tǒng)的實(shí)時(shí)響應(yīng)速度,證明了基于遺傳算法的PID控制系統(tǒng)參數(shù)優(yōu)化方法的正確性。
4 結(jié)論
針對(duì)仿人機(jī)器人PID控制系統(tǒng)參數(shù)確定存在的問(wèn)題,本文提出了基于自適應(yīng)遺傳算法定PID控制參數(shù)優(yōu)化方法。將三個(gè)參數(shù)作為遺傳算法的個(gè)體,采用仿人機(jī)器人的理論關(guān)節(jié)軌跡與實(shí)際關(guān)節(jié)軌跡的最大偏差值作為目標(biāo)函數(shù),適應(yīng)度函數(shù)與之相對(duì)應(yīng),采用適應(yīng)度比例選擇策略,可以有效避免在遺傳算法的后期丟失最優(yōu)個(gè)體的可能,以保證機(jī)器人控制系統(tǒng)參數(shù)選擇精度。通過(guò)ADAMS仿真結(jié)果對(duì)比分析,優(yōu)化后的仿人機(jī)器人控制系統(tǒng)的控制精度、響應(yīng)速度都有明顯提高,說(shuō)明了基于自適應(yīng)遺傳算法的PID控制能夠得到比傳統(tǒng)PID控制更優(yōu)的結(jié)果。
參考文獻(xiàn)
[1]金奇,鄧志杰.PID控制原理及參數(shù)整定方法[J].重慶工學(xué)院學(xué)報(bào),2011(7):91-94.
[2]于曉敏,于曉坤,耿蕊.PID控制器參數(shù)優(yōu)化算法的仿真研究[J].計(jì)算機(jī)仿真,2008(5):212-215.
[3]姜玉春,吳紅燕.PID控制器的參數(shù)整定[J].萊鋼科技,2006(2):54-55.
[4]朱盈,朱俊.多種PID控制及其仿真比較[J].工業(yè)控制計(jì)算機(jī),2010(1):53-54.
[5]牛薌潔,王玉潔,唐劍.基于遺傳算法的PID控制器參數(shù)優(yōu)化研究[J].計(jì)算機(jī)仿真,2010(11):180-182.
[6]WANGP,KWOKDP. OptimaldesignofPIDprocesscontrollersbasedongeneticalgorithms[J].ControlEngPrac,1994,2(4):641-648.
[7]楊智民,王旭,莊顯義.遺傳算法在自動(dòng)控制領(lǐng)域中的應(yīng)用綜述[J].信息與控制,2000,29(4)14-17.
[8]張可村,李換琴.工程優(yōu)化方法及其應(yīng)用[M].西安:西安交通大學(xué)出版社,2007.
[9]黃友銳.智能優(yōu)化算法及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2008.