智能直立循迹小车的控制方案

2013-10-08 03:04赵继强陈建国林荣群
中国科技信息 2013年20期
关键词:车模陀螺仪小车

赵继强 陈建国 林荣群

福州大学,福建 福州 350108

1 系统设计

采用飞思卡尔9S12G系列单片机MC9S12G128MLL作为主控芯片,MC9S12G128MLL单片机自带8位PWM通道和10位ADC通道,可使程序编写更简洁,运行速度更快,而且AD采样精度高,为直立部分传感器的数据采集提供了极大的方便。其系统可分为控制器模块、电源模块、电机驱动模块、循迹模块、加速度传感器和陀螺仪模块等。

2 理论分析

2.1 车模平衡控制

通过负反馈,可以实现车模的平衡控制。因为车模两轮着地,车体只会在轮子滚动的方向上发生倾斜。因此通过控制电机带动轮子转动,抵消在一个方向上倾斜的趋势便可以保持车体的平衡。

倒立摆之所以不能像单摆一样可以稳定在垂直位置,就是因为在它偏离平衡位置时,所受到的回复力与位移方向相同。因此,倒立摆便会加速偏离垂直位置,直至倒下。为了使倒立摆能够像单摆一样稳定在垂直位置,我们通过控制倒立摆底部车轮,使得它作加速运动,该力与车轮的加速度方向相反,大小成正比。

2.2 车模速度控制

小车运行速度是通过控制车轮速度实现的,两轮电压之和决定了小车前进速度。车轮通过小车两个后轮电机经由减速齿轮箱驱动,因此通过控制电机转速可以实现对车轮的运动控制。

2.3 车模转向控制

控制左右轮电机两端的给定电压,就能实现小车的转向。小车的转向速度与两轮速度之差成正比。因此,两轮电压之差决定了小车的转向速度。

3 系统程序设计

3.1 软件主要框架和功能

采取模块化编程思想,将系统程序分为各个不同模块,每个模块有相应的接口,能够实现各个模块的良好对接,且增加程序的可读性、可移植性,方便后期的调试查错。

程序的主要流程图如图所示。程序上电运行后,进行单片机的初始化。初始化的工作包括两部分,一部分是单片机各个应用模块的初始化。第二部分是应用程序初始化。

图1 程序流程图

初始化完成,进入车模直立检测子程序,判断车模当前状态。该子程序通过读取加速度传感器的数值判断 车模是否已经处于直立状态,当倾角近似为零时,可认为车模处于直立状态。直立状态判断成立,则启动车模直立控制、车模方向控制以及车模速度控制。接下来程序进入主循环,主循环中主要是进行上述三种车模运动控制,并一直发送检测数据,包括:当前车模倾角、当前车模速度、当前车模方向。同时检查车模是否跌倒,跌倒判断可以通过车模倾角是否超过一定范围进行确定。一旦车模跌倒,则停止车模运行,然后重新进入车模直立判断过程。车模的直立控制、速度控制以及方向控制都是在中断程序中完成,其中涉及分时控制思想,并且通过全局标志变量确定是否进行这些闭环控制。

3.2 具体模块实现

1)角度、速度、方向检测模块

角度检测模块:在车模上安装陀螺仪,可以测量车模倾斜角速度,将角速度信号进行积分便可以得到车模的倾角。

速度检测模块:读取安装在车轮上的编码器所返回的脉冲数,通过计算获取当前速度值。

方向检测模块:通过读取红外反射式光电传感器返回的高低电平信号,分析得出当前车体所朝的方向。

2)PWM输出模块

该模块子函数中需要解决两个问题,一个是电机的正反转问题,一个是电机的转速问题。第一个问题,通过初始化中设定的电机极性变量来确定,该变量的值决定了PWM波的输出极性。第二个问题,通过初始化中设定的电机PWM输出值变量决定,并且有左电机和右电机之分。

3)车模运动控制模块

该模块由三部分组成:直立平衡控制、速度控制、方向控制。车轮由电机驱动,因此可通过控制电机转速实现对车轮的运动控制。车模运行速度调整时间相对较长,此时,电机速度与施加在其上的电压成正比。通过传统的PID反馈控制,便可以精确控制电机的转速,从而控制车模的运行速度。具体控制如图2所示。

图2 PID控制

具体的调用是在中断函数中执行,中断函数中采用了分时执行的思想。使用DSC的一个定时器,产生1ms的周期中断。中断服务程序的任务被均匀分配在0-4的中断片段中,因此每个中断片段中的任务执行的周期为5ms,频率为200Hz。

这些任务包括:1)编码器脉冲的读取与清除。累积电机转动角度和电机速度,为后面车模速度控制提供平均数。2)启动AD转换。进行20次模拟量采集,然后计算各通道模拟量的平均值。3)车模直立控制过程。包括车模角度计算、电机PWM输出等。4)车模速度控制。在这个时间片段中,进行0-19计数,在其中第0片段中,进行速度PID调节,速度调节的周期为100ms。5)车模方向控制。根据读取光电传感器返回的高低电平信号,计算偏差数值,然后计算电机控制电压数值。

4 系统调试

4.1 加速度传感器和陀螺仪放置位置的选择

加速度传感器和陀螺仪在车体中的位置对于直立部分的稳定调试有重要影响。将带有陀螺仪和加速度计的电路板固定在整个车模质心的位置或车模底部,可以最大程度减少车模运行时前后振动对于测量倾角的干扰。此外,由于车子在调试过程中难免出现碰撞和倾倒,从而引起的车体振动易导致传感器相对位置的改变,可以用热熔胶将其固定在车体上,有效防止由于传感器位置的改变而引起的参数不匹配。

4.2 检测变送环节精确度的校验

利用串口示波器来捕捉车模实时信息,并且对加速度传感器所返回的角度值与陀螺仪所返回的角度值进行比较,分析二者的匹配和跟随状况。调整陀螺仪的中心给定值,来补偿角度测量的误差。调试情况如图。

4.3 PID参数的整定

将车子投入闭环运行状态。遵循先调直立控制部分,再调速度控制部分,最后调方向控制部分的原则。每一个模块整定又遵循先调比例系数P,再调积分时间I,最后调微分时间D的顺序。经过反复调试,最后找到一组比较合适的参数。

5 结语

本文介绍了直立循迹小车系统的控制方案。基于加速度传感器、陀螺仪以及红外光电传感器的检测信号,通过对于小车平衡、速度和转向的控制,实现了小车的直立循迹。经过调试,小车能够平稳地行驶,达到预期的效果。核心MC9S12G128MLL单片机功能强大、性价比高,适合用于该控制系统。

[1]郭一楠, 常俊林, 赵峻 等. 过程控制系统[M]. 北京:机械工业出版社, 2009.2.

[2]李诗然. 基于直立小车的软件设计[J]. 北京电力高等专科学校学报(自然科学版), 2012, 29(10).

[3]竞赛秘书处. 第七届全国大学生“飞思卡尔”杯智能汽车竞赛电磁组直立行车参考设计方案[M]. 2.0. , 2012:66-67.

猜你喜欢
车模陀螺仪小车
基于EMD的MEMS陀螺仪随机漂移分析方法
大车拉小车
潮玩车模精准吸引“Z世代”
自制小车来比赛
刘老师想开小车
两轮自平衡小车的设计与实现
我国著名陀螺仪专家——林士谔
车展,没有车模看什么
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
微机械陀螺仪概述和发展