0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过串级PID算法对直立车的平衡及运动的控制方案

电子设计 来源:csdn 作者:卓晴 2021-01-18 16:10 次阅读

作者:徐厚华 何哲嘉 向颖锋

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

o4YBAGAFQM-ADtG3AAcRnrI04o0052.png

▲ 制作的节能直立组车模

■ 前言

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

01串激PID控制

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

o4YBAGAFQRGAVwk7AAHGgqAz9B0666.png

▲ 系统总体框图

1.1传统直立车PID控制系统

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

o4YBAGAFQR-ASpz3AAEsah5Vq3A507.png

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

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

pIYBAGAFQS2AFkeTAABe5X0Se9I295.png

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

1.2直立车串级PID 控制

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

o4YBAGAFQUCAIatdAACHV_o285Q375.png

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

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

pIYBAGAFQUyAZ6kZAABnLq7slaU627.png

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

内环PID控制算法公式:

o4YBAGAFQVqAR_QpAACGf-F3y1E969.png

式中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所示。

pIYBAGAFQW2AeDMeAADRuiQdpZw482.png

▲ 图3 中断程序框图

1.4串级PID参数整定

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

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

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

02方案对比分析

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

pIYBAGAFQX-ADzMgAAD-Ds6_UXc041.png

▲ 图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.
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PID算法
    +关注

    关注

    2

    文章

    169

    浏览量

    24115
  • PID
    PID
    +关注

    关注

    35

    文章

    1446

    浏览量

    83793
  • PID控制器
    +关注

    关注

    2

    文章

    156

    浏览量

    18332
收藏 人收藏

    评论

    相关推荐

    【技术干货】PID算法原理分析及优化

    小编一起来学习PID算法的原理分析及优化,快来get! 一、PID原理 PID控制方法将偏差的比例(proportional)、积分(int
    发表于 12-22 15:38

    飞行控制PID算法的作用解析

    PID控制器是一种线性控制器,它主要根据给定值和实际输出值构成控制偏差,然后利用偏差给出合理的控制量,目前,人们
    的头像 发表于 11-27 10:57 705次阅读
    飞行<b class='flag-5'>控制</b><b class='flag-5'>PID</b><b class='flag-5'>算法</b>的作用解析

    PID算法原理分析及优化

    欢迎来到森木磊石「技术微课堂」,本期为大家分享经典控制算法之一的PID控制方法。PID控制方法从
    的头像 发表于 11-08 08:23 725次阅读
    <b class='flag-5'>PID</b><b class='flag-5'>算法</b>原理分析及优化

    什么算法能够代替PID控制

    什么算法能够代替PID控制
    发表于 11-01 06:44

    理解STM32控制中常见的PID算法

    理解STM32控制中常见的PID算法
    的头像 发表于 10-17 17:28 1710次阅读
    理解STM32<b class='flag-5'>控制</b>中常见的<b class='flag-5'>PID</b><b class='flag-5'>算法</b>

    PID比单PID区别在哪里?

    PID比单PID区别在哪里
    发表于 10-16 07:46

    如何使用PID控制算法优化控制系统

    当涉及到控制系统中的精确调节和稳定性,PID(比例-积分-微分)控制算法是一种不可或缺的工具。本文将简单介绍 PID
    的头像 发表于 08-29 16:39 1347次阅读
    如何使用<b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>优化<b class='flag-5'>控制</b>系统

    PID算法控制系统中的特性和指标

    PID算法广泛的被应用在很多的控制系统中,最终的目的都是希望通过pid控制器实现被控量能稳定在预
    的头像 发表于 08-22 11:05 706次阅读
    <b class='flag-5'>PID</b><b class='flag-5'>算法</b>在<b class='flag-5'>控制</b>系统中的特性和指标

    PID控制算法代码 PID控制算法的原理

    一. 简介 相信大家对于PID控制算法,都不感到陌生了,平衡车就是靠它平衡起来的,还有飞控的平衡
    的头像 发表于 07-20 09:23 1380次阅读
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>代码 <b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>的原理

    PID算法PID三个调节分量的优缺点概述

    过程控制中有两个重要的算法PID反馈算法,卡尔曼状态估计算法PID主要用来过程
    发表于 06-29 10:41 1476次阅读
    <b class='flag-5'>PID</b><b class='flag-5'>算法</b>与<b class='flag-5'>PID</b>三个调节分量的优缺点概述

    PID控制算法是什么

    ** PID控制算法** ,是结合比例(P)、积分(I)和微分(D)三环所提供的负反馈信号来修正系统误差,以保障系统相对稳定或平衡控制
    的头像 发表于 05-19 16:48 1284次阅读
    <b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>是什么

    两种实现PID控制算法的技巧

    PID控制算法公式*
    的头像 发表于 05-19 16:45 580次阅读
    两种实现<b class='flag-5'>PID</b><b class='flag-5'>控制</b>的<b class='flag-5'>算法</b>的技巧

    一文了解透彻PID控制

    ** PID是比例(Proportional)、积分(Integral)、微分(Derivative)的缩写,将偏差的比例、积分、微分通过线性组合构成控制量,用这一控制量对被控对象进
    的头像 发表于 05-19 16:44 2108次阅读
    一文了解透彻<b class='flag-5'>PID</b><b class='flag-5'>控制</b>

    FPGA实现PID控制算法

    相信大家对于PID控制算法,都不感到陌生了,平衡车就是靠它平衡起来的,还有飞控的平衡
    的头像 发表于 05-19 16:40 1213次阅读
    FPGA实现<b class='flag-5'>PID</b><b class='flag-5'>控制</b><b class='flag-5'>算法</b>

    电机控制中的PID

    FOC算法中的电流环,速度环都涉及到PID控制 PID又分位置式PID控制
    发表于 05-05 11:51 10次下载
    电机<b class='flag-5'>控制</b>中的<b class='flag-5'>PID</b>