程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 雜談PID控制算法——第二篇:調·三個量

雜談PID控制算法——第二篇:調·三個量

編輯:關於C語言

上面一篇文章講了一下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] 控制類型 K_p K_i K_d 比例 K_u/2 - - 比例-積分 K_u/2.2 1.2K_p/T_u - 經典比例-積分-微分(PID)[3] 0.60 K_u 2K_p/T_u K_pT_u/8 Pessen Integral Rule[3] 0.7 K_u 2.5K_p/T_u 0.15K_p T_u some overshoot[3] 0.33 K_u 2K_p/T_u K_pT_u/3K_pT_u/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控制算法的代碼放上來給大伙瞅瞅吧。。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved