程章格,谷若雨,王海波,劉和平,鄧力
(重慶大學 電氣工程與自動化,重慶 400044)
?
TMS320F28027與L298N的懸掛運動控制系統設計
程章格,谷若雨,王海波,劉和平,鄧力
(重慶大學 電氣工程與自動化,重慶 400044)
介紹了由TMS320F28027和L298N模塊以及編碼器組成的懸掛運動控制系統。該系統通過控制2個步進電機,控制軸上線的收放來達到使懸掛物在平面內任意運動的效果,以實現畫圓或指定圖案和顯示當前坐標等功能。主要介紹了步進電機的控制算法和利用TMS320F28027芯片實現位置閉環控制的方法。該系統具有高效、穩定、準確等優點。
TMS320F28027;懸掛運動控制系統;步進電機
隨著TI公司32位DSP的普及,32位處理器已經成為控制領域的主流產品,與傳統的微處理器相比速度更快、性能更強、資源豐富,更符合發展的腳步。TMS320F28027是一款32位的DSP,具有運算速度快、穩定性高的優點。本文利用TMS320F28027控制兩個步進電機,從而使物體在平面內運動,實現物體在平面內可以任意地畫指定的曲線和圓等。圖1為懸掛系統的模型。

圖1 懸掛系統的模型
圖2為懸掛系統控制框圖,以TMS320F28027為控制芯片,利用L298N驅動兩個步進電機。步進電機采用42HS4813A4,其額定電流為1.3 A,步距角為1.8°,利用LCD-12864液晶顯示被控制物的實時坐標。控制2個步進電機正向、反向轉動來達到物體在平面內任意運動的效果。

圖2 懸掛系統控制框圖
2.1 L298N
L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。圖3為L298N模塊的電路原理圖。該芯片的主要特點是:工作電壓高,其最高工作電壓可達46 V;輸出電流大,瞬間峰值電流可達3 A,持續工作電流為2 A;內含兩個H橋的高電壓大電流全橋式驅動器。利用2個L298N來分別控制2個步進電機,步進電機的額定電流為1.3 A,同時通2相時,電流為2.6 A,L298N可以達到42HS4813A4步進電機的電流要求。

圖3 L298N模塊電路原理圖
2.2 絕對式編碼器
絕對式編碼器的精度必須要高于步進電機的精度,所以這里采用的是10位絕對式編碼器。選用的型號是Mini1024J,精度為10位,優點在于采用無接觸霍爾檢測技術,傳感器運行不受灰塵或其他雜物影響,很好克服了基于光學檢測原理的缺點。
3.1 幾何關系1:從任意點移動到任意點算法
坐標示意圖如圖4所示,有如下的邊長和角度關系:



圖4 坐標示意圖
假設導輪半徑為r,則步進電機A轉動的角度:
步進電機B轉動的角度為:
3.2 幾何關系2:當前位置坐標顯示算法
如圖5所示,存在以下的角度和邊長關系:
θ5=Π-θ3-θ4
x=cosθ5×e
y=sinθ5×e
控制代碼如下:
a_2=115.97-(double)(40000-newsf_motor1_space_linshi)*0.0373;
//計算邊長
b_2=149.16-(double)(40000-newsf_motor2_space_linshi)*0.0373; //計算邊長
degree_a1=acos((a_2*a_2+(double)(110*110)-b_2*b_2)/(2*a_2*(double)110)); //計算角度θ1
degree_a2=1.44107-degree_a1; //計算角度θ2
length_c=sqrt(a_1*a_1+a_2*a_2-2*a_1*a_2*cos(degree_a2)); //計算C的長度
degree_b1=acos((a_1*a_1+length_c*length_c-a_2*a_2)/(2*a_1*length_c)); //計算角度θ3
degree_b2=1.70023-degree_b1; //計算角度θ5
accurate_x=length_c*cos(degree_b2); //計算得出坐標X
accurate_y=length_c*sin(degree_b2); //計算得出坐標Y

圖5 坐標示意圖
3.3 電機位置閉環控制方法
步進電機閉環控制框圖如圖6所示,TMS320F28027分別用2個定時器來控制兩個電機,用絕對式編碼器對位置進行監控,進行失步補償,保證位置正確,并且可以使曲線圓滑。

圖6 步進電機閉環控制框圖
步進電機的型號為42HS4813A4,為了防止失步,步進電機每步的最小間隔為4 ms,并且用軟件對步進電機進行了十六細分,即每步的間距為0.45°。控制電機部分的程序流程圖如圖7所示。

圖7 控制電機部分的程序流程圖
控制代碼如下:
newsf_motor1_SpeedAndSpace_access((int)flag_motor1_paces,flag_cputimer_1,2); //定時器1控制步進電機1
newsf_motor2_SpeedAndSpace_access((int)flag_motor2_paces,flag_cputimer_2,2); //定時器2控制步進電機2
3.4 畫圖算法

圖8 畫圓取點示意圖
利用幾何關系任意點到任意點的算法,分別給處理器一連串的位置坐標,控制物體的運動軌跡,如圖8所示。
相同間隔取N個點,分別輸入處理器,來控制物體的坐標。將取的點傳遞給TMS320F28027時,為了讓圓足夠的平滑,消去鋸齒狀,所以在圓上取了200個點。控制代碼如下所示:
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個點
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;
}//計算圓上的100個點的上半部分的縱坐標
for(drawcircle_counter=0;drawcircle_counter<=99;drawcircle_counter++){
shuzhou_2[drawcircle_counter]=2*centre_y-shuzhou_1[drawcircle_counter];
}//計算圓上的100個點的下半部分的縱坐標
系統完成后,進行了兩項測試,分別是畫圓運動和運動到指定點。
其中畫圓運動測試是在輸入圓心坐標以及半徑后,對實際畫出圓的直徑與理論直徑作了對比,并且記錄了畫圓的耗時。此測試中,圓心坐標為(40.0cm,40.0cm),輸入的半徑值為30.0cm,測試結果如表1所列。

表1 畫圖運動測試結果
其中,運動到指定點測試是以坐標原點為起始點,在輸入指定坐標之后,對原點到指定點距離的理論值和實際值作了對比,并且記錄了運動完后回到原點的誤差距離,即是否能準確回到原點。在此測試中,運動的原點坐標為(0cm,0cm),目標坐標為(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