鐘小勇,任劍秋
(江西理工大學(xué)理學(xué)院,江西 贛州 341000)
四旋翼無人機(jī)是一種典型的四電機(jī)輸入、六自由度輸出的欠驅(qū)動(dòng)復(fù)雜控制系統(tǒng),易于受到外界干擾,人工整定參數(shù)困難且不易獲得較佳的控制效果。為了提高控制精度,國(guó)內(nèi)外研究人員對(duì)無人機(jī)控制器參數(shù)優(yōu)化算法開展了廣泛研究。文獻(xiàn)[1]在傳統(tǒng)的粒子群算法基礎(chǔ)上參考遺傳算法,對(duì)適應(yīng)值不好的粒子進(jìn)行交叉保優(yōu),以提高粒子的多樣性,加快尋優(yōu)速度。文獻(xiàn)[2]將粒子群算法與仿人智能控制相結(jié)合,使用粒子群優(yōu)化算法對(duì)仿人智能控制中的比例、微分系數(shù)和衰減系數(shù)進(jìn)行優(yōu)化。文獻(xiàn)[3]設(shè)計(jì)模糊PID(Proportion-Integral-Differential,比例積分微分)控制器對(duì)無人機(jī)進(jìn)行控制,對(duì)模糊控制器中的模糊子集進(jìn)行基因編碼,設(shè)計(jì)改進(jìn)型遺傳算法實(shí)現(xiàn)模糊規(guī)則的再整定與優(yōu)化。文獻(xiàn)[4]提出一種改進(jìn)PSO(Particle Swarm Optimization,粒子群)算法優(yōu)化分?jǐn)?shù)階PID參數(shù)的方法,在迭代更新過程中,根據(jù)粒子的適應(yīng)度值按照一定淘汰率將部分粒子淘汰,并用隨機(jī)產(chǎn)生的新粒子代替,在保優(yōu)的同時(shí)增加了粒子群的多樣性。文獻(xiàn)[5]提出一種改進(jìn)人工蜂群算法優(yōu)化分?jǐn)?shù)階PID參數(shù)的方法,利用循環(huán)交換鄰域技術(shù)擴(kuò)大搜索范圍,并利用混沌的遍歷性跳出局部最優(yōu)解,得到了較好的時(shí)域性能。
以上研究大多是在粒子群算法的基礎(chǔ)上對(duì)控制器參數(shù)進(jìn)行整定,但是標(biāo)準(zhǔn)的PSO算法在處理復(fù)雜問題時(shí)容易陷入局部最優(yōu)解。因此本文采用差分進(jìn)化(Differential Evolution,DE)算法對(duì)串級(jí)PID控制器參數(shù)進(jìn)行整定,在標(biāo)準(zhǔn)DE算法的基礎(chǔ)上,提出定向搜索的策略,根據(jù)上一次適應(yīng)度比較的結(jié)果定向影響本次變異的方向,將這種算法應(yīng)用到四旋翼仿真模型中尋找出最優(yōu)的控制器參數(shù)。實(shí)驗(yàn)結(jié)果表明將定向差分進(jìn)化(directed Differential Evolution,dDE)算法尋找出的控制器參數(shù)帶入模型后得到的控制器參數(shù),仿真結(jié)果明顯優(yōu)于PSO算法和標(biāo)準(zhǔn)DE算法,證明了該算法的可行性和實(shí)用價(jià)值。
粒子群算法是一種生物優(yōu)化算法,它根據(jù)自己和同伴的經(jīng)驗(yàn)在搜索空間中找到全局最優(yōu)解。假設(shè)區(qū)域中只有一塊食物(即優(yōu)化問題中的最優(yōu)解),鳥群的任務(wù)就是找到這個(gè)食物。鳥群在整個(gè)搜索過程中可以相互傳遞信息,讓彼此知道各自的位置,來判斷自己是否離食物更近,最終整個(gè)鳥群都能聚集到食物周圍,問題收斂。
(1)
式中1≤j
≤D
,1≤i
≤NP
;D
為變量的總維數(shù);ω
為慣性權(quán)重,起到平衡全局和局部搜索能力的作用;c
,c
分別為認(rèn)知系數(shù),使粒子具有繼承自身優(yōu)點(diǎn)并向種群中其它優(yōu)秀個(gè)體學(xué)習(xí)的能力;r
,r
為[0,1]范圍內(nèi)的隨機(jī)數(shù),用來保持群體的多樣性。相對(duì)人工整定控制參數(shù)而言,粒子群算法能加快尋優(yōu)速度,但發(fā)現(xiàn)針對(duì)四旋翼無人機(jī)這類復(fù)雜的控制器參數(shù)確定時(shí),容易陷入局部最優(yōu)。.
2.
1 差分進(jìn)化算法基本原理差分進(jìn)化算法是在1995年,首先由Storn和Price提出的,它最初被用于求解切比雪夫多項(xiàng)式的問題。DE算法原理跟遺傳算法十分相似,都屬于進(jìn)化算法的范圍,包含變異、交叉、選擇三個(gè)操作,但DE算法的這三個(gè)過程與遺傳算法有很大的不同。DE算法的變異是使用差分策略,利用父代種群中個(gè)體之間的差異來產(chǎn)生變異個(gè)體。交叉操作是從原來的目標(biāo)個(gè)體和變異個(gè)體中用概率選擇的方法構(gòu)成新的候選個(gè)體。選擇操作是采用“貪婪原則”,讓目標(biāo)個(gè)體和候選個(gè)體進(jìn)行競(jìng)爭(zhēng),選擇適應(yīng)度函數(shù)較優(yōu)的個(gè)體,使搜索過程逐漸接近最優(yōu)解?;綝E算法包括以下環(huán)節(jié):
1)種群初始化
(2)
2)變異操作
DE算法的個(gè)體變異是通過父代群體中三個(gè)不同的個(gè)體,采用選定的進(jìn)化模式來生成。根據(jù)不同的變異方式,其進(jìn)化模式也多種多樣。但都可以統(tǒng)一使用DE/x/y/z
的形式來描述。其中x
代表被變異個(gè)體的選擇方式,如選擇最優(yōu)個(gè)體best
或隨機(jī)產(chǎn)生的個(gè)體rand
;y
表示差分向量的個(gè)數(shù);z
表示交叉模式,包含二項(xiàng)交叉bin
和指數(shù)交叉exp 。假設(shè)選用的變異策略是DE/rand/
1/bin
,那么變異個(gè)體可以表示為(3)
k
,k
,k
是隨機(jī)生成的三個(gè)彼此互不相同的整數(shù),k
,k
,k
∈{1,2,…,MP
},所以種群數(shù)量必須要超過4個(gè)。F
表示縮放因子,F
∈[0,1],它決定著差分個(gè)體的縮放量,是控制種群收斂性和多樣性的重要參數(shù)。F
取值大意味著搜索步長(zhǎng)較長(zhǎng),也就易于跳出局部最優(yōu)解,但在演化后期容易錯(cuò)過最優(yōu)解。反之如果F
取值較小,則對(duì)種群造成的擾動(dòng)小,有助于加快算法的收斂速度,但不易跳出局部最優(yōu)解,陷入成局部收斂。在變異過程中,也可能產(chǎn)生超出搜索范圍[L
,U
]的個(gè)體,這時(shí)就要進(jìn)行算子修補(bǔ)。定義修補(bǔ)過程的操作為(4)
3)交叉操作
(5)
式(5)中CR
∈(0,1)為交叉因子,CR
取值的大小,決定了個(gè)體在不同位點(diǎn)發(fā)生交叉的概率大小,決定著歷史信息與當(dāng)前種群信息的權(quán)重。CR
取值越大,則選中變異個(gè)體的概率越大,種群多樣性就會(huì)增加,但收斂速度就會(huì)變慢。CR
取值小,則種群多樣性小,有利于提高算法的收斂速度,但容易造成過早收斂。4)選擇操作
(6)
2.
2.
2 定向搜索策略(7)
(8)
為了描述四旋翼無人機(jī)的運(yùn)動(dòng)姿態(tài)與位置變化,需要在地理坐標(biāo)系和機(jī)體坐標(biāo)系上建模,同時(shí)分析兩個(gè)坐標(biāo)之間的變換關(guān)系。四旋翼無人機(jī)運(yùn)動(dòng)示意圖如1所示。
在研究物體轉(zhuǎn)動(dòng)和位置的變化中,常用俯仰角、橫滾角φ
、航向角ψ
來表示確定向量的轉(zhuǎn)動(dòng)位置,無人機(jī)各軸的角度變化用歐拉角表示,需要依次繞三個(gè)軸進(jìn)行旋轉(zhuǎn)才能求出復(fù)合后的旋轉(zhuǎn)矩陣。用歐拉角來表示無人機(jī)從載體坐標(biāo)系b
旋轉(zhuǎn)到地理坐標(biāo)系n
的旋轉(zhuǎn)矩陣如公式所示。圖1 四旋翼無人機(jī)運(yùn)動(dòng)示意圖
(9)
式中c
、s
分別表示cos 和sin 函數(shù)。建立四旋翼無人機(jī)的動(dòng)力學(xué)模型時(shí),需要假定一些初始條件:
1)假設(shè)無人機(jī)為剛體,不考慮槳片的形變和彈性震動(dòng)。
2)假設(shè)無人機(jī)絕對(duì)對(duì)稱,機(jī)體質(zhì)量分布均勻,重心與機(jī)體坐標(biāo)原點(diǎn)重合。
3)忽略地面效應(yīng)造成的影響。
4)忽略地球自轉(zhuǎn),地理坐標(biāo)系與慣性坐標(biāo)系重合,重力加速度不變。
設(shè)無人機(jī)的地理坐標(biāo)為ξ
=[x
,y
,z
],無人機(jī)的姿態(tài)角為Θ
=[φ
,θ
,ψ
],角速度為ω
=[p
,q
,r
]。根據(jù)動(dòng)量定理和動(dòng)量矩定理,結(jié)合無人機(jī)所受外力和合外力矩,給出無人機(jī)的角運(yùn)動(dòng)方程(10)
式中U
,U
,U
分別代表橫滾、俯仰和偏航運(yùn)動(dòng)力矩,I
(i
=x
,y
,z
)代表機(jī)體繞各軸旋轉(zhuǎn)的慣性張量,J
為轉(zhuǎn)動(dòng)慣量,Ω
為機(jī)體轉(zhuǎn)速。再給出無人機(jī)的平移運(yùn)動(dòng)和垂直運(yùn)動(dòng)方程(11)
式中U
代表垂直運(yùn)動(dòng)力矩,m
為飛行器重量,g
為重力加速度,U
(i
=1,2,3,4)可以表示為(12)
式中,Ω
(i
=1,2,3,4)代表四個(gè)電機(jī)的轉(zhuǎn)速,F
(i
=1,2,3,4)代表四個(gè)旋翼單獨(dú)轉(zhuǎn)動(dòng)時(shí)產(chǎn)生的升力,b
為升力系數(shù),d
為阻力矩系數(shù),l
為無人機(jī)質(zhì)心到旋翼中心的長(zhǎng)度。控制部分采用PID控制器,常用的PID控制器如圖2所示,由比例單元P、積分單元I、微分單元D組成,實(shí)現(xiàn)對(duì)被控對(duì)象的控制與調(diào)節(jié)。
圖2 PID控制器模型
在圖2中,輸入信號(hào)為r
(t
),輸出信號(hào)為y
(t
),PID控制器輸入為e
(t
)=r
(t
)-y
(t
),PID控制器輸出u
(t
)表達(dá)式為(13)
式中,K
、K
、K
是PID控制器的三個(gè)參數(shù),分別為是比例系數(shù)、積分系數(shù)和微分系數(shù)。為了提高控制精度,對(duì)四旋翼每個(gè)姿態(tài)角采用內(nèi)外環(huán)串級(jí)PID控制,如圖3所示。相對(duì)常用的PID控制器,串級(jí)PID控制器更能夠準(zhǔn)確實(shí)時(shí)地控制四旋翼無人機(jī)的姿態(tài)。在圖3中,外環(huán)為角度PID控制器(比例系數(shù)、積分系數(shù)、微分系數(shù)分別設(shè)為K
1、K
1、K
1),輸入為期望角度與反饋實(shí)時(shí)角度的差值,輸出為期望角速度;內(nèi)環(huán)是角速度PID
控制器,(比例系數(shù)、積分系數(shù)、微分系數(shù)分別設(shè)為K
2、K
2、K
2),輸入為期望角速度與反饋實(shí)時(shí)角速度的差值,輸出至四旋翼動(dòng)力模型。根據(jù)四旋翼動(dòng)力模型表達(dá)式(12),計(jì)算U
、U
、U
、U
,最終根據(jù)模型參數(shù),計(jì)算并反饋實(shí)際角度與實(shí)際角速度。在四旋翼串級(jí)PID控制過程中,PID參數(shù)的整定及優(yōu)化是實(shí)現(xiàn)穩(wěn)定控制的基礎(chǔ)。圖3 四旋翼無人機(jī)串級(jí)PID控制
f
,其表達(dá)式為:(14)
在參數(shù)整定過程中,f
的值越小越好,約束條件為系統(tǒng)調(diào)節(jié)時(shí)間t
、超調(diào)比例σ
與調(diào)節(jié)誤差err
。改進(jìn)差分進(jìn)化算法整定PID控制器參數(shù)步驟如圖4所示。圖4 dDE優(yōu)化PID流程圖
7)判斷最大迭代次數(shù)是否達(dá)到,若達(dá)到,則停止;否則轉(zhuǎn)到第2)步。
利用差分進(jìn)化算法對(duì)PID控制器參數(shù)進(jìn)行優(yōu)化的過程流程圖如圖4所示。優(yōu)化算法與四旋翼模型之間,通過優(yōu)化算法傳遞PID的控制參數(shù),從四旋翼模型中獲得仿真數(shù)據(jù),利用得到的數(shù)據(jù),通過適應(yīng)度函數(shù)得到該組參數(shù)對(duì)應(yīng)的適應(yīng)度值,獲取適應(yīng)度最優(yōu)的參數(shù)。
為了對(duì)本文所提出算法的控制精度及實(shí)時(shí)性進(jìn)行驗(yàn)證,本文采用圖5所示的四旋翼無人機(jī)為原型,實(shí)驗(yàn)以該機(jī)為模型,具體參數(shù)如表1所示。
圖5 四旋翼無人機(jī)
表1 四旋翼模型參數(shù)
運(yùn)用MATLAB和Simulink進(jìn)行仿真并分析仿真結(jié)果。以橫滾通道為例,設(shè)置PSO的粒子群規(guī)模為NP=20、維度參數(shù)D=6、位置區(qū)間為X
=[0 0 0 0 0 0]到X
=[100 5 5 100 5 5],最大迭代次數(shù)50,速度區(qū)間V
為位置區(qū)間的0.
2倍,認(rèn)知系數(shù)c
,c
=2,慣性權(quán)重ω
從0.
9線性遞減至0.
4。設(shè)置DE
和dDE
算法的種群大小MP
=20、維度參數(shù)N
=6、位置區(qū)間為X
=[0 0 0 0 0 0]到X
=[100 5 5 100 5 5]、和最大迭代次數(shù)maxG
=50,縮放因子F
=0.
5,交叉概率因子CR
=0.
9。三種算法迭代50次后,得到的優(yōu)化PID參數(shù)值和各性能指標(biāo)如表所示。
表2 橫滾通道PID參數(shù)和各性能指標(biāo)
以橫滾角為例,將三種算法下得到的PID
參數(shù)帶入四旋翼模型中,期望角度為30°時(shí),角度變化曲線如圖6所示。圖6 不同算法PID控制效果
三種算法下適應(yīng)度隨迭代次數(shù)變化曲線如圖7所示。
圖7 適應(yīng)度隨迭代次數(shù)變化曲線
dDE
算法參數(shù)優(yōu)化隨迭代次數(shù)變化如圖8所示。由于靜差相對(duì)較小,積分系數(shù)及變化量均很小,圖中只列出了比例系數(shù)及微分系數(shù)。圖8 dDE算法中的參數(shù)變化曲線
由圖6可以看出,系統(tǒng)在階躍輸入下,dDE
算法能夠以最快的速度達(dá)到期望值,并且達(dá)到穩(wěn)定狀態(tài)的時(shí)間最短。從圖7中可以看到,DE
算法在第15次迭代,PSO
算法在第9次迭代左右就已經(jīng)收斂,不再變化。而結(jié)合圖8可以看到,dDE
算法在第15代之后依然可以跳出局部最優(yōu)解,防止了過早收斂,得到了整體的最優(yōu)結(jié)果。PID
應(yīng)用于四旋翼控制系統(tǒng)中,并用Simulink
對(duì)四旋翼飛行器進(jìn)行了建模仿真。針對(duì)四旋翼飛行器PID
參數(shù)人工調(diào)試難度較大的問題,提出了DE
算法對(duì)四旋翼PID
參數(shù)進(jìn)行優(yōu)化,并對(duì)標(biāo)準(zhǔn)DE
算法進(jìn)行改進(jìn),加入了定向搜索策略。通過與標(biāo)準(zhǔn)PSO
算法和DE
算法相比較,結(jié)果表明基于dDE
算法的串級(jí)PID
控制技術(shù)具有更快的收斂速度和更穩(wěn)定的性能。