1. 程式人生 > 實用技巧 >PID閉環控制演算法解析(最透徹)

PID閉環控制演算法解析(最透徹)

PID閉環控制演算法解析

PID簡介

P

Proportion(比例)

就是輸入偏差乘以一個常數

I

Integral(積分)

就是對輸入偏差進行積分運算

D

Derivative(微分)

對輸入偏差進行微分運算

P(比例),I(積分),D(微分)環節

P環節

作用:對當前時刻的偏差進行比例放大

取樣序列:系統中每個時刻採集回來的當前值,最終得到:“X1、X2、X3 … Xn-1,Xn”;

第k時刻的偏差:e(k)=Expect - Xk;

e(k)>0 : 控制系統還未達到期望值;

e(k)=0 : 控制系統已經達到期望值;

e(k)<0 : 控制系統已經超過期望值;

P環節的第k時刻的輸出:u(k)=Kp * e(k) 。

Kp:P比例係數,可以理解為放大倍數。

單P演算法中的缺陷:當系統不存在偏差(e(k)=0)時,執行部件便無輸出,被控物件處於失控狀態。

(每次系統輸出,都會使得控制系統更加接近期望值,偏差ek不斷變小,所以斜率不斷變小)我們看到如果沒有I,D環節,誤差永遠不會被消除,會在目標值附近進行波動。

I環節

I(積分)環節:對過去所有時間的偏差進行積分。

偏差序列:e(k)=Expect – Xk,將得到的資料“e1、e2、e3 … en-1、en”,的後Ti個時間單位進行求和,最終得到以下資料:

∑ei:對過去所有時間的偏差進行求和;

∑ei<0 : 控制系統在 過去大部分時間段還未達到期望值;

∑ei=0 : 控制系統在 過去大部分時間段已經達到期望值;

∑ei>0 : 控制系統在 過去大部分時間段已經超過期望值;

I環節的第k時刻的輸出:u(k)=Ki * ∑ei 。(Ki:i比例係數)

在控制系統剛啟動時,由於I環節的 偏差累積效應,可以 更快的達到期望值。但同時也由於偏差的累積效應,使得系統第一次達到期望值時,過去所有時刻都未達標,即∑ei很大,所以曲線其實會超過期望的那條虛線並持續增長,所以,我們通常會在I環節中除以積分時間Ti,即u(k)=Ki * ∑ei/Ti。

I環節中引入了“誤差的積分值”,積分代表了以前誤差的累積,可以加快達到目標值,但是由於I環節受此狀態之前誤差的累積的影響,因此當達到目標值之後,不會穩定下來,會繼續越過目標值進行變化,因此就需要我們不僅要考慮以前,也要考慮未來於是就出現了“D(微分)環節”。

D環節

D(微分)環節:通過偏差的偏差,對控制系統的輸出走向進行預判,起超前調節的作用。

偏差的偏差序列:△ek=ek-ek-1,最終得到“△e1、△e2、△e3 … △en-1、△en”;

△e(k)很大時,表示控制系統上一刻的輸出很“陡峭”,表明控制系統離目標相差很遠,所以D環節的輸出也很大。

D環節的第k時刻的輸出:u(k)=Kd * △e(k) 。

Kd:D積分系數,除了超前預判,還可理解為阻尼力。

微分環節很奈斯,D環節反映了最近一些時間誤差的變化,對於我們預測未來誤差的走向具有重要意義,並且由於D環節很容易受噪聲波動也就是誤差波動的影響,因此加入I環節可以使大幅度的波動遲緩,即I環節限制大幅度波動(由於I環節對在此之前的Ti個單位時間內的誤差求平均,因此對於當前的前一個誤差變化的敏感度下降,於是I環節擁有“延遲效果”),D環節預測修正值得走向,一個聯絡從前,一個聯絡未來。

PID演算法的由來

儘管不同型別的控制器,其結bai構、原理各不相同,但是基本控制規律只有三個:比例(P)控制、積分(I)控制和微分(D)控制。這幾種控制規律可以單獨使用,但是更多場合是組合使用。如比例(P)控制、比例-積分(PI)控制、比例-積分-微分(PID)控制等。

比例(P)控制

單獨的比例控制也稱“有差控制”,輸出的變化與輸入控制器的偏差成比例關係,偏差越大輸出越大。實際應用中,比例度的大小應視具體情況而定,比例度太小,控制作用太弱,不利於系統克服擾動,餘差太大,控制質量差,也沒有什麼控制作用;比例度太大,控制作用太強,容易導致系統的穩定性變差,引發振盪。

對於反應靈敏、放大能力強的被控物件,為提高系統的穩定性,應當使比例度稍小些;而對於反應遲鈍,放大能力又較弱的被控物件,比例度可選大一些,以提高整個系統的靈敏度,也可以相應減小余差。

單純的比例控制適用於擾動不大,滯後較小,負荷變化小,要求不高,允許有一定餘差存在的場合。工業生產中比例控制規律使用較為普遍。

比例積分(PI)控制

比例控制規律是基本控制規律中最基本的、應用最普遍的一種,其最大優點就是控制及時、迅速。只要有偏差產生,控制器立即產生控制作用。但是,不能最終消除餘差的缺點限制了它的單獨使用。克服餘差的辦法是在比例控制的基礎上加上積分控制作用。

積分控制器的輸出與輸入偏差對時間的積分成正比。這裡的“積分”指的是“積累”的意思。積分控制器的輸出不僅與輸入偏差的大小有關,而且還與偏差存在的時間有關。只要偏差存在,輸出就會不斷累積(輸出值越來越大或越來越小),一直到偏差為零,累積才會停止。所以,積分控制可以消除餘差。積分控制規律又稱無差控制規律。

積分時間的大小表徵了積分控制作用的強弱。積分時間越小,控制作用越強;反之,控制作用越弱。

積分控制雖然能消除餘差,但它存在著控制不及時的缺點。因為積分輸出的累積是漸進的,其產生的控制作用總是落後於偏差的變化,不能及時有效地克服干擾的影響,難以使控制系統穩定下來。所以,實用中一般不單獨使用積分控制,而是和比例控制作用結合起來,構成比例積分控制。這樣取二者之長,互相彌補,既有比例控制作用的迅速及時,又有積分控制作用消除餘差的能力。因此,比例積分控制可以實現較為理想的過程控制。

比例積分控制器是目前應用最為廣泛的一種控制器,多用於工業生產中液位、壓力、流量等控制系統。由於引入積分作用能消除餘差,彌補了純比例控制的缺陷,獲得較好的控制質量。但是積分作用的引入,會使系統穩定性變差。對於有較大慣性滯後的控制系統,要儘量避免使用。

比例微分(PD)控制

比例積分控制對於時間滯後的被控物件使用不夠理想。所謂“時間滯後”指的是:當被控物件受到擾動作用後,被控變數沒有立即發生變化,而是有一個時間上的延遲,比如容量滯後,此時比例積分控制顯得遲鈍、不及時。為此,人們設想:能否根據偏差的變化趨勢來做出相應的控制動作呢?猶如有經驗的操作人員,即可根據偏差的大小來改變閥門的開度(比例作用),又可根據偏差變化的速度大小來預計將要出現的情況,提前進行過量控制,“防患於未然”。這就是具有“超前”控制作用的微分控制規律。微分控制器輸出的大小取決於輸入偏差變化的速度。

微分輸出只與偏差的變化速度有關,而與偏差的大小以及偏差是否存在與否無關。如果偏差為一固定值,不管多大,只要不變化,則輸出的變化一定為零,控制器沒有任何控制作用。微分時間越大,微分輸出維持的時間就越長,因此微分作用越強;反之則越弱。當微分時間為0時,就沒有微分控制作用了。同理,微分時間的選取,也是需要根據實際情況來確定的。

微分控制作用的特點是:動作迅速,具有超前調節功能,可有效改善被控物件有較大時間滯後的控制品質;但是它不能消除餘差,尤其是對於恆定偏差輸入時,根本就沒有控制作用。因此,不能單獨使用微分控制規律。

比例和微分作用結合,比單純的比例作用更快。尤其是對容量滯後大的物件,可以減小動偏差的幅度,節省控制時間,顯著改善控制質量。

比例積分微分(PID)控制

最為理想的控制當屬比例-積分-微分控制規律。它集三者之長:既有比例作用的及時迅速,又有積分作用的消除餘差能力,還有微分作用的超前控制功能。

當偏差階躍出現時,微分立即大幅度動作,抑制偏差的這種躍變;比例也同時起消除偏差的作用,使偏差幅度減小,由於比例作用是持久和起主要作用的控制規律,因此可使系統比較穩定;而積分作用慢慢把餘差克服掉。只要三個作用的控制引數選擇得當,便可充分發揮三種控制規律的優點,得到較為理想的控制效果。

編輯本段PID控制器除錯方法

比例係數的調節

比例係數P的調節範圍一般是:0.1--100.

如果增益值取 0.1,PID 調節器輸出變化為十分之一的偏差值。如果增益值取 100, PID 調節器輸出變化為一百倍的偏差值。

可見該值越大,比例產生的增益作用越大。初調時,選小一些,然後慢慢調大,直到系統波動足夠小時,再該調節積分或微分系數。過大的P值會導致系統不穩定,持續振盪;過小的P值又會使系統反應遲鈍。合適的值應該使系統由足夠的靈敏度但又不會反應過於靈敏,一定時間的遲緩要靠積分時間來調節。

積分系數的調節

積分時間常數的定義是,偏差引起輸出增長的時間。積分時間設為 1秒,則輸出變化 100%所需時間為 1 秒。初調時要把積分時間設定長些,然後慢慢調小直到系統穩定為止。

微分系數的調節

微分值是偏差值的變化率。例如,如果輸入偏差值線性變化,則在調節器輸出側疊加一個恆定的調節量。大部分控制系統不需要調節微分時間。因為只有時間滯後的系統才需要附加這個引數。如果畫蛇添足加上這個引數反而會使系統的控制受到影響。如果通過比例、積分引數的調節還是收不到理想的控制要求,就可以調節微分時間。初調時把這個係數設小,然後慢慢調大,直到系統穩定。

PID引數的計算方法

常用計算方法與方法的實現

PID控制器的引數整定是控制系統設計的核心內容。它是根據被 控過程的特性確定PID控制器的比例係數、積分時間和微分時間的大小。

PID控制器引數整定的方法很多,概括起來有兩大類:

一是理論計算整定法。它主要是依據系統的數學模型,經過理論計算確定控制器引數。這種方法所得到的計算資料未必可以直接用,還必須通過工程實際進行調整和修改。

二是工程整定方法,它主要依賴工程經驗,直接在控制系統的試驗中進行,且方法簡單、易於掌握,在工程實際中被廣泛採用。PID控制器引數的工程整定方法,主要有臨界比例法、反應曲線法和衰減法。

兩種方法各有其特點,其共同點都是通過試驗,然後按照工程經驗公式對控制器引數進行整定。但無論採用哪一種方法所得到的控制器引數,都需要在實際執行中進行最後調整與完善。

現在一般採用的是臨界比例法。利用該方法進行 PID控制器引數的整定步驟如下:

(1) 首先預選擇一個足夠短的取樣週期讓系統工作;

(2) 僅加入比例控制環節,直到系統對輸入的階躍響應出現臨界振盪, 記下這時的比例放大係數和臨界振盪週期;

(3) 在一定的控制度下通過公式計算得到PID控制器的引數。

PID演算法的matlab模擬

https://blog.csdn.net/weixin_44044411/article/details/85891109

各個環節係數的作用

比例調節Kp的作用

能提高系統的動態響應速度,迅速反映誤差,從而減少誤差,但是不能消除誤差,簡單來說就是越大越快越小越慢但是可能會超調或者過慢有很多弊端,並且太大了會不穩定。

微分環節Kd的作用

控制在微分控制中,控制器的輸出與輸入誤差訊號的微分(即誤差的變化率)成正比關係。自動控制系統在補償誤差的調節過程中可能會出現振盪甚至失穩。其原因是由於存在較大慣性環節(如水波影響)或滯後單元(如通訊裝置的延遲),它們具有抑制誤差的作用,即其變化總是落後於誤差的變化,而解決的辦法是提前抑制誤差的變化。

當系統產生頻繁震盪的雜波時,簡單的微分控制可能被這些噪聲所幹擾,因此微分控制的缺點是對干擾噪聲敏感,使系統抑制干擾的能力降低。為此可在微分部分增加慣性濾波環節。

微分顯然與變化率有關,你可以把它理解為導數,它可以減小超調量來克服震盪,使系統穩定性提高,同時加快響應速度,使系統更快有更好的動態效能,這就像個“預言家”,它可以根據變化率來判斷系統快要上升還是下降來提前改變系統的控制量這就與積分作用形成互補,這樣一來系統就幾乎完美了。

積分環節Ki的作用

般就是消除穩態誤差,只要系統存在誤差積分作用就會不斷積累,輸出控制量來消除誤差,如果偏差為零這時積分才停止,但是積分作用太強會使得超調量加大,甚至使系統出現震盪,那麼問題來了,這個積分作用太強太弱是啥意思呢,我的理解是:積分作用就相當與容錯率高的意思,你容錯太多了才開始調節那不就是超調量太大了麼,反之你容錯率低,剛剛誤差一點你就馬上進行調節,這樣不就容易引起震盪了嘛,所以不管怎麼說這個積分調節都有點滯後的意思在裡面,不管你容錯多少這個誤差都發生了,那麼有沒有辦法對這種誤差進行預測呢,就是需要微分環節了。

Kp,Kd,Ki三個引數動態變化對系統的影響

Kp,Kd,Ki三個引數動態變化的PID調節圖解

什麼是“超調”?

超調是衡量調節品質的一個量。當系統輸出超過穩態值時,輸出的最大值Y(tp)減去穩態值Y(∞)的差除以穩態值乘以百分之百得到的一個輸出最大偏差比:

因此,超調反映的是控制系統在達到穩態前控制作用最糟糕的結果。

如下圖所示:

當我們僅用“真實值與目標值的差”作為修正資料的主要來源,那麼會一直產生error,只要有error影象就會波動,這就是P閉環調節。當我們調節的力度股過大,以至於調的偏離目標值,跑到了目標值的另一側,這就叫超調。

三種調節對應的時間特性

調節型別

意義

時間關係

比例調節P

反映了當前值與當前誤差的差值

當前與當前

積分調節I

當前誤差是在此之前的誤差的累積

當前與之前

微分調節D

用近期的誤差來預測未來誤差的走勢

當前與未來

三種調節對應的優缺點

比例控制

能迅速反映誤差,從而減小誤差,但比例控制不能消除穩態誤差,KP的加大會引起系統的不穩定

積分控制

只要系統存在誤差,積分控制作用就不斷地積累,輸出控制量以消除誤差。因此只要有足夠的時間,積分控制將能完全消除誤差,但是積分作用太強會使系統超調加大,甚至使系統出現振盪

微分控制

可以減小超調量,克服振盪,使系統的穩定性提高,同時加快系統的動態響應速度,減小調整時間,從而改善系統的動態效能

PID演算法

演算法公式

通常,對係數做如下簡化:

引數說明

Kp

比例係數,反映了調節速度

E(t)

當前值-目標值,即當前的誤差

T1

積分的時間,反映了當前值與前T1個週期的關係

TD

微分時間常數,反映了系統的修正力度

誤差的積分

T1個時間間隔的誤差的累加

誤差的微分

當前誤差與前一個誤差的差值

微分時間常數Td對控制性能的影響

隨著微分時間常數Td的增加,閉環系統響應的響應速度加快,調節時間減小。微分環節的主要作用是提高系統的響應速度。由於該環節對誤差的導數(即誤差變化率發生作用),它能在誤差較大的變化趨勢時施加合適的控制。

但是過大的Kd值會因為系統造成或者受控物件的大時間延遲而出現問題。微分環節對於訊號無變化或變化緩慢的系統不起作用。

積分時間常數Ti對控制性能的影響

積分作用的強弱取決於積分常數Ti。Ti越小,積分作用就越強,反之Ti大則積分作用弱。積分控制的主要作用是改善系統的穩態效能,消除系統的穩態誤差。當系統存在控制誤差時,積分控制就進行,直至無差,積分調節停止,積分控制輸出一常值。

加入積分控制可使得系統的相對穩定性變差。Ti值的減小可能導致系統的超調量增大,Ti值的增大可能使得系統響應趨於穩態值的速度減慢。

這裡的積分作用說的是“Ti越小說明當前的修正值與之前的誤差關係不緊密,因此積分的效果不明顯”。

位置式與增量式PID演算法的區別

位置式PID的輸出與過去的所有狀態有關,計算時要對e(每一次的控制誤差)進行累加,這個計算量非常大,而明顯沒有必要。而且小車的PID控制器的輸出並不是絕對數值,而是一個△,代表增多少,減多少。換句話說,通過增量PID演算法,每次輸出是PWM要增加多少或者減小多少,而不是PWM的實際值。所以明白增量式PID就行了。

增量型 PID,是對位置型 PID 取增量,這時控制器輸出的是相鄰兩次取樣時刻所計算的位置值之差,得到的結果是增量,即在上一次的控制量的基礎上需要增加(負值意味減少)控制量。