本期為大家分享經(jīng)典控制算法之一的PID控制方法。PID控制方法從提出至今已有百余年歷史,其由于結(jié)構(gòu)簡單、易于實現(xiàn)、魯棒性好、可靠性高等特點,在機(jī)電、冶金、機(jī)械、化工等行業(yè)中應(yīng)用廣泛。下面就跟著小編一起來學(xué)習(xí)PID算法的原理分析及優(yōu)化,快來get
一、PID原理
PID控制方法將偏差的比例(proportional)、積分(integral)、微分(derivative)通過線性組合構(gòu)成控制量,對被控對象進(jìn)行控制。
常規(guī)的PID控制系統(tǒng)如圖所示:

系統(tǒng)的輸入r(t)為控制量的目標(biāo)輸出值,輸出y(t)為控制量的實際輸出值,e(t)為輸出量目標(biāo)值與實際值的偏差量,PID算法的調(diào)控是基于e(t)進(jìn)行的。
比例調(diào)節(jié)是基于實際值與目標(biāo)值的偏差量進(jìn)行線性調(diào)節(jié),在系統(tǒng)中表現(xiàn)為Kpe(t),Kp為比例增益。
比例增益Kp越大調(diào)節(jié)作用越激進(jìn),輸入輸出的微小偏差都會造成很大的調(diào)節(jié)動作;相反的Kp越小調(diào)節(jié)作用越保守,即使輸入輸出差異很大系統(tǒng)的調(diào)節(jié)效果都不太明顯。
積分調(diào)節(jié)是利用歷史偏差量的累計對系統(tǒng)輸出進(jìn)行調(diào)節(jié),在系統(tǒng)種表示為:
t
Ki∫ e(t)dt,Ki為積分增益。
0
積分調(diào)節(jié)的意義是消除系統(tǒng)的穩(wěn)態(tài)誤差。積分增益Ki越大系統(tǒng)的穩(wěn)態(tài)誤差消除的越快,Ki越小系統(tǒng)的穩(wěn)態(tài)誤差越不易消除,系統(tǒng)的調(diào)節(jié)精度越差。但是Ki過大會在響應(yīng)過程產(chǎn)生較大超調(diào),導(dǎo)致積分飽和現(xiàn)象的產(chǎn)生。
微分調(diào)節(jié)是基于偏差量的變化速率(偏差求導(dǎo))對系統(tǒng)輸出進(jìn)行調(diào)節(jié),在系統(tǒng)種表示為:
de(t)
Kd ———— ,Kd為微分增益。
dt
微分調(diào)節(jié)主要起到阻尼的作用,抑制超調(diào)。微分增益Kd越大,系統(tǒng)的穩(wěn)定性越好,調(diào)節(jié)過程中曲線波動越小。但是Kd若設(shè)置過大會使得系統(tǒng)的調(diào)節(jié)時間增長,抗干擾性減弱。
偏差值在經(jīng)過三種調(diào)節(jié)作用后會產(chǎn)生一個控制量u(t),u(t)將通過執(zhí)行單元控制輸出。系統(tǒng)將利用采樣單元將輸出反饋給輸入端進(jìn)行偏差量計算。
常規(guī)PID控制系統(tǒng)中u(t)與e(t)之間的函數(shù)關(guān)系如下:
t de(t)
u(t)=Kpe(t) +Ki∫ e(t)dt+Kd ———— 式1
0 dt
分別調(diào)節(jié)Kp、Ki、Kd參數(shù)對PID控制系統(tǒng)性能的影響如下表所示:
二、數(shù)字PID控制
隨著計算機(jī)技術(shù)發(fā)展,目前多以微控制器或計算機(jī)為運算核心,利用軟件程序來實現(xiàn)PID控制和校正,也就是數(shù)字PID控制。常用的數(shù)字PID控制方法有:位置式PID、增量式PID以及步進(jìn)式PID等。
由于計算機(jī)的運算是離散的,要想實現(xiàn)數(shù)字PID控制首先需要將連續(xù)函數(shù)進(jìn)行離散化。
我們用誤差的累加替代積分運算,用誤差的差分代替微分運算,可得:
k
u(k)=Kpe(k)+ki ∑ e(j)+kd(e(k)-e(k-1)) 式2
j=0
其中k為采樣序列號(k=0,1,2,3......),e(k)為第k次采樣時的誤差值,e(k-1)為第k-1次采樣時的誤差值u(k)為第k次采樣時控制量的輸出值。在位置式PID中輸出u(k)直接控制待控制對象,u(k)的值和控制對象是一一對應(yīng)的關(guān)系。
從式2可以看出,位置式PID需要計算第k次和k-1次的誤差,控制器會對偏差進(jìn)行累加,這樣會使得系統(tǒng)的運算量變大,占用內(nèi)存過多,給計算機(jī)帶來負(fù)擔(dān)。
同時,控制器的每次輸出u(k)都和過去的狀態(tài)有關(guān),u(k)的大幅變化會導(dǎo)致執(zhí)行機(jī)構(gòu)的狀態(tài)大幅變化,系統(tǒng)抗干擾能力差。
為了改善這些問題,有學(xué)者提出了數(shù)字PID的另外一種實現(xiàn)方法——增量式PID。
增量式PID的輸出是對被控對象的增量?u(k),而不是實際的控制量大小。
?u(k)=u(k)-u(k-1)
=kp(e(k)-e(k-1))+kie(k)+kd(e(k)-2e(k-1)+e(k-2))
=a0e(k)+a?e(k-1)+a?e(k-2)
其中a0=kp+ki+kd, a?=-Kp-2kd,a?=kd。
從上式可以看出增量式PID跟k時刻、k-1時刻、k-2時刻的偏差都有關(guān)系,但是不會對偏差進(jìn)行累積,所以相比位置式PID的計算量要小,也不會跟過去的偏差有關(guān)聯(lián),所以控制系統(tǒng)的穩(wěn)定性好。
當(dāng)PID系統(tǒng)的設(shè)定值發(fā)生較大的突變時,系統(tǒng)很容易產(chǎn)生超調(diào),影響其穩(wěn)定性。為了避免階躍信號帶來的不利影響,有學(xué)者提出了步進(jìn)式PID。
步進(jìn)式PID不對階躍信號進(jìn)行直接響應(yīng),而是按照設(shè)定的步進(jìn)規(guī)則逐漸增加設(shè)定值,使得信號逐步靠近目標(biāo)值,這樣被控對象運行平穩(wěn),避免了因突變帶來的超調(diào)。
這種方法并未改變PID算法結(jié)構(gòu)本身,而是對設(shè)定值進(jìn)行步進(jìn)處理,使其不產(chǎn)生突變。步進(jìn)處理方法有很多種,最為常見的是建立一個線性變化函數(shù),確定變化步長,當(dāng)檢測到目標(biāo)值發(fā)生變化后按照步長逐步調(diào)整設(shè)定值。
Ys=Yn+kT
其中Ys為設(shè)定目標(biāo)值,Yn為當(dāng)前目標(biāo)值,T為步長,k為變化系數(shù)。當(dāng)檢測到目標(biāo)值增加時k=1,當(dāng)目標(biāo)值不變時k=0,當(dāng)目標(biāo)值減小時k=-1。
步進(jìn)式PID雖然可以減少階躍信號帶來的干擾,但是也會讓系統(tǒng)的響應(yīng)速度變慢,可以調(diào)節(jié)步長來平衡兩者之間的關(guān)系。步長越小運行越穩(wěn)定,系統(tǒng)響應(yīng)速度越慢,反之亦然。
三、PID算法優(yōu)化
若系統(tǒng)持續(xù)存在一個方向的偏差時,PID控制器的輸出由于積分作用不斷累加而增大,從而導(dǎo)致控制器輸出產(chǎn)生超調(diào)進(jìn)入飽和區(qū)。
當(dāng)系統(tǒng)出現(xiàn)反向偏差時,由于輸出飽和而不能對反向的偏差進(jìn)行快速響應(yīng),這種現(xiàn)象稱為積分飽和。

常用抑制PID積分飽和方法有:積分分離法、遇限削弱積分法以及變速積分法等。
當(dāng)系統(tǒng)檢測到偏差e(k)較大時,取消積分環(huán)節(jié),當(dāng)被控量接近給定值時,誤差減小,此時恢復(fù)積分環(huán)節(jié)。這樣既不影響控制器的動態(tài)性能,又能避免出現(xiàn)嚴(yán)重超調(diào)或持續(xù)振蕩現(xiàn)象。
根據(jù)系統(tǒng)的偏差e(k)大小對積分速度進(jìn)行調(diào)整,當(dāng)e(k)絕對值很大時減慢積分速度,當(dāng)e(k)絕對值很小時加快積分速度。在積分飽和時減小積分時間可以達(dá)到抑制積分飽和的效果,增強系統(tǒng)的適應(yīng)性。
當(dāng)檢測到控制量u(k)進(jìn)入飽和區(qū)時不再進(jìn)行積分項累加,而執(zhí)行削弱積分的運算。這樣不會產(chǎn)生過多的超調(diào)量,當(dāng)需要反向調(diào)節(jié)時能較快地響應(yīng),避免輸出長時間停留在飽和區(qū)。
PID算法中微分項與偏差的變化速率有關(guān)。如果系統(tǒng)存在頻率較高的干擾或突變等情況時,微分項的數(shù)值會不斷跳變,使控制過程產(chǎn)生系統(tǒng)振蕩,影響控制系統(tǒng)的穩(wěn)定性。

常用的微分環(huán)節(jié)優(yōu)化方法如下:
微分項對測量值產(chǎn)生的偏差起作用,而不是對設(shè)定值起作用。這樣可以避免設(shè)定值的變化而產(chǎn)生較大的調(diào)節(jié)波動,抑制高頻干擾引起的系統(tǒng)振蕩。
不完全微分是在微分作用后引入一階慣性環(huán)節(jié),使得在偏差作階躍式變化時產(chǎn)生的微分調(diào)節(jié)量,以一種較為平緩的方式輸出。這樣在不減小微分調(diào)節(jié)作用的前提下,降低因為偏差突變產(chǎn)生的波動。
受控量微分PID算法是對控制器的輸出值進(jìn)行微分,而不是對系統(tǒng)響應(yīng)的實際輸出值進(jìn)行微分,可避免由于系統(tǒng)設(shè)定值頻繁變化或執(zhí)行器的振蕩產(chǎn)生的系統(tǒng)響應(yīng)超調(diào)量過大。
所謂串級PID,就是采用多個PID控制器串聯(lián)工作,外環(huán)控制器的輸出作為內(nèi)環(huán)控制器的設(shè)定值,由內(nèi)環(huán)控制器的輸出去操縱外環(huán)控制器,從而實現(xiàn)外環(huán)被控量的控制效果。串級PID能夠有效改善控制質(zhì)量,在過程控制中應(yīng)用廣泛。
控制系統(tǒng)以外環(huán)控制器為主導(dǎo),保證外環(huán)主變量穩(wěn)定為目的,兩個控制器協(xié)調(diào)一致,互相配合。外環(huán)控制器按負(fù)荷和操作條件的變化不斷糾正內(nèi)環(huán)控制器的設(shè)定值,使內(nèi)環(huán)控制器的設(shè)定值適應(yīng)負(fù)荷和操作條件的變化。
在電機(jī)控制中串級PID十分常見,常用的位置環(huán)+速度環(huán)+電流環(huán)控制結(jié)構(gòu)如圖。

在PID控制方法中P、I、D是三種不同的調(diào)節(jié)作用,在實際應(yīng)用時可根據(jù)需求對三種調(diào)節(jié)作用進(jìn)行靈活組合,這也是PID控制方法的魅力所在,它的結(jié)構(gòu)決定了它在實際應(yīng)用中的多樣性與靈活性。
本篇主要從PID原理、數(shù)字PID實現(xiàn)方式以及算法優(yōu)化方面進(jìn)行了簡單介紹,希望能夠?qū)Υ蠹覍W(xué)習(xí)PID算法有所幫助。
聲明:本文來源電子發(fā)燒友社區(qū)