PID控制算法是應(yīng)用非常廣泛的一種控制算法,小到一個元器件的控制,大到飛機(jī)的曲線行駛、速度變化、無人機(jī)陣列等等都充斥著PID算法的身影。PID(Proportion Integration Differentiation)其實是指比例、積分、微分控制,總的來說,當(dāng)?shù)玫较到y(tǒng)的輸出后,將輸出經(jīng)過比例,積分,微分3種運算方式,疊加到輸入中,從而控制系統(tǒng)的行為。
下面我們舉一個很簡單的例子,用比例控制算法來使水缸里的水位始終維持在1米的高度,假設(shè)水位目前處在0.2米的位置,那么當(dāng)前水位(0.2m)和目標(biāo)水位(1m)之間是存在一個誤差(0.8m),這時,一個人通過往缸里加水來控制水位,用比例控制算法,就是指加入的水量u和誤差error是成正比的。即
假設(shè)kp取0.5,那么t=1時(第1次控制系統(tǒng)),那么
所以這一次加入的水量會使水位在0.2米的基礎(chǔ)上上升0.4米,達(dá)到0.6米。
接著,t=2時(第2次控制),當(dāng)前水位是0.6米,所以error是0.4。
會使水位再次上升0.2米,達(dá)到0.8米,如此下去,就是比例控制的使用方法。在經(jīng)過幾次添加之后,水位最終會達(dá)到我們1米,但是,單純使用比例控制算法也會存在著一些不足,其中一點就是“穩(wěn)態(tài)誤差”!
上述例子中,根據(jù)kp取值不同,水位最終都會達(dá)到1米,kp取值越大則上升的越快,kp取值越小則上升的越慢,不存在穩(wěn)態(tài)誤差。但是,假設(shè)這個水缸每次加水都會漏掉0.1米高度的水這種情況下,假設(shè)kp仍然取0.5,那么經(jīng)過幾次加水,水缸中的水位到0.8時,誤差error=0.2. 每次往水缸中加水的量為u=0.5*0.2=0.1米,同時,缸里每加水0.1米,又會流出0.1米,也就是說,設(shè)定的目標(biāo)值為1米,但是這種算法使系統(tǒng)水位在達(dá)到0.8米后就不再變化,由此產(chǎn)生的誤差就是穩(wěn)態(tài)誤差了。
因此,單純的比例控制,在很多時候是滿足不了使用場景的。
上述例子就能看出,如果單純的比例控制算法,會存在穩(wěn)態(tài)誤差,水位最終一直停在0.8米的位置上。于是,在控制中,我們再引入一個分量,該分量和誤差的積分是正比關(guān)系。所以,比例+積分控制算法為:
使用上述例子,第一次的誤差error是0.8,第二次的誤差是0.4,至此,誤差的積分(離散情況下積分其實就是做累加)
這個時候的控制量,除了比例的那一部分,還有一部分就是一個系數(shù)ki乘以這個積分項。由于這個積分項會將前面若干次的誤差進(jìn)行累計,所以可以很好的消除穩(wěn)態(tài)誤差(假設(shè)在僅有比例項的情況下,系統(tǒng)卡在穩(wěn)態(tài)誤差了,即上例中的0.8,由于加入了積分項的存在,會讓輸入增大,從而使得水缸的水位可以大于0.8,漸漸到達(dá)目標(biāo)的1.0)這就是積分項的作用。
一輛正常行駛的汽車,發(fā)現(xiàn)前方紅燈亮起,為了使汽車平穩(wěn)行駛,很遠(yuǎn)就停止踩油門轉(zhuǎn)向剎車,距離停止線越近,剎車降速會越快,直到停下來。整個過程可以看做一個加入微分的控制策略。
微分,最直白的說法就是在離散情況下,就是error的差值,就是t時刻和t-1時刻error的差,即
公式中的kd是一個系數(shù)項??梢钥刺?,在整個剎車過程中,error是越來越小的,因此微分控制項一定是負(fù)數(shù),加入一個負(fù)數(shù)項的作用就是為了防止汽車闖過了停止線。可從常識上理解為,距離停止線越近,剎車越明顯,不能讓車過線。所以這個微分項的作用,就可以理解為剎車,距停止線很近時并且車速快微分項絕對值會很大。
現(xiàn)在在回頭看這個公式,就很清楚了
括號內(nèi)第一項是比例項,第二項是積分項,第三項是微分項,前面僅僅是一個系數(shù)。很多情況下,僅僅需要在離散的時候使用,則控制可以化為
每一項前面都有系數(shù),這些系數(shù)都是需要實驗中去嘗試然后確定的,為了方便起見,將這些系數(shù)進(jìn)行統(tǒng)一:
統(tǒng)一之后這些公式就變得清晰明了了,比例算法、微分算法、積分算法,每種算法都有個系數(shù),直接使用這個系數(shù)回簡化編程邏輯。
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多串口服務(wù)器、數(shù)傳電臺、lora無線模塊等產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(微信號:cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號-3