在pid控制演算法的c++語言實現中,文章已經對模糊pid的實質做了乙個簡要說明。基本概念和思路進行一下說明,相信有c++語言基礎的朋友可以通過這些介紹性的文字自行實現。這篇文章主要說明一下模糊演算法的含義和原理。
實際上模糊演算法屬於智慧型演算法,智慧型演算法也可以叫非模型演算法,也就是說,當我們對於系統的模型認識不是很深刻,或者說客觀的原因導致我們無法對系統的控制模型進行深入研究的時候,智慧型演算法常常能夠起到不小的作用。這點是方便理解的,如果乙個系統的模型可以輕易的獲得,那麼就可以根據系統的模型進行模型分析,設計出適合系統模型的控制器。但是現實世界中,可以說所有的系統都是非線性的,是不可**的。但這並不是說我們就無從建立控制器,因為,大部分的系統在一定的條件和範圍內是可以抽象成為線性系統的。問題的關鍵是,當我們系統設計的範圍超出了線性的範圍,我們又該如何處理。顯然,智慧型演算法是一條很不錯的途徑。智慧型演算法包含了專家系統、模糊演算法、遺傳演算法、神經網路演算法等。其實這其中的任何一種演算法都可以跟pid去做結合,而選擇的關鍵在於,處理的實時效能不能得到滿足。當我們處理器的速度足夠快速時,我們可以選擇更為複雜的、精度更加高的演算法。但是,控制器的處理速度限制了我們演算法的選擇。當然,成本是限制處理器速度最根本的原因。這個道理很簡單,51微控制器和dsp的成本肯定大不相同。專家pid和模糊pid是常用的兩種pid選擇方式。其實,模糊pid適應一般的控制系統是沒有問題。文章接下來將說明模糊演算法的一些基本常識。
模糊演算法其實並不模糊。模糊演算法其實也是逐次求精的過程。這裡舉個例子說明。我們設計乙個倒立擺系統,假如擺針偏差<5°,我們說它的偏差比較「小」;擺針偏差在5°和10°之間,我們說它的偏差處於「中」的狀態;當擺針偏差>10°的時候,我們說它的偏差有點兒「大」了。對於「小」、「中」、「大」這樣的詞彙來講,他們是精確的表述,可問題是如果擺針偏差是3°呢,那麼這是一種什麼樣的狀態呢。我們可以用「很小」來表述它。如果是7°呢,可以說它是「中」偏「小」。那麼如果到了80°呢,它的偏差可以說「非常大」。而我們調節的過程實際上就是讓系統的偏差由非常「大」逐漸向非常「小」過度的過程。當然,我們系統這個調節過程是快速穩定的。通過上面的說明,可以認識到,其實對於每一種狀態都可以劃分到大、中、小三個狀態當中去,只不過他們隸屬的程度不太一樣,比如6°隸屬於小的程度可能是0.3,隸屬於中的程度是0.7,隸屬於大的程度是0。這裡實際上是有乙個問題的,就是這個隸屬的程度怎麼確定?這就要求我們去設計乙個隸屬函式。詳細內容可以查閱相關的資料,這裡沒有辦法那麼詳細的說明了。
這裡面有些說明。那麼,知道了隸屬度的問題,就可以根據目前隸屬的程度來控制電機以多大的速度和方向轉動了,當然,最終的控制量肯定要落實在控制電壓上。這點可以很容易的想想,我們控制的目的就是讓倒立擺從隸屬「大」的程度為1的狀態,調節到隸屬「小」的程度為1的狀態。當隸屬大多一些的時候,我們就加快調節的速度,當隸屬小多一些的時候,我們就減慢調節的速度,進行微調。可問題是,大、中、小的狀態是漢字,怎麼用數字表示,進而用程式**表示呢?其實我們可以給大、中、小三個狀態設定三個數字來表示,比如大表示用3表示,中用2表示,小用1表示。那麼我們完全可以用1*0.3+2*0.7+3*0.0=1.7來表示它,當然這個公式也不一定是這樣的,這個公式的設計是系統模糊化和精確化的乙個過程,讀者也可參見相關文獻理解。但就1.7這個數字而言,可以說明,目前6°的角度偏差處於小和中之間,但是更偏向於中。我們就可以根據這個數字來調節電機的轉動速度和時間了。當然,這個數字與電機轉速的對應關係,也需要根據實際情況進行設計和調節。
模糊PID控制
在現實控制中,被控系統並非是線性時不變的,往往需要動態調整pid的引數,而模糊控制正好能夠滿足這一需求,所以在接下來的這一節我們將討論模糊pid控制器的相關問題。模糊pid控制器是將模糊演算法與pid控制引數的自整定相結合的一種控制演算法。可以說是模糊演算法在pid引數整定上的應用。模糊演算法是一種...
模糊PID演算法
在講解模糊pid前,我們先要了解pid控制器的原理 本文主要介紹模糊pid的運用,對pid控制器的原理不做詳細介紹 pid控制器 比例 積分 微分控制器 是乙個在工業控制應用中常見的反饋迴路部件,由比例單元p 積分單元i和微分單元d組成。pid控制的基礎是比例控制 積分控制可消除穩態誤差,但可能增加...
模糊PID控制(理論 simulink)
經典pid控制原理簡單,使用方便,適應性強的特點,但是缺點是精度低 抗干擾能力差等,因此為了改善pid效果,我們希望pid的引數不是固定不變的,而是根據當前的系統狀態實時調整pid引數,於是就產生了很多自適應調參的方法,其中之一就是模糊pid控制方法。模糊pid控制方法 以誤差e 和誤差變化率ec ...