舵機概要
小車轉向的控制機構。也就是控制小車的轉向。它的特點是結構緊湊、易安裝調試、控制簡單、大扭力、成本較低等。舵機的主要性能取決于最大力矩和工作速度(一般是以秒/60°為單位)。它是一種位置伺服的驅動器,適用于那些需要角度不斷變化并能夠保持的控制系統。在機器人的控制系統中,舵機控制效果是性能的重要影響因素。舵機能夠在微機電系統和航模中作為基本的輸出執行機構,其簡單的控制和輸出值得單片機系統很容易與之接口。
舵機組成和工作原理
組成:舵盤、減速齒輪組、位置反饋電位計、直流電機、控制電路等
工作原理:控制信號→控制電路板→電機轉動→齒輪組減速→舵盤轉動→位置反饋電位計→控制電路板反饋。
輸入線:中間紅色——電源線Vcc;黑色——地線GND;白色/橘黃色——控制信號線
信號:pwm信號,其中脈沖寬度從0.5-2.5ms(周期為20ms),相對應的舵盤位置為0-180度,呈線性變化。
pwm波脈沖寬度與舵機轉角角度的關系:
也就是不同脈沖寬度的pwm波,舵機將輸出不同的軸轉角。所以要控制小車的轉角,我們就要控制輸出不同脈沖寬度的pwm波。
PWM:脈沖寬度調制
原理:對電路元件的通斷進行控制,使輸出端得到一系列幅值相等的脈沖。豬八戒的耙子就可以看似脈沖寬度相等的pwm波形。那不相等的呢,可以把一排身高相等但胖瘦不同的人排排站看做脈沖寬度不相等的pwm波形。
比如這里有一個簡單的電路:
我們以5s為一個周期,在每一個5s內,前3s開關打開,后2s開關閉合,則ab端電壓將會這樣變化:
(對電路元件的通斷進行控制,使輸出端得到一系列幅值相等的脈沖。)
(在這個例子中,輸入信號脈沖寬度為3s,周期為5s。)
重復一下:所以要控制小車的轉角,我們就要控制輸出不同脈沖寬度的pwm波。
還有一個新的概念——占空比。
占空比:在周期型的現象中,某種現象發生后持續的時間與總時間的比
例如,在成語中有句話:「三天打漁,兩天曬網」,如果以三天為一個周期,“打漁”的占空比則為三分之一。(這一行和上一行摘自百度百科,版權歸百度百科。)
因為感覺這個成語說得很對,就拿來它做例子,根據這個成語,大家也應該懂占空比的意思了(所以上圖簡單的電路,它的占空比應該是3/5)。
PID控制:一種調節器控制規律為比例、積分、微分的控制。其中:P:比例(proportion)、I:積分(integral)、D:導數(derivative)
式子中Kp為比例系數,Ti為積分時間參數,Td為微分時間常數。
各個參數的意義作用:
Kp:比例系數。一般增大比例系數,將加快系統的響應。
Ti:積分時間常數。一般地,積分控制通常與比例控制或比例微分控制聯合使用,構成PI或PID控制.增大積分時間常數(積分變弱)有利于小超調,減小振蕩,使系統更穩定,但同時要延長系統消除靜差的時間.積分時間常數太小會降低系統的穩定性,增大系統的振蕩次數.
Td:微分時間常數。一般微分控制和比例控制和比例積分控制聯合使用,組成PD或PID控制,微分控制可改善系統的動態特性。
PID的控制方法
1.增量式PID
所謂的增量,就是本次控制量和上次控制量的差值。增量式PID是一種對控制量的增量進行PID控制的一種控制算法。
公式:
(說明:Kp-》P,Ki-》I,Kd-》D,e數組-》error數組,
e[n]-》本次差值,e[n-1]-》上次差值,e[n-2]-》上上次差值)
舉個例子,增量式PID可以應用在電機上。
假設當前電機PID的pwm值為5000(精度為10000,即此時的占空比為50%)。對應的速度為100r/s。
程序發出一個命令,要求pwm輸出為0,即要求停車。(可能有人有疑問為什么不直接程序給pwm為0,這也是一種方法,可是由于慣性的存在,小車會在一段時間后才停下。)
這時,我們可以采用PID控制的方法來實現。
我們在程序中定義幾個變量:
intspeed_now=100;//此刻的速度
intspeed_want=0;//期望輸出的速度
intpwm_duty=0;//本次pwm輸出值
floatP=100,I=20,D=2;//PID數值
floaterror_pre_pre=0;//上上次差值
floaterror_pre=0.0;//上次差值
floaterror=0.0;//本次差值
根據公式,我們編寫程序:
voidPID()
{
/*
增量式PID
P=Kp*(error-error_pre);
D=Kd*(error-2*error_pre+error_pre_pre);
I=Ki*error;
Pwm+=P+I+D;
*/
error=speed_want-speed_now;//speed_now可以通過編碼器采值等等方式得到
pwm_duty+=(int)(P*(error-error_pre)+I*error+D*(error-2*error_pre+error_pre_pre));
//注意上面的加號,加號是增量式PID的體現。我們對增量(即右邊的式子)進行PID控制。
error_pre_pre=error_pre;
error_pre=error;
}
當函數運行第一次的時候,輸出的pwm為:
電機給了一個反轉的力,小車前進受到了阻力,于是可以很快的停下來了。
增量式PID的優缺點:
優:
①算式中不需要累加。控制增量Δu(k)的確定僅與最近3次的采樣值有關,容易通過加權處理獲得比較好的控制效果;
②計算機每次只輸出控制增量,即對應執行機構位置的變化量,故機器發生故障時影響范圍小、不會嚴重影響生產過程;
③手動—自動切換時沖擊小。當控制從手動向自動切換時,可以作到無擾動切換。
缺:需要對控制量進行記憶。
2.位置式PID
與增量式不同,位置式PID不需要對控制量進行記憶,直接對偏差值進行計算得出期望的pwm。
公式:
舉個例子,位置式PID可以應用在舵機上。因為舵機本次的pwm輸出值與上次pwm輸出值關系不太,舵機需要的是快速轉到某個角度。
假設舵機pwm輸出1000時舵盤轉軸為90°,pwm輸出0時舵盤轉軸為0°,pwm輸出2000時舵盤轉軸為180°。
現在舵機pwm輸出為1500,我們要讓舵盤轉到最中間。
在這里我們采用PD控制,即I值為0(I值為偏差的積分,即對偏差求和。我們當時試驗小車的舵機控制時發現I值可以省略,PD控制足矣。當然,具體需不需要I項要在實際中進行分析驗證)。
代碼:
其他:
反饋系統:
舵機用PID控制是使小車保持在賽道中央,即偏移距離為0.根據傳感器反饋過來的偏移距離用PID計算出給舵機的脈寬,這樣就會使小車的偏移距離為0。在飛思卡爾智能車項目里面,我們就會用到PID算法,比如車爬坡和平底連續拐彎時。
PID算法的應用基礎最開始是對PCB板上的運放的PID參數就行調校。P對應于運放增益;I是運放輸入和輸出端之間接一個電容引入反饋,就是控制器的輸出和輸入誤差會累積起來影響輸出;D就是運放輸入端串接一個電容,起的微分作用是阻止輸出與輸入誤差的變化,結合示波器來觀察控制電機的PID參數設定。
PID一般有兩種:位置式PID和增量式PID。在小車中一般用增量式。因為位置式PID的輸出與過去的所有狀態有關,計算時要對e(每一次的控制誤差)進行累加,這個計算量非常大,而且沒有必要。而且小車的PID控制器的輸出并不是絕對數值,而是要一個△,代表增多少,減多少。通過增量PID算法,每次輸出是PWM要增加多少或者減少多少,而不是PWM的實際值。
-
PID控制
+關注
關注
10文章
460瀏覽量
40171 -
舵機
+關注
關注
17文章
279瀏覽量
41118
發布評論請先 登錄
相關推薦
評論