时间:2024-06-19
朱建华
(中国冶金地质总局山东局二队,山东 潍坊 261021)
智能循迹小车是在没有人工干预的情况下,能够沿设定路径自动行驶的安全、稳定运输车。它是以电磁、光学等作为引导装置,普遍采用充电蓄电池为行驶动力,通过设计计算机程序来控制它的行驶状态和满足其它要求。工业上普遍用来装载和搬运货物。例如,在规定路径上铺设一条通电漆包线,小车可以通过电磁轨道所带来的路径信息进行自动行驶,将工厂货物自动沿着路径运送到目的地,大大提高了工作效率。
为保证两轮小车的直立行走,设计了两轮小车的硬件和软件;通过铺设跑道,即铺有一条漆包线,漆包线内通有20KHz的方波交流信号,通过对其周围交变磁场的检测以实现循迹行驶[1]。
车模直立的控制可以简化为倒立摆直立的控制。倒立摆的平衡原理又类似于单摆。单摆能够稳定在一个位置的原因是当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物恢复到平衡位置。在回复力作用下,单摆进行周期运动,而此时的空气阻力提供了阻尼使其最后稳定在平衡位置。
图1 两轮车受力示意图
若要使倒立摆平衡,只需对其增加额外受力,使恢复力与位移方向相反即可。控制倒立摆底部,使得它作加速运动。在受力点上分析倒立摆受力,它就会受到额外的惯性力,该力与倒立摆底部的加速度方向相反,大小成正比。倒立摆所受到的回复力为(式中,θ为车模倾角;θ′为角速度):
增加阻尼力后变为:
控制算法简化为
只需调整两个K 参数即可使倒立摆直立。通过类比,即可得到车模的直立控制方案。假设倒立车模简化成高度为L,质量为m 的简单倒立摆,它放置在可以左右移动的车轮上。假设外力干扰引起车模产生角加速度x(t)。沿着垂直于车模地盘方向进行受力分析,可以得到车模倾角与车轮运动加速度a(t)以及外力干扰加速度x(t)之间的运动方程。两轮车直立受力如图1所示。
车模运动方程:
在θ很小时,简化为:
车模静止时a(t)=0:
为了保证直立控制的稳定性,尽量保证车模在竖直位置时能够到达平衡状态。
前瞻设计:前瞻用来检测赛道上的交变磁场,实现循迹行驶。其材料采用了碳纤维管。碳纤维管质量轻,具有较强的刚性,为确保两个电感在一条直线上,将电感塞进碳纤维管两端。为了方便后期调试,用铁丝缠绕在纵向杆上,可以方便调整前瞻的长度。在前瞻的横向杆中间安装了一个插头,为后期调试提供方便。前瞻如图2所示。
图2 前瞻
电池和电机布置:为了循迹运行,需要将前瞻安装在车模前面20-40cm 处,为了保证车模在静止状态时,车身尽量接近竖直状态以方便传感器的布置,需要将电池安装在车模背面,电机安装在底部。
传感器安装:传感器包括编码器、陀螺仪、加速度传感器。其中陀螺仪和加速度传感器用双面胶粘到底盘上,一方面方便以后改变位置,另一方面可以在一定程度上减小振动的影响。编码器包括码盘和光点开光两部分,将码盘先安装在塑料柱上,然后用AB 胶粘到主动齿轮上,光电开关用铁丝固定,方便调整。传感器安装如图3所示。
图3 传感器安装
在PCB 绘制时,考虑到电机对单片机的影响,将单片机安装到离电机尽量远的地方,使单片机能够稳定运行,单片机运行需要5V 电源,其供电采用了7805方案,可以将电池7.2V 的电压转换成稳定的5V 电压,为单片机提供稳定的工作环境。
编码器使用了光电开关和码盘的方案,节约了成本;速度信号的采集使用了计数器芯片CD4520,对片内两路计数器进行级联,以满足计数要求;车轮方向的鉴别使用了D 触发器74LS74,保证了速度反馈的准确性;电机驱动采用MC33883 加四个IRF3205组成H 桥方案,其内阻小,发热量小[2]。
信号采集电路是将赛道上的电磁信息放大、滤波处理后,将信息经过A/D 转换传递到单片机中,经过单片机的运算处理。信号放大采用的是运算法大器实现的。然后,利用2个二极管把交变信号变成直流信号。接到单片机A/D 口。信号采集电路如图4所示。
图4 信号采集电路
电机驱动采用了MC33883来驱动H 桥。H 桥使用的是四个IRF3205,其导通内阻仅有8 mΩ,最大电流可达110A。配合MC33883,IRF3205 的发热量很小。这为车模的平衡控制创造了良好的条件电路原理如图5所示。
图5 电机驱动电路
车模控制电路制作与安装均已完毕。车模是否能够正常高速稳定运行,需要通过编写控制软件和车模调试来完成。
控制程序的编写主要包括信号采集及处理、直立控制、速度控制、方向控制。
信号的采集:加速度传感器和陀螺仪输出的信号为模拟量,通过单片机的ATD 端口转换为数字量进行归一化计算和卡尔曼滤波,电感信号同样为模拟信号,但由于其信号微弱,需要经过运放电路放大再输入到单片机的ATD 端口。轮速信号由编码器采集,编码器产生两路相差90度的方波型号,通过CD4520对一路方波进行计数,得到方波个数,由74LS74根据两个方波判断车轮的转动方向。这样就完成了信号的采集。
程序的总体框架:主函数初始化完成后,开启1ms中断,中断服务程序中分为测速、AD 信号转化及滤波、直立控制、速度控制、转向控制5个片段,每产生一个中断执行一个程序片段,5ms执行完一个循环。程序总体框架如图6所示。
图6 程序总体框架
中断服务程序:在程序中使用9S12 XS128 的RTI定时中断,产生一毫秒的周期中断。中断服务程序的任务被均匀分配在0-4 的中断片段中,每个中断片段中的任务执行的周期为5 毫秒,频率为200 Hz。将任务分配到不同的中断片段中,一方面防止这些任务累积执行时间超过1 毫秒扰乱一毫秒中断的时序,同时也考虑到这些任务之间的时间先后顺序。这些任务包括[4]:
(1)电机测速脉冲计数器读取与清除。累积电机转动角度。累积电机速度,为后面车模速度控制提供平均数;
(2)启动AD 转换。对加速度和角速度信号进行卡尔曼滤波。
(3)车模直立控制过程。包括车模角度计算、直立控制计算、电机PWM 输出等。
(4)车模速度控制:在这个时间片段中,又进行0-19计数。在其中第0片段中,进行速度PID 调节。因此,速度调节的周期为100 毫秒。也就是每秒钟调节10 次。
(5)车模方向控制:根据前面读取的电磁场检波数值,计算偏差数值,然后融合陀螺仪的信号进行PID控制。
直立控制:根据前面采集并滤波后的加速度传感器和陀螺仪信号对电机进行PID 控制。陀螺仪得到的是角速度信号,可直接作为车模倾角的微分量,对其积分可得到车模的倾斜角度,将车模角度和角速度乘以各自相应的系数就可以得到车模电机的控制量。为了避免陀螺仪信号的漂移带来的问题,通过加速度传感器得到的Z 轴加速度信号计算出的车模倾角,对陀螺仪信号积分进行修正。
速度控制:根据当前速度和目标速度进行PID 控制。当前速度和目标速度差作为基本偏差,对这个偏差进行积分作为累计偏差,然后分别乘以参数D 和参数P,得到PID 计算的结果。
速度控制周期为100毫秒。读取两个电极的光码盘脉冲进行累加,利用100毫秒的脉冲数量可以反映车模的电机的转速。车模速度采用两个电极速度的平均值。为了使得速度具有一定的物理含义,对于所取得的电机速度值需要进行单位转换。根据定义单位的物理含义,可以确定速度单位转换的比例值。在本程序中,定义速度的单位是电机每秒钟的转动圈数。
为了减少速度控制对于车模直立控制的影响,速度控制输出量的变化被函数speed control out 均匀分配在20个角度控制函数周期内,这样可以保证车模的稳定性。
转向控制:根据两个电感信号的差值和陀螺仪进行PID 控制,通过两轮的差速实现车模的转向。将两个电感信号求差并求和,两者之差除以两者之和,即为基本偏差,陀螺仪信号直接作为偏转角度的微分量,分别乘以参数P 和参数D,得到方向控制的结果。根据车模采集到的左右两个电磁传感器的数值计算出角度控制的量。该函数每10毫秒调用一次。
为了能够看到程序是否正常执行,安装一个发光二极管作为指示灯。当发光二极管闪烁时,则程序正常执行。在中断的最后一个片段里,设置一个变量,最后一个片段每执行一次对这个变量进行加一,当这个数大于某个数是则进行置零,每次置零时对发光二极管的控制引脚取反。这样,实现了二极管的闪烁[5]。
通过实车调试,当直立控制参数P 为50,参数D 为2.5时,车模可以提供足够恢复力;速度控制参数P 为70,D 为0.05时,车模可以稳定在一定范围内来回摆动;方向控制参数P 为350,D 为1.5时,车模可以快速恢复正确位置,且没有过冲现象,在急转弯的路况下小车可以在漆包线跑道内达到1M/s的速度。
分析了两轮自平衡电磁循迹小车的设计思路,提出了该车的总体设计方案。设计了小车的硬件和软件,铺设了试车跑道,通过调试,实现了小车的快速、稳定的循迹行驶。
[1]邱关源.电路[M].北京:高等教育出版社,2006.
[2]卓晴.电磁组直立行车参考设计方案[K],2012.
[3]张阳.MC9S12XS单片机原理及嵌入式系统开发[M].北京:电子工业出版社,2011.
[4]雷贞勇,谢光骥.飞思卡尔智能车舵机和测速的控制设计与实现[J].电子设计工程,2010,18(2):91-92.
[5]王宜怀,曹金华.嵌入式系统设计实战:基于飞思卡尔S12X 微控制器[M].北京:航空航天大学出版社,2011.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!