pid控制算法系列pid控制算法_第1頁
pid控制算法系列pid控制算法_第2頁
pid控制算法系列pid控制算法_第3頁
pid控制算法系列pid控制算法_第4頁
pid控制算法系列pid控制算法_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、pid控制算法系列(2)pid控制算法.PID控制算法的基本思想PJD控制算法基本原理PID算法是一種具有預(yù)見性的控制算法,其核心思想是:1>.PID算法不但考慮控制對(duì)象的當(dāng)前狀態(tài)值(現(xiàn)在狀態(tài)),而且還考慮控制對(duì)象過去一段時(shí)間的狀態(tài)值(歷史狀態(tài))和最近一段時(shí)間的狀態(tài)值變化(預(yù)期),由這3方面共同決定當(dāng)前的輸出控制信號(hào);2>.PID控制算法的運(yùn)算結(jié)果是一個(gè)數(shù),利用這個(gè)數(shù)來控制被控對(duì)象在多種工作狀態(tài)(比如加熱器的多種功率,閥門的多種開度等)工作,一般輸出形式為PWM,基本上滿足了按需輸出控制信號(hào),根據(jù)情況隨時(shí)改變輸出的目的。1 .PID算法分析:設(shè)某控制系統(tǒng):用戶設(shè)定值為SV(也就是希

2、望通過PID控制算法使被控制對(duì)象的狀態(tài)值保持在SV的附近)。1>從系統(tǒng)投入運(yùn)行開始,控制算法每隔一段時(shí)間對(duì)被控制對(duì)象的狀態(tài)值進(jìn)行采樣。由此,可得到開機(jī)以來由各個(gè)采樣時(shí)間點(diǎn)被控制對(duì)象的狀態(tài)值所形成的數(shù)據(jù)序列:X1,X2,X3,X4,.Xk-2,Xk-1,Xk說明:X1:開機(jī)以來的第一次采樣值Xk:目前的采樣值(最近一次的采樣值)2>從這個(gè)采樣值序列中提取出三方面信息:當(dāng)前采樣值Xk與用戶設(shè)定值SV之間的差值:EkEk=Sv-Xk分析Ek:Ek>0:說明當(dāng)前狀態(tài)值未達(dá)標(biāo)Ek=0:說明當(dāng)前控制狀態(tài)值正好滿足要求Ek<0:說明當(dāng)前狀態(tài)值已經(jīng)超標(biāo)結(jié)論:Ek反應(yīng)了控制對(duì)象當(dāng)前值與設(shè)

3、定值的偏差程度,可以根據(jù)Ek的大小對(duì)輸出信號(hào)OUT進(jìn)行調(diào)整:偏差程度大OUT增大,偏差程度小OUT減小。即輸出信號(hào)的強(qiáng)弱與當(dāng)前偏差程度的大小成比例,所以根據(jù)Ek的大小來給出控制信號(hào)OUT的當(dāng)前值的算法稱為比例控制(Proportion)。用數(shù)學(xué)模型可以表示為:POUT=(Kp*Ek)+Out0Kp:一般稱之為比例系數(shù),可以理解為硬件上的放大器(或衰減器),適當(dāng)選取Kp將當(dāng)前誤差值Ek按一定的增益放大或縮小,以提高控制算法的相應(yīng)速度。Out0:是一個(gè)常數(shù),目的是為了當(dāng)Ek為0時(shí),確保輸出信號(hào)不為0,以不至于在當(dāng)前值與設(shè)定值相等時(shí)控制器輸出信號(hào)OUT為0,系統(tǒng)處于無控制信號(hào)的失控狀態(tài)。將投入運(yùn)行以

4、來的各個(gè)采樣值都與設(shè)定值相減,可得到開機(jī)以來每個(gè)采樣時(shí)刻的偏差序列數(shù)據(jù):E1,E2,E3.Ek-2,Ek-1,Ek說明:E1:開機(jī)的第一個(gè)采樣點(diǎn)與設(shè)定值的偏差E1=SV-X1;E2=SV-X2;EK-2=SV-XK-2;EK-1=SV-XK-1;Ek:當(dāng)前的采樣值與設(shè)定值的偏差EK=SV-XK分析開機(jī)以來的誤差序列:每個(gè)偏差值可能有:>0,<0,=0這三種可能的值,因?yàn)閺拈_機(jī)到現(xiàn)在,控制算法不斷輸出控制信號(hào)對(duì)被控對(duì)象進(jìn)行控制,導(dǎo)致了過去這段時(shí)間有時(shí)候超標(biāo)(Ex<0),有些時(shí)候未達(dá)標(biāo)(Ex>0),有時(shí)候正好滿足要求(Ex=0);如果將這些偏差值進(jìn)行累加求代數(shù)和得到Sk,即

5、:Sk=E1+E2+E3+Ek-2+Ek-1+Ek分析Sk:Sk>0:過去大多數(shù)時(shí)候未達(dá)標(biāo)Sk=0:過去控制效果較理想Sk<0:過去大多數(shù)時(shí)候已經(jīng)超標(biāo)結(jié)論:1.通過對(duì)Sk的分析,可以對(duì)控制算法過去的控制效果進(jìn)行綜合評(píng)估。體現(xiàn)了控制算法按照原來的方式輸出的控制信號(hào)導(dǎo)致了現(xiàn)在的控制結(jié)果,所以應(yīng)該利用這個(gè)值來對(duì)當(dāng)前要輸出的控制信號(hào)OUT進(jìn)行修正,以確保控制對(duì)象會(huì)在將來的一小段時(shí)間盡快達(dá)到用戶設(shè)定的值。2.Sk實(shí)際上是過去每個(gè)時(shí)間點(diǎn)的誤差相加,與數(shù)學(xué)上的定積分運(yùn)算類似,因此根據(jù)Sk對(duì)輸出信號(hào)進(jìn)行調(diào)節(jié)的算法稱積分(integral)算法。所以積分控制的數(shù)學(xué)模型為:IOUT=(kp*(1/Ti

6、)Exdt)+Out0Kp是一常數(shù),其目的類似硬件上的放大器,用于將Sk放大或衰減;Out0是一常數(shù),為了在歷史積分偏差值為0時(shí)確保系統(tǒng)有一個(gè)輸出值,避免失控;Ti是積分時(shí)間常數(shù),取值越大會(huì)導(dǎo)致輸出量OUT會(huì)越小,可理解為歷史上已經(jīng)很久的誤差值都影響了當(dāng)前的輸出信號(hào)。取值越小,輸出OUT會(huì)越強(qiáng)烈,可理解為積分只考慮了最近一段時(shí)間的誤差。實(shí)際中,如果系統(tǒng)已經(jīng)運(yùn)行很長”一段時(shí)間了,那些早期采樣的偏差值可以忽略他們對(duì)當(dāng)前控制的影響,所以應(yīng)該根據(jù)情況選擇合理的Ti值方能得到良好的控制效果。最近兩次的偏差之差DkDk=Ek-Ek-1說明:Ek:當(dāng)前的偏差Ek-1:基于當(dāng)前的前一個(gè)采樣時(shí)刻的偏差值(即上一

7、次的偏差值);分析Dk:Dk>0:說明從上一采樣時(shí)刻到當(dāng)前誤差有增大趨勢Dk=0:說明從上一采樣時(shí)刻到當(dāng)前誤差平穩(wěn)Dk<0:說明從上一采樣時(shí)刻到當(dāng)前誤差有減小趨勢結(jié)論:Dk能夠說明從上次采樣到當(dāng)前采樣的這段時(shí)間被控制對(duì)象的狀態(tài)變化趨勢,這種變化的趨勢很可能會(huì)在一定程度上延續(xù)到下一個(gè)采樣時(shí)間點(diǎn),所以可以根據(jù)這個(gè)變化趨勢(Dk的值)對(duì)輸出信號(hào)OUT進(jìn)行調(diào)整,達(dá)到提前控制的目的。Dk形如數(shù)學(xué)上的微分運(yùn)算,反應(yīng)了控制對(duì)象在一段時(shí)間內(nèi)的變化趨勢及變化量,所以利用Dk對(duì)控制器輸出信號(hào)進(jìn)行調(diào)節(jié)的算法稱為微分(differential)算法。可以用數(shù)學(xué)模型表達(dá)為:DOUT=Kp*(Td(de/dt

8、)+Out0Kp:為一常數(shù),可理解為硬件上的放大器或衰減器,用于對(duì)輸出信號(hào)OUT的增益進(jìn)行調(diào)整;Out0:為一常數(shù),為了在Dk為0時(shí)確保OUT都有一個(gè)穩(wěn)定的控制值,避免失控。Td:叫微分時(shí)間常數(shù),(猶如硬件上電感器的自感系數(shù))Td越大導(dǎo)致OUT增大,對(duì)輸出信號(hào)產(chǎn)生強(qiáng)烈的影響。1 3>PID算法的形成.比例、積分、微分三種算法的優(yōu)缺點(diǎn)分析:POUT=(Kp*Ek)+Out0比例算法IOUT=kp*(1/Ti)Exdt)+Out0-積分算法DOUT=Kp*(Td(de/dt)+Out0一微分算法比例算法:只考慮控制對(duì)象當(dāng)前誤差,當(dāng)前有誤差才輸出控制信號(hào),當(dāng)前沒有誤差就不輸出控制信號(hào),也就是說

9、只要偏差已經(jīng)產(chǎn)生了比例算法才采取措施進(jìn)行調(diào)整,所以單獨(dú)的比例算法不可能將控制對(duì)象的狀態(tài)值控制在設(shè)定值上,始終在設(shè)定值上下波動(dòng);但是比例控制反應(yīng)靈敏,有誤差馬上就反應(yīng)到輸出。積分算法:考慮了被控制對(duì)象的歷史誤差情況,過去的誤差狀況參與了當(dāng)前的輸出控制,但是在系統(tǒng)還沒有達(dá)到目標(biāo)期間,往往會(huì)因?yàn)檫@些歷史的誤差對(duì)當(dāng)前的控制產(chǎn)生了干擾(即拖后腿),使用不當(dāng)反而攪亂當(dāng)前的輸出。但是在系統(tǒng)進(jìn)入穩(wěn)定狀態(tài)后,特別是當(dāng)前值與設(shè)定值沒有偏差時(shí),積分算法可以根據(jù)過去的偏差值輸出一個(gè)相對(duì)穩(wěn)定的控制信號(hào),以防止產(chǎn)生偏離目標(biāo),起到打預(yù)防針的效果。微分算法:單純的考慮了近期的變化率,當(dāng)系統(tǒng)的偏差趨近于某一個(gè)固定值時(shí)(變化率為

10、0),微分算法不輸出信號(hào)對(duì)其偏差進(jìn)行調(diào)整,所以微分算法不能單獨(dú)使用,它只關(guān)心偏差的變化速度,不考慮是否有偏差(偏差變化率為0時(shí)偏差不一定是0).但是微分算法能獲得控制對(duì)象近期的變化趨勢,它可以協(xié)助輸出信號(hào)盡早的抑制控制對(duì)象的變化??梢岳斫鉃閷⒁袆×易兓瘯r(shí)就大幅度調(diào)整輸出信號(hào)進(jìn)行抑制,避免了控制對(duì)象的大幅度變化。以上三種算法綜合起來產(chǎn)生一個(gè)當(dāng)前的控制量對(duì)控制對(duì)象進(jìn)行控制,它們的優(yōu)缺點(diǎn)互補(bǔ),即形成經(jīng)典的PID算法。2 .PID算法數(shù)學(xué)模型OUT=POUT+IOUT+DOUT即:OUT-(Kp*Ek)+OutO)+(kn*(l/Ti|Exdt)+OutOj+(Kp*Td(de/dt)+OutO)廠

11、整理該式子得到:將各項(xiàng)的Out0歸并為OUT0。府OUT*由Ek+(l/li)Exdt)+(Td(de/dt)+OUTOj3 .PID算法在單片機(jī)中的應(yīng)用1)PID算法在單片機(jī)中應(yīng)用時(shí),對(duì)積分和微分項(xiàng)可以作近似變換:對(duì)于積分項(xiàng)可改寫成:nI=1/Ti匯Ek*Tk=0即用過去一段時(shí)間的采樣點(diǎn)的偏差值的代數(shù)和的代替積分。T是采樣周期,也叫控制周期,每隔T時(shí)間段進(jìn)行一次PID計(jì)算。對(duì)于微分項(xiàng)可改寫成:D=TD*(Ek-Ek-1)/T)Ek:本次偏差,Ek-1上次的偏差值2)位置式PID算法數(shù)學(xué)模型由此可得到單片機(jī)中PID算法的表達(dá)式:OUT=kp(Ek+(1/Ti)Exdt)+(Td(de/dt)+

12、OUT0=>OUT=nKp(En+(1/Ti匯Ek*T+(TD*(Ek-Ek-1)/T)+out0k=0進(jìn)一步展開得:nOUT=(Kp*Ek)+(Kp*(T/Ti)EEk)(Kp*(TD/T)(EK-Ek-1)+OUT0k=0令Ki=Kp*(T/Ti);KD=(Kp*(TD/T)故:nOUT=(Kp*Ek)+(KiEEk)+(KD(EK-Ek-1)+OUT0k=0程序設(shè)計(jì)時(shí)利用C語言或匯編語言可以方便實(shí)現(xiàn)這個(gè)計(jì)算公式。OUT即為本次運(yùn)算的結(jié)果,利用OUT可以去驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)輸出對(duì)應(yīng)的控制信號(hào),例如溫度控制就可以控制PWM的寬度,電磁閥就可以改變電磁線圈電流以改變閥門開度,或者是可控硅的導(dǎo)通

13、角度等;這種PID算法計(jì)算出的結(jié)果(OUT值)表示當(dāng)前控制器應(yīng)該輸出的控制量,所以稱為位置式(直接輸出了執(zhí)行機(jī)構(gòu)應(yīng)該達(dá)到的狀態(tài)值)。3)增量式PID算法位置式PID算法計(jì)算量較大,比較消耗處理器的資源。在有些控制系統(tǒng)中,執(zhí)行機(jī)構(gòu)本身沒有記憶功能,比如MOS管是否導(dǎo)通完全取決于控制極電壓,可控硅是否導(dǎo)通取決于觸發(fā)信號(hào),繼電器是否接通取決于線圈電流等,只要控制信號(hào)丟失,執(zhí)行機(jī)構(gòu)就停止,在這些應(yīng)用中應(yīng)該采用位置式PID。也有一些執(zhí)行機(jī)構(gòu)本身具有記憶功能,比如步進(jìn)電機(jī),即使控制信號(hào)丟失,由于其自身的機(jī)械結(jié)構(gòu)會(huì)保持在原來的位置等,在這些控制系統(tǒng)中,PID算法沒有必要輸出本次應(yīng)該到達(dá)的真實(shí)位置,只需要說明

14、應(yīng)該在上次的基礎(chǔ)上對(duì)輸出信號(hào)做多大的修正(可正可負(fù))即可,這就是增量式PID算法。增量式PID計(jì)算出的是應(yīng)該在當(dāng)前控制信號(hào)上的調(diào)整值,如果計(jì)算出為正,則增強(qiáng)輸出信號(hào);如果計(jì)算出為負(fù)則減弱輸出信號(hào)。增量式PID算法數(shù)學(xué)模型:如果用OUTK-1表示上次的輸出控制信號(hào)值,那么當(dāng)前的輸出值應(yīng)該為OUTk,這兩者之間的關(guān)系為:OUTK=OUTk-1+OUTOUT即為應(yīng)該輸出的增量值;上式變形得:OUT=OUTK-OUTk-1本次的位置式算法輸出:nOUTk=(Kp*Ek)+(KiEEk)+(KD(EK-Ek-1)+OUT0-1式k=0上次的位置式算法輸出:n-1OUTk-1=(Kp*Ek-1)+(Ki匯

15、Ek)+(KD(EK-1-Ek-2)+OUT0-2式k=0上述1式減2式即得到相鄰兩次的增量:如前所述:Ki=Kp*(T/Ti);KD=(Kp*(TD/T)OUT=OUTK-OUTk-1=kp(EK-EK-1)+(Kp*T)/Ti)Ek+(Kp*TD)/T)*(Ek-2Ek-1+Ek-2)EK:本次的偏差;Ek-1:上次的偏差Ek-2:上上次的偏差Kp:算法增益調(diào)節(jié)Ti:積分時(shí)間TD:微分時(shí)間常數(shù)結(jié)論:增量式PID的計(jì)算只需要最近3次的偏差(本次偏差,上次偏差,上上次偏差),不需要處理器存儲(chǔ)大量的歷史偏差值,計(jì)算量也相對(duì)較少,容易實(shí)現(xiàn)。4)關(guān)于Ti和TD的理解:在PID控制算法中,當(dāng)前的輸出信號(hào)由比例項(xiàng),積分

溫馨提示

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

評(píng)論

0/150

提交評(píng)論