舵機(jī)的原理和控制
控制信號由接收機(jī)的通道進(jìn)入信號調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機(jī)驅(qū)動芯片決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動。
舵機(jī)的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍內(nèi)的角度控制脈沖部分,總間隔為2ms。以180度角度伺服為例,那么對應(yīng)的控制關(guān)系是這樣的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
舵機(jī)的追隨特性:
假設(shè)現(xiàn)在舵機(jī)穩(wěn)定在A點(diǎn),這時候CPU發(fā)出一個PWM信號,舵機(jī)全速由A點(diǎn)轉(zhuǎn)向B點(diǎn),在這個過程中需要一段時間,舵機(jī)才能運(yùn)動到B點(diǎn)。
保持時間為Tw
當(dāng)Tw≥△T時,舵機(jī)能夠到達(dá)目標(biāo),并有剩余時間;
當(dāng)Tw≤△T時,舵機(jī)不能到達(dá)目標(biāo);
理論上:當(dāng)Tw=△T時,系統(tǒng)最連貫,而且舵機(jī)運(yùn)動的最快。
實(shí)際過程中w不盡相同,連貫運(yùn)動時的極限△T比較難以計(jì)算出來。
假如我們的舵機(jī)1DIV =8us,當(dāng)PWM信號以最小變化量即(1DIV=8us)依次變化時,舵機(jī)的分辨率最高,但是速度會減慢。
智能車舵機(jī)控制算法詳解
舵機(jī):小車轉(zhuǎn)向的控制機(jī)構(gòu)。也就是控制小車的轉(zhuǎn)向。它的特點(diǎn)是結(jié)構(gòu)緊湊、易安裝調(diào)試、控制簡單、大扭力、成本較低等。舵機(jī)的主要性能取決于最大力矩和工作速度(一般是以秒/60°為單位)。它是一種位置伺服的驅(qū)動器,適用于那些需要角度不斷變化并能夠保持的控制系統(tǒng)。在機(jī)器人的控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響因素。舵機(jī)能夠在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡單的控制和輸出值得單片機(jī)系統(tǒng)很容易與之接口。
組成:舵盤、減速齒輪組、位置反饋電位計(jì)、直流電機(jī)、控制電路等
工作原理:控制信號→控制電路板→電機(jī)轉(zhuǎn)動→齒輪組減速→舵盤轉(zhuǎn)動→位置反饋電位計(jì)→控制電路板反饋。
輸入線:中間紅色——電源線Vcc;黑色——地線GND;白色/橘黃色——控制信號線
信號:pwm信號,其中脈沖寬度從0.5-2.5ms(周期為20ms),相對應(yīng)的舵盤位置為0-180度,呈線性變化。
pwm波脈沖寬度與舵機(jī)轉(zhuǎn)角角度的關(guān)系:
也就是不同脈沖寬度的pwm波,舵機(jī)將輸出不同的軸轉(zhuǎn)角。所以要控制小車的轉(zhuǎn)角,我們就要控制輸出不同脈沖寬度的pwm波。
PWM:脈沖寬度調(diào)制
原理:對電路元件的通斷進(jìn)行控制,使輸出端得到一系列幅值相等的脈沖。豬八戒的耙子就可以看似脈沖寬度相等的pwm波形。那不相等的呢,可以 把一排身高相等但胖瘦不同的人排排站看做脈沖寬度不相等的pwm波形。比如這里有一個簡單的電路:
我們以5s為一個周期,在每一個5s內(nèi),前3s開關(guān)打開,后2s開關(guān)閉合,則ab端電壓將會這樣變化:
對電路元件的通斷進(jìn)行控制,使輸出端得到一系列幅值相等的脈沖。
在這個例子中,輸入信號脈沖寬度為3s,周期為5s。
重復(fù)一下:所以要控制小車的轉(zhuǎn)角,我們就要控制輸出不同脈沖寬度的pwm波。
PID控制:一種調(diào)節(jié)器控制規(guī)律為比例、積分、微分的控制。其中:P:比例(proportion)、I:積分(integral)、D:導(dǎo)數(shù)(derivative)
式子中Kp為比例系數(shù),Ti為積分時間參數(shù),Td為微分時間常數(shù)。
各個參數(shù)的意義作用:
Kp:比例系數(shù)。一般增大比例系數(shù),將加快系統(tǒng)的響應(yīng)。
Ti:積分時間常數(shù)。一般地,積分控制通常與比例控制或比例微分控制聯(lián)合使用,構(gòu)成 PI或 PID控制.增大積分時間常數(shù) (積分變?nèi)酰┯欣谛〕{(diào),減小振蕩,使系統(tǒng)更穩(wěn)定,但同時要延長系統(tǒng)消除靜差的時間.積分時間常數(shù)太小會降低系統(tǒng)的穩(wěn)定性,增大系統(tǒng)的振蕩次數(shù).
Td:微分時間常數(shù)。一般微分控制和比例控制和比例積分控制聯(lián)合使用,組成PD或PID控制,微分控制可改善系統(tǒng)的動態(tài)特性。
PID的控制方法常用的有兩種:
1.增量式PID
所謂的增量,就是本次控制量和上次控制量的差值。增量式PID是一種對控制量的增量進(jìn)行PID控制的一種控制算法。
(說明:Kp-》P,Ki-》I,Kd-》D,e數(shù)組-》error數(shù)組,
e[n]-》本次差值,e[n-1]-》上次差值,e[n-2]-》上上次差值)
舉個例子,增量式PID可以應(yīng)用在電機(jī)上。
假設(shè)當(dāng)前電機(jī)PID的pwm值為5000(精度為10000,即此時的占空比為50%)。對應(yīng)的速度為100r/s。
程序發(fā)出一個命令,要求pwm輸出為0,即要求停車。(可能有人有疑問為什么不直接程序給pwm為0,這也是一種方法,可是由于慣性的存在,小車會在一段時間后才停下。)
這時,我們可以采用PID控制的方法來實(shí)現(xiàn)。
我們在程序中定義幾個變量:
根據(jù)公式,我們編寫程序:
void PID()
{
/*
增量式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的體現(xiàn)。我們對增量(即右邊的式子)進(jìn)行PID控制。
error_pre_pre=error_pre;
error_pre=error;
}
當(dāng)函數(shù)運(yùn)行第一次的時候,輸出的pwm為:
電機(jī)給了一個反轉(zhuǎn)的力,小車前進(jìn)受到了阻力,于是可以很快的停下來了。
2、位置式PID
與增量式不同,位置式PID不需要對控制量進(jìn)行記憶,直接對偏差值進(jìn)行計(jì)算得出期望的pwm。公式:
(說明:Kp-》P,Ki-》I,Kd-》D,ek-》本次誤差、ek-1-》上次誤差)
舉個例子,位置式PID可以應(yīng)用在舵機(jī)上。因?yàn)槎鏅C(jī)本次的pwm輸出值與上次pwm輸出值關(guān)系不太,舵機(jī)需要的是快速轉(zhuǎn)到某個角度。
假設(shè)舵機(jī)pwm輸出1000時舵盤轉(zhuǎn)軸為90°,pwm輸出0時舵盤轉(zhuǎn)軸為0°,pwm輸出2000時舵盤轉(zhuǎn)軸為180°。
現(xiàn)在舵機(jī)pwm輸出為1500,我們要讓舵盤轉(zhuǎn)到最中間。
在這里我們采用PD控制,即I值為0(I值為偏差的積分,即對偏差求和。我們當(dāng)時試驗(yàn)小車的舵機(jī)控制時發(fā)現(xiàn)I值可以省略,PD控制足矣。當(dāng)然,具體需不需要I項(xiàng)要在實(shí)際中進(jìn)行分析驗(yàn)證)。
代碼:
pwm_duty=(int)(P*error+D*(error-error_pre); //紅色部分表示這是位置式PID控制
反饋系統(tǒng):
-
控制
+關(guān)注
關(guān)注
4文章
1011瀏覽量
122656 -
PID
+關(guān)注
關(guān)注
35文章
1472瀏覽量
85479 -
舵機(jī)
+關(guān)注
關(guān)注
17文章
268瀏覽量
41013
發(fā)布評論請先 登錄
相關(guān)推薦
評論