两轮自平衡小车的研究意义

1.1两轮平衡车的研究意义

两轮平衡车是一种能够感知环境,并且能够进行分析判断然后进行行为控制的多功能的系统,是移动机器人的一种。在运动控制领域中,为了研究控制算法,建立两轮平衡车去验证控制算法也是非常有用的,这使得在研究自动控制领域理论时,两轮平衡车也被作为课题,被广泛研究。对于两轮平衡车模型的建立、分析以及控制算法的研究是课题的研究重点和难点。设计的两轮平衡车实现前进、后退、转弯等功能是系统研究的目的,之后要对车子是否能够爬坡、越野等功能进行测试。一个高度不稳定,其动力学模型呈现多变量、系统参数耦合、时变、不确定的非线性是两轮平衡车两轮车研究内容的难点,其运动学中的非完整性约束要求其控制任务的多重性,也就是说要在平衡状态下完成指定的控制任务,如在复杂路况环境下实现移动跟踪任务,这给系统设计带来了极大的挑战。因此可以说两路平衡车是一个相对比较复杂的控制系统,这给控制方法提出了很高的要求,对控制理论方法提出来很大的挑战,是控制方法实现的典型平台,得到该领域专家的极大重视,成为具有挑战性的控制领域的课题之一。

两轮平衡车是一个复杂系统的实验装置,其控制算法复杂、参数变化大,是理论研究、实验仿真的理想平台。在平衡车系统中进行解賴控制、不确定系统控制、自适应控制、非线性系统控制等控制方法的研究,具有物理意义明显、方便观察的特点,并且平衡车从造价来说不是很贵,占地面积小,是很好的实验工具,另外建立在此基础上的平衡系统的研究,能够适应复杂环境的导航、巡视等,在工业生产和社会生中具有非常大的应用潜力。

两轮平衡车所使用的控制方法主要有:状态回馈控制、PID控制、最优控制、极点回馈控制等,这些控制方法被称为传统控制方法。

1.2 本文研究内容

(1)两轮自平衡小车的简单控制系统设计。

(2)基于倒立摆模型的两轮自平衡小车的数学建模。

(3)利用MATLAB工具进行两轮自平衡小车的系统控制方法分析。

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

这一章将着重描述两轮自平衡小车的工作原理,部分说明了小车的控制系统组成。

2.1 两轮自平衡小车的基本原理  

两轮自平衡小车的架构与倒立摆相似,其运动图如图1所示,以电机轴线为中心转动。

图1  小车倾斜示意图

未做控制时,车身前倾或者后倾时左右轮都是处于静止状态,也就是说车身的前后摆动与车轮的转动是相互独立的。而当开始控制时,小车开始时竖直的,

释放后小车将有三种运动方式,只有正确的控制小车才能保持平衡。这三种运动

方式和控制描述如下:

(1)静止:当车身的重心在电机轴心线上方时小车是静止且平衡的状态,不需

任何控制。

(2)前倾:当车身的重心靠前时车身会向前倾,那么需要驱动电机使车轮向前

由此,控制两轮自平衡小车是通过测量可得车身与竖直方向的角度与角速度,改变电机方向以及其控制力(力矩,电压)的大小以维持小车的自身动态平衡。

滚动,才能保持平衡状态。

(3)后退:当车身的重心靠后时车身会向后倾,那么需要驱动电机使车轮向后

滚动,才能保持平衡状态。

由此,控制两轮自平衡小车是通过测量可得车身与竖直方向的角度与角速度,改变电机方向以及其控制力(力矩,电压)的大小以维持小车的自身动态平衡。

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

对于两轮自平衡小车的分析,其控制系统可分为三大部分:

(1) 倾角传感器用于采集小车的运动状态信息。

(2) 控制器用以处理之前传感器采集到的信息,经过计算输出信号以控制电

机。

(3) 执行机构是伺服电机用以控制小车。

两轮自平衡小车使用倾角传感器来取得小车的的状态,其机械结构中的两个

车轮由带编码器的直流电机来驱动,通过控制单元按一定控制算法来控制小车的前进和后退,从而完成控制的目的。其控制原理框图如图2所示。

倒立摆系统的模型

3.1 倒立摆系统简介

因为两轮自平衡小车的原理等价于以及倒立摆,所以我们这里的数学模型是和一级倒立摆基本差不多的。

倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种技术的有机 结合,其被控系统本身又是一个绝对不稳定、高阶次、多变量、强耦合的非线性 系统,可以作为一个典型的控制对象对其进行研究。最初研究开始于二十世纪 50 年代,麻省理工学院( MIT)的控制论专家根据火箭发射助推器原理设计出一级倒立摆实验设备。近年来,新的控制方法不断出现,人们试图通过倒立摆这样一个典型的控制对象,检验新的控制方法是否有较强的处理多变量、非线性和绝对不稳定系统的能力,从而从中找出最优秀的控制方法。倒立摆系统作为控制理论研究中的一种比较理想的实验手段,为自动控制理论的教学、实验和科研构建一个良好的实验平台,以用来检验某种控制理论或方法的典型方案,促进了控制系统新理论、新思想的发展。由于控制理论的广泛应用,由此系统研究产生的方法和技术将在半导体及精密仪器加工、机器人控制技术、人工智能、导弹拦截控制系统、航空对接控制技术、火箭发射中的垂直度控制、卫星飞行中的姿态控制和一般工业应用等方面具有广阔的利用开发前景。平面倒立摆可以比较真实的模 拟火箭的飞行控制和步行机器人的稳定控制等方面的研究。

3.2 倒立摆分类

    倒立摆已经由原来的直线一级倒立摆扩展出很多种类,典型的有直线倒立 摆,环形倒立摆,平面倒立摆和复合倒立摆等,倒立摆系统是在运动模块上装有 倒立摆装置,由于在相同的运动模块上可以装载不同的倒立摆装置,倒立摆的种 类由此而丰富很多,按倒立摆的结构来分,有以下类型的倒立摆:

1) 直线倒立摆系列

直线倒立摆是在直线运动模块上装有摆体组件,直线运动模块有一个自由度,小车可以沿导轨水平运动,在小车上装载不同的摆体组件,可以组成很多类别的倒立摆,直线柔性倒立摆和一般直线倒立摆的不同之处在于,柔性倒立摆有两个可以沿导轨滑动的小车,并且在主动小车和从动小车之间增加了一个弹簧,作为柔性关节。

2) 环形倒立摆系列 环形倒立摆是在圆周运动模块上装有摆体组件,圆周运动模块有一个自由度,可以围绕齿轮中心做圆周运动,在运动手臂末端装有摆体组件,根据摆体组件的级数和串连或并联的方式,可以组成很多形式的倒立摆。

3) 平面倒立摆系列

平面倒立摆是在可以做平面运动的运动模块上装有摆杆组件,平面运动 模块主要有两类:一类是 XY 运动平台,另一类是两自由度 SCARA 机械臂;摆体组件也有一级、二级、三级和四级很多种。

4) 复合倒立摆系列

复合倒立摆为一类新型倒立摆,由运动本体和摆杆组件组成,其运动本 体可以很方便的调整成三种模式,一是 2)中所述的环形倒立摆,还可以把本 体翻转 90 度,连杆竖直向下和竖直向上组成托摆和顶摆两种形式的倒立摆。

按倒立摆的级数来分:有一级倒立摆、两级倒立摆、三级倒立摆和四级倒立摆,一级倒立摆常用于控制理论的基础实验,多级倒立摆常用于控制算法的研究,倒立摆的级数越高,其控制难度更大,目前,可以实现的倒立摆控制最高为四级倒立摆。

直线倒立摆建模

4.1 直线一级倒立摆的物理模型

   系统建模可以分为两种:机理建模和实验建模。实验建模就是通过在研究对 象上加上一系列的研究者事先确定的输入信号,激励研究对象并通过传感器检测 其可观测的输出,应用数学手段建立起系统的输入-输出关系。这里面包括输入 信号的设计选取,输出信号的精确检测,数学算法的研究等等内容。机理建模就 是在了解研究对象的运动规律基础上,通过物理、化学的知识和数学手段建立起

系统内部的输入-状态关系。

对于倒立摆系统, 由于其本身是自不稳定的系统, 实验建模存在一定的困难。但是忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可 以在惯性坐标系内应用经典力学理论建立系统的动力学方程。下面我们采用其中的牛顿-欧拉方法建立直线型一级倒立摆系统的数学模型。

4.1.1 微分方程的推导

在忽略了空气阻力和各种摩擦之后, 可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图 4-1 所示。

我们不妨做以下假设:

M 小车质量
    m 摆杆质量
    b 小车摩擦系数
    l 摆杆转动轴心到杆质心的长度
    I 摆杆惯量

F 加在小车上的力
    x 小车位置

图 4-1   直线一级倒立摆模型

φ 摆杆与垂直向上方向的夹角
θ 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)

图是系统中小车和摆杆的受力分析图。其中,N P 为小车与摆杆相互作用力的水平和垂直方向的分量。

注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而 矢量方向定义如图所示,图示方向为矢量正方向。

图 4-2 小车及摆杆受力分析

仿真结果显示,系统稳定时间较短,还可以接受。可见,双闭环PID控制方案较好地实现了小车位置和摆杆角度的双重稳定,达到了应有的控制目的和要求。而且在调试过程中,我们发现该系统对PID参数的变化具有较低的灵敏度,当指定参数在一定范围内变化时,控制器均能有效地控制倒立摆并使其稳定地运行。

两轮自平衡小车双闭环PID控制设计的更多相关文章

  1. 四轴飞行器飞行原理与双闭环PID控制

    四轴轴飞行器是微型飞行器的其中一种,相对于固定翼飞行器,它的方向控制灵活.抗干扰能力强.飞行稳定,能够携带一定的负载和有悬停功能,因此能够很好地进行空中拍摄.监视.侦查等功能,在军事和民用上具备广泛的 ...

  2. SLAM+语音机器人DIY系列:(四)差分底盘设计——5.底盘PID控制参数整定

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  3. 手把手教你看懂并理解Arduino PID控制库——引子

    介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...

  4. jsoi2014前两轮回眸

    今天从常州回来了,第二轮考得惨不忍睹 大概来总结一下前两轮: 第一轮是4个小时,3道题,一道网络流,一道环形DP,一道线段树 最后一道题ahoi的原题(传送bzoj1798),非常水的线段树,是个很好 ...

  5. 面经:Google两轮背靠背

    如题,谷歌两轮背靠背电面.两轮都是废话不多说直奔coding,虽然第一轮的中国大哥还是花了一点点时间了解了一下我的背景.毕业时间.research方向.说好的research面呢? 中国大哥出的题: ...

  6. 5年Android程序员面试字节跳动两轮后被完虐,请查收给你的面试指南

    大家应该看过很多分享面试成功的经验,但根据幸存者偏差的理论,也许多看看别人面试失败在哪里,对自己才更有帮助. 最近跟一个朋友聊天,他准备了几个月,刚刚参加完字节跳动面试,第二面结束后,嗯,挂了- 所以 ...

  7. 使用msp432搭建的平衡小车(一)

    1.前言 笔者是一名大二学生曾经荒废一年学业,现在不断学习,所以有任何问题都希望讨论提出,你们的支持就是我的动力. 关于硬件搭建的步骤,笔者就不提网上方案太多了,笔者使用编码器电机,驱动采用tb661 ...

  8. 数字式PID控制的应用总结

    PID控制是一个二阶线性闭环控制器,通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能.PID控制优点:a. 技术成熟,b. 易被人们熟悉和掌握,c. 不需要建立数学模型 ...

  9. PID控制最通俗的解释与PID参数的整定方法

    转自->这里 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.阅读本文 ...

随机推荐

  1. ubuntu 安装php7.1

    sudo apt-get update sudo apt-get install -y language-pack-en-base locale-gen en_US.UTF-8 sudo apt-ge ...

  2. JavaWeb学习笔记——JavaEE基础知识

  3. PHP 出现 502 解决方案

    原文:http://www.ahlinux.com/php/10319.html nginx+php 出现502 bad gateway,一般这都不是nginx的问题,而是由于 fastcgi或者ph ...

  4. DllMaps

    http://www.mono-project.com/docs/advanced/pinvoke/dllmap/ http://www.mono-project.com/docs/advanced/ ...

  5. 9-slice-scaling

    9-slice-scaling http://rwillustrator.blogspot.com/2007/04/understanding-9-slice-scaling.html

  6. sqlserver检测死锁;杀死锁和进程;查看锁信息

    http://blog.sina.com.cn/s/blog_9dcdd2020101nf4v.html sqlserver检测死锁;杀死锁和进程;查看锁信息 ( ::)转载▼ 标签: sql 检测死 ...

  7. Fiddler源代码分享

    frmViewer.cs: namespace Fiddler{    using Microsoft.Win32;    using System;    using System.Collecti ...

  8. Effective Objective-C 2.0 — 第14条:理解“类对象“的用意

    每个实例都有一个指向Class 对象的指针,用以表明其类型,而这些 Class 对象则构成了类的继承体系. 如果对象类型无法在编译期确定,那么就应该使用类型信息查询方法来探知. 尽量使用类型信息查询方 ...

  9. firefox 提示 setTimeout():useless setTimeout call (missing quotes around argument?) 错误

    原来代码: setTimeout(window.parent.refreshNode(id),500);// 500毫秒后,调用父窗口的refreshNode()方法 refreshNode()方法总 ...

  10. 解决安装VS2013提示“已停止工作”问题

    新安装操作系统(win8.1),手动安装各种驱动,安装VS2013,报错,见下图: 原因:显卡驱动问题. 解决办法:卸载intel显卡驱动这碧池.(系统会自动给你适配合适的)