本科毕业设计论文悬挂运动控制系统11Word格式.docx
《本科毕业设计论文悬挂运动控制系统11Word格式.docx》由会员分享,可在线阅读,更多相关《本科毕业设计论文悬挂运动控制系统11Word格式.docx(24页珍藏版)》请在冰点文库上搜索。
3.2画任意设定的线段………………………………………………………………………9
3.3画圆………………………………………………………………………………………10
3.4画设定终点坐标的线段…………………………………………………………………13
3.5步进电机的软件控制………………………………………………………………………13
3.6红外寻迹…………………………………………………………………………………15
4.系统调试……………………………………………………………………………………16
4.1测试使用的仪器…………………………………………………………………………16
4.2步进电机驱动电路的调试……………………………………………………………17
4.3画直设定坐标线段的测试………………………………………………………………17
4.4.画圆程序的测试………………………………………………………………………18
4.4.1第一次画圆……………………………………………………………………………18
4.4.2首次改进………………………………………………………………………………18
4.4.2第二次改进……………………………………………………………………………18
4.4.3第三次改进………………………………………………………………………………19
5.结论与总结…………………………………………………………………………………19
参考文献………………………………………………………………………………………20附录1主要元器件清单………………………………………………………………………21
附录2系统使用说明…………………………………………………………………………22
1.系统设计
1.1设计要求
1.1.1总体要求
设计一电机控制系统,控制物体在倾斜(仰角≤100度)的板上运动。
在一白色底板上固定两个滑轮,两只电机(固定在板上)通过穿过滑轮的吊绳控制一物体在板上运动,运动范围为80cm×
100cm。
物体的形状不限,质量大于100克。
物体上固定有浅色画笔,以便运动时能在板上画出运动轨迹。
板上标有间距为1cm的浅色坐标线(不同于画笔颜色),左下角为直角坐标原点。
1.1.2基本部分
(1)控制系统能够通过键盘或其他方式任意设定坐标点参数;
(2)控制物体在80cm×
100cm的范围内作自行设定的运动,运动轨迹长度不小于100cm,物体在运动时能够在板上画出运动轨迹,限300秒内完成;
(3)控制物体作圆心可任意设定、直径为50cm的圆周运动,限300秒内完成;
(4)物体从左下角坐标原点出发,在150秒内到达设定的一个坐标点(两点间直线距离不小于40cm)。
1.1.3发挥部分
(1)能够显示物体中画笔所在位置的坐标;
(2)控制物体沿板上标出的任意曲线运动(见示意图),曲线在测试时现场标出,线宽1.5cm~1.8cm,总长度约50cm,颜色为黑色;
曲线的前一部分是连续的,长约30cm;
后一部分是两段总长约20cm的间断线段,间断距离不大于1cm;
沿连续曲线运动限定在200秒内完成,沿间断曲线运动限定在300秒内完成;
(3)其他
1.2方案比较与论证
1.2.1驱动机构的选择
根据题目要求,要用小型电机来控制图板两边的细线进行收放来调节物体在斜板上的运动。
小型电机我们可以选用直流电机或步进电机。
下面是对两种电机的分析和比较。
方案一:
采用直流电机作为系统的主要动力机构.直流电机是日常生活中比较常用的电机类型.直流电机可以采用由小功率三极管8050和8550组成的简单H型PWM电路作为直流电机的驱动.虽然,只需要D/A转换芯TLC5615、脉宽调制芯片TL494、光隔离芯片TLP521等就能够完成单片机对直流电机的控制,其调速也比较平滑.但是本次设计中用到两个电机相互配合来调节物体的升降,要求很高的精度,直流电机较难实现。
方案二:
采用步进电机作为系统的主要动力机构.步进电机是一种用脉冲信号进行控制,并将电脉冲转换成的角位移或线位移的控制电机.它可以看作是一种特殊运行方式的同步电机.它由专用电源供给电脉冲,每输入一个脉冲,步进电机就移进一步.这种电机的运动方式与普通匀速旋转的电动机有一定的差别,它是步进式运动的,由于步进电机是受脉冲信号控制的,所以它适合于作为数字控制系统的伺服元件.这就可以用单片机给它送脉冲的次序和频率的变化来达到较为精确的控制步进电机的转向和转速.这就能基本能够满足题目的要求——通过调节电机的转向和转速来更为精确的调节两条细线的收放,来控制物体在板上的运动.
通过分析、比较和论证,最后结合题目的实际要求,采用了转速和转向都容易达到较为精确控制的混合式步进电机.
1.2.2编程语言的选择
方案一:
采用汇编语言来进行程序的编写.汇编语言是低级语言,因此设计人员对单片机的硬件结构要有较详细的了解,编程时对数据的存放、寄存器和工作单元的使用等要由设计者安排,一但程序较长,功能较复杂时,其程序就显得不够条理化。
而且汇编语言对数学计算显得较弱,精度也不太理想。
采用C语言进行程序的编写,C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,即具有高级语言的优点,又具有低级语言的许多特点.因此,C语言特别适合于编写系统软件.C语言简洁、紧凑,使用方便、灵活;
运算符丰富;
数据结构丰富;
具有结构化的控制语句,用函数作为程序的模块单位,便于实现程序的模块化;
生成目标代码质量高,程序执行效率高。
其中的运算功能强大非常有实用价值的。
通过分析、比较和论证,最后结合题目的实际要求,采用了C语言来实现数学运算较为复杂的此次设计。
1.2.3显示模块的选择
显示界面能很好的让使用者了解系统的运行状态和操作结果。
显示界面的显示效果和显示的信息能够充分反映出的设计者的设计理念和编程技术。
采用点阵式液晶显示器(LCD)显示.虽然其功能强大,可显示各种字体的子数、汉字、图象,还可以自定义显示内容,但是编程复杂,需要完成大量的显示编程工作。
而且它也得占用单片机很多的接口。
会影响其他的功能模块的实现。
方案二:
采用八段数码显示管(LED)显示。
虽然只能显示很有限的符号和数码字,但完全可以满足本设计数字显示的要求,且编程很简单。
用串行显示其占用单片机的I/O口也很少。
通过分析、比较、和论证,最后根据题目的实际要求,考虑到两者的价格,采用了后者。
1.3系统的总体设计
系统方框图如图1—1所示
图1—1
本系统可通过键盘输入来选择工作模式和设定具体坐标,LED显示模块实时显示操作者所选择的工作模式、具体的输入参数和物体中画笔所在位置的坐标。
单片机根据输入的工作模式和设定的具体坐标参数,从I/O中口的P0口的低四位和P2口的低四位给左右两个步进电机发送相应频率和数量的脉冲,脉冲经过步进电机的驱动电路后,从而达到对步进电机的正反转和加减速控制,最终实现对物体的运动控制。
2.硬件单元电路设计
硬件电路的设计是整个系统功能实现的必要条件,是设计成功的基础。
因此硬件单元电路的设计也马虎不得,认真地做好准备。
2.1键盘与显示电路
本设计中为了尽量节省单片机的I/O口,采用了具有128段LED显示及64键键盘控制芯片BC7281A,其特点是可驱动8位或16位数码管显示或64/128只独立LED,具有64键键盘接口,内含有去抖动功能。
这给设计键盘和LED显示电路带来很大的方便。
另外,我们键盘与显示电路是串行方式的,因此,所占用的单片机I/O口才三个。
为系统以后的功能扩展流下了较大的空间。
的方框图如图2—2所示。
图2—2
2.2步进电机的驱动电路设计
由于系统中采用的步进电机为混合式,所以我们采用了日本东芝公司生产的MP4020驱动芯片,该芯片的内部电路图如图2—3所示。
图2—3
MP4020可驱动四相的步进电机,使用该芯片时,必须在其输入端基极前串上限流电阻,以起到保护芯片的作用。
为了使从单片机送来的信号通过驱动芯片后能稳定的驱动步进电机,在信号输入驱动芯片前先通过了一个74LS04非门,从而增大信号的电流即增大了输出功率。
步进电机的驱动电路方框图如图2—4所示,具体的电路原理图如图2—5。
图2—4
图2—5
图2—5为右边电机驱动的原理图,I/O口使用P0口的低四位。
左电机的驱动原理图和右边一样,只是I/O使用了P2口的低四位。
2.3反射式红外线探测传感器模块设计。
反射式红外线传感器具有电路简单,十分实用的特点,在一些抗干扰能力要求不高,探测距离不长的情况下,使用的非常多。
本次设计的发挥部分要求运动物体能寻黑色轨迹运动。
这完全可利用红外线探测传感器能够辨别光对黑色物体与白色物体的反射率不同这点来实现。
红外线探测传感器的电路原理图如图2—6所示。
图2—6
当红外线发射二极管发射的红外线投射到白纸时,由于白色物体的反光率很好,接收三极管能够感光而导通。
电压比较器LM339的输出口从高电平变成底电平,发光二级管从亮变成灭,而当红外线投射到黑色物体时,由于黑色物体吸收红外线,因而三极管不能接受到反射光,不能导通,LM339的输出口Vo仍然保持高电平,发光二极管继续点亮。
据此能够达到探测黑色物体的目的。
本设计采用了四路反射式探测传感器(分别使用P3.0、P3.1、P3.2、P3.3等四个I/O口),基本能够满足物体寻轨运动的要求。
3.系统的软件设计
一个系统功能实现的如何,可靠的硬件电路保障是必须条件,所用的编程语言的功能强弱和所编的程序的完善与精确程度,则是充分条件。
因此,整个设计的成功与否与程序的完成情况是密不可分的。
由于C语言的运算功能比较强大,而且模块化的程序设计易于程序的修改和扩展,符合这次题目的要求。
3.1控制系统软件的总体设计
总体流程图如图3—1所示:
N
Y
图3—1
3.2画任意设定的线段
手动定位,把物体放在坐标系下方的任一点,然后运行程序;
程序的控制过程为:
先让左边的电机反转100步,右边电机停;
然后,让右边电机正转100步,左边电机停;
再判断物体是否运动了110cm,如果物体运动没有达到了110cm,重复上述过程;
如果物体运动达到了110cm,程序结束。
程序流程图如图3—2所示:
Y
图4—2
图3—2
3.3画圆
圆心(a,b)可任意设定,由键盘输入。
然后计算出圆的正下方的点D的坐标(a,b-25),点D做为画圆的起点(x1,y1),顺时针方向画圆如图3—3。
画圆的基本思想是:
把圆分成若干等份,然后计算出每一等份两端(起点(X1,Y1)和终点(X,Y))的坐标。
因为知道圆心坐标和半径,所以圆的方程为
(X-a)^2+(Y-b)^2=r^2
式中,a—圆心横坐标
b—圆心纵坐标
r—圆的半径
因为起点坐标(a,b-25),计算下一点坐标(x,y)时,令横坐标x有一个微小的变化△x,则下一点的横坐标为x+△x,由圆的方程计算出下一点的纵坐标。
因为起点在圆的正下方和顺时针画圆,所以在弧段CA,△x为负值,即
X=X1+△X,
式中,△X—横坐标的变化量
X1—起点横坐标
X—终点的横坐标
Y—终点的纵坐标
图3—3
当顺时针画圆时,在弧线CA段,纵坐标随横坐标的变化越来越快,当坐标点靠近A点时,横坐标有一个微小的变化,纵坐标就有很大的变化,如果这样画出的圆会有很大的波动。
所以当坐标点靠近A点时,求坐标时自变量X和函数Y互换,不再由X解出Y,而把Y作为自变量,把X作为函数。
因为横坐标X随纵坐标Y的变化很小。
利用上一次计算出来的坐标,令纵坐标Y有一个微小的变化△Y,△Y为正值,即
Y=Y1+△Y
式中,△Y—纵坐标的变化量
Y1—起点纵坐标
同理,在D点附近,求圆上点的坐标时,横坐标X应作为自变量,纵坐标Y作为函数,即
X=X1+△X
同理,在弧线AD上,在A点附近Y随X的变化很快,所以求坐标时应由自变量Y解出X,即
Y=Y+△Y
式中,△Y—为负值
在弧线DBC段和弧线CAD段相同。
电机控制:
计算出圆上各段两端的坐标后,再根据两个滑轮的坐标(-15,115)和(95,115),计算出弧段两端到左滑轮的距离差S1和到右滑轮的距离差S2:
式中,S1—左滑轮到终点和起点的距离差
S2—右滑轮到起点和终点的距离差
X—起点的横坐标
Y—起点的纵坐标
X1—终点的横坐标
Y1—终点的纵坐标
再根据S1和S2的大小和正负,计算出左边电机和右电机应正转或反转的步数。
每计算一次圆上一点的坐标,计算一次两电机应正转或反转的步数,对电机控制一次。
其流程图如图3—4所示。
图3—4
3.4画设定终点坐标的线段
由键盘输入设定点坐标(a1,b1),再根据原点和设定点坐标,计算出由这两点确定的直线方程,斜率k=b1/a1,所以直线方程为Y=kX。
起点是坐标原点(X1,Y1),计算下一点坐标(X,Y)的方法:
令横坐标x有一个微小的变化增量△x,再根据直线方程Y=kX,计算出纵坐标Y的值,即
X=X+△X,
Y=k(X+△X)
式中,
直到x>
=a1为止。
根据计算出来的直线上的坐标,和两个滑轮的坐标,计算出起点和下一点的坐标到左边滑轮的距离差S1和右边滑轮的距离差S2,即
再根据S1和S2的正负和大小,确定左边电机和右边电机正转或反转的步数。
每计算出一点坐标,计算一次两电机正反转的步数,对电机控制一次。
其流程图如图3—5所示。
Y
图3—5
3.5步进电机的控制
对于电机的控制在本设计中占有相当重要的地位,为了达到对电机的精确控制,我们也采取了一定的算法,下面对电机的控制详细说明一下:
首先,根据S1和S2计算出每个步进电机应该走的步数,分别由S1和S2的绝对值除以步进电机的步距而得出(并且用四舍五入法作相应的处理,以减小误差),对于两个定滑轮(定滑轮的转向可由在电机上的不同绕线方向来改变)究竟应该是顺时针转还是逆时针转,这将由S1和S2的符号决定,如果S1或者S2大于零,那么相对应的定滑轮就应该是顺时针转,否则就是逆时针转。
所以对于定滑轮的转向组合共有四种(以画圆为例,同样可适用于其它图形)。
它们分别以四个关键点作为分界点,这四个关键点如图3—6所示,也就是分别经过两个定滑轮和圆心的直线在圆周上的四个交点。
图3—6
A,B,C,D分别为四个关键点,在弧AD中,S1<
0,S2>
0;
在弧AB中,S1>
在弧BC中,S1>
0,S2<
在弧CD中,S1<
0。
这样就很容易的可以看出来两个定滑轮的转向是如何和何时进行变化的。
所以在编写程序时,只要同时判断S1和S2的符号就可以决定两个定滑轮的转向。
两个步进电机应该走的步数以及转向都已经有了解决方法,接下来就是尽量的增加画出来的曲线的平滑度,在这里我们采用了嵌套循环的方法来解决这个问题。
外层循环的循环次数是步数较少的一个电机的步数,用步数较多的电机的步数除以步数较少的电机的步数而得到的商作为内层循环的循环次数,对于余数,在这个嵌套循环之外再用一个循环作为电机的步数补偿,其循环次数就是余数的值(并且要根据两个电机的步数的大小来判断究竟应该对哪个电机进行补偿)。
但是,当有一个电机的步数为零的时候,上面的方法就不适应了,所以还应该增加一种这样的电机控制,当有一个的电机的步数为零的时候,我们只要单独对另一个电机进行控制就行了。
通过上面所说的方法对电机进行控制从而最大限度的减小了由于电机控制而造成的误差,从而使画出来的弧线比较平滑。
此部分的流程图如图3—7所示:
图3—7
3.6红外寻迹
通过手动定位,把物体放到黑线的起点,开始寻迹。
对传感器的信号进行判断,当左边传感器有信号时,物体左移一段很小的距离,并重新判断传感器的状态;
右传感器和左传感器是一样的道理,从而能够保持物体沿黑线运动;
当左边传感器和右边传感器同时有信号时说明已成功转弯,这时应该改判上下两个传感器来保持物体能够沿着黑线前进,当上边传感器有信号时,物体应该上移一段很小的距离,并重新判断传感器的状态;
下边的传感器和上边的是一样的道理,具体的实现步骤可参考流程图
3—8
图3—8
4.系统调试
无论在什么场合,理论和实际总归存在一定的差距,一般往往在理论上看上去完全正确的但到实际验证时却会碰到很多意想不到的问题。
因此,系统的调试工作也是显得非常关键。
4.1测试使用的仪器
测试使用的仪器设备如下表1所示。
序号
名称、型号、规格
数量
备注
1
双路可跟踪直流稳压电源
安徽通用电子仪器有限责任公司
2
卷尺
略
3
秒表
表1
4.2步进电机驱动电路的调试。
在本次设计中看似十分简单的步进电机驱动电路在焊接完成后却发现其带不动电机,步进电机并不根据所发的脉冲作相应的动作,而只是发生轻微的震动,并且转距也很小。
通过,初步分析,认为驱动芯片的基极电阻过大,从而限制了其基极的电流,所以其输出功率也被限制了。
驱动功率管的电路图如图4-1所示:
图4—1
然而,在改小驱动芯片上串接在基极电阻后再加上用一个非门电路来增大负载能力。
本以为肯定能够驱动电机。
可再次实验时却发现步进电机不但没正常步进运动,反而震动的更加厉害了。
当经过与实验箱上的步进电机比较后,发现实验箱上的步进电机的相序并不是A,B,C,D,而是A,C,B,D,我们便把给步进电机送的脉冲次序进行了调换,结果电机能够正常的运转了。
经过查阅资料才了解到我们所选用的步进电机是混合式的。
内部结构和反应式的不一样。
混合式步进电机的内部电路是A,C两相,B,D两相的绕组相互串联,空间上相差90度,因此,给电机送脉冲时必须以A-C-B-D的顺序,否则就会出现步进电机震动的现象。
4.3画设定坐标的线段的测试
让物体从原点运动到由键盘设定的一个坐标位置,我们通过了反复的调试和改进后才最终达到了题目的要求。
表2是我们在测试时的记录:
测试次数
终点坐标
理论值(cm)
实测值(cm)
偏差(cm)
用时(s)
第一次
X:
30Y:
40
50
49.4
-0.6
113
第二次
49.5
-0.5
114
第三次
40Y:
30
第四次
50.3
+0.3
115
第五次
70Y:
70
99
97
-2