本设计的重点在于通过加速度传感器MMA7455采集各关节处角度信息,并根据得到的角度值及任务要求控制步进电机的运转,完成自由摆臂末端平板姿态的调整,完成预定任务。通过MMA7455加速度传感器得到的是三轴加速度信息,而在实际控制过程中所需要的是角度信息,所以要用到三角函数完成加速度值到角度值的转换,其次实践证明MMA7455加速度传感器稳定性较差,需要通过滑动平均滤波算法对得到的三轴加速度值进行滤波处理,以达到精确控制的目的。而对于步进电机的精确控制则需要PID控制算法以去除控制过程中的抖动,达到自控系统“稳、准、快”的设计要求。综上所述,本系统中存在大量的数据运算及控制算法并且对实时性要求较高,因此选用主频高达400 MHz的S3C2440作为主控芯片,一方面能保证系统基本功能的实现,另一方面有助于系统中各种性能指标的提升。
1 硬件系统设计
2 软件系统设计
本系统软件设计相对较复杂,既要考虑系统基本功能的实现,又要考虑系统易于使用。从软件功能看,主程序主要完成键值处理、LED显示、调用相应任务子程序模块以及各个任务模块下相应算法的实现,系统主流程如图2所示。
2.1 加速度值到角度值的转换算法
本自由摆平板控制系统安装了两个加速度传感器MMA7455 , 即水平安装于平板底部的加速度传感器1 与垂直安装在转轴处的加速度传感器2, 两个加速度传感器安装位置不同, 使用目的不同, 因而对角度的转换方法也不同[ 5]。加速度传感器1 主要用于在静态时对平板
姿态的判定, 因此采用加速度传感器以Z 轴加速度值就可判断出平板静态时的姿态, 如图3 所示。由图可知Z 轴所得加速度值只是重力沿平板法线方向的一个分量。故此可得:∠A=∠B=arcos(gz/g)
加速度传感器2 主要用来动态测量摆杆摆角, 为克服误差的引入, 采用X、Y 两个轴向的加速度值来测量摆角, 测量原理如图4 所示。
由图4 可知:θ=artan(gy/gx)。
2.2 步进电机的PID 控制算法实现[6]
对于平板角度的调整是根据所采到的角度值和任务要求控制步进电机的转动来实现的。而如果根据角度偏差e (k) 直接调整步进电机,则会带来抖动、超调等问题, 故此考虑采用PID控制算法对步进电机进行调整。数字PID 算法如式(1)所示:
式(4)即为本系统所使用的PID 控制数学模型。系统进入稳态后, 偏差是很小的。如果偏差在一个很小的范围内波动, 控制器读到这样微小的偏差计算后, 将会输出一个微小的控制量, 此时输出的控制值在一个很小的范围内不断改变自己的方向, 频繁动作, 从而发生抖动,这样不利于平板的精确控制, 因此, 当控制过程进入这种状态时,就进入系统设定的一个输出允许带e0, 即当采集到的偏差|e(k)|
2.3 平板旋转任务的实现
单摆一个摆动周期为2 s,步进电机旋转1°需要4个脉冲,故此任务中只需控制脉冲输出频率为720 Hz即可完成单摆摆动一个周期平板寻转一圈的要求。
2.4 硬币叠放任务实现
如图6所示,将摆杆拉至一固定角度α(α在45°~60°之间),系统通过平板底部角度传感器采集平板的倾角,根据PID算法控制步进电机将平板调至水平状态。将8枚硬币整齐叠放在平板中心位置,此时Z轴的加速度值等于1 g;放手后平板会略微倾斜,此时Z轴的加速度值小于1 g,因此可根据Z轴加速度值的大小判断松手时刻,与此同时通过转轴处的加速度传感器采集摆杆与垂直方向的夹角(即摆角α),并控制步进电机偏转α角度(即平板与摆杆垂直)。经受力分析可知,在平板与摆杆垂直状态时,各枚硬币X和Y方向所受合力均为0(即硬币处于平衡状态),硬币不会从平板滑落(对应多枚模式)。
2.5 激光笔照射任务实现[7]
假设单摆的初始位置在56.3°(arctan(1/r)=56.3°) 处,此时单摆的摆尖正指向A 点处( 若摆角摆于56.3° 位置处则平板正好修正90°), 此时平板与单摆平行, 若单摆顺时针转动角度θ ( 如图7 所示) , 平板若要指向A 点,则需逆时针转动β 角度,β 和θ 的计算关系如下( 假设单摆与平板平行, 最后减去90°就与题目要求一致):