PID控制算法的c語言實現十一 模糊PID的參數整定

原文鏈接:http://www.ciast.net/post/20151223.html,感謝作者

這幾天一直在考慮如何能夠把這一節的內容說清楚,對於PID而言應用並沒有多大難度,按照基本的算法設計思路和成熟的參數整定方法,就算是沒有經過特殊訓練和培訓的人,也能夠在較短的時間內容學會使用PID算法。可問題是,如何能夠透徹的理解PID算法,從而能夠根據實際的情況設計出優秀的算法呢。

通過講述公式和基本原理肯定是最能說明問題的,可是這樣的話怕是犯了“專家”的錯誤了。對於門檻比較低的技術人員來講,依然不能透徹理解。可是說的入耳了,能不能透徹說明也是一個問題,所以斟酌了幾天,整理了一下思路纔開始完成PID系列文章的最後一篇。

我所說的最後一篇不代表PID的功能和發展就止步與此,僅僅是說明,透過這一些列的文章,基本上已經可以涵蓋PID設計的要點,至於更深入的研究,就交給有需要的讀者去做。

上一節中大致講述了一下模糊算法。實際上模糊算法的很多概念在上一節中並沒有深入的解釋。舉的例子也只是爲了說明模糊算法的基本含義,真正的模糊算法是不能這麼設計的,當然也不會這麼簡單。模糊算法的核心是模糊規則,如果模糊規則制定的出色,那麼模糊算法的控制效率就高。其實這是智能算法的一般特性,規則是系統判斷和處理的前提。那麼就說說PID的規則該怎麼制定。

我們知道,模糊算法的本質是對PID的三個參數進行智能調節。那麼首先要提出的問題是如何對PID的參數進行調節?這個問題其實是參數整定的問題,現實當中有很多整定方法。可是我們需要從根本上了解爲什麼這麼整定,才能知道該如何建立數學模型進行分析。那麼要回答如何整定參數的問題,就需要先明白PID參數的作用都是什麼?對系統有什麼影響?

我們從作用和副作用兩個方面說明參數對系統的影響。

1.比例環節Kp,作用是加快系統的響應速度,提高系統的調節精度,副作用是會導致超調;

2.積分環節Ki,作用是消除穩態誤差,副作用是導致積分飽和現象;

3.微分環節Kd,作用是改善系統的動態性能,副作用是延長系統的調節時間。

可以通過下面的GIF加深理解:

PID_Compensation_Animated.gif

Effects of varying PID parameters (Kp,Ki,Kd) on the step response of a system.

 

理解了上述問題,那麼就可以“辯證施治,對症下藥”了。比如說,如果系統響應速度慢,我們就加大Kp的取值,如果超調量過大我們就減小Kp的取值等等。可是問題這些語言的描述該如何用數學形式表達出來呢。我們所知道的,反饋系統的實質就是系統的輸出量作爲反饋量與系統的輸入量進行作差,從而得到系統的誤差e,那麼這個誤差e就能夠反應目前系統所處的狀態。誤差e可以表明目前系統的輸出狀態到底偏離要求多少。而誤差e的變化律ec,表示誤差變化的速度。這樣,我們可以根據這兩個量的狀態來分析三個參數此時應該如何取值,假如e爲負方向比較大,ec也爲負方向增大狀態,此時比例環節要大一些,從而加快調節速度,而積分環節要小一些,甚至不加積分環節,從而防止負方向上出現飽和積分的現象。微分環節可以稍加一些,在不影響調節時間的情況下,起到改善系統動態性能的作用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章