前面的幾篇文章分別分享了PID算法的原理、增量式和位置式PID算法的區(qū)別、以及過(guò)程控制中一些重要的指標(biāo),感興趣的朋友可以回看之前的文章或者自行查閱資料。
在實(shí)際項(xiàng)目中,使用數(shù)字PID算法對(duì)系統(tǒng)的被控量進(jìn)行控制的時(shí)候,有時(shí)候并不是僅僅的使用簡(jiǎn)單的增量式或者位置式的PID就完成了對(duì)系統(tǒng)的被控量控制。很多時(shí)候會(huì)采用一些改進(jìn)了的PID算法進(jìn)行系統(tǒng)的控制,以求達(dá)到更好的控制效果。
常見(jiàn)的對(duì)標(biāo)準(zhǔn)PID算法進(jìn)行改進(jìn)的措施有哪些呢?下面會(huì)根據(jù)我個(gè)人有限的經(jīng)驗(yàn)進(jìn)行簡(jiǎn)單的分享,就當(dāng)是一次學(xué)習(xí)分享吧!
1、針對(duì)微分項(xiàng)的改進(jìn)
對(duì)微分項(xiàng)的改進(jìn)常見(jiàn)的有兩種措施:微分先行和輸入濾波。
(1)微分先行
我們知道,在一個(gè)閉環(huán)的控制系統(tǒng)中,即使我們期望被控量穩(wěn)定在期望的值范圍內(nèi)它也不可能是絕對(duì)的穩(wěn)定的,變化才是常態(tài),所以才要考慮才要某些算法進(jìn)行調(diào)控,比如PID算法就很常用。
而微分先行的改進(jìn)措施就是:在PID算法中把對(duì)偏差微分改為對(duì)被控量的微分。
這是什么意思呢?因?yàn)閷?duì)于很多的系統(tǒng)而言,就算在給定的輸入值發(fā)生了變化,也不會(huì)引起被控量的輸出發(fā)生大幅度的變化。這就是說(shuō)在輸入值發(fā)生變化的時(shí)候,被控量也是在一段時(shí)間范圍內(nèi)緩慢進(jìn)行變化的,是不會(huì)發(fā)生突變的。
那么既然被控量不會(huì)因?yàn)檩斎胫档耐蛔兌l(fā)生突變,所以微分先行就是把原本算法中由對(duì)偏差的微分變?yōu)閷?duì)被控量的變化的微分。這樣的做法就是在即使輸入量發(fā)生變化偏差還未產(chǎn)生時(shí),微分就已經(jīng)在起作用了,從而緩慢變化到新的輸入值所要求的輸出值。
所以,微分先行的輸出增量計(jì)算如下:
(2)輸入濾波
輸入濾波的做法就是在計(jì)算微分項(xiàng)的時(shí)候,不直接采用當(dāng)前時(shí)刻的誤差e(n) 進(jìn)行計(jì)算,而是采用經(jīng)過(guò)濾波之后的濾波值。
這個(gè)濾波是怎么進(jìn)行的呢?一般的做法是:用過(guò)去的三個(gè)采樣時(shí)刻的誤差和當(dāng)前時(shí)刻的誤差共四個(gè)誤差值求一個(gè)平均值,再通過(guò)加權(quán)求和的方式構(gòu)成微分項(xiàng)。
2、針對(duì)積分項(xiàng)的改進(jìn)
對(duì)于積分的作用我前面的文章是有講過(guò)的,在PID算法中,積分可以消除系統(tǒng)的靜差,讓被控量偏離期望輸出值的偏差減小。但是積分作用它本身也有一個(gè)副作用,因?yàn)榉e分是對(duì)偏差的累積,可能會(huì)引起積分飽和的情況。
積分飽和又是什么呢?積分飽和指的是在一個(gè)PID調(diào)控的系統(tǒng)中,如果偏差一直存在的情況下,積分會(huì)一直對(duì)偏差進(jìn)行累積,可能會(huì)導(dǎo)致積分項(xiàng)變得很大。
積分飽和又會(huì)對(duì)PID調(diào)控的系統(tǒng)帶來(lái)什么樣的影響呢?打個(gè)比方:如果積分飽和了,在系統(tǒng)的偏差方向發(fā)生了改變了之后,PID這個(gè)時(shí)候會(huì)起作用進(jìn)行調(diào)節(jié),但是由于積分項(xiàng)太大了,就需要經(jīng)過(guò)比較長(zhǎng)的時(shí)間才能讓輸出U(n) 從積分飽和區(qū)脫離,會(huì)使調(diào)控作用滯后,讓系統(tǒng)出現(xiàn)明顯的超調(diào),整個(gè)系統(tǒng)的調(diào)節(jié)效果會(huì)變差,這肯定是不希望出現(xiàn)的。
所以需要一些措施對(duì)抗積分飽和。常見(jiàn)的克服積分飽和的方法有下面的方式:
(1)積分限幅法
積分限幅法的操作原理是:對(duì)積分項(xiàng)的輸出設(shè)定一個(gè)限制,當(dāng)積分項(xiàng)的輸出達(dá)到限制,就停止積分項(xiàng)的計(jì)算,PID算法中的積分計(jì)算項(xiàng)的值采用上一個(gè)時(shí)刻的積分值。這樣是為了防止積分項(xiàng)的輸出過(guò)大,讓系統(tǒng)的調(diào)節(jié)時(shí)間變慢,影響系統(tǒng)品質(zhì)。
積分限幅的計(jì)算實(shí)現(xiàn)步驟一般如下圖:
(2)積分分離法
上面提到了積分限幅的方式,就是讓積分項(xiàng)的輸出不要過(guò)大,防止控制時(shí)間變化太慢。還有一種做法就是將積分分離出來(lái)。
積分分離的做法就是:對(duì)系統(tǒng)的偏差設(shè)定一個(gè)門(mén)限值,如果系統(tǒng)偏差的絕對(duì)值小于門(mén)限值,就進(jìn)行積分累加;相反,如果系統(tǒng)的偏差的絕對(duì)值大于這個(gè)門(mén)限值,就不進(jìn)行積分。這樣也可以避免過(guò)度積分的問(wèn)題,防止系統(tǒng)因?yàn)槠钸^(guò)大時(shí)產(chǎn)生了過(guò)大的控制作用。
積分分離的計(jì)算步驟如下:
(3)變速積分法
變速積分法的基本實(shí)現(xiàn)原理是:當(dāng)系統(tǒng)的偏差比較大的時(shí)候,讓積分的速度慢一些;相反,當(dāng)系統(tǒng)的偏差比較小的時(shí)候,讓積分的速度快一些,以求盡快的消除靜差。
這種操作方式時(shí),積分項(xiàng)按照下面的方式計(jì)算:
上面的計(jì)算中,A為設(shè)定的一個(gè)偏差閾值。
3、補(bǔ)充數(shù)字PID的其他需要注意的問(wèn)題
(1)積分的不靈敏區(qū)
數(shù)字PID算法的應(yīng)用大多數(shù)都是通過(guò)微處理器實(shí)現(xiàn)的,所以即使同樣的算法放在不同的微處理器系統(tǒng)中產(chǎn)生的效果也是不一樣的。
之所以會(huì)出現(xiàn)積分不靈敏的情況,是跟微處理的運(yùn)行字長(zhǎng)和計(jì)算精度有關(guān)的。比如當(dāng)一個(gè)微處理器的運(yùn)行字長(zhǎng)較短時(shí),如果采樣周期很短,但是積分時(shí)間又比較長(zhǎng),這個(gè)時(shí)候就會(huì)容易因?yàn)樽珠L(zhǎng)太小精度不夠,導(dǎo)致偏差不明顯或者不出現(xiàn),讓積分的作用消失了。這就是積分不靈敏的情況。
(2)數(shù)字PID采樣周期的選擇問(wèn)題
根據(jù)前面的數(shù)字PID的計(jì)算公式中會(huì)發(fā)現(xiàn),公式中有一個(gè)變量Ti,這個(gè)就是采樣周期。
一般而言,采樣周期越小,數(shù)字PID就越是精確,控制效果就越接近連續(xù)控制。但是呢,天下萬(wàn)物都是有正反兩面的,采樣周期小了控制效果是精確了,但是太過(guò)頻繁的采樣就必然是要占用跟多的計(jì)算時(shí)間,計(jì)算機(jī)的計(jì)算負(fù)擔(dān)就會(huì)變重,對(duì)計(jì)算機(jī)的運(yùn)算性能要求就更高。
那采樣頻率要怎么選擇才合適呢?
這個(gè)時(shí)候就要先看看采樣定理了,也就是“香農(nóng)采樣定理”或“奈奎斯特采樣定理”。
采樣定理:在進(jìn)行模擬/數(shù)字信號(hào)的轉(zhuǎn)換過(guò)程中,當(dāng)采樣頻率fs.max大于信號(hào)中最高頻率fmax的2倍時(shí)(fs.max >= 2fmax),采樣之后的數(shù)字信號(hào)完整地保留了原始信號(hào)中的信息,一般實(shí)際應(yīng)用中保證采樣頻率為信號(hào)最高頻率的5~10倍。
所以,最大的采樣周期公式如下:
關(guān)于PID算法的一些改進(jìn)就分享到這里,因?yàn)槭莻€(gè)人實(shí)際使用中的總結(jié),可能會(huì)有理解錯(cuò)誤的地方,如有錯(cuò)漏,還煩請(qǐng)指正。
-
PID算法
+關(guān)注
關(guān)注
2文章
172瀏覽量
24411 -
PID
+關(guān)注
關(guān)注
35文章
1473瀏覽量
85858 -
增量式
+關(guān)注
關(guān)注
0文章
13瀏覽量
8736 -
數(shù)字PID
+關(guān)注
關(guān)注
0文章
8瀏覽量
1648
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
labview應(yīng)用PID模糊控制工具包學(xué)習(xí)一些實(shí)例程序
PID算法學(xué)習(xí)筆記分享
溫控系統(tǒng)中改進(jìn)的PID算法
![溫控系統(tǒng)中<b class='flag-5'>改進(jìn)</b>的<b class='flag-5'>PID</b><b class='flag-5'>算法</b>](https://file.elecfans.com/web2/M00/49/0B/pYYBAGKhtDWAb12LAAAQ6Kub2Lc080.jpg)
標(biāo)準(zhǔn)的PID處理例程(PID通俗易懂的講解)[2]
數(shù)字PID控制算法教程之如何對(duì)標(biāo)準(zhǔn)PID算法進(jìn)行改進(jìn)
![數(shù)字<b class='flag-5'>PID</b>控制<b class='flag-5'>算法</b>教程之如何對(duì)<b class='flag-5'>標(biāo)準(zhǔn)</b><b class='flag-5'>PID</b><b class='flag-5'>算法</b>進(jìn)行<b class='flag-5'>改進(jìn)</b>](https://file.elecfans.com/web1/M00/7D/26/pIYBAFwF28iAPZqYAADiYIuSbao376.png)
PID算法模塊(含常用改進(jìn)算法和例程)--C源碼
![<b class='flag-5'>PID</b><b class='flag-5'>算法</b>模塊(含常用<b class='flag-5'>改進(jìn)</b><b class='flag-5'>算法</b>和例程)--C源碼](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
PID算法學(xué)習(xí)筆記
![<b class='flag-5'>PID</b><b class='flag-5'>算法</b>學(xué)習(xí)筆記](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論