背景
經典pid控制原理簡單,使用方便,適應性強的特點,但是缺點是精度低、抗干擾能力差等,因此爲了改善pid效果,我們希望pid的參數不是固定不變的,而是根據當前的系統狀態實時調整pid參數,於是就產生了很多自適應調參的方法,其中之一就是模糊PID控制方法。
模糊PID控制方法:以誤差e 和誤差變化率ec 作爲輸入,利用模糊規則進行模糊推理,查詢模糊矩陣表進行參數調整,來滿足不同時刻的 e和
ec對PID參數自整定的要求。即實時根據e和ec來調整pid參數。
模糊PID控制理論
這裏將以一個簡單的例子,按照步驟來講解
-
模糊pid控制器有兩個輸入值,一個是偏差E,以及當前偏差和上次偏差的變化(差值)EC兩個值(連續系統就是偏差的微分)。
-
我們要對這兩個值進行模糊化。首先我們需要先確定e和ec的值域,在這裏我們假設該e的區間爲-240到240,再假設ec的區間爲-40到+40。
-
接着我們要對這兩個區間進行分段,便於模糊化。我現在將E的區間(-240 到 240)分成8段,因此需要7個分段點(不包含兩端端點),那麼這8段分別爲
-240 ~ -180,
-180 ~ -120 ,
-120 ~ -60,
-60 ~ 0,
0 ~ 60,
60 ~ 120,
120 ~ 180
180 ~ 240。
然後我們把7個分段點-180,-120,-60,0,60,120,180
分別命名爲NB,NM,NS,ZO,PS,PM,PB表示(個人理解N爲negative,P爲positive,B爲big,M爲middle,S爲small,ZO爲zero)。例如,當e = 170時,此時的E屬於PM和PB之間,因此此時e既屬於pm也屬於pb,自然就會涉及到e屬於pm的程度和屬於pb的程度。E屬於PM(120)的百分比爲(180 - 170) / (180 - 120) = 1 / 6 ,而同理屬於PB(180)的百分比爲(170 - 120) / (180 - 120) = 5 / 6 。意思就是120到180進行線性分割了,E離PM和PB哪個更近,則隸屬於哪個就更大(當輸出值E大於180(PB)時,則隸屬度爲1,隸屬度值爲PB,即E完全隸屬於PB,同理當E小於 - 180 (NB)時也一樣)。
同理對EC進行模糊化,EC也會有他對應的NB,NM,NS,ZO,PS,PM,PB。
- 前面我們已經確定E和EC的隸屬和隸屬度,下面我們進行查表,這個表的名稱爲:模糊規則表
首先找到E的兩個隸屬,比如假設爲PM、PB,且假設E屬於PM的隸屬度爲a(a < 1),屬於PB的隸屬度爲(1 - a),再假設EC的兩個隸屬度爲NB、NM,且EC屬於NM的隸屬度爲b,則屬於NB的隸屬度爲(1 - b)。然後我們順着表差,就可以查到四個值:
比如上面這張圖我們查到四個值:ZO,ZO,ZO,NS,他們的概率分別爲:a(1-b),ab,(1-a)*(1-b),(1-a)*b,因此通過該模糊規則的輸出爲:ZO * a(1-b)+ ZO *ab+ ZO (1-a)(1-b)+NS * (1-a)*b。
注意:這裏的輸出對應的就是pid的三個參數,每個參數都有其對應的規則表,且規則表裏面的NB,NM,NS,ZO,PS,PM,PB是pid的三個參數各自的分段點!!!!!所以我們在開始前還需要對pid的三個參數進行分段!!!!