# 什麼是PID控制 PID是「Proportional–Integral–Derivative」的縮寫,是一種「自動控制」的方法,非常廣泛的應用在各個領域中,以達到精確的控制。 我們以機器手臂來做例子,當我們設定了一個終點座標,讓機器手臂移動過去,假如不使用PID控制,雖然機器忠實的執行在終點座標停下的指令,但會因為前進的慣性,機器手臂仍會在超過終點後的位置才停下來,無法很精確的剛好停在終點那個位置上。更糟糕的是,當機器手臂上的距離感測器(sensor)感測到衝過頭了,於是把訊息反饋(feedback)給MCU,MCU便命令手臂往回折返,但折返時卻仍然一樣會衝過頭,於是就變成像鐘擺一樣,在終點附近不斷晃動搖擺,當然這不是我們要的。 若需要比較精確的控制,則要使用PID控制方法。如上例所說,PID的P代表比例、I代表積分、D代表微分。若採用PID控制,則在一開始機器手臂的位置離終點座標還很遠的時候,PID的比例演算法(P)此時會占有比較大的權重。經過比例計算(P)後,由於目前距離較遠,P值還很大,MCU會讓機器手臂以比較快的速度往終點移動,並在快到終點時讓它逐漸慢下來。 而在目前座標與終點座標的差值更加縮小時,積分(PID的I)的計算便逐漸取得更大的權重。這個積分是計算一段時間內與終點座標誤差的總和,愈加接近終點,積分值自然會愈小,機器便可依據這個值來修正移動的速度。 最後,當距離差值更加縮小時,會計算期望值與實際值之間的變化率(PID的D,即微分),當變化率小於某個程度之後(看寫程式的人怎麼設定),MCU便認為機器手臂到達終點了,讓控制手臂移動的馬達完全停止轉動,機器手臂便可以很平順的剛好停在終點。 就像火車一樣,我們知道火車有很大的慣性,所以一定要事先計算距離提早進行剎車動作,才能準確地停在月台上。火車是由駕駛員控制的,所以人腦裡面早就「內建」PID控制法了,只是實在太過自然,我們平常不會特別把它拿出來討論而已。而PID控制就是用電腦來模擬這套作法,以前是用硬體裝置來實現,但現在PID是一套演算法,將程式內容寫在機器的單晶片(MCU、Micro Control Unit)裡面,可以不必加裝額外的硬體。 PID控制方法還有很多變體,例如機器人上坡時,馬達要用比例(P)演算法來加大出力,下坡時則剛好相反,並在接近終點時應用積分(I)演算法提早逐漸停下,並以微分(D)演算法判斷是否確實到達終點。類似的觀念,PID控制方法已經被廣泛的運用在工業製程、建築工程、交通系統、溫度控制、軍事領域、無人飛機、無人駕駛車的研發 … 已經無孔不入的應用了。 要特別注意的是P、I、D這三個值會同時一起被計算,並在不同階段賦予不同的權重,並不會只單純算到一個。至於要怎麼設定PID的權重和參數,則依據不同場合、不同需求、不同工程師來調整設定,沒有絕對的準則,但大致上的觀念就是這樣。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.