hjr 四旋翼飛行器串級PID飛控演算法

2021-07-10 18:04:44 字數 2414 閱讀 3527

先說下什麼是四旋翼飛行器

名稱:四旋翼飛行器

元件:乙個機架,乙個陀螺儀,四個無刷直流電機,乙個電池,一塊微控制器(能飛起來的最基本配置)

原理:利用四個電機旋轉產生的反作用力托起飛行器上公升,利用微控制器和飛行控制演算法控制電機使飛行器穩定

串級pid演算法

然互簡單介紹下串級pid演算法

名字:串級pid演算法

作用:採集飛行器姿態角,輸出調控量使飛行器穩定

姿態角先說一下姿態角,現在我們想象乙個平鋪在空間的乙個「十」字,這個字左右晃,上下晃,和繞著原點轉圈就叫做三個姿態角。前兩個叫俯仰,滾轉,繞原點轉圈的角叫偏航

(下文暫用x,y,z表示)對於僅僅保持穩定,只用x,y角就足夠了,那麼這三個角怎麼測量出來呢?

用陀螺儀,這裡我們說mpu6050,,陀螺儀就是乙個晶元,唯一的作用就是可以輸出三個長度為3的一維陣列x[3],y[3],z[3],x,y,z代表三個角,長度為3是因為分別為角度,角速度,角加速度,串級pid只用角度與角速度。

那麼具體怎麼利用這三個角度控制飛行器穩定呢?

先來個簡單的,比如平鋪在空間中的十字,我們通過陀螺儀檢測到左邊往下偏10度,那麼x=10,如果右邊往下偏10度,x=-10,上邊往下偏,y=10,下邊往下偏y=-10,注意左邊往下偏右邊就往上偏,右邊往下偏左邊就往上偏,這跟個槓桿似得就不用贅述了吧。這兩個變數的值會在微控制器中以全域性變數表示,我們可以直接使用。

如果我們檢測到x=10,那麼我們就需要加大左邊電機的速度,減小右邊電機的速度,最終使x,y維持在0,這樣飛行器就穩定了,其餘角度都同理。

這裡的x和y值即是誤差,通過誤差反過來調控輸入的系統叫做負反饋系統

而串級pid演算法研究的就是這個要減小和增加的電機轉速到底是多少。先介紹下電機轉速

首先,電機速度是由pwm波控制的,占空比越大,速度越大,把pwm波占空比的變化用乙個int變數speed值從0到1000的變化對映出來,這樣0就代表速度0,1000就代表速度最大值。(占空比就是乙個週期內高電平時間與週期的比值)

這樣構成飛控系統的輸入量,輸出量就都出來了,輸入量是陀螺儀採集的角度,輸出量是speed的值,四個電機對應四個speed,分別是speed1,speed2,speed3,speed4。

串級pid衍生於pid,pid就是比例、積分和微分

下面先介紹下pid

pid分兩種,增量式和位置式,增量式直接輸出調控量的增量,適合於自帶積分的步進電機,四旋翼使用位置式pid

p:的作用是按比例增大控制量,比如檢測到x=10,此時speed1應該增加10但是10太小,我們就可以把調節量放大,如果p是5那麼調節量就擴大為50了

可是只用比例會出現乙個問題,那就是比如我想要調節量為33,而p是5的話我們計算得出的調節量只能為5的整數倍,30或35,與33永遠有乙個誤差

如果體現在影象上就是曲線在平衡位置上上下下的折線移動

i:為了消除靜差我們必須引入積分量,積分的特點是,只要有一點誤差他就會發揮作用(因為是直接程式判斷x或y與0的大小關係控制積分器開啟的)

並且如果誤差不消除或者變號(變號就是正變負或負變正,比如由機翼向右偏變成向左偏),積分就會越來越大,對調節量的增福會越來越大(所以記得設定乙個上限)

當然你可能會疑惑積分累加出來的值怎麼消除,當機翼由左偏到被比例和積分調節的向右偏時,調節量變號了,你再累加不就相當於累減了嗎,就自然消除了

所以積分的調節量就在0左右波動,這樣曲線就會由在平衡點上下打折線變成小波浪了

d:至於微分值是是利用上一次的誤差值改變這一次的調節量,他的作用就是**,他的值最有意思的地方就是,和你的機翼所處的位置無關,也即是說即使你的機翼往左偏

微分值也有可能調控讓機翼更加往左偏,那既然這樣我們為什麼還要用微分值呢,其實微分值是檢測兩個不同的演算法週期(一會重點解釋這個)誤差變化量的大小

假設演算法週期是一秒

假設第一秒,飛機x=30,經過演算法調節第二秒x=25,第三秒x=10,那麼對於微分來說第一秒誤差變化量為5,第二秒誤差變化量為15

那麼他就會阻止x繼續變小,即使x變小是為了使飛機穩定,如果第一秒x=15,第2秒x=10那麼他就會幫助x變小

這就是微分作用的本質,不分敵我,一心阻止誤差變化的擴大,這個的作用其實就是**誤差變化,再由我們具體事件具體分析

怎麼利用它

其實了解比例積分微分的本質,具體怎麼利用就仁者見仁智者見智了

那麼什麼是串級pid呢,就是同時利用角度與角速度作為誤差輸入,兩個pid套在一起作為系統,電機速度調控作為輸出

外環角度誤差先經過乙個pid得出的調控量與內環角速度環的差值作為內環的輸入誤差,該誤差再經過乙個pid後得出實際電機速度調控量

具體**用pi**用pd**用pid可以根據自己實際情況自己調整,建議外環pi,內環pid。

下面說一下演算法週期

就是通過定時器控制,經過多久取一次陀螺儀資料,多久取一次內環計算資料,多久取一次外環計算資料,這個必須要嚴格控制好,具體值可以和pid值一樣自行除錯

一年前做過四軸,只憑回憶整理,如有疏漏,謝指正,望諒解。

四旋翼飛行器

近幾年來四旋翼飛行器受到了人們的熱捧,它是一種具有四個螺旋槳的飛行器並且四個螺旋槳呈十字形交叉結構,通過平衡四個旋翼產生的力來實現穩定盤旋和精確飛行,其具有欠驅動 多變數 強耦合 非線性等複雜特性。四旋翼無人飛行器研究內容涵蓋了製造技術 結構設計 材料工程 空氣動力學 自主飛行控制與導航 影象處理和...

Quadrotor四旋翼飛行器的飛

quadrotor四旋翼飛行器的飛行原理 一 hxl85 這是wiki上的介紹,有興趣可以讀一讀。簡 單的講,顧名思義,quadrotor就是一種四旋翼 four rotors 垂直起降 vtol,vertical taking off and landing 的直公升飛機。結構 quadrotor...

四旋翼飛行器17 APM飛控主要飛行模式

當你在遙控無人機時,你會發現就算你遙控技術再高超,也不可能達到完美,比如你想懸停在那裡 水平飛行 繞圈飛行等等,當然這些問題,可以借助感測器實現,比如氣壓計或者超聲波可以定高,光流感測器可以定點,gps可以導航,並編寫一定程式,實現相應的功能,下面就是apm飛控 結合相關硬體 具有的模式。穩定模式是...