程章格,谷若雨,王海波,劉和平,鄧力
(重慶大學(xué) 電氣工程與自動(dòng)化,重慶 400044)
?
TMS320F28027與L298N的懸掛運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)
程章格,谷若雨,王海波,劉和平,鄧力
(重慶大學(xué) 電氣工程與自動(dòng)化,重慶 400044)
介紹了由TMS320F28027和L298N模塊以及編碼器組成的懸掛運(yùn)動(dòng)控制系統(tǒng)。該系統(tǒng)通過控制2個(gè)步進(jìn)電機(jī),控制軸上線的收放來達(dá)到使懸掛物在平面內(nèi)任意運(yùn)動(dòng)的效果,以實(shí)現(xiàn)畫圓或指定圖案和顯示當(dāng)前坐標(biāo)等功能。主要介紹了步進(jìn)電機(jī)的控制算法和利用TMS320F28027芯片實(shí)現(xiàn)位置閉環(huán)控制的方法。該系統(tǒng)具有高效、穩(wěn)定、準(zhǔn)確等優(yōu)點(diǎn)。
TMS320F28027;懸掛運(yùn)動(dòng)控制系統(tǒng);步進(jìn)電機(jī)
隨著TI公司32位DSP的普及,32位處理器已經(jīng)成為控制領(lǐng)域的主流產(chǎn)品,與傳統(tǒng)的微處理器相比速度更快、性能更強(qiáng)、資源豐富,更符合發(fā)展的腳步。TMS320F28027是一款32位的DSP,具有運(yùn)算速度快、穩(wěn)定性高的優(yōu)點(diǎn)。本文利用TMS320F28027控制兩個(gè)步進(jìn)電機(jī),從而使物體在平面內(nèi)運(yùn)動(dòng),實(shí)現(xiàn)物體在平面內(nèi)可以任意地畫指定的曲線和圓等。圖1為懸掛系統(tǒng)的模型。
圖1 懸掛系統(tǒng)的模型
圖2為懸掛系統(tǒng)控制框圖,以TMS320F28027為控制芯片,利用L298N驅(qū)動(dòng)兩個(gè)步進(jìn)電機(jī)。步進(jìn)電機(jī)采用42HS4813A4,其額定電流為1.3 A,步距角為1.8°,利用LCD-12864液晶顯示被控制物的實(shí)時(shí)坐標(biāo)。控制2個(gè)步進(jìn)電機(jī)正向、反向轉(zhuǎn)動(dòng)來達(dá)到物體在平面內(nèi)任意運(yùn)動(dòng)的效果。
圖2 懸掛系統(tǒng)控制框圖
2.1 L298N
L298N是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片。圖3為L(zhǎng)298N模塊的電路原理圖。該芯片的主要特點(diǎn)是:工作電壓高,其最高工作電壓可達(dá)46 V;輸出電流大,瞬間峰值電流可達(dá)3 A,持續(xù)工作電流為2 A;內(nèi)含兩個(gè)H橋的高電壓大電流全橋式驅(qū)動(dòng)器。利用2個(gè)L298N來分別控制2個(gè)步進(jìn)電機(jī),步進(jìn)電機(jī)的額定電流為1.3 A,同時(shí)通2相時(shí),電流為2.6 A,L298N可以達(dá)到42HS4813A4步進(jìn)電機(jī)的電流要求。
圖3 L298N模塊電路原理圖
2.2 絕對(duì)式編碼器
絕對(duì)式編碼器的精度必須要高于步進(jìn)電機(jī)的精度,所以這里采用的是10位絕對(duì)式編碼器。選用的型號(hào)是Mini1024J,精度為10位,優(yōu)點(diǎn)在于采用無接觸霍爾檢測(cè)技術(shù),傳感器運(yùn)行不受灰塵或其他雜物影響,很好克服了基于光學(xué)檢測(cè)原理的缺點(diǎn)。
3.1 幾何關(guān)系1:從任意點(diǎn)移動(dòng)到任意點(diǎn)算法
坐標(biāo)示意圖如圖4所示,有如下的邊長(zhǎng)和角度關(guān)系:
圖4 坐標(biāo)示意圖
假設(shè)導(dǎo)輪半徑為r,則步進(jìn)電機(jī)A轉(zhuǎn)動(dòng)的角度:
步進(jìn)電機(jī)B轉(zhuǎn)動(dòng)的角度為:
3.2 幾何關(guān)系2:當(dāng)前位置坐標(biāo)顯示算法
如圖5所示,存在以下的角度和邊長(zhǎng)關(guān)系:
θ5=Π-θ3-θ4
x=cosθ5×e
y=sinθ5×e
控制代碼如下:
a_2=115.97-(double)(40000-newsf_motor1_space_linshi)*0.0373;
//計(jì)算邊長(zhǎng)
b_2=149.16-(double)(40000-newsf_motor2_space_linshi)*0.0373; //計(jì)算邊長(zhǎng)
degree_a1=acos((a_2*a_2+(double)(110*110)-b_2*b_2)/(2*a_2*(double)110)); //計(jì)算角度θ1
degree_a2=1.44107-degree_a1; //計(jì)算角度θ2
length_c=sqrt(a_1*a_1+a_2*a_2-2*a_1*a_2*cos(degree_a2)); //計(jì)算C的長(zhǎng)度
degree_b1=acos((a_1*a_1+length_c*length_c-a_2*a_2)/(2*a_1*length_c)); //計(jì)算角度θ3
degree_b2=1.70023-degree_b1; //計(jì)算角度θ5
accurate_x=length_c*cos(degree_b2); //計(jì)算得出坐標(biāo)X
accurate_y=length_c*sin(degree_b2); //計(jì)算得出坐標(biāo)Y
圖5 坐標(biāo)示意圖
3.3 電機(jī)位置閉環(huán)控制方法
步進(jìn)電機(jī)閉環(huán)控制框圖如圖6所示,TMS320F28027分別用2個(gè)定時(shí)器來控制兩個(gè)電機(jī),用絕對(duì)式編碼器對(duì)位置進(jìn)行監(jiān)控,進(jìn)行失步補(bǔ)償,保證位置正確,并且可以使曲線圓滑。
圖6 步進(jìn)電機(jī)閉環(huán)控制框圖
步進(jìn)電機(jī)的型號(hào)為42HS4813A4,為了防止失步,步進(jìn)電機(jī)每步的最小間隔為4 ms,并且用軟件對(duì)步進(jìn)電機(jī)進(jìn)行了十六細(xì)分,即每步的間距為0.45°。控制電機(jī)部分的程序流程圖如圖7所示。
圖7 控制電機(jī)部分的程序流程圖
控制代碼如下:
newsf_motor1_SpeedAndSpace_access((int)flag_motor1_paces,flag_cputimer_1,2); //定時(shí)器1控制步進(jìn)電機(jī)1
newsf_motor2_SpeedAndSpace_access((int)flag_motor2_paces,flag_cputimer_2,2); //定時(shí)器2控制步進(jìn)電機(jī)2
3.4 畫圖算法
圖8 畫圓取點(diǎn)示意圖
利用幾何關(guān)系任意點(diǎn)到任意點(diǎn)的算法,分別給處理器一連串的位置坐標(biāo),控制物體的運(yùn)動(dòng)軌跡,如圖8所示。
相同間隔取N個(gè)點(diǎn),分別輸入處理器,來控制物體的坐標(biāo)。將取的點(diǎn)傳遞給TMS320F28027時(shí),為了讓圓足夠的平滑,消去鋸齒狀,所以在圓上取了200個(gè)點(diǎn)??刂拼a如下所示:
for(drawcircle_counter=0;drawcircle_counter<=99;drawcircle_counter++){
x_ axis[drawcircle_counter]=centre_x-r_z+(r_z*2)/100*(drawcircle_counter);
}//取X軸上的100個(gè)點(diǎn)
for(drawcircle_counter=0;drawcircle_counter<=99;drawcircle_counter++){
shuzhou_1[drawcircle_counter]=sqrt(r_z*r_z-(x_axis[drawcircle_counter]-centre_x)*(x_axis[drawcircle_counter]-centre_x))+centre_y;
}//計(jì)算圓上的100個(gè)點(diǎn)的上半部分的縱坐標(biāo)
for(drawcircle_counter=0;drawcircle_counter<=99;drawcircle_counter++){
shuzhou_2[drawcircle_counter]=2*centre_y-shuzhou_1[drawcircle_counter];
}//計(jì)算圓上的100個(gè)點(diǎn)的下半部分的縱坐標(biāo)
系統(tǒng)完成后,進(jìn)行了兩項(xiàng)測(cè)試,分別是畫圓運(yùn)動(dòng)和運(yùn)動(dòng)到指定點(diǎn)。
其中畫圓運(yùn)動(dòng)測(cè)試是在輸入圓心坐標(biāo)以及半徑后,對(duì)實(shí)際畫出圓的直徑與理論直徑作了對(duì)比,并且記錄了畫圓的耗時(shí)。此測(cè)試中,圓心坐標(biāo)為(40.0cm,40.0cm),輸入的半徑值為30.0cm,測(cè)試結(jié)果如表1所列。
表1 畫圖運(yùn)動(dòng)測(cè)試結(jié)果
其中,運(yùn)動(dòng)到指定點(diǎn)測(cè)試是以坐標(biāo)原點(diǎn)為起始點(diǎn),在輸入指定坐標(biāo)之后,對(duì)原點(diǎn)到指定點(diǎn)距離的理論值和實(shí)際值作了對(duì)比,并且記錄了運(yùn)動(dòng)完后回到原點(diǎn)的誤差距離,即是否能準(zhǔn)確回到原點(diǎn)。在此測(cè)試中,運(yùn)動(dòng)的原點(diǎn)坐標(biāo)為(0cm,0cm),目標(biāo)坐標(biāo)為(49.0 cm,50.0 cm),即
Suspended Movement Control System Based on TMS320F28027 and L298N
Cheng Zhangge,Gu Ruoyu,Wang Haibo,Liu Heping,Deng Li
(Electrical Engineering and Automation,Chongqing University, Chongqing 400044,China)
The suspended movement control system which is consist of TMS320F28027, L298N module and absolute rotary encoder.The system simultaneously controls two step motors to move freely in a plane surface by rolling the line of the step motor’s control shaft, and it achieves the function of circling, drawing specified patterns, displaying the current coordinates, and so on. This paper focuses on the exploration of the control algorithms under control and the way to conduct the chip TMS320F28027. The system has the advantages of stability, efficiency and accuracy.
TMS320F28027;suspended movement control system;step motor
TM301.2
A