廣東海洋大學 王 慧 鄧志明 陳春雷 李永強
基于MC9S12XS128智能車電機和舵機設計與實現(xiàn)
廣東海洋大學 王 慧 鄧志明 陳春雷 李永強
以通有20KHz,100mA電流的導線所產生的磁場為檢測環(huán)境,重點介紹智能車電機與舵機的設計方法與實現(xiàn)。電機設計側重電機驅動方案的選擇和驅動電路、閉環(huán)調速系統(tǒng)設計;舵機設計主要包括信號感應、傳感器電路設計和信號處理程序編寫。實測結果表明,電機采用PID控制算法,舵機采用查表算法時,智能車行駛快速穩(wěn)定,具有良好的尋線跟蹤能力。
智能車;電磁導航
智能車技術是涵蓋自動控制、傳感器技術、電子技術等學科的熱點研究領域。在安全方面,可以通過傳感器準確感知周圍環(huán)境,及時反應給駕駛員,從而降低事故發(fā)生率,未來智能汽車將具有自動識別行駛道路、自動駕駛、自動調速等功能。智能汽車研究與開發(fā)主要包括信息技術、微電子技術、計算機技術、智能自動化技術、人工智能技術、網絡技術、通信技術等方面[1]。
智能車競賽是以智能汽車為載體的創(chuàng)意性科技競賽,是一種具有探索性的工程實踐活動。鑒于磁導航在智能交通領域中的實用價值和前景,要求是智能車通過感應磁場變化實現(xiàn)小車快速穩(wěn)定尋跡。下面通過對電磁場感應的差分信號分析,給出一種查表檢測方案,從而實現(xiàn)小車對運行方向的準確檢測。
智能車的驅動一般由控制器、電機驅動以及電機三個主要部分組成。驅動電路的性能是影響電機能否快速而穩(wěn)定行駛的關鍵因素,電機驅動也是智能車的重要模塊。
1.1 驅動電路方案選擇
方案一:采用2~4片MC33886驅動
MC33886為H橋式電源開關IC, 該IC結合內部控制的邏輯、電荷泵、柵極驅動器以及導通電阻120mΩMOSFET輸出電路,可工作在5V~40V電壓范圍內,能夠控制連續(xù)感性直流負載電流高達5.0A,可以接受高達10kHz的2路PWM信號控制電機的轉向和速度。為了增強其驅動能力可利用多塊33886并聯(lián)使用,起到增強驅動能力、減小芯片發(fā)熱的作用,但實際測試發(fā)現(xiàn)發(fā)熱仍然比較嚴重。
方案二:采用2片BTS7960并聯(lián)
BTS7960B是應用于電機驅動的大電流半橋集成芯片,它帶有一個P溝道的高邊MOSFET、一個N溝道的低邊MOSFET和一個驅動IC。BTS7960B的通態(tài)電阻典型值為16mΩ,驅動電流可達43A,調節(jié)SR引腳外接電阻的大小可以調節(jié)MOS管導通和關斷時間,具有防電磁干擾功能。該芯片頻率可以達到25kHz,可以較好的解決方案一提到的MC33886使電機噪聲大和發(fā)熱的問題,同時驅動能力有了明顯提高,響應速度快。但是,電機變速時會使電源電壓下降10%左右,控制器等其他電路有掉電危險。
方案三:采用MC33886+場效應管組成H橋
場效應管搭建H橋驅動電機。場效應管具有內阻小、開關速度快、最大電流可自行設計等優(yōu)點。場效應管P管用IRF4905,N管用IRF3205,受到P管電流限制,最大電流為74A。IRF3205的導通內阻僅為8mΩ。因為單片機輸出的PWM電壓不夠,所以需要增加刪極驅動電路,可采用MC33886。
綜合以上三種驅動方案,采用了MC33886+場效應管組成H橋。
1.2 驅動電路設計
采用H橋電路控制電機,控制原理如圖1所示。
圖1 H橋電路圖
它由2個P型場效應管Q1、Q2與2個N型場效應管Q3、Q4組成,故稱 P-NMOS管H橋。橋臂上的4個場效應管相當于四個開關,P型管在柵極為低電平時導通,高電平時關閉;N型管在柵極為高電平時導通,低電平時關閉。場效應管是電壓控制型元件,柵極通過的電流幾乎為“零”。
當控制臂1置高電平(U=VCC)、控制臂2置低電平(U=0)時,Q1、Q4關閉,Q2、Q3導通,電機左端低電平,右端高電平,所以電流沿控制臂2向控制臂1流動。設為電機正轉。
當控制臂1置低電平、控制臂2置高電平時,Q2、Q3關閉,Q1、Q4導通,電機左端高電平,右端低電平,所以電流沿控制臂1向控制臂2流動。設為電機反轉。
當控制臂1、2均為低電平時,Q1、Q2導通,Q3、Q4關閉,電機兩端均為高電平,電機不轉。
當控制臂1、2均為高電平時,Q1、Q2關閉,Q3、Q4導通,電機兩端均為低電平,電機也不轉。
因為單片機輸出電壓為0~5V,而小車使用的H橋的控制臂需要0V或7.2V電壓才能使場效應管完全導通,PWM輸入0V或5V時,柵極驅動電路輸出電壓為0V或7.2V。
實際電路采用MC3886做電壓放大驅動柵極,P型管采用IRF4905,N型管采用IRF3205,并采用RS-540電機。實際測試驅動效果良好,MOS微熱。如圖2所示。
圖2 驅動電路圖
1.3 軟件編程
1.3.1 調速方法
PWM調速方法通常采用功率場效應管作為開關元件,通過改變開關元件的導通方式及通斷比來改變輸出電壓的大小與極性。當開關管的柵極輸入高電平時,開關管導通,直流電機兩端有電壓Ud,t時間后,柵極輸入低電平,開關管截止,電機兩端電壓為零。重復前面的工作,直流電機兩端電壓波形如圖3所示。
圖3 PWM調速控制輸出電壓波形
在電源電壓Ud不變的情況下,端電壓的平均值Uo取決于占空比的大小。即改變占空比的值可以改變電樞端電壓的平均值,從而達到調速的目的。此處采用定頻調寬法改變占空比的值[2]。
MC9S12XS128單片機PWM有8個輸出通道,每一個輸出通道都可以獨立進行輸出。每一個輸出通道都有一個精確的計數(shù)器(計算脈沖的個數(shù))、一個周期控制寄存器和兩個可供選擇的時鐘源。每一個PWM輸出通道都能調制出占空比從0—100%變化的波形。
電機PWM初始化函數(shù)如下(C語言)
//**************** PWM2,3電機驅動,8KHz *****
void PWM_Init(void)
{
PWME=0; //禁止PWM
PWMPRCLK=0x11; //時鐘預分頻B=A=48M/2=24M
PWMSCLA=1; //時鐘SA=A/2/1=12M
PWMSCLB=15; //時鐘SB=B/2/15=800K
PWMCLK=0x0e; //時鐘源的選擇
PWMPOL=0xff; //極性設置
PWMCAE=0x0c; //對齊方式設置
PWMCTL=0; //控制寄存器設置
PWMPER2=100; //周期SB/100=8K
PWMPER3=100; //周期SB/100=8K
PWMDTY2=0; //占空比
PWMDTY3=0; //占空比
PWME=0x0e; //使能PWM1,2,3
}
初始化完成后,只要改變輸出占空比就能調節(jié)電機速度。實現(xiàn)算法如下:
/******改變電機前進的占空比,輸出為PWM3口****/
//i=占空比,0-100
void ChangeSpeed_PWM(uchar i)
{
if (i〉100)
{
i=100;
}
PWMDTY3=i;//PWM3口占空比越大,速度越快
PWMDTY2=0;
}
//*****減速函數(shù),根據當前占空比來確定反向時間****
void Stop_Moving(uint i)
{
uint j;
PWMDTY3=0;
for (;i〉0;i--)
{
PWMDTY2=i;
for(j=0;j〈30000;j++)//簡單延時,可以使減速更平滑
{;}
}
PWMDTY2=0;
}
至此,已完成了對電機的一些簡單控制。如加速、減速、剎車、啟動等。但由于行駛過程中存在慣性等干擾因素,必須進一步提高電機的抗干擾性。為此,須引入自動控制閉環(huán)調速系統(tǒng)。
1.3.2 速度閉環(huán)系統(tǒng)設計
圖4 速度閉環(huán)示意圖
PID 控制器是控制系統(tǒng)中技術比較成熟,而且應用最廣泛的一種控制器。它的結構簡單,參數(shù)容易調整,因此在工業(yè)的各個領域都有應用。隨著計算機的出現(xiàn),把它移植到計算機控制系統(tǒng)中,將原來的硬件實現(xiàn)功能用軟件代替,從而形成數(shù)字PID控制器,其算法則稱為數(shù)字PID算法。
速度閉環(huán)控制采用數(shù)字式PID控制算法,控制算式為:
算法實現(xiàn)如下:
//*********************離散式PID***********
float Speed_PID(float set_value,float current_value)
{
float diff,result;
e0=e1;
e1=set_value-current_value;
diff=e1-e0;
pid_sum+=e1;
result=Kp*e1+Ki*pid_sum+Kd*diff;
return result;
}
其中,e1是當前速度與期望的誤差,e0是上一次的誤差。
實際電機控制中,因為考慮到微分項會放大誤差,微分項系數(shù)Kd取值很小,甚至為零。采用PID控制后取得了較好的效果。
2.1 信號感應
要使舵機自主識別路徑,首先必須用傳感器獲取道路信息。本項目中要識別的是通有20kHz、100mA交變電流的導線產生的交變磁場。首先要對20KHz信號進行放大,并且除去其他干擾信號影響。這里采用LC串并聯(lián)諧振電路來實現(xiàn)選頻。
2.2 信號調節(jié)放大
由于諧振出來的電壓比較小,一般是幾十毫伏,為了更精確地測量感應電壓,需要對諧振電壓進一步放大,通常放大到1-5V即可。所以需要放大電路具有100倍左右的放大倍數(shù)。采用一階共射三極管放大電路方案[3],因為此方案簡單,可靠,實測放大倍數(shù)85倍左右,能夠滿足所需要求。放大之后的感應電壓幅值測量采用二極管倍壓檢波電路獲得正比于交流電壓信號峰值的直流信號,然后用單片機AD口進行采集。二極管采用壓降僅有0.1-0.3V的肖特基二極管。傳感器電路如圖5所示。
圖5 傳感器電路圖
2.3 信號處理以及控制舵機
2.3.1 電磁傳感器的工作特性
電磁軌道與傳感器相對位置縱向剖面如圖6所示,若傳感器安裝高度為h,x為傳感器與賽道的橫向偏移,則r為傳感器與軌道的直線距離,s為傳感器的面積,B為傳感器處的磁感應強度大小[4]。
圖6 電磁傳感器剖面圖
由電磁場理論得傳感器處的磁感應強度大小為:
傳感器中的磁通為:
傳感器感應電動勢為:
通過放大檢波后傳感器輸出的感應電動勢為:
則有:
感應電動勢V隨線圈水平位置x的變化如圖7所示。
圖7 單線圈感應電動勢與線圈位置關系圖
可以看出,單個線圈感應電動勢V是x的偶函數(shù),因此無法分辨左右。為實現(xiàn)傳感器檢測偏移方向的目的,可以在軌道兩側等距設置雙電感,并進行差分處理。也就是雙水平線圈布局方案。
圖8 雙水平線圈差分信號與線圈位置關系圖
根據式(5)可畫出差分信號的工作特性曲線[5](圖8)。該方案能夠很好的檢測偏移方向,在某個區(qū)間內具有比較好的單調性,可以采用分段線性方程進行擬合。但這里我們采用最簡單,可行的查表方案。即每一個位置對應一個道路誤差值,根據誤差值的大小輸出控制舵機的值。
2.3.2 雙水平線圈查表方案
圖9 雙水平線圈布局
如圖9所示,為了消除電流的影響,提取的誤差為:
這樣提取出來的誤差就是一個比值,不是具體的一個物理量,從而提高了智能車對軌道的適應性。誤差范圍從-1~1。-1就是2號電感移到了導線的上方,0就是車模在中間位置,1就是1號電感移到了導線的上方。
算法實現(xiàn)誤差提取如下:
num=((float)AD_value0-AD_value1)/(AD_value0+AD_value1)*100;
其中乘上100是使精度能精確到小數(shù)點后兩位。
同時把舵機從右極限30度到左極限30度劃分成20份。也就是一個區(qū)間對應舵機3度的轉向。
具體算法實現(xiàn)如下:
#define Direction_Divice 20 //把200MM的檢測產度劃分20個區(qū)間
#define Direction_PWM_Base 14850 //舵機最右角度時的占空比值
#define Direction_PWM_Max 22050 //舵機最左角度時的占空比值
#define Direction_PWM_Wide 360 //把轉角劃分為閾值區(qū)間值的脈沖增加值
#define Direction_PWM_Middle 18450 //正中PWM值
以上舵機角度PWM值是在完成舵機PWM初始化后,實際測量得到的值,采用的是SD-5數(shù)字舵機。舵機控制流程見圖10。
圖10 舵機控制流程圖
其算法實現(xiàn)如下:
//輸入為區(qū)間號,輸出為轉角對應的PWM波形
//改變?yōu)楫斍癙WM周期結束有效
void ChangeDirection_PWM(char num)
{
uint Output_PWM;
if (num〉=-1&&num〈=1)
{
Direction_PWM_Set=0;
}
else
Direction_PWM_Set=(int)num*Direction_PWM_Wide;
//************舵機PD調節(jié)輸出**********
Output_PWM=Direction_PWM_Middle+ Direction_PWM_Set;
//************舵機死區(qū)保護************
if (Output_PWM〈=Direction_PWM_Base)
PWMDTY01=Direction_PWM_Base;
//PWM通道0和1級聯(lián)輸出控制舵機
else
if (Output_PWM〉=Direction_PWM_Max)
PWMDTY01=Direction_PWM_Max;
else
PWMDTY01=Output_PWM;
}
在智能車設計過程中,電機和舵機是兩大關鍵部分。智能車能否跑得又快又穩(wěn)與電機的設計相關。智能車能否準確的尋跡與舵機的設計相關。本文著重從原理、電路設計以及程序實現(xiàn)等幾方面研究了磁導航智能車電機和舵機的設計流程與方法。實際測試結果表明,電機采用PID控制算法,舵機采用查表算法時,智能車行駛快速穩(wěn)定,具有良好自主尋線跟蹤能力。
[1]梁玉紅.智能車研究與發(fā)展策略.[J].電子技術,2010,(6):1-2.
[2]王蘇.智力電機PWM調速研究及單片機控制實現(xiàn)[J].機電工程技術,2008年,37(11):82.
[3]童詩白.模擬電子技術基礎(第四版)[M].高等教育出版社,2006:31-40.
[4]孫書詠.電磁軌道智能車賽道檢測方法研究[J].西安郵電學院學報,2011,16(6):1.
[5]電磁組競賽車模路徑檢測設計參考方案[OL].競賽秘書處,2010-1,版本1.0:5-6.
圖3 花式流水燈實物
本設計以單片機為控制核心,使多路花式流水燈結構大為簡化,并且花式擴展性強,同時在硬件設中將流水燈布局為心型,加裝鐵盒,具有外形美觀、攜帶方便、性價比高、體積小等特點,有較高的應用價值。
參考文獻
[1]王莉莉,宋冬萍.基于單片機的花式流水燈的設計[J].廣西輕工業(yè),2011,11:82-83.
[2]陳高峰,熊剛,胡啟迪.單片機原理及應用[M].北京:北京大學出版社,2012.
[3]鄭棣,徐迎春,劉雨.基于51單片機的多色點陣顯示系統(tǒng)設計[J].自動化技術與應用,2014,33(12)5:109-113.
作者簡介:
熊剛(1985—),男,河南信陽人,碩士,講師,研究方向:電氣自動化控制技術。
王慧(1963-),女,副教授,研究方向:智能控制系統(tǒng)、太陽能的利用、光纖傳感器的應用。
項目支持:廣東省實驗室研究基金項目(編號:GDJ2012063)、廣東海洋大學創(chuàng)新強校工程科研項目(編號:GDOU2014050240)。