舵機(jī)概要
小車轉(zhuǎn)向的控制機(jī)構(gòu)。也就是控制小車的轉(zhuǎn)向。它的特點(diǎn)是結(jié)構(gòu)緊湊、易安裝調(diào)試、控制簡(jiǎn)單、大扭力、成本較低等。舵機(jī)的主要性能取決于最大力矩和工作速度(一般是以秒/60°為單位)。它是一種位置伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并能夠保持的控制系統(tǒng)。在機(jī)器人的控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響因素。舵機(jī)能夠在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡(jiǎn)單的控制和輸出值得單片機(jī)系統(tǒng)很容易與之接口。
舵機(jī)組成和工作原理
組成:舵盤、減速齒輪組、位置反饋電位計(jì)、直流電機(jī)、控制電路等
工作原理:控制信號(hào)→控制電路板→電機(jī)轉(zhuǎn)動(dòng)→齒輪組減速→舵盤轉(zhuǎn)動(dòng)→位置反饋電位計(jì)→控制電路板反饋。
輸入線:中間紅色——電源線Vcc;黑色——地線GND;白色/橘黃色——控制信號(hào)線

信號(hào):pwm信號(hào),其中脈沖寬度從0.5-2.5ms(周期為20ms),相對(duì)應(yīng)的舵盤位置為0-180度,呈線性變化。
pwm波脈沖寬度與舵機(jī)轉(zhuǎn)角角度的關(guān)系:

也就是不同脈沖寬度的pwm波,舵機(jī)將輸出不同的軸轉(zhuǎn)角。所以要控制小車的轉(zhuǎn)角,我們就要控制輸出不同脈沖寬度的pwm波。
PWM:脈沖寬度調(diào)制
原理:對(duì)電路元件的通斷進(jìn)行控制,使輸出端得到一系列幅值相等的脈沖。豬八戒的耙子就可以看似脈沖寬度相等的pwm波形。那不相等的呢,可以把一排身高相等但胖瘦不同的人排排站看做脈沖寬度不相等的pwm波形。
比如這里有一個(gè)簡(jiǎn)單的電路:

我們以5s為一個(gè)周期,在每一個(gè)5s內(nèi),前3s開(kāi)關(guān)打開(kāi),后2s開(kāi)關(guān)閉合,則ab端電壓將會(huì)這樣變化:

(對(duì)電路元件的通斷進(jìn)行控制,使輸出端得到一系列幅值相等的脈沖。)
(在這個(gè)例子中,輸入信號(hào)脈沖寬度為3s,周期為5s。)
重復(fù)一下:所以要控制小車的轉(zhuǎn)角,我們就要控制輸出不同脈沖寬度的pwm波。
還有一個(gè)新的概念——占空比。
占空比:在周期型的現(xiàn)象中,某種現(xiàn)象發(fā)生后持續(xù)的時(shí)間與總時(shí)間的比
例如,在成語(yǔ)中有句話:「三天打漁,兩天曬網(wǎng)」,如果以三天為一個(gè)周期,“打漁”的占空比則為三分之一。(這一行和上一行摘自百度百科,版權(quán)歸百度百科。)
因?yàn)楦杏X(jué)這個(gè)成語(yǔ)說(shuō)得很對(duì),就拿來(lái)它做例子,根據(jù)這個(gè)成語(yǔ),大家也應(yīng)該懂占空比的意思了(所以上圖簡(jiǎn)單的電路,它的占空比應(yīng)該是3/5)。
PID控制:一種調(diào)節(jié)器控制規(guī)律為比例、積分、微分的控制。其中:P:比例(proportion)、I:積分(integral)、D:導(dǎo)數(shù)(derivative)

式子中Kp為比例系數(shù),Ti為積分時(shí)間參數(shù),Td為微分時(shí)間常數(shù)。
各個(gè)參數(shù)的意義作用:
Kp:比例系數(shù)。一般增大比例系數(shù),將加快系統(tǒng)的響應(yīng)。
Ti:積分時(shí)間常數(shù)。一般地,積分控制通常與比例控制或比例微分控制聯(lián)合使用,構(gòu)成PI或PID控制.增大積分時(shí)間常數(shù)(積分變?nèi)酰┯欣谛〕{(diào),減小振蕩,使系統(tǒng)更穩(wěn)定,但同時(shí)要延長(zhǎng)系統(tǒng)消除靜差的時(shí)間.積分時(shí)間常數(shù)太小會(huì)降低系統(tǒng)的穩(wěn)定性,增大系統(tǒng)的振蕩次數(shù).
Td:微分時(shí)間常數(shù)。一般微分控制和比例控制和比例積分控制聯(lián)合使用,組成PD或PID控制,微分控制可改善系統(tǒng)的動(dòng)態(tài)特性。
PID的控制方法
1.增量式PID
所謂的增量,就是本次控制量和上次控制量的差值。增量式PID是一種對(duì)控制量的增量進(jìn)行PID控制的一種控制算法。
公式:

(說(shuō)明:Kp-》P,Ki-》I,Kd-》D,e數(shù)組-》error數(shù)組,
e[n]-》本次差值,e[n-1]-》上次差值,e[n-2]-》上上次差值)
舉個(gè)例子,增量式PID可以應(yīng)用在電機(jī)上。
假設(shè)當(dāng)前電機(jī)PID的pwm值為5000(精度為10000,即此時(shí)的占空比為50%)。對(duì)應(yīng)的速度為100r/s。
程序發(fā)出一個(gè)命令,要求pwm輸出為0,即要求停車。(可能有人有疑問(wèn)為什么不直接程序給pwm為0,這也是一種方法,可是由于慣性的存在,小車會(huì)在一段時(shí)間后才停下。)
這時(shí),我們可以采用PID控制的方法來(lái)實(shí)現(xiàn)。
我們?cè)诔绦蛑卸x幾個(gè)變量:
intspeed_now=100;//此刻的速度
intspeed_want=0;//期望輸出的速度
intpwm_duty=0;//本次pwm輸出值
floatP=100,I=20,D=2;//PID數(shù)值
floaterror_pre_pre=0;//上上次差值
floaterror_pre=0.0;//上次差值
floaterror=0.0;//本次差值
根據(jù)公式,我們編寫程序:
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可以通過(guò)編碼器采值等等方式得到
pwm_duty+=(int)(P*(error-error_pre)+I*error+D*(error-2*error_pre+error_pre_pre));
//注意上面的加號(hào),加號(hào)是增量式PID的體現(xiàn)。我們對(duì)增量(即右邊的式子)進(jìn)行PID控制。
error_pre_pre=error_pre;
error_pre=error;
}
當(dāng)函數(shù)運(yùn)行第一次的時(shí)候,輸出的pwm為:
電機(jī)給了一個(gè)反轉(zhuǎn)的力,小車前進(jìn)受到了阻力,于是可以很快的停下來(lái)了。
增量式PID的優(yōu)缺點(diǎn):
優(yōu):
①算式中不需要累加??刂圃隽喀(k)的確定僅與最近3次的采樣值有關(guān),容易通過(guò)加權(quán)處理獲得比較好的控制效果;
②計(jì)算機(jī)每次只輸出控制增量,即對(duì)應(yīng)執(zhí)行機(jī)構(gòu)位置的變化量,故機(jī)器發(fā)生故障時(shí)影響范圍小、不會(huì)嚴(yán)重影響生產(chǎn)過(guò)程;
③手動(dòng)—自動(dòng)切換時(shí)沖擊小。當(dāng)控制從手動(dòng)向自動(dòng)切換時(shí),可以作到無(wú)擾動(dòng)切換。
缺:需要對(duì)控制量進(jìn)行記憶。
2.位置式PID
與增量式不同,位置式PID不需要對(duì)控制量進(jìn)行記憶,直接對(duì)偏差值進(jìn)行計(jì)算得出期望的pwm。

公式:

舉個(gè)例子,位置式PID可以應(yīng)用在舵機(jī)上。因?yàn)槎鏅C(jī)本次的pwm輸出值與上次pwm輸出值關(guān)系不太,舵機(jī)需要的是快速轉(zhuǎn)到某個(gè)角度。
假設(shè)舵機(jī)pwm輸出1000時(shí)舵盤轉(zhuǎn)軸為90°,pwm輸出0時(shí)舵盤轉(zhuǎn)軸為0°,pwm輸出2000時(shí)舵盤轉(zhuǎn)軸為180°。
現(xiàn)在舵機(jī)pwm輸出為1500,我們要讓舵盤轉(zhuǎn)到最中間。
在這里我們采用PD控制,即I值為0(I值為偏差的積分,即對(duì)偏差求和。我們當(dāng)時(shí)試驗(yàn)小車的舵機(jī)控制時(shí)發(fā)現(xiàn)I值可以省略,PD控制足矣。當(dāng)然,具體需不需要I項(xiàng)要在實(shí)際中進(jìn)行分析驗(yàn)證)。
代碼:

其他:
反饋系統(tǒng):

舵機(jī)用PID控制是使小車保持在賽道中央,即偏移距離為0.根據(jù)傳感器反饋過(guò)來(lái)的偏移距離用PID計(jì)算出給舵機(jī)的脈寬,這樣就會(huì)使小車的偏移距離為0。在飛思卡爾智能車項(xiàng)目里面,我們就會(huì)用到PID算法,比如車爬坡和平底連續(xù)拐彎時(shí)。
PID算法的應(yīng)用基礎(chǔ)最開(kāi)始是對(duì)PCB板上的運(yùn)放的PID參數(shù)就行調(diào)校。P對(duì)應(yīng)于運(yùn)放增益;I是運(yùn)放輸入和輸出端之間接一個(gè)電容引入反饋,就是控制器的輸出和輸入誤差會(huì)累積起來(lái)影響輸出;D就是運(yùn)放輸入端串接一個(gè)電容,起的微分作用是阻止輸出與輸入誤差的變化,結(jié)合示波器來(lái)觀察控制電機(jī)的PID參數(shù)設(shè)定。
PID一般有兩種:位置式PID和增量式PID。在小車中一般用增量式。因?yàn)槲恢檬絇ID的輸出與過(guò)去的所有狀態(tài)有關(guān),計(jì)算時(shí)要對(duì)e(每一次的控制誤差)進(jìn)行累加,這個(gè)計(jì)算量非常大,而且沒(méi)有必要。而且小車的PID控制器的輸出并不是絕對(duì)數(shù)值,而是要一個(gè)△,代表增多少,減多少。通過(guò)增量PID算法,每次輸出是PWM要增加多少或者減少多少,而不是PWM的實(shí)際值。
-
PID控制
+關(guān)注
關(guān)注
11文章
463瀏覽量
42137 -
舵機(jī)
+關(guān)注
關(guān)注
17文章
373瀏覽量
42818
發(fā)布評(píng)論請(qǐng)先 登錄
一文看懂PID算法
一文教你如何看懂電源電路單元
請(qǐng)問(wèn)舵機(jī)的PID怎么調(diào)?
一文看透什么是舵機(jī)?舵機(jī)的工作原理是什么?
一文讀懂什么是舵機(jī)
通過(guò)PID算法控制電機(jī)轉(zhuǎn)速和舵機(jī)角度實(shí)現(xiàn)閉環(huán)控制
采用模糊PID控制律的舵機(jī)系統(tǒng)設(shè)計(jì)
一文看懂步進(jìn)電機(jī)和舵機(jī)及伺服電機(jī)的區(qū)別
【理論】一文看懂數(shù)字PID
一文看懂舵機(jī)規(guī)格書-幫你選擇合適的舵機(jī)

一文看懂舵機(jī)硬件pid電路原理
評(píng)論