收藏 分享(赏)

悬挂运动控制系统.doc

上传人:weiwoduzun 文档编号:2414576 上传时间:2018-09-15 格式:DOC 页数:10 大小:467KB
下载 相关 举报
悬挂运动控制系统.doc_第1页
第1页 / 共10页
悬挂运动控制系统.doc_第2页
第2页 / 共10页
悬挂运动控制系统.doc_第3页
第3页 / 共10页
悬挂运动控制系统.doc_第4页
第4页 / 共10页
悬挂运动控制系统.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、1一方案的选择与比较1主体控制方案比较方案 1. 闭环数字控制方式闭环数字控制方式,主要利用光电传感器检测法,结构图如图 1 所示。首先单片机根据输入的数据来计算物体要移动的距离并控制物体往坐标的大概方向运动,红外发射接收器来探测悬挂物体移动了多少个 1*1cm 的小方格,并经过 A/D 送给单片机,单片机通过特定的算法计算出物体的坐标,并控制电机的转动来控制物体往坐标进发,在此过程中单片机不断计算,不断调整电机的转速和方向使悬挂物体做一定路线的移动。但其缺点是,电路复杂,不但要求要有 A/D 电路,光电探测电路,还要其电路要做得十分精确。任何一个电路设计得不好,也会使物体运动产生很大的偏差。

2、 光 电 传 感 器电 机 驱 动 电 机单 片 机 D/A图 1 闭环数字控制方案 2. 开环数字控制方式开环数字程序控制方式,即没有反馈系统,开环数字控制的结构图如图 2 所示。由图可看出,此种控制方式与上面的控制方式少了反馈电路。单片机由输入的数据来计算物体要移动的距离,直接发出控制脉冲来控制电机的转动,进而控制物体的运动方向。由于少了反馈电路,系统的精度只与单片机所采用的算法准确性有关,此种方式电路结构简单,成本低且易于调整和维护,是一种较理想的方式。 电 机 驱 动 电 机单 片 机图 2 开环数字控制方式综合上面所述,考虑时间和调试的复杂性,本设计采用方案 2。 2电机选择方案 1

3、. 直流电机。直流电机又分为直流无刷电机和直流有刷电机,是最早实现调速的电动机,其优点是有2良好的线性调速特性,简单的控制性能,高的效率,但其数字控制方面较难把握。方案 2. 步进电机。步进电机是多种机电设备中被广泛应用的一种电机,它主要由定子和转子构成。定子的主要结构是绕组。三相、四相、五相步进电机分别有三个、四个、五个绕组,其它以此类推。绕组按一定的通电顺序工作着,这个通电顺序我们称为步进电机的“相序” 。转子的主要结构是磁性转轴,当定子中的绕组在相序信号作用下,有规律的通电、断电工作时,转子周围就会有一个按此规律变化的电磁场,因此一个按规律变化的电磁力就会作用在因此转子上,使转子发生转动

4、。它将电脉冲信号转换成角位移,即给一个脉冲信号,步进电动机就转动一个角度,因此非常适合于单片机控制。另外步进电机还有动态响应快易于起停,易于正反速及变速等优点。综合上面所述,为易于单片机控制,本设计采用方案 2。3驱动方式的选择我们知道步进电动机使用脉冲电源工作。开关管是按照控制脉冲的规律“开”和“关” ,使直流电源以脉冲方式向绕组 L 供电,这一过程我们称它为步进电动机的驱动。(1)单电压驱动 单电压驱动是指电动机绕组在工作时,只用一个电压电源对绕组供电(如图 3 所示)。它的特点是电路简单,一般只用于小功率步进电动机的驱动。R1R2D单 相 绕 组LT驱 动 脉 冲 +V RD2D1LT2

5、驱 动 脉 冲 T1低 频 高 频 +VH+VL图 3 单电压驱动原理图 图 4 双电压驱动原理图(2)双电压驱动 双电压驱动是用提高电压的方法使绕组中的电流上升波形变陡(如图4 所示)。它的基本思路是在低频段使用较低的电压驱动,在高频段使用较高的电压驱动。这种驱动方法在低频段具有单电压驱动的特点,在高频段具有良好的高频性能。本设计考虑到变压器,因采用了单电压驱动.4系统组成经过方案比较与论证,最终确定的系统组成框图如图 5 所示.其中单片机用 89S52,驱动用1TIP122,驱动用液晶显示.3D相 驱 动C相 驱 动B相 驱 动A相 驱 动左 轮 分 相89s52 液 晶 显 示右 轮 分

6、 相D相 驱 动C相 驱 动B相 驱 动A相 驱 动图 5 系统控制硬件总框图二软件设计对与一个开环控制系统来说,最重要的就是它的算法的选择,然后就是针对算法的编程.1控制算法的比较方案 1. 逐点比较直线插补算法逐点比较法是数控机床中广泛采用的一种软件插补算法,该方法普遍用于二坐标数控加工系统.所谓逐点比较法就是在绘图过程中,绘图笔每移动一步都要与理想线路进行比较,然后决定下一步的移动方向用步步修正的方法画出所期望的线段. 逐点比较法的基本原理是斜率比较法即线段的起点与笔当前的位置构成的直线斜率与要绘线段斜率进行比较当前者斜率小于后者斜率时,笔应该向方向走一步当前者斜率大于后者斜率时,笔应该

7、向方向走一步如图 6 所示,为欲画的路线,为画笔开始所在的位置,当的斜率小欲画线段的斜率时,向方向移动一步,到达点然后再用线段的斜率与的斜率进行比较,当的斜率大欲画线段斜率时,向方向移动一步。图 6 逐点比较直线插补算法方案 2. 逐点比较圆弧插补算法 圆弧轨迹插补不同于直线,一段圆弧可能跨越几个象限。每当一段圆弧跨过象限后,4原来的偏差计算、坐标计算式必须进行修改。在插补过程中每走一步必须检查是否会跨越象限,一旦查到跨越象限,就要根据顺圆或逆圆改进进入该象限的一套计算方法。传统的过象限处理是采用查表的方法,即用旧的标志字通过查表取得新标志字,替换旧标志字,当再次进行插补时,根据新的标志字进行

8、插补和进给。查表法处理起来相当麻烦。符号判别法是根据动点坐标本身位置的变化自动转换运算和判别,自动转入其他象限,改变偏差计算、坐标计算式。方案 2. 数学建模法。数学建模法是指用数学方法,运用几何知识(极坐标)把圆上的点和两个电机所在的位置联系起来,通过相关计算把圆上的点的坐标用数学表达式表示出来,并转换成电机所要转动的偏移量,最后把偏移量转化为电机所要转的速度。此方法,计算复杂,但所得数据较为准确,只要编程正确,用电机所画出来的线就不会编差大。上述几种方法我们都尝试编程,但在调试过程中,前两种方法的误差比较大.达不到比赛的要求,最后我们只能采用方案 3。采用方案 3 的算法相当复杂, 而且要

9、经过了无数次调试.2程序的总流程在设计系统的总流程中.比较简单. 但在子程序相当复杂.程序总图如图 6 所示扫 描 键 盘串 口 、 液 晶 初 始 化是 否 走 直 线输 入 起 点 、 终 点 坐 标 输 入 圆 心 、 半 径调 用 直 线 程 序 调 用 原 弧 程 序结 束 YN图 6 程序的总流程52.1 直线的计算和编程从图 7 我们可以看到假设原点坐标 X0,Y0,要达到的坐标点 X1,Y1xY (x1,y1)(x0,y0) L的 直 线图 7 直线算法图那么到坐标点的距离 LL= 201201 )()( yx我们没有采用 Y=KX+B 的直线方程,而是把 L 的长度分为 CO

10、UNT_L 等分即 COUNT_L= 5.L我们计算出每一个增量 INC_X,INC_YINC_X= LCOUNTX_01INC_Y= Y01我们假设一个变量 , 的范围从 1-COUNT_Li所以每走一步的坐标值XX = *INC_X+X0iYY = *INC_Y+Y0部分程序如下所示:/*画直线*/void draw_line(float x0,float y0,float x1,float y1) /(x0,y0):起点坐标,6(x0,y0):停止点坐标float ll,inc_x,inc_y,xx,yy,L_l0,L_r0,L_l,L_r,inc_Ll,inc_Lr,xxx ; /kk

11、:斜率 cc:初点始常数(yy=kk*xx+cc)intcount_ll,count_l,count_r,i /(x0,y0):画直线起点坐标ll=sqrt(x1-x0)*(x1-x0)+(y1-y0)*(y1-y0) ; /ll:斜边长度count_ll=ll/0.5+0.5 ; /count_ll:步数inc_x=(x1-x0)/count_ll ; /inc_x:x 步长 inc_y=(y1-y0)/count_ll ; /inc_y:y 步长 L_l0=sqrt(x0+15)*(x0+15)+(115-y0)*(115-y0) ;L_r0=sqrt(95-x0)*(95-x0)+(11

12、5-y0)*(115-y0) ;for(i=1; i=0 ?0.5:-0.5) ;/步进电机每步弧长(厘米)count_r=inc_Lr/step_r+(inc_Lr=0 ?0.5:-0.5) ;/右步进电机每步弧长(厘米)drive_motor(count_l,count_r) ;delay(50) ; /延时 50ms test: x0,y0,x1,y1=10,10,40,40L_l0=L_l ;L_r0=L_r ;我们可以看到画直线的程序的复杂性.2.2 圆的的计算和编程在圆弧的编程中,它的算法比直线的算法更复杂.从图我们可以看到假设圆心坐标X0,Y0,半径为 R7( X0, Y) YX

13、Q,R圆上的一点坐标为 XQ,YQXQ=X0+RYQ=Y0而我们把圆分成 360 度,即设一个变量 , 的范围从 1 到 360,每走一小步的坐标值 XX,YYiXX= 0)*18cos(*xiRYY= 0)in(yi那么它的力臂 LL,LRLL=22)15()15( yxLR=22)()9( yx而原点坐标的力臂 LL0,LR0LL0=2020 )15()15( yxLR0= 20209因此力臂的增量为 LL,LRLL= LL- LL0LR= LR- LR0因我们的步进不同,所以它的增量分别为 0.039,0.078.最后才计算出要给的脉冲数 COUNT_L,COUNT_R8COUNT_L=

14、 039.LCOUNT_R= 78r部分程序程序如下:/*画圆*/void draw_circularity(float rr,float x0,float y0) /rr:半径,(x0,y0):圆心坐标float L_l,L_r,L_l0,L_r0,inc_Ll,inc_Lr,xx,yy,xxx ;int count_l,count_r,i ;L_l0=sqrt(x0+rr+15)*(x0+rr+15)+(115-y0)*(115-y0) ;/(x0+rr,y0):画圆起点坐标L_r0=sqrt(95-x0-rr)*(95-x0-rr)+(115-y0)*(115-y0) ;for(i=1;

15、i=0 ?0.5:-0.5) ; / 左步进电机每步弧长(厘米)count_r=inc_Lr/step_r+(inc_Lr=0 ?0.5:-0.5) ; / 右步进电机每步弧长(厘米)drive_motor(count_l,count_r) ;delay(50) ; /延时 50msL_l0=L_l ;L_r0=L_r ;2.3 坐标的显示和编程坐标的显示和编程就是把每走一步走的距离显示在液晶上,通过调用液晶子程序,把变量写入。9三、系统测试为了确定系统与题目要求的符合程度,我们对系统中的关键部分进行了测试。位置测试如下:直线测试表原点坐标(X,Y)输入坐标(X,Y)实际测量距离值 误差值 运

16、行时间(10cm,10cm) (40cm, 50cm)(39cm,492cm)08cm-2cm 20S(19cm,24cm) (34cm,35cm) (33cm,345cm)1cm-2-cm 2S圆弧测试表圆点坐标(X,Y) 实际测量半径值 误差值 运行时间(40cm,50cm) 2327cm +-2cm 150S发挥部分测试:直线测试表原点坐标(X,Y)输入坐标(X,Y)实际测量距离值 误差值 运行时间(10cm,10cm) (40cm, 50cm)(39cm,492cm)08cm-2cm 20S(19cm,24cm) (34cm,35cm) (33cm,345cm)1cm-2-cm 2S圆测试表圆点坐标(X,Y) 走一圈显示 误差值 运行时间(40cm,50cm) (40cm,49cm) +-2cm 150S结论我们可以看到虽然算法和程序都非常复杂,但它省了很多硬件电路.因为现在提倡”硬件10变为软件化”对我们的编程能力有很大的促进。在本系统设计中,我们完成了全部基本要求,并完成了发挥部分的第一条,对最后还感谢全国电子大赛的举办者和工作人员,谢谢他们为我们提供这样的机会。参考文献:1王晓明。电动机的单片机控制。北京:北京航空航天大学出版社,20022黄智伟等。全国大学生电子设计竞赛训练教程。北京:电子工业出版社,2005

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报