悬挂运动控制系统设计说明文档格式.docx
《悬挂运动控制系统设计说明文档格式.docx》由会员分享,可在线阅读,更多相关《悬挂运动控制系统设计说明文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
以此为基础,下面对系统各子模块的方案进行论证。
1)电机驱动方案
方案一:
使用专用电机驱动芯片。
专用驱动芯片部的压降一般比较低,在驱动电路上的功耗较低。
因此是一种比较合适的选择。
方案二:
使用分立器件自做电机驱动电路。
可以用场效应管搭建H桥式驱动电路,简单方便。
但如果器件选择不当,可能会产生较大的压降,附加功耗增加,使电路过热甚至烧毁电路。
从系统稳定性和功耗上考虑,本系统选择了方案一。
2)单片机结构方案
使用单MCU结构。
单MCU结构可以有效利用单片机的硬件资源,在系统现有硬件的基础上尽量实现系统更多的功能,这是每一个系统的设计者努力追求的目标。
为了降低系统硬件成本,使用单MCU结构是较好的方案。
使用双MCU结构。
就本赛题来说,其硬件制作相对较少,如何在有限的几天更好地利用人力资源,开发出更好的、更完善的系统将成为一个必须面对的问题,而且双MCU结构易于扩展升级。
因此,本系统使用了双MCU的结构来开发系统软件。
3)循迹模块方案
方案一:
采用CCD传感器,通过图像识别确定黑线轨迹。
此方案循迹稳定,但实现难度较大。
方案二:
采用反射式红外传感器,根据白纸与黑线的反射率不同辨别轨迹。
使用传感器组成阵列可以探测出轨迹的所有延伸方向,满足循迹的要求。
本系统使用了方案二。
4)输入输出模块方案
良好的人机交互界面使得设计更加人性化。
为方便操作者对整个控制过程有直观的认识,决定使用240×
128点阵式LCD实时地显示运动物体的运动轨迹和参数。
同时,为了扩展系统性能和方便操作,系统在使用4×
4键盘的基础上再添加一个PS/2鼠标,打算用来任意操作物体的移动。
经上述方案设计与论证,得到系统的总体框架图如图1所示。
图1系统总体方框图
二、系统原理与分析
1.步进电机特性
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,使得步进电机只有周期性的误差而无累积误差。
这一特性是整个系统方案的基础。
为了不产生累积误差,必须保证步进电机的运行不失步。
这和其运行矩频特性密切相关,如图2所示。
图2运行转距-频率特性
可见,对步进电机的驱动信号存在一个必须避开的频率――共振频率f0。
在本系统中,使用了电机是四相步进电机,步距角为1.8°
,采用四相八拍驱动方式,最小区分角为0.9°
,实测共振频率在510Hz左右,故系统所使的用每秒脉冲数(简称PPS,PulsePerSecond)应远小于共振频率以避开共振点。
2.物体运动的处理办法
根据“以直代曲,以割代弧”的思想,所有曲线上的弧线上都可用其割线代替。
只要能够平滑、精确地完成任意两点的移动,就能够完成按任意曲线的运动。
由于重力作用,在由过悬挂滑轮的直线分割的二维平面的下半平面,由X-Y坐标系的一对坐标(X,Y)能唯一确定物体到两悬挂滑轮的距离。
为了处理方便,可以使用以两悬挂滑轮为原点的自然坐标对(L(x,y),R(x,y))来表示物体的位置。
此时,L为物体到左边悬挂滑轮的距离,R为到右边悬挂滑轮的距离。
设有两点间的移动:
(x1,y1)à
(x2,y2),则可转化为(L1,R1)à
(L2,R2)的移动。
记ΔL=L2-L1,ΔR=R2-R1,设为左边步进电机驱动的PPS,为右边步进电机驱动的PPS,欲使两点间的运动曲线为直线,则应满足以下关系:
(式1)
而步进电机的转动方向则由ΔL及ΔR的正负来确定。
实践证明,这种驱动方式可以得到平滑的直线轨迹。
3.循迹黑线的探测及循迹算法
在以画笔为中心,半径22毫米的圆周上安装了8个反射式红外对管作为轨迹探测传感器,安装方式如图3所示。
图3轨迹探测传感器安装方式图4方向调整示意图
根据图3安装方式及安装半径,只要系统的采样频率足够高,轨迹是无法脱离探测围的。
但由于使用了8个传感器,不同传感器信号间的组合太多,使用一般穷举办法难以实现循迹控制,因此自己设计了一套循迹算法。
如图4,定义了物体循迹时运动的8个方向,图中黑箭头(1号方向上)表示物体当前的循迹方向。
循迹时,使用变量Direct表示当前物体运动方向,物体每次运动时先按当前方向向前步进一段固定的距离,然后检测采样传感器信号并调整Direct,再沿新的Direct方向步进。
由于所给的曲线是连续的,所以每次调整Direct只能是+1或-1。
如图4所示,Direct在需向左偏时则Direct加1,需向右偏则减1,继续前进则保持不变。
由于只有8个运动方向,所以对Direct的运算需在模8的围(0~7)进行。
现在考虑如何决定左偏或右偏的问题,使用上述调整办法只需要根据Direct的前后方向及左右方向的四个信号对Direct调整即可。
如图4中仅需根据1、3、5、7方向的信号对Direct调整。
由于每个方向上±
1和保持不变的传感器信号是一定的,故对8个方向上的调整策略用一个静态数组的形式保存起来,调整时直接查表即可,方便编程。
这种循迹算法大减少了循迹运动的调试时间,为整个作品成功的完成打下了基础。
当每次步进的距离较小时,若在Direct方向的前、左、右三处的传感器同时发现是白纸,则表明传感器探测到了曲线的间断部分或尽头,此时应根据前几次(2~3次)Direct的平均值作为探索方向,再向前步进2~3步,保证循迹的正确停止。
在取平均值时,需对7à
0和0à
7的转变作特殊处理,否则可能出错。
实践证明,按照上面的办法循迹迅速稳定,并且不会受交叉线的影响。
由于轨迹线有一定宽度,实际的轨迹不可能转折得十分迅速,当步进距离较小时,甚至可以完成锐角的循迹。
本系统使用的步进距离是8毫米,效果很好。
三、系统各模块电路设计及分析
1.步进电机驱动模块
图5为采用L297和L298所组成的步进电机驱动电路。
图5四相步进电机驱动电路
2.LCD显示模块(略)
3.PS/2鼠标模块
本作品使用了240×
128点阵式LCD作为显示工具,屏幕相对较大,故添加了PS/2鼠标作为输入设备。
PS/2鼠标使用TTL逻辑电平,与单片机接口方便,使用串行数据传输方式工作,占用单片机IO口少,且价格便宜,是一种实用的外围设备。
图6为PS/2鼠标接口的连接图。
图6PS/2鼠标接口图
当系统启动时,鼠标需要完成初始化工作。
本作品仿照个人电脑启动的方式完成了鼠标的初始化工作,并且最终将鼠标设置为如下方式:
工作模式:
Stream模式
采样速率:
100采样点/秒
分辨率:
4个计数值/毫米
缩放比例:
1:
1
数据报状态:
禁止
滚轮功能:
未开
没有使用滚轮功能,其数据包格式如表1所示。
表1鼠标数据包格式
字节1
X溢出
Y溢出
Y符号
X符号
中键
右键
左键
字节2
X轴位移量
字节3
Y轴位移量
根据设置,每次鼠标动作时将往单片机机发送一个数据包。
单片机接收到该数据包即可知道鼠标的全部动作,然后用软件根据需要处理即可完成移动、单击、双击等功能。
4.串行键盘模块(略)
5.传感器模块
采用了8个反射式红外对管ST168组成探测轨迹的传感器阵列。
8个传感器信号通过一个移位寄存器74HC165转换成串行数据,送往单片机处理,为循迹算法提供必要信息。
电路如图7所示,图中仅画出一路传感器的连接,其它7路传感器的信号分别连接到P1~P7引脚上。
图7传感器及信号处理电路
6.电源模块
用了三片大功率稳压片LM78H05K作为电源,其中两个分别给两个步进电机供电,第三个给其它所有器件供电。
四、系统软件设计
1.作品软件特色
嵌入式操作系统可以有效地管理硬件资源,加快开发周期,增加系统稳定度。
使用嵌入式操作系统开发系统,是对设计者思维的一种解放,使系统设计者可以将精力集中在对整个系统核心的设计上,而无需把精力过分地消耗在硬件细节上。
因此,本作品使用了嵌入式操作系统来进行软件开发。
由于使用的是凌阳公司的单片机SPCE061A,所以选用了凌阳公司相配套的MiniOS作为软件开发的操作系统。
2.系统软件总体设计
系统需完成人机交互、电机控制、循迹算法等功能。
在此基础上对软件设计进行分析、优化,得到系统软件总图如图8和图9所示。
图中各子任务是被MiniOS所管理的线程,线程间的调度切换由操作系统进行管理。
同时,利用MiniOS提供的中断管理功能,更是方便了整个系统的软件设计。
图8系统软件总图(其一)
图9系统软件总图(其二)
3.步进电机驱动算法子程序流程图
设dL,dR分别为物体从一点移到另一点时左右自然坐标的变化量,LSteps、RSteps为对应的电机所需的总脉冲数,则根据(式1)可得两点间直线运动的驱动算法,图10是程序流程图。
图10步进电机驱动脉冲流程图
4.双机通讯协议
由于在本系统中所传递的信息种类较多,并且某些信息需带有数据,单纯地使用UART收发数据难以满足本系统要求。
系统采用了使用数据帧传送信息的办法解决这个问题。
经过优化处理,下面是通讯