PID控制算法通俗講解轉_第1頁
PID控制算法通俗講解轉_第2頁
PID控制算法通俗講解轉_第3頁
PID控制算法通俗講解轉_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

拋棄公式,從原理上真正理解PID控制PID控制應該算是應用非常廣泛的控制算法了。小到控制一個元件的溫度,大到控制無人機的飛行姿態(tài)和飛行速度等等,都可以使用PID控制。這里我們從原理上來理解PID控制。PID(proportionintegrationdifferentiation)其實就是指比例,積分,微分控制。先把圖片和公式擺出來,看不懂沒關系。(一開始看這個算法,公式能看懂,具體怎么用怎么寫代碼也知道,但是就是不知道原理,不知道為什么要用比例,微分,積分這3個項才能實現(xiàn)最好的控制,用其中兩個為什么不行,用了3個項能好在哪里,每一個項各有什么作用)1/Tderr(f)U(t)=kp(eTT(Jb)+—Ierr(tydt+——)總的來說,當?shù)玫较到y(tǒng)的輸出后,將輸出經(jīng)過比例,積分,微分3種運算方式,疊加到輸入中,從而控制系統(tǒng)的行為,下面用一個簡單的實例來說明。比例控制算法我們先說PID中最簡單的比例控制,拋開其他兩個不談。還是用一個經(jīng)典的例子吧。假設我有一個水缸,最終的控制目的是要保證水缸里的水位永遠的維持在1米的高度。假設初試時刻,水缸里的水位是0.2米,那么當前時刻的水位和目標水位之間是存在一個誤差的error,且error為0.8.這個時候,假設旁邊站著一個人,這個人通過往缸里加水的方式來控制水位。如果單純的用比例控制算法,就是指加入的水量u和誤差error是成正比的。即u=kp*error假設kp取0.5,那么t=1時(表示第1次加水,也就是第一次對系統(tǒng)施加控制),那么u=0.5*0.8=0.4,所以這一次加入的水量會使水位在0.2的基礎上上升0.4,達到0.6.接著,t=2時刻(第2次施加控制),當前水位是0.6,所以error是0.4。u=0.5*0.4=0.2,會使水位再次上升0.2,達到0.8.如此這么循環(huán)下去,就是比例控制算法的運行方法??梢钥吹剑罱K水位會達到我們需要的1米。但是,單單的比例控制存在著一些不足,其中一點就是-穩(wěn)態(tài)誤差?。ㄎ乙彩强戳撕芏?,并且想了好久才想通什么是穩(wěn)態(tài)誤差以及為什么有穩(wěn)態(tài)誤差)。像上述的例子,根據(jù)kp取值不同,系統(tǒng)最后都會達到1米,不會有穩(wěn)態(tài)誤差。但是,考慮另外一種情況,假設這個水缸在加水的過程中,存在漏水的情況,假設每次加水的過程,都會漏掉0.1米高度的水。仍然假設kp取0.5,那么會存在著某種情況,假設經(jīng)過幾次加水,水缸中的水位到0.8時,水位將不會再變換?。?!因為,水位為0.8,則誤差error=0.2.所以每次往水缸中加水的量為u=0.5*0.2=0.1.同時,每次加水缸里又會流出去0.1米的水!??!加入的水和流出的水相抵消,水位將不再變化?。∫簿褪钦f,我的目標是1米,但是最后系統(tǒng)達到0.8米的水位就不在變化了,且系統(tǒng)已經(jīng)達到穩(wěn)定。由此產(chǎn)生的誤差就是穩(wěn)態(tài)誤差了。(在實際情況中,這種類似水缸漏水的情況往往更加常見,比如控制汽車運動,摩擦阻力就相當于是漏水”,控制機械臂、無人機的飛行,各類阻力和消耗都可以理解為本例中的漏水3所以,單獨的比例控制,在很多時候并不能滿足要求。積分控制算法還是用上面的例子,如果僅僅用比例,可以發(fā)現(xiàn)存在暫態(tài)誤差,最后的水位就卡在0.8了。于是,在控制中,我們再引入一個分量,該分量和誤差的積分是正比關系。所以,比例+積分控制算法為:u=kp*error+ki??6rror還是用上面的例子來說明,第一次的誤差error是0.8,第二次的誤差是0.4,至此,誤差的積分(離散情況下積分其實就是做累加),jerror=0.8+0.4=1.2.這個時候的控制量,除了比例的那一部分,還有一部分就是一個系數(shù)ki乘以這個積分項。由于這個積分項會將前面若干次的誤差進行累計,所以可以很好的消除穩(wěn)態(tài)誤差(假設在僅有比例項的情況下,系統(tǒng)卡在穩(wěn)態(tài)誤差了,即上例中的0.8,由于加入了積分項的存在,會讓輸入增大,從而使得水缸的水位可以大于0.8,漸漸到達目標的1.0.)這就是積分項的作用。微分控制算法換一個另外的例子,考慮剎車情況。平穩(wěn)的駕駛車輛,當發(fā)現(xiàn)前面有紅燈時,為了使得行車平穩(wěn),基本上提前幾十米就放松油門并踩剎車了。當車輛離停車線非常近的時候,則使勁踩剎車,使車輛停下來。整個過程可以看做一個加入微分的控制策略。微分,說白了在離散情況下,就是error的差值,就是t時刻和t-1時刻error的差,即u=kd*(error(t)-error(t-1)),其中的kd是一個系數(shù)項。可以看到,在剎車過程中,因為error是越來越小的,所以這個微分控制項一定是負數(shù),在控制中加入一個負數(shù)項,他存在的作用就是為了防止汽車由于剎車不及時而闖過了線。從常識上可以理解,越是靠近停車線,越是應該注意踩剎車,不能讓車過線,所以這個微分項的作用,就可以理解為剎車,當車離停車線很近并且車速還很快時,這個微分項的絕對值(實際上是一個負數(shù))就會很大,從而表示應該用力踩剎車才能讓車停下來。切換到上面給水缸加水的例子,就是當發(fā)現(xiàn)水缸里的水快要接近1的時候,加入微分項,可以防止給水缸里的水加到超過1米的高度,說白了就是減少控制過程中的震蕩。現(xiàn)在在回頭看這個公式,就很清楚了U(t)=kp(err(t)+—Ievr(t)dt+—―j)括號內(nèi)第一項是比例項,第二項是積分項,第三項是微分項,前面僅僅是一個系數(shù)。很多情況下,僅僅需要在離散的時候使用,則控制可以化為,Tat、W=Kp&4)+方Z&m+芋(e(左)-e(k-1))K丁uK丁u(心二K盧(外十千一Ze5)+-Y~(e(左)一e(左一1))〃二0每一項前面都有系數(shù),這些系數(shù)都是需要實驗中去嘗試然后確定的,為了方便起見,將這些系數(shù)進行統(tǒng)一一下:u(k)=Kp式k)+Kj£e⑺+Kje(k)-e(左一1))仃二0這樣看就清晰很多了,且比例,微分,積分每個項前面都有一個系數(shù),且離散化的公式,很適合編程實現(xiàn)。講到這里,PID的原理和方法就說完了,剩下的就是實踐了。在真正的工程實踐中,最難的是如果確定三個項的系數(shù),這就需要大量的實驗以及經(jīng)驗來決定了。通過不斷的嘗試和正確的思考,就能選取合適的系數(shù),實現(xiàn)優(yōu)良的控制器。傳統(tǒng)數(shù)字PID控制算法模擬PID調(diào)節(jié)器:U(t)=Kp[e(t)+1Tige(t)dt+Tdde(t)dt]u(t)=Kp[e(t)+1Ti00te(t)dt+Tdde(tQt)t]假設控制周期為T,在控制器的采樣時刻t=KT時,對積分和微分做如下近似:{加e(t)dtqUj=。e(jT)=TUj=oe(j)(2)de(t)dt^e(kT)-e[(k-1)T]T=e(k)-e(k-1)T(3){00te(t)dt?T5j=0ke(jT)=T.j=0ke(j)(2)de(t)dt?e(kT)-e[(k-1)T]T=e(k)-e(k-1)T(3)將(2)(3)式代入(1)式中可得:U(t)=Kp[e(k)+TTiI>j=0e(j)+TdT[e(k)-e(k-1)]]u(t)=Kp[e(k)+TTi匯j=0ke(j)+TdT[e(k)-e(k-1)]]即位置式PID調(diào)節(jié)器的數(shù)字表達式為:U(t)=Kpe(k)+KiHj=0e(j)+Kd[e(k)-e(k-1)]u(t)=Kpe(k)+KiEj=0ke(j)+Kd[e(k)-e(k-1)](4)其中:Ki=KpTTiKi=KpTTi;Kd=KpTdTKd=KpTdT令k=k-1,則得:u(t-1)=Kpe(k-1)+KiH-ij=oe(j)+Kd[e(k-1)-e(k-2)]u(t-i)=Kpe(k-i)+KiEj=0k-1e(j)+Kd[e(k-1)-e(k-2)](5)式(4)(5)相減得:M(k)=u(k)-u(k-1)=Kp[e(k)-e(k-1)]+Ki[H=0ke(t)-2>0k-1e(t-1)]+Kd[e(k)-e(k-1)-e(k-1)+e(k-2)]=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論