姚 樂(lè),管業(yè)鵬,金 星
(1.上海大學(xué) 通信與信息工程學(xué)院,上海 200444; 2.中國(guó)科學(xué)院 上海微系統(tǒng)所與信息技術(shù)研究所,上?!?00050;3.浙江中科領(lǐng)航汽車電子有限公司,杭州 311228)
?
基于改進(jìn)單神經(jīng)元的四旋翼PID控制器設(shè)計(jì)
姚樂(lè)1,2,3,管業(yè)鵬1,金星2,3
(1.上海大學(xué) 通信與信息工程學(xué)院,上海200444; 2.中國(guó)科學(xué)院 上海微系統(tǒng)所與信息技術(shù)研究所,上海200050;3.浙江中科領(lǐng)航汽車電子有限公司,杭州311228)
針對(duì)傳統(tǒng)PID控制算法對(duì)四旋翼飛行器的姿態(tài)角進(jìn)行控制時(shí),其控制參數(shù)很難隨著環(huán)境的變化進(jìn)行自整定,進(jìn)而影響四旋翼飛行器的穩(wěn)定性的問(wèn)題,提出了一種改進(jìn)的PID控制算法;該算法通過(guò)改進(jìn)單神經(jīng)元中的K值公式提高了Kp、Ki、Kd的學(xué)習(xí)速率,從而提高了系統(tǒng)的響應(yīng)速度;通過(guò)增加超調(diào)懲罰措施,通過(guò)適當(dāng)?shù)姆糯蠡蚩s小超調(diào),可以使系統(tǒng)超調(diào)達(dá)到最小;通過(guò)與增量型PID、標(biāo)準(zhǔn)二次型單神經(jīng)元PID算法進(jìn)行比較,并且進(jìn)行仿真實(shí)驗(yàn);結(jié)果表明:所提方法具有參數(shù)自整定能力強(qiáng)且快速響應(yīng)、魯棒性強(qiáng)及穩(wěn)定性好。
四旋翼飛行器;單神經(jīng)元PID控制
近年來(lái),四旋翼飛行器以其簡(jiǎn)單的機(jī)械結(jié)構(gòu)與懸浮、垂直起落等優(yōu)點(diǎn),被廣泛應(yīng)用于航拍、道路監(jiān)控等領(lǐng)域[1]。四旋翼飛行器要完成懸浮、垂直起落,需要控制系統(tǒng)對(duì)姿態(tài)具有良好的控制特性。四旋翼飛行器姿態(tài)控制系統(tǒng)分別對(duì)Pitch(俯仰)、Roll(橫滾)和Yaw(航向)3個(gè)通道進(jìn)行協(xié)調(diào)控制,即可實(shí)現(xiàn)飛行。
針對(duì)四旋翼飛行器姿態(tài)控制,常規(guī)PID 控制器雖然簡(jiǎn)單易行,但一組固定不變的PID參數(shù)無(wú)法適應(yīng)參數(shù)變化,干擾眾多的控制系統(tǒng)。針對(duì)這一缺點(diǎn),文獻(xiàn)[2]提出了模糊PID控制,但是模糊PID控制的參數(shù)需要研究者根據(jù)先驗(yàn)經(jīng)驗(yàn)確定,具有很強(qiáng)的主觀性并且不一定能找到最優(yōu)解;文獻(xiàn)[3]提出了基于遺傳算法的PID控制以及文獻(xiàn)[4]提出了基于量子粒子群優(yōu)化的PID控制,這兩種算法可以找到最優(yōu)解,但需要建立被控對(duì)象的精確數(shù)學(xué)模型,然而實(shí)際工程中,隨著環(huán)境的變化以及原器件的老化,很難建立精確的數(shù)學(xué)模型,因此不能實(shí)現(xiàn)精確控制;文獻(xiàn)[5]提出了基于神經(jīng)網(wǎng)絡(luò)PID控制算法,不需要精確的數(shù)學(xué)模型,也不需要先驗(yàn)知識(shí)確定最優(yōu)解,有效解決了上述兩個(gè)問(wèn)題,由于神經(jīng)網(wǎng)絡(luò)具有很大的復(fù)雜度,計(jì)算量大,而在四旋翼控制模型中一般采用為32位的Arm(Stm32等),或者16位(AVR等),甚至是8位(Arduino),且主頻不超過(guò)100 MHz,因此很難滿足其計(jì)算量。由于單神經(jīng)元是神經(jīng)元的組成單元,不僅可以實(shí)現(xiàn)在線調(diào)整PID參數(shù),且不需被控對(duì)象的精確數(shù)學(xué)模型,整個(gè)系統(tǒng)的構(gòu)架簡(jiǎn)單,提出了一種改進(jìn)的單神經(jīng)元的PID控制方法,并應(yīng)用于四旋翼上。
通過(guò)實(shí)驗(yàn)結(jié)果仿真與對(duì)比表明:所提方法不僅具有較強(qiáng)的收斂速度,而且具有較強(qiáng)的自適應(yīng)能力和自學(xué)能力,對(duì)控制器參數(shù)可實(shí)現(xiàn)在線調(diào)整,有較強(qiáng)的魯棒性。
1.1單神經(jīng)元自適應(yīng)PID控制
神經(jīng)網(wǎng)絡(luò)是模擬人類大腦神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和行為的一種網(wǎng)絡(luò),單神經(jīng)元作為神經(jīng)網(wǎng)絡(luò)的基本單元,同樣具有其基本的學(xué)習(xí)性能,并且單神經(jīng)元結(jié)構(gòu)簡(jiǎn)單、易于計(jì)算,更適合在運(yùn)算速度較低的MCU;PID控制參數(shù)的變化與被控對(duì)象的輸出緊密聯(lián)系,故將兩者結(jié)合形成的單神經(jīng)元自適應(yīng)PID控制器,這樣既可以實(shí)現(xiàn)四旋翼根據(jù)不同環(huán)境下自適應(yīng)調(diào)節(jié),也可以使整個(gè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單。在四旋翼中存在不同的角度控制,為了分析方便,只進(jìn)行俯仰角的分析,俯仰角的單神經(jīng)元自適應(yīng)PID控制器的結(jié)構(gòu)[6]如圖1所示。
圖1 單神經(jīng)元自適應(yīng)PID控制結(jié)構(gòu)
因?yàn)樵赑ID中有3個(gè)調(diào)節(jié)參數(shù),因此令n=3,則圖1中的狀態(tài)變換器的輸入即t、t-1和t-2時(shí)刻的四旋翼上俯仰角的偏移誤差分別為:
(1)
(2)
(3)
單神經(jīng)元PID控制的核心特點(diǎn)是通過(guò)一定的學(xué)習(xí)規(guī)則對(duì)系數(shù)進(jìn)行調(diào)整,從而實(shí)現(xiàn)自適應(yīng)功能[7]。常用的學(xué)習(xí)規(guī)則有3種包括無(wú)監(jiān)督Hebb學(xué)習(xí)、有監(jiān)督的Delta學(xué)習(xí)和有監(jiān)督的Hebb學(xué)習(xí)。文獻(xiàn)[7]推導(dǎo)出單神經(jīng)元自適應(yīng)PID控制算法如下:
(4)
(5)
(6)
(7)
(8)
式中,R(t)為t時(shí)刻給定的輸入,即給定的俯仰角的角度值;e(t)為t時(shí)刻輸出和給定的偏差;xi(t)表示t時(shí)刻單神經(jīng)元的狀態(tài)輸入信號(hào),即t時(shí)刻四旋翼與給定信號(hào)的偏差;ωi(t)為t時(shí)刻xi(t)的權(quán)值系數(shù);u(t)表示t時(shí)刻單神經(jīng)元狀態(tài)輸出值;K為神經(jīng)元的比例系數(shù),K值的大小決定系統(tǒng)調(diào)節(jié)的速度,適當(dāng)?shù)脑龃驥值可以提高系統(tǒng)的響應(yīng)時(shí)間,但過(guò)大會(huì)使系統(tǒng)出現(xiàn)過(guò)大超調(diào)甚至系統(tǒng)發(fā)散,過(guò)小會(huì)使系統(tǒng)的響應(yīng)時(shí)間變長(zhǎng),系統(tǒng)的隨動(dòng)性能變差;ηp、ηi、ηd分別為PID中比例、積分、微分的學(xué)習(xí)速率;h(t)為性能指標(biāo)或神經(jīng)元的遞推信號(hào),h(t)=e(t)。
從式(6)~(8)可以看出,其控制規(guī)律的形式與增量式PID具有一致形式。
采用Hebb學(xué)習(xí)規(guī)則,通過(guò)調(diào)節(jié)權(quán)系數(shù),可以對(duì)被控對(duì)象進(jìn)行自動(dòng)的調(diào)節(jié)各個(gè)系數(shù)的權(quán)重,以適應(yīng)被控對(duì)象在不同環(huán)境下的狀態(tài)變化。單神經(jīng)元自適應(yīng)PID控制規(guī)律,相當(dāng)于可變系數(shù)的PID控制器,可以實(shí)現(xiàn)高性能、強(qiáng)魯棒性的要求[7]。
1.2標(biāo)準(zhǔn)二次型性能指標(biāo)學(xué)習(xí)算法的PID
在單神經(jīng)元自適應(yīng)過(guò)程中,為了能夠得到參數(shù)的最優(yōu),從而使四旋翼更快的達(dá)到穩(wěn)定狀態(tài),在連續(xù)權(quán)值的調(diào)整中加入二次性能指標(biāo),使系統(tǒng)的輸出偏差和控制規(guī)律的增量加權(quán)平方和為最小,間接實(shí)現(xiàn)對(duì)偏差和控制律增量的約束控制,根據(jù)文獻(xiàn)[8]可得到標(biāo)準(zhǔn)二次型性能指標(biāo)學(xué)習(xí)算法的PID控制公式:
(11)
(12)
(13)
式中的符號(hào)參考1.1節(jié)。
1.3改進(jìn)的標(biāo)準(zhǔn)二次型單神經(jīng)元的PID算法
由于單神經(jīng)元PID控制算法的穩(wěn)定性,完全取決于K值的大小,因此K值的變化會(huì)影響到整個(gè)系統(tǒng)的穩(wěn)定性[9],而在標(biāo)準(zhǔn)二次型單神經(jīng)元PID算法中,K值恒定不變的,而四旋翼對(duì)于系統(tǒng)的實(shí)時(shí)性要求較高,從而易導(dǎo)致當(dāng)誤差比較大時(shí),Kp、Ki、Kd的學(xué)習(xí)速度較慢,導(dǎo)致整個(gè)系統(tǒng)的調(diào)節(jié)速度較慢,而當(dāng)四旋翼從一個(gè)穩(wěn)定狀態(tài)改變到另一個(gè)穩(wěn)定狀態(tài)時(shí),如果在中間過(guò)程維持過(guò)多時(shí)間,可能導(dǎo)致整個(gè)四旋翼偏離或者墜機(jī),因此需要根據(jù)誤差實(shí)時(shí)的在線調(diào)整K值。根據(jù)文獻(xiàn)[10-11],提出一種可以實(shí)時(shí)調(diào)整的K值方法:
(14)
式中,α為標(biāo)準(zhǔn)二次型神經(jīng)元的K基準(zhǔn),在實(shí)際調(diào)整系數(shù)時(shí),可以先根據(jù)標(biāo)準(zhǔn)二次型的K值調(diào)節(jié)至最好的狀態(tài)作為α的值,這樣不僅可以保證K值為正,而且可以減少調(diào)節(jié)參數(shù)。β可以根據(jù)實(shí)際的系統(tǒng)進(jìn)行分段處理,當(dāng)誤差較大時(shí),可以適當(dāng)增加β值,相當(dāng)于間接的增加K值從而增加系統(tǒng)的響應(yīng)速度;當(dāng)誤差較小時(shí)可以將β值變?yōu)?,當(dāng)誤差為負(fù)數(shù)時(shí),可以將β值也變?yōu)樨?fù)數(shù),這樣可以增加系統(tǒng)的學(xué)習(xí)速度。
在實(shí)際的四旋翼控制過(guò)程中,由于對(duì)于平衡的要求較高,不僅需要較短的響應(yīng)時(shí)間,而且不需要較大的超調(diào),從而能夠保證平衡狀態(tài),因此提出一種超調(diào)懲罰措施,即當(dāng)有超調(diào)時(shí),將該處誤差放大:
(15)
式中,k0為放大倍數(shù),可以進(jìn)行分段調(diào)整,k0≥0,當(dāng)誤差較小并且是允許的范圍之內(nèi),可以將k0置為0,停止調(diào)節(jié)。
上述為改進(jìn)的單神經(jīng)元PID控制算法,其算法流程如下:
Step1:根據(jù)經(jīng)驗(yàn),先調(diào)試一組比較好增量式PID參數(shù);
Step2:初始化各個(gè)參數(shù),將Kp、Ki、Kd的初值賦值為上述初始值,對(duì)Kp、Ki、Kd的學(xué)習(xí)速率進(jìn)行初始化,初始化P、Q值;
Step3:根據(jù)公式(1)~(3)計(jì)算系統(tǒng)偏差;
Step4:根據(jù)公式(11)~(13)更新網(wǎng)絡(luò)的權(quán)值系數(shù);
Step5:根據(jù)公式(14)更新K值,公式(15)更新誤差公式;
Step6:如果達(dá)到控制要求,則算法結(jié)束,否則返回Step3。
2.1四旋翼飛行器高度的PID控制
對(duì)于單神經(jīng)元PID控制算法,不需要建立受控對(duì)象的精確模型,可由系統(tǒng)偏差來(lái)調(diào)整控制量,從而使系統(tǒng)達(dá)到期望輸出,因此可以選取四旋翼的俯仰通道角度與輸出的傳遞函數(shù)[12]做為參考,其他幾個(gè)通道也可以進(jìn)行相關(guān)分析,其傳遞函數(shù)如下:
由于姿態(tài)解算的更新時(shí)間為4 ms,因此每一次姿態(tài)的都進(jìn)行控制一次,因此將采樣時(shí)間定為4 ms,經(jīng)過(guò)抽樣以及z反變換,這樣被控對(duì)象在時(shí)域的輸入輸出關(guān)系如(16)所示:
y(t)=2.645 6*y(t-1)-2.302 8*y(t-2)+
0.657*y(t-3)+0.000 4*u(t-1)+
(16)
其中:y(t)表示系統(tǒng)輸出量,u(t)表示系統(tǒng)的輸入量。
分別使用增量型PID算法,標(biāo)準(zhǔn)二次型單神經(jīng)元PID算法,以及改進(jìn)二次型單神經(jīng)元PID算法,對(duì)系統(tǒng)進(jìn)行階躍響應(yīng)及抗干擾性進(jìn)行仿真。
對(duì)于標(biāo)準(zhǔn)增量式的PID,分別選取Kp=10,Ki=0.1,Kd=190;標(biāo)準(zhǔn)二次型單神經(jīng)元PID算法選取K=3.075,P=0.1,Q=0.1;改進(jìn)二次型PID選取K=3.075-0.16e(t),當(dāng)e(t)>0.1時(shí),e(t)=2e(t)時(shí),其階躍響應(yīng)如圖2所示。
圖2 不同算法下的階躍響應(yīng)
為了可以更好地觀察其超調(diào),局部放大圖如圖3所示。
圖3 階躍響應(yīng)局部放大圖
其中橫軸代表時(shí)間,縱軸代表輸入為階躍響應(yīng)時(shí)的輸出響應(yīng)。由圖2和3可以看出,增量式PID和標(biāo)準(zhǔn)二次型單神經(jīng)元PID的調(diào)節(jié)時(shí)間基本一致,都在0.25 s左右,但是改進(jìn)的二次型單神經(jīng)元的調(diào)節(jié)時(shí)間為0.03 s左右,遠(yuǎn)遠(yuǎn)小于其他兩種算法。其中對(duì)于超調(diào),標(biāo)準(zhǔn)二次型單神經(jīng)元的超調(diào)最大,其次是增量式PID,而改進(jìn)的二次型單神經(jīng)元PID控制算法的超調(diào)最小。
由于四旋翼在實(shí)際環(huán)境中會(huì)遇到各種各樣的干擾信號(hào),對(duì)于算法的魯棒性要求高,因此需要進(jìn)行抗干擾測(cè)試。分別在第200步時(shí)對(duì)系統(tǒng)添加10%的干擾信號(hào),通過(guò)Matlab對(duì)其輸出響應(yīng)仿真,結(jié)果如圖4所示。
圖4 干擾信號(hào)下的各個(gè)算法的仿真曲線
其坐標(biāo)與圖3的坐標(biāo)的意思一致。由圖4可知,改進(jìn)的二次型單神經(jīng)元PID算法,具有比其他兩種更好的魯棒性能,可以在最短的時(shí)間內(nèi)恢復(fù)到期望輸出。
Kp、Ki、Kd三個(gè)參數(shù)在有干擾信號(hào)下的學(xué)習(xí)過(guò)程如圖5所示。
圖5 干擾信號(hào)下Kp、Ki和Kd三個(gè)參數(shù)的學(xué)習(xí)過(guò)程
其中橫軸表示時(shí)間,縱軸表示Kp、Ki、Kd的隨著時(shí)間的變化而變化的值。由仿真結(jié)果可知:Kp,Ki和Kd具有很快的學(xué)習(xí)速率,且在干擾信號(hào)下能夠?qū)崟r(shí)的調(diào)整自身的值。
改進(jìn)的二次型單神經(jīng)元PID控制器具有較強(qiáng)的收斂速度、控制輸出平穩(wěn)、自適應(yīng)強(qiáng)和強(qiáng)魯棒性等優(yōu)點(diǎn),解決了四旋翼隨著環(huán)境變化而不能調(diào)整控制參數(shù)的問(wèn)題。根據(jù)實(shí)驗(yàn)結(jié)果仿真與實(shí)驗(yàn),所提算法不僅具有調(diào)節(jié)時(shí)間短,且魯棒性強(qiáng),可有效應(yīng)用于四旋翼飛行器中。
[1] 張鐳,李浩. 四旋翼飛行器模糊 PID 姿態(tài)控制[J]. 計(jì)算機(jī)仿真,2014,31(8): 73-77.
[2] Gautam D,Ha C. Control of a quadrotor using a smart self-tuning fuzzy PID controller[J]. International Journal of Advanced Robotic Systems,2013,10.
[3] 牛志玲,潘曉萌. 基于雙種群遺傳算法的四旋翼飛行器 PID 參數(shù)整定方法[J]. 計(jì)算機(jī)測(cè)量與控制,2014,22(4): 1230-1232.
[4] Mohammed M J,Rashid M T,Ali A A. Design optimal PID controller for quad rotor system[J]. International Journal of Computer Applications,2014,106(3).
[5] 趙幫俊. 基于 PID 神經(jīng)網(wǎng)絡(luò)的四旋翼飛行器控制系統(tǒng)研究[J]. 科學(xué)與財(cái)富,2014 (12): 189-190.
[6] Fang H,Yu X. Design and simulation of neuron PID Controller[A]. 2011 International Conference on Information Technology,Computer Engineering and Management Sciences (ICM)[C]. IEEE,2011,1: 80-82.
[7] 馬菲,馬清華,楊凱,等. 毫米波導(dǎo)引頭預(yù)定回路改進(jìn)單神經(jīng)元控制[J]. 彈箭與制導(dǎo)學(xué)報(bào),2015(1):41-44.
[8] 劉金琨. 先進(jìn) PID 控制 MATLAB 仿真[M]. 北京:電子工業(yè)出版社,2004.
[9] 侯一民,朱志超. 單神經(jīng)元 PID 控制算法在智能車控制系統(tǒng)的應(yīng)用[J]. 化工自動(dòng)化及儀表,2015(2): 003.
[10] Wang B,Sun Y,Cao J,et al. Control and simulation of an underwater robot using single neuron PID control based on immune feedback mechanism[A]. 2010 8th World Congress on Intelligent Control and Automation (WCICA)[C]. IEEE,2010: 2507-2511.
[11] Wang W,Gao X Z. A single neuron PID controller based on immune tuning and its application[A].2010 Sixth International Conference on Natural Computation (ICNC)[C]. IEEE,2010,6: 2831-2836.
[12] 李俊,李運(yùn)堂. 四旋翼飛行器的動(dòng)力學(xué)建模及PID控制[J]. 遼寧工程技術(shù)大學(xué)學(xué)報(bào)(自然科學(xué)版),2012(1):114-117.
Design of Quadrotor PID Controller Based on Improved Single Neuron
Yao Le1,2,3,Guan Yepeng1,Jin Xing2,3
(1.School of Communication and Information Engineering,Shanghai University,Shanghai200444,China; 2.Shanghai Institute of Microsystem and Information Technology,Shanghai200050,China; 3.Zhejiang Autorock Electronics Co.,Ltd,Hangzhou311228,China)
When PID controller is adopted to control quadrotor attitude angle,one of difficult problems is how to self-tune parameters of controller with the variance of circumstance,which affects the stability of quadrotor. An improved single neuron PID controller is proposed. The algorithm improved K value formula of single neuron PID control to improve the Kp,Ki,Kd learning rate,which increase the response speed of the system; by increasing the overshoot punitive measures,through appropriate zoom in or out overshoot,overshoot can be minimized. By comparing with standard PID controller and standard quadratic single neuron PID algorithm and simulating,the result shows that the algorithm has a strong self-tuning,quick response,strong robustness and a good stability.
quadrotor; single neuron PID control
1671-4598(2016)04-0068-03DOI:10.16526/j.cnki.11-4762/tp.2016.04.021
TP15
A
2015-09-11;
2015-11-02。
姚樂(lè)(1991-),男,山西運(yùn)城人,碩士研究生,主要從事嵌入式軟件方向的研究。