徐厚华 何哲嘉 向颖锋
2020-10-31 Saturday

00摘要

  直立平衡车因其动力学系统同时具有多变量,非线性,不稳定,强耦合等特性,传统的单环PID控制平衡已经略显吃力。本文将采用内环角速度PI控制、外环角度PD控制及最外环速度PI控制组成的串级 PID算法来控制直立车的平衡及运动,串级PID控制器比常规PID控制系统具有较强的稳定性、抗干扰性。

  关键词: 串级PID 直立车 姿态控制 耦合

▲ 制作的节能直立组车模

■ 前言

  智能车是现代汽车工业和电子计算机等科技成果相结合的产物, 具有自动识别道路的功能从而实现自动驾驶。两轮直立小车广泛的应用于仓库物流运输以及巡逻的代步工具等方面[1]。两轮直立智能车赛题在大学生智能车竞赛中已经出现快十年,直立车的控制算法也日趋多样,两轮直立智能车在赛道中,需同时兼顾速度、平衡与循迹,姿态与循迹控制效果的优劣直接决定行驶平均速度的高低[2]。直立车模本身只具有一个执行机构,即两个主控马达。对于传统PID控制,涉及到平衡角度环和速度环控制输出复用一个执行机构问题,为提升在较高速度下的运行性能,对传统算法进行了一定程度的改进,提出一种基于串级PID的直立车姿态控制算法。

01串激PID控制


  直立车由双电机驱动,左右电机为控制对象,控制器需具有直立、行驶同时兼顾转向的功能。传统直立车控制算法,大多采用角度环输出与速度环输出线性叠加,在高速行驶状态时姿态的跟随能力欠佳,在此在传统算法基础上将速度-角度进行了串联,并增加了角速度为最内环回路。串级PID 控制器输出后经过处理换算为PWM,输入驱动板后可使直立车行驶。

▲ 系统总体框图

1.1传统直立车PID控制系统

  直立车传统控制系统如图1所示。为使其具有速度控制与姿态平衡能力,利用2个单独的闭环分别进行控制,输出电机控制信号为各环输出的叠加。该控制方案虽简单但存在一定问题,如:仅单独施加直立控制,其车身平衡效果虽能满足要求,但此时如果在该基础上额外施加速度控制,速度控制势必会打破直立车的平衡姿态,使得速度与直立控制互相耦合,此时如果再施加转向控制,就会导致高速时转向控制实时性和姿态的平衡性欠佳。

▲ 图1 直立车传统控制框图

  传统位置式PID控制算法公式[3]:

  其中P(k)为调节器输出,e(t)是当前角度误差,Kp比例系数,Ki积分系数,Kd微分系数。

1.2直立车串级PID 控制

  串级PID控制系统结构如图2所示。

▲ 图2 直立车串级控制系统框图

  串级PID外环控制算法如公式2:


  式中ω(k)\omega \left( k \right)ω(k)为外环调节器输出,θ(k)\theta \left( k \right)θ(k)是当前角度误差。

  内环PID控制算法公式:


  式中p(k)为内环调节器输出,e(k)是当前角速度误差,ω(t)\omega \left( t \right)ω(t)为当前角速度。

  如图2所示,行驶闭环控制车模的行驶姿态和运行速度。在行驶速度闭环中,速度PID 计算输出的值为直立车在机械零点角需要前倾或者后仰的角度,该输出值需与机械零点角相加才能将速度控制转化为角度控制,而角度的变化是要由角速度产生的俯仰角度PID 计算输出值为直立车需要保持的角速度,俯仰角速度PID 计算结果即为串级行驶闭环的输出值

  直立车平衡控制使用串级PID,外环角度,内环角速度,最外环速度,只需要通过姿态传感器采集一个轴的数据即可。速度环100ms环控制一次,角度环10ms进行一次控制,角速度环2ms控制一次,外环输出先加一个限幅才传给内环,实测效果非常稳定,不会震荡,也不会出现明显的反应滞后。速度控制和平衡控制,转化为角度和角速度的控制,整个控制系统中仅仅有角速度环的输出给电机控制,原理上可以有效地消除传统速度PID 与直立平衡PID 并联所产生的耦合。

1.3算法实现

  串级PID算法的实现在于角速度环、角度环和速度环控制的不同周期。初始化程序完成之后,启动周期为2 ms的定时中断。PIT 中断要为循环中的算法提供程序执行的时序标志位控制,根据标志位实现不同周期执行不同控制环节,这种程序结构有助于提高算法的执行效率以及实时性。中断服务函数中具体控制的算法流程[4]如图3所示。

▲ 图3 中断程序框图

1.4串级PID参数整定

  由于串级控制,速度环、角度环和角速度环会互相影响,所以调节参数时应该从内环开始整定。先令外环(角度环、速度环)调节器目标值为零,然后开始整定内环(角速度)PID参数,因为陀螺仪在测量角速度过程中会不断积累误差以及各种噪声的干扰,最终造成系统的稳态误差,所以角速度环采用PI控制来降低系统的稳态误差,调整参数至直立车能够做缓慢的自由落体运动,此时内环参数整定完成。

  调整好角速度环后就可以开始整定角度环PID参数了,角度环采用PD控制,调节到直立车能够快速响应在机械零点保持平衡,给一个干扰后能快速回到平衡位置且不发生震荡就算调节好外环参数。

  速度环采用PID调节,速度环的参数整定最后来完成,先应该通过设定目标值为零来确定参数的极性,然后通过观察车模实际运行状态,通过上位机观察各数据来给定参数。

02方案对比分析


  当系统受到多级噪声时,内环会先进行调整,再由外环进行调整,所以控制的精度和稳定性都优于单极PID控制[5]。通过实际小车运行状态来看,如图4所示。传统算法围绕中线产生了较大过调;串级PID算法过调明显较小,且跟随能力远强于传统算法,可以看出常规PID 的稳定时间比串级控制短。串级PID控制器比常规PID 控制系统具响应迅速,稳定性高等优点[6]。

▲ 图4实验数据图

03结论


  串级 PID 相比典型的 PID 算法控制更精准、稳定,系统内环为角速度环,外环为角度环,经过系统测试,能够实现良好的平衡控制效果。由于串级算法实现简单且实用,对传统方案进行改进不需要额外的硬件要求,在直立车控制上具有一定的工程推广和参考价值。

参考文献:

[1]潘飞.基于KEA128芯片的直立电磁小车设计[J].电子技术与软件工程,2019(10):98-99.

[2]王英杰,孟威李灵恩,姚晓晨,张宁博.改进的两轮直立车多回路控制[J].自动化与仪表,2019,34(12):39-44.

[3]徐涢基,肖城钢,李婷,龚明,陈芳.串级PID算法在滚球控制系统中的应用[J].现代电子技术,2020,43(09):122-125.

[4]谢丹妮. 直立智能车运动控制设计与实现[D].湖南大学,2017.

[5]乔纬国. 一种采用双PID串级控制的双轮自平衡车的研制[D].吉林大学,2017.

[6]周瓒,徐海荣.基于串级PID闭环控制的飞行控制原理仿真实验[J].电子制作,2019(21):52-54.

基于串级PID的直立车控制算法研究相关推荐

  1. 串级PID的直立控制

    基于串级PID的直立车控制算法研究 摘要:直立平衡车因其动力学系统同时具有多变量,非线性,不稳定,强耦合等特性,传统的单环PID控制平衡已经略显吃力.本文将采用内环角速度PI控制.外环角度PD控制及最 ...

  2. 基于串级PID的箱体自动恒温控制系统

    目 录 引言 1 1 系统整体框架 2 1.1系统设计要求 2 1.2系统设计思路 2 1.3 驱动器方案介绍 3 1.3.1 PWM脉冲宽度调制原理介绍 3 1.3.2 PID自动控制算法介绍 3 ...

  3. 基于串级PID的平衡小车

    一般的平衡小车是以速度环为外环,外环输出作为内环角度输入的反馈,与期望角度叠加,通过角度的浮动控制实现速度闭环,本次平衡小车结合了四轴无人机的串级PID 方法,引入角速度环,方便参数调节.主控采用st ...

  4. 基于串级 PID 控制算法的四旋翼无人机控制系统设计与实现

    1.内容简介 略 489-可以交流.咨询.答疑 2.内容说明   无人机,英文名称UAV C Unmanned Aerial Vehicle,是一种特殊的飞行器, 可以按照预先设定的轨迹进行各种运动, ...

  5. 基于数据融合和串级PID的小型四旋翼无人机高度测量与控制系统

    作者:Tomy 摘要:简单介绍了一种基于 Mahony 算法无人机姿态解算算法,并在这个的基础上设计了一 种融合惯导加速度计和气压计的小型无人机高度测量系统, 同时利用该高度测量系统设计了 基于串级 ...

  6. 四轴PID控制算法详解(单环PID、串级PID)

    正文开始:这篇文章分为三个部分: PID原理普及 常用四轴的两种PID算法讲解(单环PID.串级PID) 如何做到垂直起飞.四轴飞行时为何会飘.如何做到脱控? PID原理普及 1.  对自动控制系统的 ...

  7. [单片机学习笔记](35):串级PID算法应用剖析、通过串口控制电机、MPU6050获取平衡车姿态、自制平衡车PID算法程序设计

    串级PID算法应用剖析 这是经过给队友讲解串级PID的程序的之后的进一步的理解总结. 内环的实际值,取决于你能测出什么值给内环.而内环的输入就是内环误差 内环的输出值,是内环误差(内环目标值-内环实际 ...

  8. STM32实现四驱小车(四)姿态控制任务——偏航角串级PID控制算法

    目录 一. 绪论 二. 角度环串级PID原理 1. PID基本算法 2. 姿态角串级PID原理 三. 如何用STM32实现角度-角速度的串级PID控制 1. PID算法的代码实现 2. 串级PID算法 ...

  9. 智能车PID控制详细介绍(普通PID、串级PID、改进PID)——适用于四轮车、三轮车、平衡车

    目录 智能车运动控制系统 一. PWM(脉冲宽度调制)原理 二. PID控制基本原理 三. 舵机处理系统 1 舵机组成及其工作原理 2 舵机PID控制策略 四. 直流电机调速 1 直流电机调速系统组成 ...

最新文章

  1. Linux ls信息给qt gui,如何使用Qt 4把ls命令的结果显示到GUI界面上去?
  2. OpenGL实现Cubic Environment Map立方环境图实例
  3. 【转】java项目应该知道的核心重点部分
  4. do while的使用
  5. ad批量走线_AD PCB直角布线批量改为圆角,怎么批量修改呢?
  6. python列表常用の操作
  7. Oracle_PL/SQL developer拷贝粘贴中文乱码问题
  8. Service Worker的应用
  9. 解决POI导出Excel时无法把单元格格式设置成数值类型,而不是变为货币或者自定义(附带相关问题的解决方法)
  10. 禁用ubuntu来宾账户
  11. APP 的开发费用标准是什么?
  12. 2022微信群裂变强制分享引流源码+防洪+独立后台
  13. 《猫和老鼠》里的魔术艺术(四)——夸张与对比
  14. 安卓3:Android文件目录详解-manifest文件夹和java文件夹
  15. vue3 composition(组合式)API 是什么?我为什么要使用它?
  16. nextcloud+onlyoffice 打开wps方法,亲测方案。
  17. clio7.0测试软件如何安装,clio珂莱欧气垫怎么换替换装?4个步骤轻松安装
  18. 有线网络无法识别的解决办法
  19. 前端基建——前端团队技术构建方向指引
  20. arcgis中编码方式改变引起的shp文件乱码、字符截断问题处理

热门文章

  1. POJ 2728 Desert King [最优比率生成树]
  2. AngularJS 使用ngOption实现下拉列表
  3. secureCRT常用设置
  4. AdminStudio功能模块与版本信息总结
  5. AbstractFactory抽象工厂模式
  6. 特征工程(二) :文本数据的展开、过滤和分块
  7. memmove 和 memcpy的区别
  8. vue+webpack+amazeui项目小记
  9. 对于容器环境来说 全栈监控究竟意味着什么?
  10. servlet 访问项目