當前位置: 華文問答 > 科學

PID調參的實用方法和經驗有哪些?

2015-01-08科學

最近一直在做四軸飛行器 做個筆記吧

四軸地面站參數設定選單中,有一項 PID 設定,對於沒接觸過 PID 的人來說,那完全是一頭霧水,一堆摸不著頭腦的數碼。
PID 控制是自動化控制領域套用非常廣的控制方式, P 代表比例,I 代表積分,D 代表 微分 ,它以傳感器采集的數據作為輸入源,按預定的 PID 參數根據特定的公式計算以後輸出控制。

P 比例控制處理目前誤差,使 器材盡快回到正確的位置;

I 積分 控制處理過去累積誤差 ,眾所周知積分的實質是求和,將過去誤差記錄下來,測量值-誤差=較精確的值。

D 微分控制是對未來誤差的預測,

舉個形象的例子 ,一列即將到站的火車在快要到達站點的時候會切斷輸出動力,讓其憑借慣性滑行到月台位置。假如設定火車以 100km/h 的速度在站前 1km 的地方切斷動力開始滑行,那麽這個 100 比 1 就是比例 P 的含義, P 越大,它在站前開始滑行的速度越快。滑行初始速度快的好處就是進站快。


但過快的初始滑行速度會導致火車在慣性的作用下沖過月台,這樣一來火車不得不進行倒車,但是因為 P 設定過大,倒車以後的滑行也會同樣使火車倒過頭了,這樣一來,就形成了一種反復前行後退的震蕩局面。


而 P 設定小了,進站速度會變得非常緩慢,進站時間延長。所以設定一個合適的 P 值是 PID 調節的首要任務。由於 P 是一個固定的數值,如果將火車的速度與月台的距離用一個座標圖理想化的表現出來的話,不考慮慣性及外力的作用,這兩者的關系呈現出來 P 調節的結果會是一條直線,斜線越陡,代表進站時間越短。

P 調節即比例調節,誤差越大則輸出越大,最終使器材回到正確的位置。

(PS:如果一個電熱器要使水溫保持在二十度,預設調節範圍為十度到二十度,如果當前溫度為十度則輸出為100%,使水溫盡快回到二十度)


上圖的 P 調節結果只是為了方便理解,在實際中是根本不可能出現的 ,PID 計算的結果也不是這樣子。不管怎樣,如果只有 P 調節,火車要麽設定一個比較低的 P 值以非常緩慢的速度到達目標月台,要麽就是過沖了,很難設定在速度與準確度之間求得平衡。



所以接下來該是套用D 微分控制了 。根據上面舉的例子,假如 P 等於 100 的時候,火車
剛好能滑行到月台,所耗費的時間是 10 分鐘。但是對應一個自穩定效能要求很高的自動化系
統來說,這 10 分鐘的時間太長了,可不可以 加快 呢?


當然可以,這樣雖然會造成沖過月台,但我們可以透過剎車來控制,這裏的 剎車實質就是 D 微分控制。


我們把 P 加大到 120,讓火車司機駕駛火車在站前 1km 的地方以 120km/h 的速度開始減速滑行。

然後站前 500 米的時候踩一下剎車讓速度降為 80km/h。

站前 300 米再踩一下剎車讓速度降為 50km/h。

站前 100 米又踩一下剎車,讓速度降為 20km/h。

站前 10 米讓火車在較短的時間內滑行到月台準確的位置。

這樣一來,進站速度會大大加快,原來需要 10 分鐘的時間可能只需要 5 分鐘就行了。


這就是 D 的作用,我們權且把 D 理解為剎車吧,如果仍舊以座標圖形象表達 D 對 P 調節的響,那就是 D 使 P 調節出來的一條直線變成了一條曲線,在 PID 公式中,D 的左右就是改變 P 的曲線,D 的數值越大,對 P 的影響也越大。

加入 D 後的曲線前期較陡,進站比較快,後期平緩,使得火車可以平穩準確的進站。


根據 PD 的這個關系,我們可以得出一個調節步驟:先把 D 置零,加大 P值,使飛行器適當過沖開始震蕩,然後增加 D 的數值,拉低 P 調節後期的作用,使過沖現象放緩,最終調到不過沖為止。


P 越大,飛行器傾斜後恢復的速度越快,表現為越靈敏,但過大會產生震蕩;


D 越大,調節越平緩,表現為越平穩,但 D 過大會使調節時間延長,表現為反映遲鈍。

(這裏的 D 指的就是 D 的數值,在一般的 PID 表述中,D 越接近 0,P 作用越大,這點需要註意一下)


最後是 I 的作用,I 是積分,是為了消除誤差而加入的參數,

假如上面的例子中,火車靠站以後,離最終的目標停止線還是差了 1 米,我們雖然也可以認為這是一次合格的停車,但這畢竟是誤差,如果我們認可了這 1 米的誤差,那在此基礎上火車第二次靠站就會有 2米的誤差了。

如此以往,誤差會越來越大,所以我們要把這個誤差記錄下來,當第二次進站的時候就可以發揮作用了,如果差了 1 米,火車駕駛員就可以在原來的 PD 調節基礎上進行 I 積分,延遲 1 米輸出(或者提前),即 999 米開始減速,最終可以剛剛好到達停止線。


如果沒有 I 的作用,在多軸飛行器平台上的表現就是飛行器越來越傾斜,最終失去平衡。


I 的調節是建立在 PD 的基礎上的,PD 的改變都會影響 I 的效果,所以最終的調節步驟就是先調 P 確立靈敏度,接著調節 D 調整平穩度,最後調節 I 確定精度。



自動控制原理的故事

(挺有意思的故事)

死區 dead band 講得很形象

夏天了,室內溫度設在28度,實際溫度高於28度了,空調機啟動致冷,把房間的溫度降下來;實際溫度低於28度了,空調機關閉,讓房間溫度受環境氣溫自然升上去。透過這樣簡單的開關控制,室內溫度應該就控制在28度。

不過這裏有一個問題, 如果溫度高於28度一點點,空調機就啟動;低於28度一點點,空調機就關閉;那如果溫度傳感器和空調機的開關足夠靈敏的話,空調機的開關頻率可以無窮高,空調機不斷地開開關關,要發神經病了。

這對機器不好,在實際上也沒有必要。解決的辦法是設立一個「死區」 (dead band),溫度高於29度時開機,低於27度時關機。 註意不要搞反了,否則控制單元要發神經了。

有了一個死區後, 室內溫度不再可能嚴格控制在28度,而是在27到29度之間「晃蕩」。 如果環境溫度一定,空調機的制冷量一定,室內的升溫/降溫動態模型已知,可以計算溫度「晃蕩」的周期。

這種開關控制看起來「土」,其實好處不少。對於大部份過程來說,開關控制的精度不高但可以保證穩定,或者說系統輸出是「有界」的,也就是說實際測量值一定會被限制在一定的範圍,而不可能無限制地發散出去。

拋磚引玉,有什麽不對的地方歡迎指正。


以上です