PID实例讲解(适合小白),PID三个变量的作用与关系
故事案例
下故事摘自其他文章
小明接到這樣一個任務:有一個水缸點漏水(而且漏水的速度還不一定固定不變),要求水面高度維持在某個位置(100%),一旦發現水面高度低于要求位置(85%),就要往水缸里加水。
小明接到任務后就一直守在水缸旁邊,時間長就覺得無聊,就跑到房里看小說了,每30分鐘來檢查一次水面高度。水漏得太快,每次小明來檢查時,水都快漏完了,離要求的高度相差很遠,小明改為每3分鐘來檢查一次,結果每次來水都沒怎么漏,不需要加水,來得太頻繁做的是無用功。幾次試驗后,確定每10分鐘來檢查一次。這個檢查時間就稱為采樣周期。
開始小明用瓢加水,水龍頭離水缸有十幾米的距離,經常要跑好幾趟才加夠水,于是小明又改為用桶加,一加就是一桶,跑的次數少了,加水的速度也快了,但好幾次將缸給加溢出了,不小心弄濕了幾次鞋,小明又動腦筋,我不用瓢也不用桶,老子用盆,幾次下來,發現剛剛好,不用跑太多次,也不會讓水溢出。這個加水工具的大小就稱為比例系數。
小明又發現水雖然不會加過量溢出了,有時會高過要求位置比較多,還是有打濕鞋的危險。他又想了個辦法,在水缸上裝一個漏斗,每次加水不直接倒進水缸,而是倒進漏斗讓它慢慢加。這樣溢出的問題解決了,但加水的速度又慢了,有時還趕不上漏水的速度。于是他試著變換不同大小口徑的漏斗來控制加水的速度,最后終于找到了滿意的漏斗。漏斗的時間就稱為積分時間。
小明終于喘了一口,但任務的要求突然嚴了,水位控制的及時性要求大大提高,一旦水位過低,必須立即將水加到要求位置,而且不能高出太多,否則不給工錢。小明又為難了!于是他又開努腦筋,終于讓它想到一個辦法,常放一盆備用水在旁邊,一發現水位低了,不經過漏斗就是一盆水下去,這樣及時性是保證了,但水位有時會高多了。他又在要求水面位置上面一點將水鑿一孔,再接一根管子到下面的備用桶里這樣多出的水會從上面的孔里漏出來。這個水漏出的快慢就稱為微分時間。
過程分析
1.第一步,小明同學確認了一個好的采樣周期,開始30分鐘太長,后3分鐘太短,多次試驗后,選擇了10分鐘。我們可以把采樣周期作為一個提前量,采樣周期的選定直接影響后續變量值。我們這里討論恒定采樣周期,復雜些的非恒定采樣周期后面文章再討論。
2.第二步,在確定恒定采樣周期為10分鐘后,我們在瓢、盆、桶幾個工具中選擇了盆,思路為:用瓢裝水次數太多,用桶容易裝滿導致溢出,用盆恰好。(好,到這里又要討論一下采樣周期,我們剛才說了在恒定采樣周期為10分鐘時,我們最佳選擇是盆,但如果采樣周期為30分鐘一次,盆就不是最佳選擇)。而選擇盆的的數學意義就是控制比例系數。如果把瓢、盆、桶比例化,大致為5%、15%、30%。在現實中,存在一個問題為,我們很難選擇到合適的工具,使得比例符合要求,比如我們要能裝15%水量的盆,但現實中可能只有14%或16%的盆,達不到15%的標準,而差異的這部分我們叫做穩態誤差,即只要在恒定采樣周期,使用同一比例系數,總會產生的誤差,叫做穩態誤差。
??
3.第三步,到目前為止,我們僅用到了PID中的P,即比例系數,理想情況下,假設采樣周期恒定,比例恒定,僅僅P就足夠了,如缸中水線低于85%加水,使用盆(15%)調整后重新回到達到100%,10分鐘后水位回到85%,繼續加水如此往復。但現實情況為,因為穩態誤差的問題,我們找不到合適大小的盆,無法控制比例一定為15%(且缸的漏水速度不一致,但采用周期是恒定的)。假設現實中,我們的盆比例大小為16%,每次加水總會漏1%,我們利用缸自身漏水這一點,加入一個元素控制倒水的速度,使得在盆中多出的1%在倒水時間中恰好等于缸自身的漏水值。小明選擇的用漏斗(調整口徑)來控制水流速度。在這里,漏斗口徑大小(控制水流速度)為積分系數,通常,積分I就是為了消除穩態誤差而存在
4.第四步,到目前為止,我們用到了PID中的PI,比例系數和積分系數。我們能做到讓水線控制在100%,并且倒水也不會溢出了。如果不考慮響應時間,僅PI就可以滿足需求了,但新的需求是,必須在一定時間內響應,用漏斗水流速度太慢,需要15s才能完全將水倒入,而系統要求2s內完成響應,此時也可以調整I積分系數,選擇大口徑的漏斗,考慮到現實中可能沒有這么大口徑的漏斗(工具無法滿足),我們引入一個新的影響因素:D微分系數。上文說的“在水面位置上面一點將水鑿一孔”,由于水位要求為100%(我修改了一下原文),所以改為:不使用漏斗向其中倒水,溢出的水量用容器承載,倒水前在盆中舀出容器大小水量。于是乎,我們不使用漏斗,提前舀出水量,這樣倒入后也不會溢出了。于是,我們僅憑PD就可以控制水線,那I是不是可以不用了呢?回答這個問題前,我們先做一次總結。
5.總結,整個過程為:選擇恒定采樣周期后,選擇合適的比例系數(如盆),使用盆發現水總是溢出(過調),多次觀察為穩態誤差,為了消除問題誤差,我們加入漏斗放慢倒水速度,縮減過調程度,這一過程為調整積分系數。但因為要求倒水速度要加快,于是拿掉漏斗,以打提前量的方式在盆中舀出可能溢出的水量。
以上總結會產生幾個疑問,其一是:使用PI或PD,或PID都使用,這些組合分別有什么區別,哪一種最好?
首先,我們可以確認P比例是必須有的,使用比例后可能產生超調,為了消除超調,我們控制盆倒水速度(即控制比例調整速度),水量還是那個水量,只是因為調整速度變慢了,在倒水過程中,由于缸自身存在漏水速度,恰好抵平盆的過調量,此時系統趨于穩定。但加入漏斗后調整速度太慢了,達不到要求響應時間,于是取消漏斗,測量過調量,再調整前舀出溢出水量,以此在響應時間內達到要求,但也產生了一個問題,缸的漏水速度是勻速嗎?我們在事件還未發生前,怎么確定舀出量呢?參考上一次嗎?我們把缸漏水速度稱為擾動(或噪聲)因素(之一),此時系統雖比僅有P時穩定,但任存在擾動,難以做到精準控制。
PI組合可能產生的問題:響應速度慢
PD組合可能產生的問題:抗擾動能力弱
若使用PID三個一起作用呢:通過使用P控制了倒水量,產生過調,使用I控制倒水速度,消除過調,但響應時間過慢,加入D不取消漏斗,但需要調整I的大小(增大漏斗半徑,對應為積分系數減小),使得系統再次趨于不穩定,但比僅P時穩定性好,測量溢出水量(即調整合適的D大小),使得整體的輸入量減小,此時系統再次趨于穩定。
在這個案例中,我們將實際動作做一層抽象,形成抽象名詞:
- 設定值:水缸85%水線
- 實際值:水缸實際水線
- 輸入值:倒水量(盆)
- 測量傳感器:人眼,載水容器
- 測量值:水是否溢出,水是否在水線以下,水溢出量
- 執行者:人
- 執行動作:倒水,舀水
- 誤差:缸漏水速度
- 可調變量:總倒水量,倒水周期,倒水速度,舀水量
- 正作用:倒水
- 方作用:舀水
我們對PID有以下總結:
- 增大比例系數P一般將加快系統的響應,但是過大的比例系數會使系統有比較大的超調(若誤差恒定即為穩態誤差),并產生振蕩,使穩定性變壞。
- 增大積分時間I有利于減小超調(消除穩態誤差),減小振蕩,使系統的穩定性增加,但會使得調整時間變長。
- 增大微分時間D有利于加快系統的響應速度,使系統超調量減小,穩定性增加,但系統對擾動的抑制能力減弱。
?我們對PID的調節有以下總結:
- 增大P,系統響應速度變快,但系統不穩定。
- 增大I,系統趨于穩定,但響應速度慢。
- 調小I,響應速度變快,但系統趨于不穩定,增大D,使系統盡可能穩定。
參考:
比例(P)控制
比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號成比例關系。當僅有比例控制時系統輸出存在穩態誤差(Steady-state error)。
積分(I)控制
在積分控制中,控制器的輸出與輸入誤差信號的積分成正比關系。對一個自動控制系統,如果在進入穩態后存在穩態誤差,則稱這個控制系統是有穩態誤差的或簡稱有差系統(System with Steady-state Error)。為了消除穩態誤差,在控制器中必須引入“積分項”。積分項對誤差取決于時間的積分,隨著時間的增加,積分項會增大。這樣,即便誤差很小,積分項也會隨著時間的增加而加大,它推動控制器的輸出增大使穩態誤差進一步減小,直到等于零。因此,比例+積分(PI)控制器,可以使系統在進入穩態后無穩態誤差。
微分(D)控制
在微分控制中,控制器的輸出與輸入誤差信號的微分(即誤差的變化率)成正比關系。 自動控制系統在克服誤差的調節過程中可能會出現振蕩甚至失穩。其原因是由于存在有較大慣性組件(環節)或有滯后(delay)組件,具有抑制誤差的作用,其變化總是落后于誤差的變化。解決的辦法是使抑制誤差的作用的變化“超前”,即在誤差接近零時,抑制誤差的作用就應該是零。這就是說,在控制器中僅引入“比例”項往往是不夠的,比例項的作用僅是放大誤差的幅值,而目前需要增加的是“微分項”,它能預測誤差變化的趨勢,這樣,具有比例+微分的控制器,就能夠提前使抑制誤差的控制作用等于零,甚至為負值,從而避免了被控量的嚴重超調。所以對有較大慣性或滯后的被控對象,比例+微分(PD)控制器能改善系統在調節過程中的動態特性。
總結
以上是生活随笔為你收集整理的PID实例讲解(适合小白),PID三个变量的作用与关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教育平台项目后台管理系统:介绍与搭建
- 下一篇: 以太网接口的半双工和全双工及工作原理