為了更好的理解這個視頻和PID參數的作用,特意根據多軸飛行器的原理和PID理論,編寫了一個EXCEL圖表,直觀的來理解PID參數的作用。
在這個模型中:
1、假設輸出是力,作用在一個質塊上,使用加速度、速度、位移積分計算,評估輸出對測量值產生的影響,跟多軸飛行器的運動模式比較接近。
2、讓速度響應慢一個拍子,模擬電調和電機的響應滯后。
3、加入阻尼,模擬空氣的衰減作用
4、引入偏差,用于體現I的作用,從中間加入,代表一個系統誤差或外作用力
PID的作用概述:
1、P產生響應速度和力度,過小響應慢,過大會產生振蕩,是I和D的基礎。
2、I在有系統誤差和外力作用時消除偏差、提高精度,同時也會增加響應速度,產生過沖,過大會產生振蕩。
3、D抑制過沖和振蕩,過小系統會過沖,過大會減慢響應速度。D的另外一個作用是抵抗外界的突發干擾,阻止系統的突變。
通過這個模型和圖表,一步步演示PID參數的作用和調試方法:
1、逐步增大P,看P對響應速度和力度的影響,調到系統發生振蕩,再減少一點P
當P=0.1時,響應很慢,但不會振蕩
121558g2ti71xllbs5c2lx.jpg (44.94 KB, 下載次數: 147)
下載附件
2016-6-17 12:46 上傳
粗黑線是系統響應,洋紅線是目標值。
逐步增大P,P=1,有振蕩,但慢慢在衰減
121558l6qua6a60ya0uiuc.jpg (51.55 KB, 下載次數: 118)
下載附件
2016-6-17 12:46 上傳
繼續增大P,P=3,振蕩會逐步加大
121559mgujeed5k9eeegug.jpg (51.05 KB, 下載次數: 115)
下載附件
2016-6-17 12:46 上傳
取振蕩但會衰減的P=1繼續調整
在多軸調試時,當振蕩發生時,再稍微減小一點P。
2、加入D,看D對振蕩的控制能力,D過小會發生過沖,D過大會遲滯,以稍微有點過沖為最佳
D=0.5,有較大的過沖和少量振蕩,衰減很快
121559xfwiynaa0j399nwh.jpg (47.07 KB, 下載次數: 131)
下載附件
2016-6-17 12:46 上傳
D=1.3,基本沒過沖
121600k74sf457wbhfhg55.jpg (41.32 KB, 下載次數: 114)
下載附件
2016-6-17 12:46 上傳
D=2,響應遲滯,減慢了響應速度
122402s1jirfxj1rv5zmqp.jpg (41.58 KB, 下載次數: 128)
下載附件
2016-6-17 12:46 上傳
取以稍微有點過沖的D=1.3為最佳
在多軸調試時,用手拍一下機臂或傾斜啟動,機臂在復位時有少量過沖為宜。(不過我喜歡基本沒過沖時的參數,這樣在懸停時更穩)
3、可以繼續增大P和D,讓響應更快但過沖也不大。
P=2 D=1.8
121601vk9vwm9kmi2iiip2.jpg (42.95 KB, 下載次數: 114)
下載附件
2016-6-17 12:46 上傳
在理論上可以這樣演示,但在實際多軸的調試時,這一步一般不做,這是為了更安全和穩定。
4、加入0.2的偏差,看偏差對位移的影響
從中間加入,代表一個外作用力。
121603snj2zb1yphnz1c8m.jpg (47.79 KB, 下載次數: 109)
下載附件
2016-6-17 12:46 上傳
可以看到,如果沒有I的作用,偏差將一直存在,盡管P產生了一個抵抗力,但只是阻止了系統繼續運動,但偏差一直在。
在多軸調試時,如果持續的抬起一個機臂,機臂會持續的轉動,抵抗力很小,放手后也不會回復。
5、加I,看I對偏差的修正能力,I加快了響應速度,但也會導致過沖或振蕩
I=0.3 基本可以消除偏差產生的影響,產生了少量過沖,但提高了在有偏差時系統的精度
121556yjhe68mhuwu68jwd.jpg (50.48 KB, 下載次數: 132)
下載附件
2016-6-17 12:46 上傳
I=3 進一步加快響應速度,但產生了振蕩
121556mm1ps1rzriprra55.jpg (61.45 KB, 下載次數: 125)
下載附件
2016-6-17 12:46 上傳
取基本能糾正偏差的I=0.3
在多軸調試時,油門開至懸停油門,用手持續的抬起一個機臂,可以感到隨著I的增加,抵抗力會逐步增大,持續時間加長。
因為多軸的長期穩定由姿態模式的LEVEL參數來解決,所以I不用太大,取缺省參數就可以了,大概可以抵抗1-2秒左右。
6、增大一點D,減小一點I產生的過沖
取消偏差,因為I的加入,有一點過沖
121557oyms1mcnceecslyn.jpg (47.84 KB, 下載次數: 133)
下載附件
2016-6-17 12:46 上傳
增大D,D=2.2,減小過沖
121557tmejd7gezmpmm7tr.jpg (48.56 KB, 下載次數: 120)
下載附件
2016-6-17 12:46 上傳
在實際多軸調試時,這一步一般不用,但是如果有必要,可以試一下。
好了,曲線演示完了,這同時也是多軸PID參數的調試過程,結合視頻一起看,能更好的理解這一過程,希望對大家理解PID有所幫助。
附:多軸飛行器PID調試演示器.xls
另外,試了一下,下載的文件名可能有問題,自己把文件名改為"多軸飛行器PID調試演示器.xls"就可以用了
PID的代碼其實也很簡單,主要是要了解其中的原理,才能更好地調整參數。為了方便新手們理解,樓主建立了一個數學模型來讓大家了解。(只針對新手,老手就算了)
========圓點博士小四軸之PID控制模式分析=======
PID控制的P是Proportional的縮寫, 是比例的意思,I是Integral的縮寫,是積分的意思,D是Derivative的縮寫,是微分的意思。所以,PID就是我們常說的比例,積分,微分控制。
我們首先來看一個PID控制模型曲線圖:
該圖包含了比例控制,比例+積分控制,比較+積分+微分控制的電機響應圖的對比。
1322387x9aglc8cj9kxqgx.jpg (37.76 KB, 下載次數: 119)
下載附件
2016-6-17 12:46 上傳
PID模型
下面我們對曲線進行具體分析:
PID中的比例控制是最容易理解的,比例控制就是把角度的誤差乘以一個常數作為輸出驅動。假定我們有一個理想模型的電機,1V電壓的變化會帶來小四軸1度的角度改變。假定現在電機控制電壓是5V,小四軸在某一軸上的偏角是5度,目標角度是100度。我們把當前的電壓量定義為Vin,把輸出控制量定義為Vout。假定P等于0.2,那么比例控制的結果就是:
第一次:Vout=Vin+(100-5)*P=5V+19V=24V,得到電機電壓是24V,對應的小四軸角度是24度,距離目標角度的誤差是100-24=76度。
第二次:Vout=Vin+(100-24)*P=24V+15V=39V, 從而引起的角度是39度。
我們看到,在這么的一個比例控制系統下,小四軸角度在慢慢地向目標角度靠近。
PID中的積分控制就是把把所有角度誤差相加起來,然后乘上一個常數作為輸出驅動。在上述例子中,假定I=0.2, 我們來看看比例和積分控制同時起作用下的系統反應。
第一次:Vout=Vin+(100-5)*P+(100-5)*I=5V+19V+19V=43V,這時候小四軸角度為43度。
由于第一次控制前的誤差是100-5=95,第二次控制前的誤差是100-43=57,所以積分結果是152。
第二次:Vout=Vin+(100-43)*P+((100-5)+(100-43))*I=43V+11V+30V=84V, 這時候小四軸角度變為84度。
第三次:Vout=Vin+(100-84)*P+((100-5)+(100-43)+(100-84))*I=84+3V+33V=120V。這時小四軸角度變為120度。
我們看到,在增加了積分控制后,小四軸角度在快速向目標角度靠近。
PID中的微分控制就是把角度的變化乘上一個常數來作為電機驅動輸出。在上述例子中,假定D=0.2, 我們來看看比例,積分和微分共同控制下的系統反應。假定第一次前,電機轉速保持5轉,那么第一次前的角度變化為0。
第一次:Vout=Vin+(100-5)*P+(100-5)*I-(5-5)*D=5V+19V+19V-0V=43V,這時候小四軸角度為43度。
和上一次相比,角度從5度變化到了43度,所以小四周角度變化是43-5=38度。
第二次:Vout=Vin+(100-43)*P+((100-5)+(100-43))*I-(43-5)*D=43V+11V+30V-7V=77V, 這時候小四周角度77度。
把上述的計算結果列出來,我們看到:
1323366577pxhymaza4a04.jpg (39.13 KB, 下載次數: 143)
下載附件
2016-6-17 12:46 上傳
PID計算
從上面的數據,我們可以看到:
1,單獨比例控制的時候,數據慢慢接近目標 (圖表中的紅色線)
2,加入積分控制之后,數據快速接近目標 (圖表中的藍色線)
3,微分控制起到抑制變化的作用。(圖表中的綠色線)
有了這些理論基礎,就可以寫PID控制代碼拉。
PID模型說明:
1、假設輸出是力,作用在一個質塊上,使用加速度、速度、位移積分計算,評估輸出對測量值產生的影響,跟多軸飛行器的作用模式比較接近。
2、讓速度響應慢一個拍子,模擬電調和電機的響應滯后。
3、加入阻尼,模擬空氣的衰減作用
4、偏差用于體現I的作用,從中間加入,代表一個系統誤差或外作用力
調試演示步驟:
1、把PID都歸零,偏差歸零
2、逐步增大P,到位移發生振蕩,再減少一點P
3、加入D,D過小位移會發生過沖,D過大位移會遲滯,以稍微有點過沖為最佳
4、同步增大P、D,提高響應速度,但又不會過沖太多
4、加入I看看影響,可以看到,在沒有偏差時,I的加入沒有帶來明顯好處,雖然加快了響應速度,但也導致過沖或振蕩
5、I=0,加入0.2的偏差,看偏差對位移的影響
6、加I,看I對偏差的修正能力,再調整D,抑制過沖反應
7、把偏差歸零,看看這組參數在無偏差時的響應。
總結:
1、P產生響應速度,過小響應慢,過大會產生振蕩,是I和D的基礎
2、I消除偏差、提高精度(在有系統誤差和外力作用時),同時增加了響應速度
3、D抑制過沖和振蕩,抵抗外界的干擾,同時減慢了響應速度
作者:SZHCS
PID.zip
(23.06 KB, 下載次數: 208)
2016-6-17 12:46 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|