上面一篇文章講了一下PID算法中的三個常量大致的在PID算法中起的一個作用,但在實際的使用中,究竟應該如何調節(或者用更加專業的話說是整定)PID控制算法的三個。首先可以將KP,KI,KD三個常量全部設為一,觀察一下系統的調節情況是不是過快。大致確定輸出控制量的結果需要右移多少位來做最終的控制量。然後將KI,KD設為0,KP從0一直逐漸增加試探,直到被控制量有一定超調,且有一定的小震蕩。此時kp算調節到差不多了。我們可以繼續調節Ki,通過增大Ki使被控制量最終平穩下來的值盡可能是我們設定的值。積分量ki的調節與Kp的調節相似,從小到大調整。但要注意ki的增加會使得超調量變大,所以ki增大時kp應當相應減小一點。調節完KP與Ki之後的效果就是有一定超調,但最終還是能基本穩定在設定值,最後我們就開始調節Kd。依舊是從小到大調整,通過kd的調節能使超調盡量減小。
PID控制算法還有一種調節方式——齊格勒-尼科爾斯方法。
其調試方式為,首先將積分和微分增益設置為0,然後比例增益從零開始逐漸增加,直到到達極限增益KU,此時控制器輸出值以恆定值振蕩。KU和振蕩周期TU根據不同的類型,按下表中的方式來設置比例、積分和微分增益。
Ziegler–Nichols方法[2] 控制類型 比例 - - 比例-積分 - 經典比例-積分-微分(PID)[3] Pessen Integral Rule[3] some overshoot[3]
--維基百科 http://zh.wikipedia.org/wiki/Ziegler%E2%80%93Nichols%E6%96%B9%E6%B3%95
看上去 會比第一種會簡單的多。但現在有個問題就是Ku究竟是該調整到一個什麼樣的值。
自己不負責任的理解:Ku應該是設定ki與kd全為0時調整kp的值,使得被控制量出現等幅震蕩時此時的kp即ku。
wiki上還有提到其他兩種方法,沒怎麼仔細看,有時間再去研究研究。
本篇結束,剛剛開始學pid,表示文章中一定有不少錯漏之處。希望各位童鞋批評指正。
下篇(目測最後一篇)把自己寫的pid控制算法的代碼放上來給大伙瞅瞅吧。。