TMS320F28027与L298N的悬挂运动控制系统设计
2014-09-06程章格谷若雨王海波刘和平邓力
程章格,谷若雨,王海波,刘和平,邓力
(重庆大学 电气工程与自动化,重庆 400044)
TMS320F28027与L298N的悬挂运动控制系统设计
程章格,谷若雨,王海波,刘和平,邓力
(重庆大学 电气工程与自动化,重庆 400044)
介绍了由TMS320F28027和L298N模块以及编码器组成的悬挂运动控制系统。该系统通过控制2个步进电机,控制轴上线的收放来达到使悬挂物在平面内任意运动的效果,以实现画圆或指定图案和显示当前坐标等功能。主要介绍了步进电机的控制算法和利用TMS320F28027芯片实现位置闭环控制的方法。该系统具有高效、稳定、准确等优点。
TMS320F28027;悬挂运动控制系统;步进电机
引 言
随着TI公司32位DSP的普及,32位处理器已经成为控制领域的主流产品,与传统的微处理器相比速度更快、性能更强、资源丰富,更符合发展的脚步。TMS320F28027是一款32位的DSP,具有运算速度快、稳定性高的优点。本文利用TMS320F28027控制两个步进电机,从而使物体在平面内运动,实现物体在平面内可以任意地画指定的曲线和圆等。图1为悬挂系统的模型。
图1 悬挂系统的模型
1 系统总体方案的设计
图2为悬挂系统控制框图,以TMS320F28027为控制芯片,利用L298N驱动两个步进电机。步进电机采用42HS4813A4,其额定电流为1.3 A,步距角为1.8°,利用LCD-12864液晶显示被控制物的实时坐标。控制2个步进电机正向、反向转动来达到物体在平面内任意运动的效果。
图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 系统软件设计
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个点的下半部分的纵坐标
4 系统测试
系统完成后,进行了两项测试,分别是画圆运动和运动到指定点。
其中画圆运动测试是在输入圆心坐标以及半径后,对实际画出圆的直径与理论直径作了对比,并且记录了画圆的耗时。此测试中,圆心坐标为(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