■ 二、原理篇


2.1 直立行走任务分解

电磁组比赛要求车模在直立的状态下以两个轮子着地沿着赛道进行比赛,相比四轮着地状态,车模控制任务更为复杂。为了能够方便找到解决问题的办法,首先将复杂的问题分解成简单的问题进行讨论。

为了分析方便,根据比赛规则,假设维持车模直立、运行的动力都来自于车模的两个后车轮,后轮转动由两个直流电机驱动。因此从控制角度来看,由控制车模两个电机旋转方向及速度实现对车模的控制。车模运动控制任务可以分解成以下三个基本任务,如图2- 1所示:

▲ 图2-1 车模控制任务分解

(1) 控制车模直立:通过控制两个电机正反向运动保持车模直立状态;
(2) 控制车模速度:通过调节车模的倾角来实现车模速度控制。
(3) 控制车模转向:通过控制两个电机之间的转动差速实现车模转向控制。

车模直立和方向控制任务都是直接通过控制车模两个后轮驱动电机完成的。可以假设车模的电机可以虚拟地被拆解成两个不同功能的驱动电机,它们同轴相连,分别控制车模的直立平衡、左右方向。在实际控制中,是将控制车模直立和方向的控制信号叠加在一起加载电机上,只要电机处于线性状态就可以同时完成上面两个任务。

车模的速度是由车模倾角控制完成的。车模不同的倾角会引起车模向前和向后速度变化,从而达到对于速度的控制。

▲ 图2-2 车模倾角引起车速变化

在上述三个任务中保持车模直立是关键。由于车模同时受到三种控制的影响,从车模直立控制的角度,其它两个控制就成为它的干扰。因此在速度、方向控制的时候,应该尽量平滑,以减少对于直立控制的干扰。三者之间的配合如图2- 3所示。

▲ 图2-3 三层控制之间相互配合

上述三个控制各自独立进行控制,它们各自假设其它两个控制都已经达到稳定。比如速度控制时,需要车模已经能够保持直立控制,通过调节车模倾角的偏移量,改变车模的实际物理倾角。车模前倾和后倾会改变车模的速度。为了避免影响车模直立控制,在进行速度控制时,对于车模倾角的改变一定需要非常的缓慢。这一点将会在后面速度控制中进行详细讨论。

下面分别讨论以上三个控制的实现方式。

2.2 车模直立控制

控制车模直立的直观经验来自于杂技表演。一般的人通过简单练习就可以让一个直木棒在手指尖上保持直立。这需要两个条件:一个是托着木棒的手掌可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角加速度)。通过手掌移动抵消木棒的倾斜角度和趋势,从而保持木棒的直立。这两个条件缺一不可,实际上就是控制中的负反馈机制,参见图2- 4。

▲ 图2-4 保持木棒直立的反馈控制

世界上还没有任何一个天才杂技演员可以蒙着眼睛使得木棒在自己手指上直立,因为没有了负反馈。

车模直立也是通过负反馈实现的。但相对于上面的木棒直立相对简单。因为车模有两个轮子着地,因此车体只会在轮子滚动的方向上发生倾斜。控制轮子转动,抵消倾斜的趋势便可以保持车体直立了。如图2- 5所示。

▲ 图2-5 通过车轮运动保持车模直立

那么车轮如何运行,才能够最终保持车体垂直稳定?为了回答这个问题,一般的做法需要建立车模的运动学和动力学数学模型,通过设计最优控制来保证车模的稳定。为了使得同学们能够比较清楚理解其中的物理过程。下面通过对比单摆模型来说明保持车模稳定的控制规律。

重力场中使用细线悬挂着重物经过简化便形成理想化的单摆模型。直立着的车模可以看成放置在可以左右移动平台上的倒立着的单摆。如图2- 6所示。

▲ 图2-6 车模简化成倒立的单摆

普通的单摆受力分析如图2- 7所示。

▲ 图2-7 普通单摆受力分析

当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物回复平衡位置。这个力称之为回复力,其大小为:

F=−mg⋅sin⁡θ≈−mgθF = - mg \cdot \sin \theta \approx - mg\thetaF=−mg⋅sinθ≈−mgθ

在此回复力作用下,单摆便进行周期运动。在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。空气的阻尼力与单摆运行速度成正比,方向相反。阻尼力越大,单摆越会尽快在垂直位置稳定下来。图2- 8显示出不同阻尼系数下,单摆的运动曲线。

▲ 图2-8 不同阻尼力下的单摆运动

总结单摆能够稳定在垂直位置的条件有两个:
(1) 受到与位移(角度)相反的恢复力;
(2) 受到与运动速度相反的阻尼力。

如果没有阻尼力,单摆会在垂直位置左右摆动。阻尼力会使得单摆最终停止在垂直位置。阻尼力过小(欠阻尼)会使得单摆产生震荡,阻尼力过大(过阻尼)会使得单摆到达平衡位置时间拉长。存在一个阻尼临界阻尼系数,使得单摆最快稳定在平衡位置。

为什么倒立摆在垂直位置时,在受到外部扰动的情况下,无法保持稳定呢?分析倒立摆的受力,如图2- 9所示。

▲ 图2-9 在车轮上的参照系中的车模受力分析

倒立摆之所以不能象单摆一样可以稳定在垂直位置,就是因为在它偏离平衡位置的时候,所受到的回复力与位移方向相同,而不是相反!因此,倒立摆便会加速偏离垂直位置,直到倒下。

如何通过控制使得倒立摆能够像单摆一样,稳定在垂直位置呢?要达到这一目的,只有两个办法:一个是改变重力的方向;另一个是增加额外的受力,使得恢复力与位移方向相反才行。由此,能够做的显然只有第二种方式。

控制倒立摆底部车轮,使得它作加速运动。这样站在小车上(非惯性系)看倒立摆,它就会受到额外的力(惯性力),该力与车轮的加速度方向相反,大小成正比。这样倒立摆所受到的回复力为

F=msgsin⁡θ−ma≈mgθ−mk1θF = msg\sin \theta - ma \approx mg\theta - mk_1 \thetaF=msgsinθ−ma≈mgθ−mk1​θ

式中,假设控制车轮加速度与偏角θ\thetaθ 成正比,比例为k1k_1k1​ 。显然,如果k1>gk_1 > gk1​>g ,(ggg 是重力加速度)那么回复力的方向便于位移方向相反了。

此外,为了使得倒立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力,与偏角的速度成正比,方向相反。因此式(2-1)可变为

F=mgθ−mk1θ−mk2θ′F = mg\theta - mk_1 \theta - mk_2 \theta 'F=mgθ−mk1​θ−mk2​θ′

按照上面的控制方法,可把倒立摆模型变为单摆模型,能够稳定在垂直位置。因此,可得控制车轮加速度的控制算法
a=k1θ+k2θ′a = k_1 \theta + k_2 \theta 'a=k1​θ+k2​θ′

电磁组直立行车参考设计方案:原理篇相关推荐

  1. 【原理篇】一文读懂Mask RCNN

    Mask RCNN 何凯明大神的经典论文之一,是一个实例分割算法,正如文中所说,Mask RCNN是一个简单.灵活.通用的框架,该框架主要作用是实例分割,目标检测,以及人的关键点检测.Mask RCN ...

  2. 智能车电磁组——基本控制篇

    智能车电磁组--基本控制篇 前言 滤波 什么是滤波 常见的软件滤波 1. 限幅滤波(又称程序判断滤波法) 2. 算术平均滤波法 PID控制 什么是PID控制 舵机控制 电机控制 目标速度的设置 前言 ...

  3. 平衡车制作---原理篇

    平衡车制作-原理篇 文章目录 平衡车制作---原理篇 前言 直立控制 直观感受 内部机理 速度控制 方向控制 总结 前言 本篇教程内容主要来自于<直立平衡车模参考设计方案>,且这里是从概念 ...

  4. Go Module 工程化实践(二):go get 取包原理篇

    接上篇: Go Module 工程化实践(一):基础概念篇. 2. go get 取包原理篇 不论是否开启Go Module功能,go get从版本控制系统VCS中取包的基础过程是类似的,除了在新的实 ...

  5. 从0开始实现目标检测——原理篇

    一. 任务介绍 收到一个任务,对交通场景中的图片进行目标检测,要能识别出指定的6个类别物品在图中的位置.比如要识别下图中的小汽车.行人.自行车.卡车等. 比如下图: 经过识别后,如图所示: 经过目标检 ...

  6. 第八课 k8s源码学习和二次开发原理篇-KubeBuilder使用和Controller-runtime原理

    第八课 k8s源码学习和二次开发原理篇-KubeBuilder使用和Controller-runtime原理 tags: k8s 源码学习 categories: 源码学习 二次开发 文章目录 第八课 ...

  7. 智能车电磁组——岔路

    智能车电磁组--岔路 一.电感排布 二.岔路判定 三.入岔路 三.岔路内寻迹 四.出岔路 一.电感排布 电感排布方案可参考:学做智能车–电磁探究篇 二.岔路判定 岔路的处理很大程度上影响着电磁车的整体 ...

  8. 电路方案分析(十二)USB Type-C PD 移动电源参考设计方案

    USB Type-C PD 移动电源参考设计方案 tips:TI设计方案参考分析:TI Designs:TIDA-01627 1.系统描述 2.系统概述 3.系统供电方案 4.测试数据 5.设计文件 ...

  9. 一文读懂BERT(原理篇)

    一文读懂BERT(原理篇) 2018年的10月11日,Google发布的论文<Pre-training of Deep Bidirectional Transformers for Langua ...

最新文章

  1. python3怎么创建一个链表_怎么创建一个自己的微信公众号
  2. 【机器学习基础】5种数据同分布的检测方法!
  3. 面向切面编程AOP的最佳入门示例
  4. javaweb----三层架构
  5. 847. Shortest Path Visiting All Nodes(一)
  6. python交并补_python两个列表求交、并、差
  7. AnkhSVN的使用
  8. vbox里面的Ubuntu虚拟机与主机win7之间设置共享文件夹
  9. 声网 java app视频录制_java 声音的播放与录制
  10. 已解决E: dpkg was interrupted, you must manually run ‘sudo dpkg --configure -a‘ to correct the problem.
  11. iOS面试题大全66-85
  12. 【LBS】高德地图、百度地图的经纬度科普|MySQL和编程语言是如何计算两个坐标之间的距离?
  13. 数据库的基础知识总结
  14. android解决ListView图片闪动问题
  15. 话说嵌入式软件工程师的工资待遇
  16. 电驴服务器更新的作用,[转载]【强烈推荐更新】最新电驴服务器列表(2013.7.11)...
  17. myd文件 php项目,MYSQL表引擎与文件.frm,.myd,.myi
  18. XSLT-FO基础知识
  19. 酷欧天气 java.lang.RuntimeException: Unable to start activity ComponentInfo,程序无法运行
  20. 零知识证明:一个略微严肃的科普

热门文章

  1. 答辩PPT论文结构怎么写?
  2. Android 播放视频之ExoPlayer
  3. zkSNARKs 合约库「输入假名」漏洞致众多混币项目爆雷
  4. 成都程序员双色球中2682万!号码是电脑算出来的?
  5. 如何将CAD转PDF很重要?PDF转换CAD格式你知道怎么操作吗?
  6. 计算机办公软件基础知识题库,银行考试试题:计算机题库-办公软件
  7. GPU(显卡)的开源驱动调研
  8. 墨卡托投影转换公式(java实现)
  9. java项目第8期-在线游戏商城系统【毕业设计】
  10. R语言入门——批量读取文件