經(jīng)典的自動控制算法 PID ,了解一下?
編輯導(dǎo)語:PID控制算法應(yīng)該是比較常見和廣泛應(yīng)用的一個算法了,常用于無人機(jī)、平衡車等,進(jìn)行速度、狀態(tài)的控制;本文作者分享了關(guān)于自動控制算法PID的原理和用途,我們一起來看一下。
生活中的一些小電器,無人機(jī)的飛行姿態(tài)和飛行速度控制等等,都應(yīng)用到 PID——PID 控制在自動控制原理中是一套比較經(jīng)典的算法。
我們常見到這類設(shè)備,只不過沒有留心或者發(fā)現(xiàn)了沒有深入探究以及主動搜索一下其中的原理而已。
為什么說產(chǎn)品經(jīng)理需要保持強(qiáng)烈的好奇心?發(fā)現(xiàn)生活、身邊的美,探究一下為我所用。
比如我們家里的恒溫?zé)崴鳌⑿∶椎钠胶廛?,我們常常說的自動駕駛、無人機(jī)、掃地機(jī)、大火的服務(wù)機(jī)器人等等產(chǎn)品上有廣泛的應(yīng)用。
不管你學(xué)沒學(xué)過控制理論,只要涉及到機(jī)電一體化系統(tǒng),一定會接觸到 PID 控制算法。
為什么需要 PID 控制器呢?
你一定用過恒溫?zé)崴畨?,你想讓熱水壺的水保持在一個恒定的溫度,回到家拿起來就喝,不需要慢慢等水燒開再等到水冷卻到適合咕咚咕咚喝的溫度。
這時候就需要一種算法先將水溫加熱到目標(biāo)位置附近,能夠“預(yù)見”這個水溫的變化趨勢,然后還能根據(jù)各種環(huán)境影響因素造成誤差去調(diào)節(jié)以維持設(shè)定目標(biāo)。
當(dāng)然,熱水壺不需要那么高的精確度,可能只用 PD 就搞定了。
那,比如自動駕駛中控制汽車維持在某個設(shè)定的速度行駛,或?qū)⑵嚤3衷谝粋€固定車道內(nèi)行駛,這就需要非常精準(zhǔn)。
這下你知道 PID 到底是個什么東東了吧!
接下來,我們了解一下他的原理。
一、什么是 PID及其原理
1. 什么是 PID
PID,即比例 Proportion、積分 Integral 和微分 Derivative 三個單詞的縮寫;比例積分微分控制,簡稱PID控制。
簡單講,根據(jù)給定值和實際輸出值構(gòu)成控制偏差,將偏差按比例、積分和微分通過線性組合構(gòu)成控制量,對被控對象進(jìn)行控制。
常規(guī) PID 控制器作為一種線性控制器。
2. PID 原理
常規(guī)的 PID 控制原理圖:
系統(tǒng)由 PID 控制器和被控對象(常常是執(zhí)行機(jī)構(gòu),如電機(jī)等)組成。
現(xiàn)在知道了 PID 控制器是怎么工作的,那么為什么需要比例、積分、微分三個環(huán)節(jié)呢?具體有什么作用呢?
- 比例環(huán)節(jié):當(dāng)被控制對象現(xiàn)狀與目標(biāo)有差距的時候,控制器就產(chǎn)生一個控制使得被控制對象向目標(biāo)靠近。所以這是根據(jù)目標(biāo)差距進(jìn)行一個有比例的調(diào)節(jié)。
- 微分環(huán)節(jié):當(dāng)被控制對象越來越接近目標(biāo)的時候,當(dāng)然不能按照比例調(diào)節(jié)的給定量去執(zhí)行。所以引入一個對未來趨勢的判斷給定量。
- 積分環(huán)節(jié):當(dāng)比例和微分環(huán)節(jié)控制達(dá)到預(yù)設(shè)目標(biāo)時,對一段時間內(nèi)的靜態(tài)誤差進(jìn)行糾偏。
從時間的角度講,比例作用是針對系統(tǒng)當(dāng)前誤差進(jìn)行控制,積分作用則針對系統(tǒng)誤差的歷史,而微分作用則反映了系統(tǒng)誤差的變化趨勢,這三者的組合是“過去、現(xiàn)在、未來”的完美結(jié)合。
引述百度的標(biāo)準(zhǔn)解釋:
- 比例環(huán)節(jié):即時成比例地反應(yīng)控制系統(tǒng)的偏差信號e(t),偏差一旦產(chǎn)生,控制器立即產(chǎn)生控制作用以減小誤差。當(dāng)偏差e=0時,控制作用也為0;因此,比例控制是基于偏差進(jìn)行調(diào)節(jié)的,即有差調(diào)節(jié)。
- 積分環(huán)節(jié):能對誤差進(jìn)行記憶,主要用于消除靜態(tài)差,提高系統(tǒng)的無差度,積分作用的強(qiáng)弱取決于積分時間常數(shù)Ti,Ti越大,積分作用越弱,反之則越強(qiáng)。
- 微分環(huán)節(jié):能反映偏差信號的變化趨勢(變化速率),并能在偏差信號值變得太大之前,在系統(tǒng)中引入一個有效的早期修正信號,從而加快系統(tǒng)的動作速度,減小調(diào)節(jié)時間。
例子稍微極端一點(diǎn)兒,假設(shè)你在高速公路上想跟著你前面的車 100 米的距離跑,并且假設(shè)你前面的車是自動駕駛的定速巡航。
這時,你把三個環(huán)節(jié)想象成你自己=比例,你另外的兩個兄弟,一個是微分,一個是積分。
現(xiàn)在你們倆的車相距 300m,你一腳油門下去,車子急加速開始逼近目標(biāo)。
你的車慢慢靠近 100m 這個目標(biāo)。
這時,你的兄弟「微分」說:“兄弟,慢點(diǎn)慢點(diǎn)!!快要接近了”。這就是微分的作用,對未來的判斷和控制。
你肯定不會一次性就將這個跟車距離調(diào)整好了??赡苣阋粫盒∮?100m ,一會兒你又大于 100m 跟蹤距離。
就這樣你跟你兄弟這樣來來回回的調(diào)整,終于將跟車距離調(diào)整在 100m 左右這樣的距離(比較極端哈,人為是不可能做到的)。
可是路上有坑洼呀、有風(fēng)阻、還有上坡這樣的環(huán)境干擾因素。
這時,你那個好久沒說話的兄弟「積分」起作用了,他一直在監(jiān)視你這段平穩(wěn)駕駛(100m 跟車的穩(wěn)定狀態(tài))狀態(tài)的誤差,然后進(jìn)行計算,告訴你給多少油門。
至此,我想應(yīng)該對 PID 有了初步的認(rèn)識。
接下來通過一個稍微詳細(xì)點(diǎn)兒的例子了解一下 PID 三個環(huán)節(jié)是如何工作的。
二、PID 三個環(huán)節(jié)如何工作
我們就用比較火熱的自動駕駛來簡單舉例,那自動駕駛很直觀的就有兩個應(yīng)用,一個是保持固定的車道行駛,一個就是保持固定的速度行駛。
保持固定的車道就是控制方向盤,保持固定速度就是控制油門;這兩個都比較直觀,我們就用固定速度(定速巡航)來簡單舉例。
定速巡航也是非常成熟的技術(shù)了,在很多中低端車型上已經(jīng)成了標(biāo)配。
1. 我們先講 P——比例調(diào)節(jié)
現(xiàn)在我們想讓我們的車在高速公路上保持 100km/h 的速度行駛,當(dāng)前速度是 40km/h。
想要到達(dá) 100km/h 有三種執(zhí)行方式:
- 猛踩油門,車速快速提升,以最快的速度接近 100km/h;
- 溫和的踩油門,車速中等,以溫和的速度接近 100km/h;
- 緩慢的踩油門,車速較慢,以較慢的速度接近 100km/h。
分別對應(yīng)的 P 值是:較大、中等、較小。
直觀的反應(yīng)對比如圖:
從圖中可以看出:
- 當(dāng) P 值較大時,車輛以更快的速度和最短的時間達(dá)到 100km/h;
- 當(dāng) P 值中等時,車輛相對于 P 值較大時,反應(yīng)相對慢點(diǎn)兒,也就是以相對較慢和更長一點(diǎn)兒的時間到達(dá) 100km/h;
- 當(dāng) P 值較小時,車輛的反應(yīng)速度就更慢,到達(dá) 100km/h 所耗費(fèi)的時間也更長。
說到這兒你可能就明白了。
車輛的反應(yīng)速度和耗費(fèi)時間的長短取決于 P 值的大小——也就是 P 值越大,車輛反應(yīng)越快,耗時越短。
P 值大,雖然反應(yīng)快,但是反應(yīng)劇烈,類似于猛加速,坐在汽車?yán)镉袕?qiáng)烈的推背感;相應(yīng)的當(dāng)靠近目標(biāo)的時候,由于慣性容易沖過頭,并且為了抑制過大沖過頭就需要猛烈的踩剎車,乘坐的人就身體向前傾。
另外由于慣性比較大的原因,車輛需要更長的時間才能調(diào)整到恒定 100km/h 的速度,因為車輛需要較長的時間來調(diào)整震蕩。
這樣的乘坐體驗就不是很好,這就需要我們設(shè)置一個合理的 P 值,車輛的反應(yīng)不那么劇烈,反應(yīng)時間你也能夠接受。
類似于你開汽車,你用 S 檔(有的叫運(yùn)動檔,有的叫超車檔)超車,較大的功率輸出,較快的提速,然后切換到 D 檔(行車檔)維持;你可以感受一下,同樣的油門,S 檔與 D 檔的反應(yīng)不一樣,P 值設(shè)置不一樣。
好了,既然有了 P 為什么還需要 D 呢?
人類的欲望是無止盡的,總希望越多越好,越快越好(前提是付出的越少越好)。
這時就引入一個 D ,反應(yīng)速度再快一點(diǎn)兒,但是反應(yīng)又不那么劇烈;也就是在中等的 P 值前提下,比只有 P 的情況下更快的到達(dá) 100 的速度(用時更少),但是車輛又不劇烈的震蕩(比沒有 D 的時候更溫和)。
2. D——微分調(diào)節(jié)
為了不讓車輛速度沖過頭,我們再給他一個反向的減速度。就是讓車輛在越接近 100 的時候,車速解決 100 的速度越慢;與 100km/h 差距越大的時候,接近速度越快。
注意,這個速度不是車輛的行駛速度,是達(dá)到目標(biāo)速度 100 的時間長短。
這點(diǎn)兒可能不太容易理解,這個相當(dāng)于你車速已經(jīng)到了 90km/h,為了防止過沖,這時候你開始松油門,松的比較快;當(dāng)?shù)竭_(dá) 95km/h 的時候,你油門松的就比較慢。
D 值的設(shè)置也有三種情況:
- D 值較大,到達(dá)目標(biāo)速度的時間就比較長;
- D 值較小,會產(chǎn)生震蕩,車速會在 100 上下波動,緩慢的進(jìn)入 100 的車速維持;
- D 值合適,車速較快達(dá)到 100,并且不會震動。
直觀的反應(yīng)對比圖:
P 值不變的前提下 D 值影響的變化表現(xiàn)。
D 值太大了,減速度就大了,也可以理解為靠近目標(biāo)速度 100 的阻力大。那這樣達(dá)到目標(biāo)耗費(fèi)的時間就較長。
D 值太小了,雖然能夠較快的達(dá)到目標(biāo),但是 D 值對 P 的影響力不夠,容易過沖,并且需要經(jīng)過多次調(diào)整才能進(jìn)入穩(wěn)定狀態(tài)。
在 P 和 D 的相互作用,調(diào)節(jié)控制下,最終得到的理想狀態(tài)是這樣的。
既能在較快時間內(nèi)達(dá)到目標(biāo),又不會使得反應(yīng)劇烈造成不適感。
有了 P 和 D 是不是很完美了呢?貌似很完美,但是我們希望更加完美就需要引入一個 I 進(jìn)入。
3. I——積分調(diào)節(jié)
有了 P 和 D 貌似已經(jīng)很完美了,但是這個世界是不穩(wěn)定的,沒有一直保持不變的狀態(tài),正如那句話“一切都不在變化,唯一不變的只有變化”。
你終于將你的車輛穩(wěn)定在 100km/h 之后,但是依然有來個方面的影響因素,內(nèi)在和外在。
內(nèi)在的是,你車輛的燃油效率是在變化的,外在的是風(fēng)阻、路面狀態(tài)(比如摩擦比、平整度、微小的坡度等)都在變化,這些干擾因素都在影響你車輛的恒定目標(biāo)速度。
所以,I (積分)就介入檢測過去一段時間內(nèi)車速狀態(tài),然后進(jìn)行積分,適當(dāng)?shù)膸椭?P 一把。
I 值設(shè)置也有三種情況:
- I 值過大,調(diào)整的力度太大了,容易造成過沖,需要幾次調(diào)整才能讓車速回歸正常,車輛會振蕩;
- I 值過小,調(diào)整的力度太小了,幫助 P 的作用不大,所以需要較長時間才能回到正常;
- I 值合適,給一個合適的力來幫助 P ,讓車速在一個合適的時間內(nèi)回到目標(biāo)值。
直觀的反應(yīng)對比圖:
以上就是 PID 三環(huán)節(jié)的調(diào)節(jié),使得被控制對象能夠達(dá)到一個穩(wěn)定平衡的運(yùn)行系統(tǒng)。
最后,用一個動圖,看看三者之間的關(guān)系。
三、PID 應(yīng)用
其實我們在在日常生活中能看到很多產(chǎn)品都有 PID 的運(yùn)用,但并不是都會將 PID 三個調(diào)節(jié)都用上。
不同的產(chǎn)品根據(jù)不同的使用環(huán)境,做相應(yīng)的調(diào)整;P 是一定要用的,I 和 D 就是看系統(tǒng)響應(yīng)速度,輸入震蕩程度等情況,根據(jù)實現(xiàn)效果和控制精度等進(jìn)行相應(yīng)的取舍。
當(dāng)然,也有工程師工程技術(shù)能力的因素,以及怎么設(shè)計的問題。
比如,很早以前,我用過一個某大牌的三軸手持云臺,我在沒有裝載手機(jī)的情況下開機(jī),三軸開始亂轉(zhuǎn),這就是設(shè)計的問題;在開機(jī)的時候,目標(biāo)與現(xiàn)狀差距很大,這時候工程師讓 I 介入了,造成過沖,其實只要將 I 進(jìn)行分離設(shè)計就好。
再比如,平衡車很多的時候,很多廠家不明所以的就進(jìn)入這個市場;最后進(jìn)入市場的產(chǎn)品,一開機(jī),平衡車前后劇烈振蕩,半天才進(jìn)入平衡狀態(tài),有的甚至一直不能進(jìn)入平衡狀態(tài),直到你強(qiáng)行扶著站上去才勉強(qiáng)能用。
這項技術(shù)雖然是已經(jīng)發(fā)展幾十年的技術(shù)了,在工業(yè)和日常生活的小產(chǎn)品上有廣泛的應(yīng)用。
產(chǎn)品經(jīng)理雖然不需要深入的去了解技術(shù),但是需要充分詳盡的了解使用場景,使用體驗,競爭的目前狀況,幫助工程師進(jìn)行產(chǎn)品設(shè)計。也需要根據(jù)實際情況做相應(yīng)的取舍,因為成本也許需要考慮的重要因素。
作者:Arvinzhou,微信號:zf519678391;公眾號:面壁求知,ID:AIPM001)歡迎關(guān)注我!
本文由 @周較瘦 發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
- 目前還沒評論,等你發(fā)揮!