两轮自平衡小车控制系统的设计

两轮自平衡小车控制系统的设计

摘 要: 介绍了两轮自平衡小车控制系统的设计与实现,系统以飞思卡尔公司的16位微控制器MC9S12XS128MAL作为核心控制单元,利用加速度传感器MMA7361测量重力加速度的分量,即小车的实时倾角,以及利用陀螺仪ENC-03MB测量小车的实时角速度,并利用光电编码器采集小车的前进速度,实现了小车的平衡和速度控制。在小车可以保持两轮自平衡前提下,采用摄像头CCD-TSL1401作为路径识别传感器,实时采集赛道信息,并通过左右轮差速控制转弯,使小车始终沿着赛道中线运行。实验表明,该控制系统能较好地控制小车平衡快速地跟随跑道运行,具有一定的实用性。

关键词: 控制;自平衡;实时性

近年来,随着经济的不断发展和城市人口的日益增长,城市交通阻塞以及耗能、污染问题成为了一个困扰人们的心病。新型交通工具的诞生显得尤为重要,两轮自平衡小车应运而生,其以行走灵活、便利、节能等特点得到了很大的发展。但是,昂贵的成本还是令人望而止步,成为它暂时无法广泛推广的一个重要原因。因此,开展对两轮自平衡车的深入研究,不仅对改善平衡车的性价比有着重要意义,同时也对提高我国在该领域的科研水平、扩展机器人的应用背景等具有重要的理论及现实意义。全国大学生飞思卡尔智能车竞赛与时俱进,第七届电磁组小车首次采用了两轮小车,模拟两轮自平衡电动智能车的运行机理。在此基础上,第八届光电组小车再次采用两轮小车作为控制系统的载体。小车设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械及能源等多个学科的知识。 1 小车控制系统总体方案

小车以16位单片机MC9S12XS128MAL作为中央控制单元,用陀螺仪和加速度传感器分别检测小车的加速度和倾斜角度[1],以线性CCD采集小车行走时的赛道信息,最终通过三者的数据融合,作为直流电机的输入量,从而驱动直流电机的差速运转,实现小车的自动循轨功能。同时,为了更方便、及时地观察小车行走时数据的变化,并且对数据作出正确的处理,本系统调试时需要无线模块和上位机的配合。小车控制系统总体架构。

2 小车控制系统自平衡原理

两轮小车能够实现自平衡功能,并且在受到一定外力的干扰下,仍能保持直立状态,是小车可以沿着赛道自动循线行走的先决条件。为了更好地控制小车的行走方式,得到最优的行走路径,需要对小车分模块分析与控制。

本控制系统维持小车直立和运行的动力都来自小车的两个轮子,轮子转动由两个直流电机驱动。小车作为一个控制对象,它的控制输入量是两个电机的转动速度。小车运动控制可以分解成以下3个基本控制任务。

(1)小车平衡控制:通过控制两个电机正反方向运动保持小车直立平衡状态;

(2)小车速度控制:通过调节小车的倾斜角度来实现小车速度控制,本质上是通过控制电机的转速来实现小车速度的控制。

(3)小车方向控制:通过控制两个电机之间的转动差速实现小车转向控制。

2.1 小车平衡控制

要想实现小车的平衡控制,需要采取负反馈控制方式[2]。当小车偏离平衡点时,通过控制电机驱动电机实现加、减速,从而抵消小车倾斜的趋势,便可以保持车体平衡。即当小车有向前倾的趋势时,可以使电机正向加速,给小车一个向前的加速度,在回复力和阻尼力的作用下,小车不至于向前倾倒;当小车有向后倾的趋势时,可以使小车反向加速,给小车一个向后的加速度,从而不会让小车向后倾倒,。

从上述的定性分析可知,在运动过程中小车会不断地在平衡点附近来回摆动,如果控制不当,来回摆动的幅度会很大。显然,这样的控制不能满足两轮小车的实际要求,小车更无法按照赛道快速运行。为使小车可以在平衡点附近很好地保持平衡,需要对小车的加速度等进行严格地定量分析和计算。

直立着的小车能简化成放置在可以左右移动平台上的倒立着的单摆[3]。从图3可知,小车在偏离平衡位置时无法在不受外力的情况下稳定在平衡位置,是因为小车受到的回复力F=mgsinθ与小车位移偏离的方向相同,这样会加速使小车向偏离平衡的位置倒下。要想小车可以稳定在平衡位置,必须给小车额外增加一个和回复力相反方向的力。如果产生一个与小车偏离方向相同的加速度a,使小车受到额外的力F额外=-macosθ,此时小车所受到的合力为F合=mgsinθ-macosθ。只要F合<0,即F合的方向与小车偏离平衡位置的方向相反,小车就拥有了回复平衡位置的趋势,进而在空气阻力以及小车机械阻力的作用下,可以在一个平衡点稳定下来。

2.2 小车速度控制

两轮小车速度控制相对于4轮小车要复杂得多,因为在改变小车速度时,还需要保证小车可以实现平衡控制[4]。在保持小车平衡的前提下,采取改变小车倾角的方式来改变小车的速度。在一定范围内,当小车向前倾的角度越大时,小车前进的速度越大;当小车向后倾的角度越大时,小车前进的速度越小。

即使小车在直立控制调节下已经能够保持平衡,但由于安装误差的存在,传感器测量的角度与小车实际角度存在偏差,因此小车实际会在重力的作用下,朝倾斜的方向加速前进。故需要外加速度负反馈以控制小车稳定在平衡位置。速度控制的任务主要有以下3个。

(1)小车速度的测量;

(2)通过小车直立控制实现小车倾角的改变;

(3)根据速度误差控制小车倾角。

小车速度的测量可以通过安装在电机输出轴上的光电编码器来实现。本系统采用的是100线的编码器,即编码器上面的齿轮转一圈,编码器可以输出100个脉冲。再利用单片机具有输入捕捉功能的引脚PT7对该脉冲进行采样。在固定时间内,输出脉冲越多,小车的速度就越快,这样就可以测量出小车的速度。

小车倾角的控制所示系统实现。从小车直立控制算法中可知,小车的倾斜角度与加速度计Z轴测量输出的角度成比例线性关系[5]。因此,设置一个倾角给定值,小车的倾角给定值与重力加速度Z轴角度相减,便可以最终决定小车的倾角,再通过误差的比例-积分控制使角度自动维持在设定值附近,最后再利用角速度和角度作为输入量,制作一个比例-积分控制器,从而驱动电机维持车模保持给定的倾角。

理论上,当小车向前倾角为45°时,速度为2 m/s[2]。但是在实际控制中,由于小车机械传动方面的阻尼力以及轮子的摩擦力等因素的影响,小车无法达到理论要求。为了解决这些干扰对小车速度的影响,需要采用速度负反馈的控制策略,形成一个闭环控制系统。

2.3 小车方向控制

为使车模沿着赛道行驶,必须检测赛道信息。本系统采用线性摄像头CCD-TSL1401实时采集赛道信息。TSL1401CL是由一个128×1的光电二极管阵列、电荷放大器电路和内部的像素数据保存器组成。它保存了从起始到停止时间的所有像素。操作简单,内部控制逻辑只需要串行输入信号SI和时钟CLK信号[6]。CCD检测采集赛道信息视角图。

CCD提取赛道信息后,将小车速度控制信号与直立控制信号综合,与赛道偏差检测信号进行加和减运算,形成左右轮差动控制电压,使得小车左右轮运行角速度不一致进而控制小车方向,。

3 小车控制系统算法编程

小车的程序控制几乎都是在1 ms时间的中断里完成,主函数只是在不断地通过串口向上位机发送数据,进行实时监控。其中,中断程序分别完成了小车的直立控制、速度控制和方向控制,通过全局标志量的循环计数,确定每次小车需要调用执行的程序模块。中断函数的实现。

其中,小车的直立控制是本系统设计与实现的关键,角度计算和转换函数的实现如下所示。

void AngleCalculate(void)

{

float fDeltaValue;

g_fGravityAngle=(VOLTAGE_GRAVITY-

GRAVITY_OFFSET)*

GRAVITY_ANGLE_RATIO;

//加速度传感器计算出来的角度值

g_fGravityAngle=LOW_PASS_Acce(g_fGravityAngle);

//低通滤波

g_fGyroscopeAngleSpeed=(VOLTAGE_GYRO-

GYROSCOPE_OFFSET)*

GYROSCOPE_ANGLE_RATIO;

//陀螺仪计算出来的角速度值

g_fGyroscopeAngleSpeed=LOW_PASS_Gyro

(g_fGyroscopeAngleSpeed);//低通滤波

g_fCarAngle=g_fGyroscopeAngleIntegral;

fDeltaValue=(g_fGravityAngle-g_fCarAngle)

/GRAVITY_ADJUST_TIME_CONSTANT;

//用加速度传感器得到的角度与陀螺仪的偏差,纠正陀螺仪的输出

g_fGyroscopeAngleIntegral+=(g_fGyroscopeAngleSpeed+

fDeltaValue)/

GYROSCOPE_ANGLE_SIGMA_FREQUENCY;

}

本文介绍了直立行走小车控制系统的实现原理,通过对小车的平衡控制、速度控制和方向控制,实现了小车的直立行走与自动循轨的功能。在本系统的设计与制作过程中,不仅是对控制系统的实现原理的分析,还是对传感器的合理使用,都为开展对两轮自平衡车的深入研究提供了宝贵的实践经验。此外,在2013年举行的全国大学生飞思卡尔智能车竞赛中,此作品参加了华南赛区比赛,并荣获三等奖。实践证明,本系统的设计具有一定的实际价值。

两轮自平衡小车控制系统的设计

摘 要: 介绍了两轮自平衡小车控制系统的设计与实现,系统以飞思卡尔公司的16位微控制器MC9S12XS128MAL作为核心控制单元,利用加速度传感器MMA7361测量重力加速度的分量,即小车的实时倾角,以及利用陀螺仪ENC-03MB测量小车的实时角速度,并利用光电编码器采集小车的前进速度,实现了小车的平衡和速度控制。在小车可以保持两轮自平衡前提下,采用摄像头CCD-TSL1401作为路径识别传感器,实时采集赛道信息,并通过左右轮差速控制转弯,使小车始终沿着赛道中线运行。实验表明,该控制系统能较好地控制小车平衡快速地跟随跑道运行,具有一定的实用性。

关键词: 控制;自平衡;实时性

近年来,随着经济的不断发展和城市人口的日益增长,城市交通阻塞以及耗能、污染问题成为了一个困扰人们的心病。新型交通工具的诞生显得尤为重要,两轮自平衡小车应运而生,其以行走灵活、便利、节能等特点得到了很大的发展。但是,昂贵的成本还是令人望而止步,成为它暂时无法广泛推广的一个重要原因。因此,开展对两轮自平衡车的深入研究,不仅对改善平衡车的性价比有着重要意义,同时也对提高我国在该领域的科研水平、扩展机器人的应用背景等具有重要的理论及现实意义。全国大学生飞思卡尔智能车竞赛与时俱进,第七届电磁组小车首次采用了两轮小车,模拟两轮自平衡电动智能车的运行机理。在此基础上,第八届光电组小车再次采用两轮小车作为控制系统的载体。小车设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械及能源等多个学科的知识。 1 小车控制系统总体方案

小车以16位单片机MC9S12XS128MAL作为中央控制单元,用陀螺仪和加速度传感器分别检测小车的加速度和倾斜角度[1],以线性CCD采集小车行走时的赛道信息,最终通过三者的数据融合,作为直流电机的输入量,从而驱动直流电机的差速运转,实现小车的自动循轨功能。同时,为了更方便、及时地观察小车行走时数据的变化,并且对数据作出正确的处理,本系统调试时需要无线模块和上位机的配合。小车控制系统总体架构。

2 小车控制系统自平衡原理

两轮小车能够实现自平衡功能,并且在受到一定外力的干扰下,仍能保持直立状态,是小车可以沿着赛道自动循线行走的先决条件。为了更好地控制小车的行走方式,得到最优的行走路径,需要对小车分模块分析与控制。

本控制系统维持小车直立和运行的动力都来自小车的两个轮子,轮子转动由两个直流电机驱动。小车作为一个控制对象,它的控制输入量是两个电机的转动速度。小车运动控制可以分解成以下3个基本控制任务。

(1)小车平衡控制:通过控制两个电机正反方向运动保持小车直立平衡状态;

(2)小车速度控制:通过调节小车的倾斜角度来实现小车速度控制,本质上是通过控制电机的转速来实现小车速度的控制。

(3)小车方向控制:通过控制两个电机之间的转动差速实现小车转向控制。

2.1 小车平衡控制

要想实现小车的平衡控制,需要采取负反馈控制方式[2]。当小车偏离平衡点时,通过控制电机驱动电机实现加、减速,从而抵消小车倾斜的趋势,便可以保持车体平衡。即当小车有向前倾的趋势时,可以使电机正向加速,给小车一个向前的加速度,在回复力和阻尼力的作用下,小车不至于向前倾倒;当小车有向后倾的趋势时,可以使小车反向加速,给小车一个向后的加速度,从而不会让小车向后倾倒,。

从上述的定性分析可知,在运动过程中小车会不断地在平衡点附近来回摆动,如果控制不当,来回摆动的幅度会很大。显然,这样的控制不能满足两轮小车的实际要求,小车更无法按照赛道快速运行。为使小车可以在平衡点附近很好地保持平衡,需要对小车的加速度等进行严格地定量分析和计算。

直立着的小车能简化成放置在可以左右移动平台上的倒立着的单摆[3]。从图3可知,小车在偏离平衡位置时无法在不受外力的情况下稳定在平衡位置,是因为小车受到的回复力F=mgsinθ与小车位移偏离的方向相同,这样会加速使小车向偏离平衡的位置倒下。要想小车可以稳定在平衡位置,必须给小车额外增加一个和回复力相反方向的力。如果产生一个与小车偏离方向相同的加速度a,使小车受到额外的力F额外=-macosθ,此时小车所受到的合力为F合=mgsinθ-macosθ。只要F合<0,即F合的方向与小车偏离平衡位置的方向相反,小车就拥有了回复平衡位置的趋势,进而在空气阻力以及小车机械阻力的作用下,可以在一个平衡点稳定下来。

2.2 小车速度控制

两轮小车速度控制相对于4轮小车要复杂得多,因为在改变小车速度时,还需要保证小车可以实现平衡控制[4]。在保持小车平衡的前提下,采取改变小车倾角的方式来改变小车的速度。在一定范围内,当小车向前倾的角度越大时,小车前进的速度越大;当小车向后倾的角度越大时,小车前进的速度越小。

即使小车在直立控制调节下已经能够保持平衡,但由于安装误差的存在,传感器测量的角度与小车实际角度存在偏差,因此小车实际会在重力的作用下,朝倾斜的方向加速前进。故需要外加速度负反馈以控制小车稳定在平衡位置。速度控制的任务主要有以下3个。

(1)小车速度的测量;

(2)通过小车直立控制实现小车倾角的改变;

(3)根据速度误差控制小车倾角。

小车速度的测量可以通过安装在电机输出轴上的光电编码器来实现。本系统采用的是100线的编码器,即编码器上面的齿轮转一圈,编码器可以输出100个脉冲。再利用单片机具有输入捕捉功能的引脚PT7对该脉冲进行采样。在固定时间内,输出脉冲越多,小车的速度就越快,这样就可以测量出小车的速度。

小车倾角的控制所示系统实现。从小车直立控制算法中可知,小车的倾斜角度与加速度计Z轴测量输出的角度成比例线性关系[5]。因此,设置一个倾角给定值,小车的倾角给定值与重力加速度Z轴角度相减,便可以最终决定小车的倾角,再通过误差的比例-积分控制使角度自动维持在设定值附近,最后再利用角速度和角度作为输入量,制作一个比例-积分控制器,从而驱动电机维持车模保持给定的倾角。

理论上,当小车向前倾角为45°时,速度为2 m/s[2]。但是在实际控制中,由于小车机械传动方面的阻尼力以及轮子的摩擦力等因素的影响,小车无法达到理论要求。为了解决这些干扰对小车速度的影响,需要采用速度负反馈的控制策略,形成一个闭环控制系统。

2.3 小车方向控制

为使车模沿着赛道行驶,必须检测赛道信息。本系统采用线性摄像头CCD-TSL1401实时采集赛道信息。TSL1401CL是由一个128×1的光电二极管阵列、电荷放大器电路和内部的像素数据保存器组成。它保存了从起始到停止时间的所有像素。操作简单,内部控制逻辑只需要串行输入信号SI和时钟CLK信号[6]。CCD检测采集赛道信息视角图。

CCD提取赛道信息后,将小车速度控制信号与直立控制信号综合,与赛道偏差检测信号进行加和减运算,形成左右轮差动控制电压,使得小车左右轮运行角速度不一致进而控制小车方向,。

3 小车控制系统算法编程

小车的程序控制几乎都是在1 ms时间的中断里完成,主函数只是在不断地通过串口向上位机发送数据,进行实时监控。其中,中断程序分别完成了小车的直立控制、速度控制和方向控制,通过全局标志量的循环计数,确定每次小车需要调用执行的程序模块。中断函数的实现。

其中,小车的直立控制是本系统设计与实现的关键,角度计算和转换函数的实现如下所示。

void AngleCalculate(void)

{

float fDeltaValue;

g_fGravityAngle=(VOLTAGE_GRAVITY-

GRAVITY_OFFSET)*

GRAVITY_ANGLE_RATIO;

//加速度传感器计算出来的角度值

g_fGravityAngle=LOW_PASS_Acce(g_fGravityAngle);

//低通滤波

g_fGyroscopeAngleSpeed=(VOLTAGE_GYRO-

GYROSCOPE_OFFSET)*

GYROSCOPE_ANGLE_RATIO;

//陀螺仪计算出来的角速度值

g_fGyroscopeAngleSpeed=LOW_PASS_Gyro

(g_fGyroscopeAngleSpeed);//低通滤波

g_fCarAngle=g_fGyroscopeAngleIntegral;

fDeltaValue=(g_fGravityAngle-g_fCarAngle)

/GRAVITY_ADJUST_TIME_CONSTANT;

//用加速度传感器得到的角度与陀螺仪的偏差,纠正陀螺仪的输出

g_fGyroscopeAngleIntegral+=(g_fGyroscopeAngleSpeed+

fDeltaValue)/

GYROSCOPE_ANGLE_SIGMA_FREQUENCY;

}

本文介绍了直立行走小车控制系统的实现原理,通过对小车的平衡控制、速度控制和方向控制,实现了小车的直立行走与自动循轨的功能。在本系统的设计与制作过程中,不仅是对控制系统的实现原理的分析,还是对传感器的合理使用,都为开展对两轮自平衡车的深入研究提供了宝贵的实践经验。此外,在2013年举行的全国大学生飞思卡尔智能车竞赛中,此作品参加了华南赛区比赛,并荣获三等奖。实践证明,本系统的设计具有一定的实际价值。


相关内容

  • 两轮自平衡机器人项目验收总结报告
  • 两轮自平衡机器人 项目验收总结报告 一.项目实施工作概况总结 1.1概述 两轮自平衡电动车是动态平衡机器人的一种,其运作原理主要是建立在"动态稳定"的基本原理上,也就是车辆本身的自动平衡能力.以内置的精密固态陀螺仪和加速度计来判断车身所处的姿势状态,然后单片机据此发出合适指令,驱 ...

  • 牛顿第二定律教案
  • 教学过程 一.复习预习 知识回顾 1.加速度的理解及其定义式. 2.改变物体运动状态的原因. 3.牛顿第一定律. 课前预习 1.探究加速度与力.质量的关系 2.牛顿第二定律 二.知识讲解 导入新课 [思考与讨论]:从牛顿第一定律的内容你能得出什么疑问? [结果]:牛顿第一定律告诉我们,如果一个物体不 ...

  • 初中物理总复习专题 三 力学实验
  • 2015年中考复习物理专题 三 力学实验 1.为了探究"阻力对物体运动的影响",小刚设计了如图所示的实验:使小车从斜面上滑下,分别在 木板.毛巾.棉布表面前进一段距离后停下来的情况. (1)小刚想,之所以要使水平面的粗糙程度不同,是 因为物体运动的远近除了与阻力有关,还与其初速度 ...

  • 牛顿第一运动定律教案
  • 人教版<12.5 牛顿第一定律>新课标教学设计(方案一) 素质教学目标 1.知识与技能 (1)知道牛顿第一定律的内容 (2)知道惯性的概念 (3)知道二力平衡 2.过程与方法 (1)通过活动体验任何物体都具有惯性 (2)探究摩擦力对物体运动的影响 (3)探究二力平衡条件 3.情感.态度与 ...

  • 物体的惯性教案
  • 第五节 物体的惯性 素质教学目标 1.知识与技能 (1)知道牛顿第一定律的内容 (2)知道惯性的概念 (3)知道二力平衡 2.过程与方法 (1)通过活动体验任何物体都具有惯性 (2)探究摩擦力对物体运动的影响 (3)探究二力平衡条件 3.情感.态度与价值观 通过活动和阅读感受科学就在身边 教学重点 ...

  • 循迹小车模块设计
  • 论文关键字:智能小车 电机 驱动 L298 自动循迹 传感器 算法 论文摘要:本系统采用存储空间较大的AT89S52作为主控制芯片,电动车电机驱动采用L298N 芯片:结合GP2A25光电开关,能较有效的控制其在特定位置转弯角度及行驶出错处理:采用LD-5461AS 数码管来显示系统分阶段运行的时间 ...

  • 塔机基础知识.
  • 塔式起重机基础知识 塔式起重机的技术性能是用各种参数表示的,其主要参数包括幅度.起重量.起重力矩.自由高度.最大高度等:其一般参数包括:各种速度.结构重量.尺寸.尾部尺寸及轨距轴距等,下面分别简述: 一.幅度是从塔式起重机回转中心线至吊钩中心线的水平距离,通常称为回转半径式工作半径.对于俯仰变幅的起 ...

  • 平衡杆小车
  • 2014年福建省大学生电子设计竞赛试题 平衡杆小车[本科组] 二.要求 1.基本要求 (1)控制小车在原地前后小范围运动,保持倒立杆平衡10S以上: (2)小车的倒立摆平衡时,用10cm细绳系一30g砝码,拉开45度撞击摆杆顶端,撞击方向与行车方向一致,摆杆能自动恢复平衡并保持5S: (3)控制小车 ...

  • 一级倒立摆的模糊控制
  • 一级倒立摆的模糊控制 一. 立题背景 倒立摆( Inverted Pendulum)是处于倒置不稳定状态.通过人为控制使其处于动态平衡的一种摆.它是一个复杂的快速.非线性.多变量.强耦合的非最小相位系统,是重心在上.支点在下控制问题的抽象. 倒立摆的控制一直是控制理论及应用的典型课题倒立摆系统通常用 ...