這里主要講解的PID算法屬于一種線性控制器,這種控制器被廣泛應(yīng)用于四軸上。要控制四軸,顯而易見的是控制它的角度,那么最簡單,同時(shí)也是最容易想到的一種控制策略就是角度單環(huán)PID控制器,系統(tǒng)框圖如圖所示:
或許有些朋友看得懂框圖,但是編程實(shí)現(xiàn)有一定困難,在這里筆者給出了偽代碼:
上述角度單環(huán)PID控制算法僅僅考慮了飛行器的角度信息,如果想增加飛行器的穩(wěn)定性(增加阻尼)并提高它的控制品質(zhì),我們可以進(jìn)一步的控制它的角速度,于是角度/角速度-串級(jí)PID控制算法應(yīng)運(yùn)而生。在這里,相信大多數(shù)朋友已經(jīng)初步了解了角度單環(huán)PID的原理,但是依舊無法理解串級(jí)PID究竟有什么不同。其實(shí)很簡單:它就是兩個(gè)PID控制算法,只不過把他們串起來了(更精確的說是套起來)。那這么做有什么用?答案是,它增強(qiáng)了系統(tǒng)的抗干擾性(也就是增強(qiáng)穩(wěn)定性),因?yàn)橛袃蓚€(gè)控制器控制飛行器,它會(huì)比單個(gè)控制器控制更多的變量,使得飛行器的適應(yīng)能力更強(qiáng)。為了更為清晰的講解串級(jí)PID,這里筆者依舊畫出串級(jí)PID的原理框圖,如圖所示:
同樣,為了幫助一些朋友編程實(shí)現(xiàn),給出串級(jí)PID偽代碼:
而筆者在整定串級(jí)PID時(shí)的經(jīng)驗(yàn)則是:先整定內(nèi)環(huán)PID,再整定外環(huán)P。
內(nèi)環(huán)P:從小到大,拉動(dòng)四軸越來越困難,越來越感覺到四軸在抵抗你的拉動(dòng);到比較大的數(shù)值時(shí),四軸自己會(huì)高頻震動(dòng),肉眼可見,此時(shí)拉扯它,它會(huì)快速的振蕩幾下,過幾秒鐘后穩(wěn)定;繼續(xù)增大,不用加人為干擾,自己發(fā)散翻機(jī)。
特別注意:只有內(nèi)環(huán)P的時(shí)候,四軸會(huì)緩慢的往一個(gè)方向下掉,這屬于正常現(xiàn)象。這就是系統(tǒng)角速度靜差。
內(nèi)環(huán)I:前述PID原理可以看出,積分只是用來消除靜差,因此積分項(xiàng)系數(shù)個(gè)人覺得沒必要弄的很大,因?yàn)檫@樣做會(huì)降低系統(tǒng)穩(wěn)定性。從小到大,四軸會(huì)定在一個(gè)位置不動(dòng),不再往下掉;繼續(xù)增加I的值,四軸會(huì)不穩(wěn)定,拉扯一下會(huì)自己發(fā)散。
特別注意:增加I的值,四軸的定角度能力很強(qiáng),拉動(dòng)他比較困難,似乎像是在釘釘子一樣,但是一旦有強(qiáng)干擾,它就會(huì)發(fā)散。這是由于積分項(xiàng)太大,拉動(dòng)一下積分速度快,給 的補(bǔ)償非常大,因此很難拉動(dòng),給人一種很穩(wěn)定的錯(cuò)覺。
內(nèi)環(huán)D:這里的微分項(xiàng)D為標(biāo)準(zhǔn)的PID原理下的微分項(xiàng),即本次誤差-上次誤差。在角速度環(huán)中的微分就是角加速度,原本四軸的震動(dòng)就比較強(qiáng)烈,引起陀螺的值變化較大,此時(shí)做微分就更容易引入噪聲。因此一般在這里可以適當(dāng)做一些滑動(dòng)濾波或者IIR濾波。從小到大,飛機(jī)的性能沒有多大改變,只是回中的時(shí)候更加平穩(wěn);繼續(xù)增加D的值,可以肉眼看到四軸在平衡位置高頻震動(dòng)(或者聽到電機(jī)發(fā)出滋滋的聲音)。前述已經(jīng)說明D項(xiàng)屬于輔助性項(xiàng),因此如果機(jī)架的震動(dòng)較大,D項(xiàng)可以忽略不加。
外環(huán)P:當(dāng)內(nèi)環(huán)PID全部整定完成后,飛機(jī)已經(jīng)可以穩(wěn)定在某一位置而不動(dòng)了。此時(shí)內(nèi)環(huán)P,從小到大,可以明顯看到飛機(jī)從傾斜位置慢慢回中,用手拉扯它然后放手,它會(huì)慢速回中,達(dá)到平衡位置;繼續(xù)增大P的值,用遙控器給不同的角度給定,可以看到飛機(jī)跟蹤的速度和響應(yīng)越來越快;繼續(xù)增加P的值,飛機(jī)變得十分敏感,機(jī)動(dòng)性能越來越強(qiáng),有發(fā)散的趨勢。
如何做到垂直起飛、四軸飛行時(shí)為何會(huì)飄、如何做到脫控?
眼看這三個(gè)問題是三個(gè)不同的問題,其實(shí)就原理上講,他們的原因在絕大多數(shù)情況下都是由于加速度計(jì)引起的。如果飛機(jī)可以垂直起飛,說明你的加速度計(jì)放置地很水平,同時(shí)也說明你的PID控制算法參數(shù)找的不錯(cuò),既然可以垂直起飛,那么飛行過程中,只要無風(fēng),四軸幾乎就不會(huì)飄,自然而然就可以脫控飛行。由此可見,加速度計(jì)是個(gè)十分重要的器件。
在姿態(tài)解算中,或者說在慣性導(dǎo)航中,依靠的一個(gè)重要器件就是慣性器件,包括了加速度計(jì)和陀螺儀。陀螺儀的特性就是高頻特性好,可以測量高速的旋轉(zhuǎn)運(yùn)動(dòng);而加速度計(jì)的低頻特性好,可以測量低速的靜態(tài)加速度。無論是何種算法(互補(bǔ)濾波、梯度下降、甚至是Kalman濾波器),都離不開對當(dāng)?shù)刂亓铀俣萭的測量和分析。慣性導(dǎo)航利用的就是靜態(tài)性能好的加速度計(jì)去補(bǔ)償動(dòng)態(tài)性能好的陀螺儀漂移特性,得到不飄并且高速的姿態(tài)跟蹤算法,因此基于慣性器件的姿態(tài)解算,加速度計(jì)是老大,它說了算。
下面,我給大伙推理一下四軸如何平穩(wěn)飛信的思路,歡迎各位批評(píng)指出::-)
首先,為了讓四軸平穩(wěn)的懸?;蝻w行在半空中,四個(gè)電機(jī)必須提供準(zhǔn)確的力矩->假設(shè)力矩與電機(jī)PWM輸出呈線性關(guān)系,也就是必須提供準(zhǔn)確的4路PWM->4路PWM由遙控器輸入(期望角度)、PID算法及其參數(shù)和姿態(tài)解算輸出(當(dāng)前角度)組成,假設(shè)遙控器輸入不變(類似脫控)、PID算法及其參數(shù)也較為準(zhǔn)確(PID參數(shù)無需十分精確,但只要在某個(gè)合理的范圍內(nèi),控制品質(zhì)差不了多少),也就是姿態(tài)解算的輸出必須是十分準(zhǔn)確的,可以真實(shí)反應(yīng)飛行器的實(shí)際角度->姿態(tài)解算的結(jié)果由加速度計(jì)和陀螺儀給出,根據(jù)前述慣性導(dǎo)航的描述,加速度計(jì)補(bǔ)償陀螺儀,因此要得到精確的姿態(tài)解算結(jié)果,務(wù)必要求加速度輸出精確的重力加速度g->這里僅討論懸停飛行,因此忽略掉額外的線性加速度(事實(shí)證明,在四軸強(qiáng)機(jī)動(dòng)飛行過程中,線性加速度必須要考慮并消除),假設(shè)加速度計(jì)輸出重力加速度g,這個(gè)重力加速度g必須十分“精確”。
總結(jié)一下:精準(zhǔn)力矩->精準(zhǔn)PWM->精準(zhǔn)姿態(tài)->加速度計(jì)輸出“精確”重力加速度g。這里的“精確”打了引號(hào),意思不是說加速度的性能十分好,要輸出精確的當(dāng)?shù)丶铀俣萭,而是說它能夠準(zhǔn)確反應(yīng)機(jī)架的角度。為了達(dá)到懸停、平穩(wěn)的飛行效果,控制算法輸出的PWM會(huì)讓加速度計(jì)輸出的重力加速度g在XOY平面內(nèi)的分量就可能少,也就是說:PID控制算法控制的不是機(jī)架水平,而是加速度計(jì)水平,PID不知道機(jī)架是什么東西,它只認(rèn)加速度計(jì)。
上圖中,加速度計(jì)(紅線)與四軸機(jī)架的水平面(虛線)呈30°。起飛后,PID控制算法會(huì)嘗試將加速度計(jì)調(diào)整至水平位置,因此四軸就會(huì)往圖中左邊飄,傾斜角度也為30°。這就是為什么飛機(jī)無法垂直起飛,或者飛行過程中往一個(gè)方向飄的原因:加速度計(jì)和機(jī)架沒有水平。因此在加速度計(jì)的機(jī)械安裝時(shí),盡量保證加速度計(jì)與機(jī)架水平。如果有些朋友已經(jīng)將加速度計(jì)固定在飛控板上,可以通過遙控器的通道微調(diào)功能設(shè)置懸停時(shí)的期望角度,軟件上校正這種機(jī)械不水平。
除了上述討論的加速度計(jì)安裝水平問題,也需要對加速度計(jì)進(jìn)行零偏置校正,具體的方法叫做6位置標(biāo)定法:即將加速度計(jì)沿著6個(gè)方向放置,分別記錄重力加速度計(jì)g在6個(gè)方向上的最大輸出值,然后取平均,得到圓球的中心點(diǎn)(這里假設(shè)g投影為球,實(shí)際上為橢球,需要進(jìn)行最小二乘法擬合求三軸標(biāo)定系數(shù))。
最后提一點(diǎn),如果加速度計(jì)和遙控器均做了調(diào)整,飛機(jī)可以做到垂直起飛,并且飛行效果還行,但是飛機(jī)的回中速度較慢,感覺就像是在抬轎子一樣。具體描述:懸停時(shí),猛往一個(gè)方向打搖桿后立即放手,飛機(jī)會(huì)往搖桿方向走很遠(yuǎn)才停下。這是因?yàn)轱w機(jī)過于穩(wěn)定,也就是內(nèi)環(huán)的作用過強(qiáng)或者外環(huán)作用過弱導(dǎo)致,解決方法是降低內(nèi)環(huán)P或者加大外環(huán)P。
聯(lián)系客服