光感測器校準
利用EV3套件中的顏色感測器作為光感測器,所以我們選擇反射光(Reflected Light Lintensity)模式,我們將存放兩個變數,黑色與白色兩個顏色,該反射光的值僅僅是一個介於0和100的光感測器讀取的值。
校準流程圖
在這邊添加了一個觸碰感測器,讓機器人可以記錄光值,將他放在白色表面,按下觸碰感測器記錄此讀值,黑色也重複動作記錄下數值,每次啟動機器人都要先進行校準,因為在不同的環境或光線下使用,在黑色和白色表面上的數值會有差異,所以每次到新的環境就必須先進行光感測值的校正。
基本循跡控制
當我們有了校準後的數值後,我們可以先從最簡單的方式循線,在該路徑上行走的機器人會得到一個數值,如果低於中間數值,我們就移動到一側,反之亦然。
基本循跡控制流程圖
這個概念非常簡單,只是讓一邊車輪轉動的比另一邊快,可以發現缺乏直線的概念,當走直線時會開始圍繞著震盪,因為我們只設定的兩種狀態,左轉與右轉,我們必須要能夠辨別更多的狀態與數值的差異。
循跡控制結合P Controller
如果只是基本的控制左右轉彎啟動會相當的不協調,在這邊我們加上了比例的概念,使其接受的改變數值越大,轉彎的程度和給予馬達的功率就越大,馬達的馬力設為常數使用Move Steering模式可直接控制左右轉幅度設為Ms
其中Kp是一個常數,幫我們調整P控制器。Kp越大時轉彎處越可能發生錯誤,Kp值如果太大會發現機器反應過度,並且難以控制
P控制流程圖
在程式裡,與基本控制相異不大,只做了參數上的調整與校正。
剛開始設定Kp=1去做測試,如果機器人不能跟著即時轉彎表示Kp值不夠,再增加其值,相反的,如果機器人過於震盪就必須減低Kp值,因此Kp值需要測試出最適合的值。
PID Controller
PID控制器又在加上了兩個控制參數,積分以及微分部分。
PID控制的基本概念是把微小誤差加進去,在互為作用的過程中,期望誤差必須趨近於零,E為Error,Kil為最後一次Ki。
最後一個部份是微分,在控制器裡增加儲存器的概念,嘗試猜測之前的錯誤經驗,
El為最後一次的Error。
依據PID控制理論可以計算出下列變量,馬達旋轉量(Turn) = Kp * (現在的偏差量) + Ki * (過去的偏差量) + Kd * (未來的偏差量),最後使用Ziegler-Nichols Method,來調整PID的每個參數。
沒有留言:
張貼留言