PID算法中積分項(xiàng)I的作用介紹和實(shí)驗(yàn)研究
????????在前面的比例項(xiàng)輸出實(shí)驗(yàn)中,當(dāng)Kp = 0.8時(shí)的結(jié)果如圖1所示.

????????可以看到,穩(wěn)定后的溫度在58.7°C附近,沒(méi)有達(dá)到目標(biāo)溫度60°,此時(shí)出現(xiàn)的這種差值我們叫穩(wěn)態(tài)誤差。那有沒(méi)有一種辦法能夠讓它穩(wěn)定后達(dá)到60°呢?有,就是將誤差的積累轉(zhuǎn)為輸出,疊加到比例項(xiàng)上,一起參與對(duì)PWM的有效時(shí)間進(jìn)行控制。
????????我們舉一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明。假設(shè)穩(wěn)定后的溫度為58°,比目標(biāo)溫度少2°。我們將這個(gè)2°進(jìn)行累加,每500ms累加一次,則有 2+2+2+2+.....,該累加項(xiàng)疊加到比例項(xiàng),使得輸出為
out = Kp*2+ Ki *(2+ 2 + 2 +....)?????? (1)?
????????式(1)中,Ki為積分系數(shù)。
????????由式(1)可以看到,當(dāng)誤差積累到一定程度后,out將會(huì)是一個(gè)比較大的值,有效加熱時(shí)間增加,溫度會(huì)重新慢慢提升,并到達(dá)60°C處。
????????而當(dāng)溫度超過(guò)60°后,由于設(shè)定值-測(cè)量值為負(fù),所以比例項(xiàng)和積分項(xiàng)都為負(fù),out的輸出為0,系統(tǒng)不對(duì)加熱塊進(jìn)行加熱,加熱塊溫度下降。這樣反復(fù)加熱散熱,最終使得溫度被穩(wěn)定在目標(biāo)溫度處。
????????我們將這種差值進(jìn)行累加并和比例項(xiàng)一起影響輸出PID算法的輸出out,可以使得系統(tǒng)能夠比較好地穩(wěn)定于目標(biāo)溫度處。這種累加就是數(shù)學(xué)上的積分,將該積分離散后疊加上比例項(xiàng)的結(jié)果如式(2)所示。
out = Kp*E(k)+ Ki *(E(k=1) + E(k = 2) + E(k = 3) +....)?? (2)?
????????其中,E(k)為目標(biāo)值 - 第k次的測(cè)量值。
????????下面我們?cè)O(shè)置Ki = 0.004,Kp仍然取0.8,然后看一下實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果如圖2所示。

????????由圖2可以看到,增加積分項(xiàng)后,穩(wěn)態(tài)誤差被消除了。但是,由于整個(gè)過(guò)程都使用了積分,所以導(dǎo)致超調(diào)嚴(yán)重,而且振蕩1個(gè)多小時(shí)才達(dá)到穩(wěn)定。所以在使用積分的時(shí)候一定要注意,一定要根據(jù)具體的情況來(lái)使用積分項(xiàng)。比如先使用Kp調(diào)整使得穩(wěn)態(tài)誤差比較小,然后再根據(jù)穩(wěn)態(tài)誤差來(lái)確定何時(shí)使用積分。
????????下面我們?cè)賮?lái)看一個(gè)實(shí)驗(yàn),就是在目標(biāo)溫度 - 測(cè)量溫度在±5°時(shí)才使用積分的情況,結(jié)果如圖3所示。

????????可以看到,使用積分限制后,超調(diào)大大減小,到達(dá)穩(wěn)定的時(shí)間也大大縮短。
?
關(guān)于PID介紹的更多內(nèi)容,我們將在近期正點(diǎn)原子平臺(tái)的第三期教學(xué)給大家分享。在這一期的教學(xué)中,我們將推出自整定方法和PID模糊控制,關(guān)于PID的模糊控制,應(yīng)該是全網(wǎng)第一個(gè)實(shí)戰(zhàn)的項(xiàng)目,結(jié)果非常理想。
?
如果大家有興趣,可以關(guān)注公眾號(hào):?? O老師講32?
或者直接掃碼添加
