久久无码人妻一区二区三区午夜_久久久久精品久久久久影院蜜桃_亚洲综合欧美色五月俺也去_交换娇妻呻吟声不停中文字幕

深圳市晧辰電子科技有限公司

干貨 | 從原理上真正學(xué)會PID控制

時間:2019-8-9閱讀:407
分享:

PID控制應(yīng)該算是應(yīng)用非常廣泛的控制算法了。小到控制一個元件的溫度,大到控制無人機(jī)的飛行姿態(tài)和飛行速度等等,都可以使用PID控制。這里我們從原理上來理解PID控制。

 

PID(proportion integration differentiation)其實(shí)就是指比例,積分,微分控制。先把圖片和公式擺出來,看不懂沒關(guān)系。(一開始看這個算法,公式能看懂,具體怎么用怎么寫代碼也知道,但是就是不知道原理,不知道為什么要用比例,微分,積分這3個項(xiàng)才能實(shí)現(xiàn)hao的控制,用其中兩個為什么不行,用了3個項(xiàng)能好在哪里,每一個項(xiàng)各有什么作用)

 

 

 

總的來說,當(dāng)?shù)玫较到y(tǒng)的輸出后,將輸出經(jīng)過比例,積分,微分3種運(yùn)算方式,疊加到輸入中,從而控制系統(tǒng)的行為,下面用一個簡單的實(shí)例來說明。

 

 

比例控制算法

我們先說PID中簡單的比例控制,拋開其他兩個不談。還是用一個經(jīng)典的例子吧。假設(shè)我有一個水缸,終的控制目的是要保證水缸里的水位永遠(yuǎn)的維持在1米的高度。假設(shè)初始時刻,水缸里的水位是0.2米,那么當(dāng)前時刻的水位和目標(biāo)水位之間是存在一個誤差的error,且error為0.8.這個時候,假設(shè)旁邊站著一個人,這個人通過往缸里加水的方式來控制水位。如果單純的用比例控制算法,就是指加入的水量u和誤差error是成正比的。 

即:u=kp*error

假設(shè)kp取0.5, 那么t=1時(表示第1次加水,也就是次對系統(tǒng)施加控制),那么u=0.5*0.8=0.4,所以這一次加入的水量會使水位在0.2的基礎(chǔ)上上升0.4,達(dá)到0.6.。

接著,t=2時刻(第2次施加控制),當(dāng)前水位是0.6,所以error是0.4。u=0.5*0.4=0.2,會使水位再次上升0.2,達(dá)到0.8。

如此這么循環(huán)下去,就是比例控制算法的運(yùn)行方法。 可以看到,終水位會達(dá)到我們需要的1米。 

但是,單單的比例控制存在著一些不足,其中一點(diǎn)就是 –穩(wěn)態(tài)誤差!(我也是看了很多,并且想了好久才想通什么是穩(wěn)態(tài)誤差以及為什么有穩(wěn)態(tài)誤差)。 

像上述的例子,根據(jù)kp取值不同,系統(tǒng)后都會達(dá)到1米,只不過kp大了到達(dá)的快,kp小了到達(dá)的慢一些。不會有穩(wěn)態(tài)誤差。但是,考慮另外一種情況,假設(shè)這個水缸在加水的過程中,存在漏水的情況,假設(shè)每次加水的過程,都會漏掉0.1米高度的水。

 

仍然假設(shè)kp取0.5,那么會存在著某種情況,假設(shè)經(jīng)過幾次加水,水缸中的水位到0.8時,水位將不會再變換。因?yàn)椋粸?.8,則誤差error=0.2。所以每次往水缸中加水的量為u=0.5*0.2=0.1.同時,每次加水,缸里又會流出去0.1米的水,加入的水和流出的水相抵消,水位將不再變化。

也就是說,我的目標(biāo)是1米,但是后系統(tǒng)達(dá)到0.8米的水位就不再變化了,且系統(tǒng)已經(jīng)達(dá)到穩(wěn)定。由此產(chǎn)生的誤差就是穩(wěn)態(tài)誤差了。

 

(在實(shí)際情況中,這種類似水缸漏水的情況往往更加常見,比如控制汽車運(yùn)動,摩擦阻力就相當(dāng)于是“漏水”,控制機(jī)械臂、無人機(jī)的飛行,各類阻力和消耗都可以理解為本例中的“漏水”)

所以,單獨(dú)的比例控制,在很多時候并不能滿足要求。

 

 

積分控制算

還是用上面的例子,如果僅僅用比例,可以發(fā)現(xiàn)存在暫態(tài)誤差,后的水位就卡在0.8了。于是,在控制中,我們再引入一個分量,該分量和誤差的積分是正比關(guān)系。所以,比例+積分控制算法為: 

u=kp*error+ ki∗∫ error 

還是用上面的例子來說明,次的誤差error是0.8,第二次的誤差是0.4,至此,誤差的積分(離散情況下積分其實(shí)就是做累加),∫error=0.8+0.4=1.2. 這個時候的控制量,除了比例的那一部分,還有一部分就是一個系數(shù)ki乘以這個積分項(xiàng)。由于這個積分項(xiàng)會將前面若干次的誤差進(jìn)行累計,所以可以很好的消除穩(wěn)態(tài)誤差(假設(shè)在僅有比例項(xiàng)的情況下,系統(tǒng)卡在穩(wěn)態(tài)誤差了,即上例中的0.8,由于加入了積分項(xiàng)的存在,會讓輸入增大,從而使得水缸的水位可以大于0.8,漸漸到達(dá)目標(biāo)的1.0.)這就是積分項(xiàng)的作用。

 

 

微分控制算法

換一個另外的例子,考慮剎車情況。平穩(wěn)的駕駛車輛,當(dāng)發(fā)現(xiàn)前面有紅燈時,為了使得行車平穩(wěn),基本上提前幾十米就放松油門并踩剎車了。當(dāng)車輛離停車線非常近的時候,則使勁踩剎車,使車輛停下來。整個過程可以看做一個加入微分的控制策略。 

微分,說白了在離散情況下,就是error的差值,就是t時刻和t-1時刻error的差,即u=kd*(error(t)-error(t-1)),其中的kd是一個系數(shù)項(xiàng)。可以看到,在剎車過程中,因?yàn)閑rror是越來越小的,所以這個微分控制項(xiàng)一定是負(fù)數(shù),在控制中加入一個負(fù)數(shù)項(xiàng),他存在的作用就是為了防止汽車由于剎車不及時而闖過了線。從常識上可以理解,越是靠近停車線,越是應(yīng)該注意踩剎車,不能讓車過線,所以這個微分項(xiàng)的作用,就可以理解為剎車,當(dāng)車離停車線很近并且車速還很快時,這個微分項(xiàng)的值(實(shí)際上是一個負(fù)數(shù))就會很大,從而表示應(yīng)該用力踩剎車才能讓車停下來。 

切換到上面給水缸加水的例子,就是當(dāng)發(fā)現(xiàn)水缸里的水快要接近1的時候,加入微分項(xiàng),可以防止給水缸里的水加到超過1米的高度,說白了就是減少控制過程中的震蕩。

 

現(xiàn)在再回頭看這個公式,就很清楚了

 

 

 

 

括號內(nèi)項(xiàng)是比例項(xiàng),第二項(xiàng)是積分項(xiàng),第三項(xiàng)是微分項(xiàng),前面僅僅是一個系數(shù)。很多情況下,僅僅需要在離散的時候使用,則控制可以化為 

 

 

 

 

每一項(xiàng)前面都有系數(shù),這些系數(shù)都是需要實(shí)驗(yàn)中去嘗試然后確定的,為了方便起見,將這些系數(shù)進(jìn)行統(tǒng)一一下: 

 

 

 

 

這樣看就清晰很多了,且比例,微分,積分每個項(xiàng)前面都有一個系數(shù),且離散化的公式,很適合編程實(shí)現(xiàn)。 

講到這里,PID的原理和方法就說完了,剩下的就是實(shí)踐了。在真正的工程實(shí)踐中,難的是如果確定三個項(xiàng)的系數(shù),這就需要大量的實(shí)驗(yàn)以及經(jīng)驗(yàn)來決定了。通過不斷的嘗試和正確的思考,就能選取合適的系數(shù),實(shí)現(xiàn)優(yōu)良的控制器。

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗(yàn)證碼

收藏該商鋪

X
該信息已收藏!
標(biāo)簽:
保存成功

(空格分隔,最多3個,單個標(biāo)簽最多10個字符)

常用:

提示

X
您的留言已提交成功!我們將在第一時間回復(fù)您~

以上信息由企業(yè)自行提供,信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),化工儀器網(wǎng)對此不承擔(dān)任何保證責(zé)任。

溫馨提示:為規(guī)避購買風(fēng)險,建議您在購買產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。

撥打電話
在線留言
主站蜘蛛池模板: 宜宾市| 延庆县| 长垣县| 长治县| 开化县| 新田县| 柞水县| 德阳市| 子长县| 陇南市| 柳江县| 忻州市| 康保县| 宜君县| 江门市| 平顺县| 商洛市| 静海县| 西宁市| 衡山县| 修水县| 鄂尔多斯市| 佛学| 延边| 丹巴县| 大悟县| 阿克陶县| 嘉义市| 沂南县| 奉新县| 伊宁市| 大足县| 成都市| 墨竹工卡县| 聂荣县| 精河县| 财经| 桦南县| 甘谷县| 咸宁市| 滦南县|