运动控制是自动化技术的重要组成部分,是机器人等高技术领域的技术基础,已取得了广泛的工程应用。运动控制集成了电子技术、电机拖动、计算机控制技术等内容,例如在工厂、码头往往需要将货物从一点搬往另一点,如使用悬挂控制系统更方便、安全。在此基础上还可设计成基于三线悬挂结构的运动控制装置。所谓三线悬挂是指,将三根缆线系于一点并悬挂重物,且三根缆线分别挂在三个固定滑轮上,其长度由电机驱动的三个绕线轮分别控制,从而控制悬挂重物在三维空间中的位置。其中原理和悬挂轨迹控制系统一样的。
悬挂轨迹控制系统是一电机控制系统。为满足控制需要,本系统采用AT89S51单片机作为核心器件,多圈电位器为物体位置数据采集器件,以L298驱动的直流电机为执行设备,键盘和LED显示为人机接口的结构方式。算法方面通过以微小直线为单位的策略,完成较为复杂的长直线、圆周和不确定曲线。系统软件将物体运动的坐标转化成悬绳伸缩的距离,进而计算出多圈电位器需要转动到的位置,再算出两直流电机的脉冲宽度调制(PWM)值。再通过A/D转换实现对悬挂物位置的精确测量,并引入局部闭环反馈控制环节对误差进行修正。对于系统自定的确定线型(直线和圆周),通过调整两个直流电机不同的PWM值的搭配,可以控制物体的运动方向。而对于不确定的曲线,由光电传感器得到路线信息,经过单片机的处理,给出物体运动方向的指令。
本设计的主要特点:
1、优化的软件算法,智能化的自动控制,误差补偿。
2、使用双动滑轮,有效防止滑轮与拉绳之间打滑。
3、使用多圈电位器与动滑轮同步转动,引入反馈,实现物体精确定位。
4、LED显示模块提供一个人机对话界面,并实时显示坐标及物体的运动轨迹。
第2章系统功能及基本原理
2.1设计任务
1、控制系统能够通过键盘或其他方式任意设定坐标点参数;
2、控制物体在80cm×100cm的范围内作自行设定的运动,运动轨迹长度不小于100cm,物体在运动时能够在板上画出运动轨迹,限300秒内完成;
3、控制物体作圆心可任意设定、直径为50cm的圆周运动,限300秒内完成;
4、物体从左下角坐标原点出发,在150秒内到达设定的一个坐标点(两点间直线距离不小于40cm);
图2.1悬挂控制示意图
5、控制物体沿板上标出的任意曲线运动,如图2.1所示,曲线在测试时现场标出,线宽1.5cm~1.8cm,总长度约50cm,颜色为黑色;曲线的前一部分是连续的,长约30cm;后一部分是两段总长约20cm的间断线段,间断距离不大于1cm;沿连续曲线运动限定在200秒内完成,沿间断曲线运动限定在300秒内完成;
6、能够显示物体中画笔所在位置的坐标,运动轨迹与预期轨迹之间的偏差不得超过4cm。
2.2系统基本方案
根据设计要求,需要实现勾画设定轨迹和对设定轨迹的搜寻功能,并能实时的显示物体中画笔所在位置坐标。其系统方案框图如图2.2所示。图中多圈电位器安装在两个动滑轮上,电机收放线长度就会通过多圈电位器转换成电压值,通过A/D转换后送入单片机;反射式光电传感器对黑线进行检测,以脉冲信号的形式送入单片机,同时按键信号送入单
片机对物体进行设置校正以及轨迹参数设定,控制器对送来的信号进行分析、运算、处理,将控制信号输送到电机驱动模块,控制电动机的转速,使物体的运动轨迹得以控制。
第3章方案论证和比较
根据题目要求可知,本系统所涉及的核心问题主要有:
1、对电机的转速、转向、启停等多种工作状态进行快速而准确的控制,以保证悬挂物体按照预先设定或即时设定的运动轨迹运行。
2、为保证该控制系统的精度要求,必须对运动物体在画板上的具体位置(坐标点)进行实时的检测。
3、为保证该运动物体能在尽可能短的时间内按设定运动轨迹从起始点到达目标点,还需要相应的设定及显示电路。
我们分以下几个部分进行方案设计和比较论证。
3.1控制器模块
根据题目要求,控制器主要用于控制电机,并对坐标参数进行处理,控制电机移动方向。对于控制器的选择有以下两种方案。
方案一:采用FPGA为系统的控制器,FPGA可以实现各种复杂的逻辑功能,模块大,密度高,它将所有器件集成在一块芯片上,减少了体积,提高了稳定性,并且可应用EDA软件仿真、调试,易于进行功能控制。FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。通过输入模块将参数输入给FPGA,FPGA通过程序设计控制步进电机运动,但是由于本设计对数据处理的时间要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。
方案二:采用AT89S51作为系统控制的方案。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低等优点,各个领域应用广泛。并且,由于芯片引脚少,在硬件很容易实现。因此,在本设计中采用AT89S51处理输入的数据并控制电机运动。
综合上述两种方案,方案二较为简单,可以满足设计要求。
3.2电机的选择
方案一:采用直流电机。直流电机具有最优越的调速性能,主要表现在调速方便(可无级调速)、调速范围宽、低速性能好(起动转矩大、起动电流小)、运行平稳、噪音低、效率高等方面。
方案二:采用步进电机。步进电机具有控制简单、定位精确、无积累误差等优点。但它在运行时噪音大、高速扭矩小、启动频率低、价格较高。
基于上述比较,为了方便地对电机进行无级调速,和需要电机带负载能力强的特点,这里我们采用直流变速电机。
3.3驱动及调速方案
方案一:采用继电器对电动机的开和关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,实现容易;缺点是继电器的响应速度慢、机械结构易损坏、寿命较短。
方案二:采用内集成有达林顿管组成的H型的功率变换桥电路的恒压恒流桥式2A驱动芯片。用单片机输出PWM信号控制使之工作在占空比可调的开关状态,通过程序调节占空比精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单实现转速和方向的控制;电子开关的速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
方案三:采用DSP芯片,配以电机控制所需要的外围功能电路,通过数控电压源调节电机运行速度,实现控制物体的运动轨迹。该方案优点是体积小、结构紧凑、使用便捷、可靠性提高。但系统软硬件复杂、成本高。
基于上述理论分析和实际情况,拟定选择方案二。
3.4速度采集方案
方案一:采用霍尔集成片。该器件内部由三片霍尔金属板组成,当磁铁正对金属板时,由于霍尔效应,金属板发生横向导通,因此可以在电机上安装磁片,而将霍尔集成片安装在固定轴上,通过对脉冲的计数进行电机速度的检测。
方案二:采用对射式光电传感器。其检测方式为:发射器和接受器相互对射安装,发射器的光直接对准接受器,当测物挡住光束时,传感器输出产生变化以指示被测物被检测到。通过脉冲计数,对速度进行测量。由于电机的收线轮直径较小,将传感器安在电机上容易产生测量误差,将传感器安在滑轮上可以减少收线引起的误差。
方案三:采用多圈电位器式传感器间接测量方式。通过杠杆机构将线位移转化为电阻值的变化,再根据电阻与速度之间的关系实现速度的检测。
以上三种方案都是比较可行的方案。尤其是霍尔元件,应用得很广泛。方案一和方案二的精度都会有一定的限制。要达到本设计的要求会给制作带来难度;鉴于此情况选选择多圈电位器更好,远远满足本设计的精度要求。
3.5寻迹模块
探测板上黑线的大致原理是:光线照射到板面并反射,由于黑线和白纸的反射系数不同,可根据接受到的反射光强弱判断是否偏离黑线。
方案一:采用热探测器。由于温度变化是因为吸收热能辐射能量引起的,与吸收红外辐射的波长没有关系,即对红外辐射吸收没有波长的选择,因此受外界环境影响比较大。
方案二:使用发光二极管和光敏三极管组合。这种方案的缺点在于其他环境的光源会对光敏二极管产生很大的干扰。
方案三:使用红外反射式一体化传感器进行检测。
通过对比,这次设计中由于是近距离探测,故采用方案三来完成数据采集。由于红外光波长比可见光长,因此受可见光的影响较小。同时红外线系统还具有以下优点:尺寸小、质量轻,便于安装。反射式光电检测器就是其中的一种器件,它具有体积小、灵敏度高、线性好等特点,外围电路简单,安装起来方便,电源要求不高。用它作为近距离传感器是最理想的,电路设计简单、性能稳定可靠。
第4章系统硬件设计
4.1系统电路连接及硬件资源分配
本系统电路连接及硬件资源分配见图4.1所示。采用AT89S51单片机作为核心器件,多圈电位器为悬挂物体位置采集器件,通过ADC0832转换位数字信号送入单片机处理,L298作为直流电机的驱动模块,以MAX7219驱动的LED显示和4×4键盘作为人机接口。
4.2寻轨迹控制策略
根据题目的要求,悬挂物沿曲线运动的轨迹分为两段,连续段和间断段。可采用4个光电一体化传感器TCRT5000作为检测元件,其放置方式如图4.2所示。
寻找黑线策略,采用模糊寻找的方式,首先物体从坐标(0,8)运行到坐标(80,8),检测这之间有无黑线,如无,则从坐标(80,16)运行到坐标(0,16),再检测这之间有无黑线,如有,则从坐标(0,12)运行到(80,12),检测,如果没有检测到黑线,再进一步缩小范围从(80,14)运行到(80,14);如果检测到黑线,再进一步缩小范围从(80,10)运行到(80,10),当检测到黑线时就停下,此处将是黑线起点;如果没有检测到黑线则返回从(80,12)运行到(0,12)检测到的黑线即为黑线起点。以同样的运行检测方式即可寻找出黑线的起点。
在连续段寻迹时,通过判断四个传感器的16种组合状态,使电机作出相应的伸缩动作。当轨迹为间断线时,电机拉动传感器在大角度方向内位移,直到在某一方向检测到新的黑线为止。然后再调用连续段的寻迹程序。
4.3系统各模块单元电路设计
4.3.1电源部分电路设计
本系统中使用了直流12V电机,其额定工作电压为12V,而单片机额定工作电压为5V,所以电路中采用了7805和7812作为稳压模块,其最大输出电流为1.5A,满足系统电机驱动电流的要求,其电路如图4.3.1所示。
4.3.2电机控制模块设计
物体运动的轨迹由电机的转速和转向决定,电机的转速和转向的控制是通过多圈电位器对滑轮所转的圈速进行检测,同时通过另一个计数器对时间进行测量,结合两个计数器的值,由单片机计算出电机的速度,而物体运动的轨迹的里程由滑轮的周长和所转的圈数来计算。
本系统由单片机直接产生PWM信号,当单片机接受到相应的检测信号时,单片机转到中断口处理信息,PWM信号处于停发状态。将单片机产生的PWM信号经光电隔离器耦合后,控制L298驱动芯片来控制电动机的正反转、启动、制动。原理图如4.3.2所示。
单片机将P1.2、P1.5作为输出控制使能端,,P1.2、P1.6作为电机一的控制端,P1.3、P1.5作为电机二的控制端。L298的两个控制端(C、D)的工作情况由表4.3.1列出(Ven为使能端)。
表4.3.1 L298控制表
4.3.3电机速度采集设计
上面在方案论证中已经提出电机速度的数据采集是通过检测滑轮上的转速来得到电机的速度。如图4.3.3所示,速度采集系统中使用多圈电位器即图中W1、W2进行检测,然后通过ADC0832进行转换。ADC0832是一个8位双通道A/D转换器件。选用的多圈电位器为10圈、47KΩ,动滑轮直径为5cm,则旋转一圈的线长为:
L=5π
由ADC0832的分辨率得出,采集到最小线位移为:
l=L/28
当电机开始运行时,拖动滑轮转动,多圈电位器和滑轮同步转动,从而改变多圈电位器的输出电压,A/D转换器将多圈电位器的输出电压转换成数字信号送给单片机处理,从而实现对滑轮运转情况精确采集。
4.3.4寻迹部分电路设计
根据设计任务,悬挂物体要沿着黑线运行,采用反射式光电传感器进行探测。光电传感器的硬件设计如图4.3.4所示。电压比较器LM393的同相输入Ⅴin拉低,输出为低电平。当检测到黑线时,接收管截止,同相输入Ⅴin为高,比较器输出为高电平。本系统中四个传感器的OUT分别连接P1.0~P1.3。
4.3.5显示模块设计
显示部分电路由MAX7219、数码管组成。采用6个LED管进行X轴坐标显示、Y轴坐标显示。其电路图如4.3.5所示。
4.3.6键盘模块电路设计
图4.3.6 4×4键盘电路原理图
根据设计需求,本系统中使用了标准的4×4键盘,其电路原理图如图4.3.6所示。图中C1~C4为4×4键盘的列信号,L1~L4为4×4键盘的行信号。在本系统中,用P0.0~P0.3连接键盘的列信号C4~C1;用P0.4~P0.7连接键盘的行信号L4~L1。
在本系统中,S1~S3、S5~S7、S9~S11、S13为数字键,如图2.8,S4、S8、S12、S14~S16为功能键,S2、S5、S7、S10为双功能键。主要功能如图4.3.7所示。
1
2↑
3
方式
4
←
5
6
→
X
7
8↓
9
Y
0
设置
启动
确认
图4.3.7 4×4键盘功能图
设置键:手动对位或任意设定坐标点参数键,按下后用上、下、左、右键可进行手动对位控制,然后按确认键确认,图4.3.8所示。
图4.3.8设置键操作图
方式键:首先按下方式键,然后按数字键选择方式再确认,方式有以下几种:
方式1:归位,让物体自行回到原点。
方式2:作自行设定的运动。
方式3:画圆,首先利用数字键设置圆半径进行确认后,再按启动键运行。
方式4:定点运动,首先利用数字键设置一个坐标点的X、Y值进行确认后,再按启动键运行。
方式5:寻迹,首先让物体运行在轨迹起点,按下启动键开始寻迹。
图4.3.9所示,表示了几种方式的操作。
图4.3.9方式键操作图
启动键:用于所选运行方式的开始运行控制键。
确认键:用于设置、X、Y、方式输入值的确定。
第5章软件部分设计
5.1理论分析与计算
5.1.1位移/数据转换方法
首先记录初始A/D转换出来的数据,再使电机1工作,电机2停止,,使电机拖动一载体移位100cm,再记录下此期间所变化的A/D转换出的数据,由此则直流电机拉动载体位移1mm所需的数据,因此,直接可将拉线的位移转化为单片机检测A/D转换出来的数值。A/D转换的数值决定位移。
5.1.2点到点运动核心算法
结合图5.1说明,假设E(x0,y0),F(x1,y1)为给定平面范围上的任意两点,作辅助线(图中虚线部分),在直角三角形⊿ABE中
a02=(x0+15)2+(115-y0)2 (5.1)
在直角三角形⊿CDE中:
b02=(95-x0)2+(115-y0)2(5.2)
同理对于F点,两拉线长分别为:
a12=(x1+15)2+(115-y1)2(5.3)
b12=(95-x1)2+(115-y1)2(5.4)
因此当悬挂物从E点运动到F点时:
电机1的收放线长度为c(当c<0,电机正转(或拉线伸长);c>0时,电机反转(或拉线收缩))
c=a0-a1(5.5)
电机2的收放线长度为d(当d<0,电机反转(或拉线收缩),当d>0时,电机正转(或拉线伸长))
d=d0-d1(5.6)
根据c,d的正负分别确定电机1,电机2的正反转向。设绳索位移1mmAD变化值为P,而根据c,d的绝对值来确定电位器1,电位器2所要变化的值:
电位器1所分配的数值:
m=|c|*p(5.7)
电位器2所分配的数值:
n=|d|*p(5.8)
5.1.3误差补偿
为了使运动轨迹更加平滑,采用脉冲宽度调制技术控制直流电机驱动芯片L298,以实现对电机的转速工作状态进行快速而准确的控制,设电机1所运行的线值为n,电机2所运行的线值为m,则输出到电机1和电机2的定时器初值比例为n/m,这样可使电机1和电机2同步到达目标点。在点到点运行中,假设电机2的定时器初值为t,则电机1的定时器初始为n/m*t,该算法可能会造成电机所运行的路径为一条曲线,可以让单片机不断计算当前点到目标点的距离,不断改变定时器初值,也可以将直线分成几个线段来运行,使得所运行轨迹精度更高,直线更平滑。
5.1.4数学模型
本设计要求悬挂物能够画一个圆,采用微分曲线直线逼近法。首先将圆周等分为N份,将每小份弧线段等效为直线段画出,N越大,曲线就光滑。
设所画圆的圆心坐标为(x0,y0)半径为固定的25cm,(x,y)为圆周上的任意一点,由此确定圆的方程为:
(x*x0)2+(y-y0)2=252(5.9)
若直接使用该方程来求圆上点的坐标,算法比较复杂,采用了圆的参数方程:X=x0+25sint(5.10)
Y=y0+25cost(5.11)
(x0,y0)为圆心坐标
这样,则圆的坐标仅与参数t有关,因此,使角度t以某一设定的角度步长v累加,使t+q*v在周期[t,t+2π]内变化,其中q为累加值。这样就可以采样到圆上均匀的点,显然,角度步长v越小,在圆周上取得点越多,控制也会更精确。
5.2程序流程
5.2.1主流程图
本系统软件设计采用汇编语言与C语言交叉使用,为达到题目要求的控制精度和响应时间,针对各项功能设计相应的巧妙算法,采用了汇编语言与C语言交叉使用。系统软件主程序流程图如图5.2所示:
程序开始后,首先要对寻迹的光电检测口、MAX7219、电机驱动模块进行初始化,然后判断设置键或方式键是否有按下,以执行设置或几种方式的程序。
5.2.2定点运动子程序
单片机从键盘读入功能键和起始坐标值(X0,Y0),将(X0,Y0)带入式5-1和式5-2中计算出a0和b0。再从键盘读入终点坐标值(X1,Y1),也将其带入式5-3和式5-4中计算出a1和b1,程序流程图如5.3所示。
图5.2主程序流程图
图5.3定点运动子程序流程图
5.2.3画圆子程序
根据圆的参数方程的计算圆上点的坐标,通过调用定点程序来实现,画圆程序流程图如图5.4所示。
5.2.4寻迹子程序
寻迹示意图如图5.5示,通过判断传感器的不同状态值,作出相应的处理动作,当遇到断点时,多角度检测下段的黑线,直到再次检测到黑线。
寻迹流程图如图5.6所示。
第六章结束语
本系统主要以单片机(AT89S51)为主要控制、计算芯片。采用了L298驱动芯片和PWM技术实现电机控制。在设计过程中,力求硬件电路简单,充分发挥软件设计的优势,编程灵活方便来满足系统的要求。在检测部分,选择了双滑轮来解决打滑问题。还可利用上位机软件(例如组态王软件)进行实时模拟显示和控制。由于没有器材,所以未能完成实物制作,考虑到无实物此部分的发挥效果得不到展示,所以放弃了上位机软件的扩展。但从理论上基本上完成了题目中所有的基本要求和发挥部分。
致谢
次此能顺利完成毕业设计,除了我自身的努力以外,更少不了老师和同学的帮助与指导。为此,在这里我要对那些予以我帮助的每一位老师和同学表示衷心的感谢。此外,还要特别感谢对我予以指导的指导老师XXX老师,在整个毕业设计过程中,由于有他的耐心仔细的指导,在他繁忙的工作之余,还能抽出时间来指导我的设计,并对我设计中的每一个环节,每一个步骤和方案设计都做了一一的讲解、纠正和补充,在此对他表示衷心的感谢!
由于知识水平有限,在设计过程中难免有所出错,所以,希望各位老师、同学或读者能对我的设计论文中的缺陷和不足予以指正。