搭建机器人电控系统——PID算法——什么是PID?

PID算法

PID算法介绍,不同系数仿真,优缺点

位置式、增量式、模糊式PID

大林算法、史密斯算法和PID算法的区别

控制系统介绍

每一个运动模型都能够简化为一个控制系统,控制系统是我们进行理论和控制算法分析的依据。所以在讲PID算法之前,应当先弄懂控制系统的架构,从而才能知道PID算法在控制系统中的角色。

一个控制系统通常由控制器、执行器、控制对象、传感器以及输入输出量构成。以机器人底盘控制系统为例,我们可以把期望速度Exspeed作为输入,PID算法作为控制器,电机作为执行器,轮子作为控制对象,实际速度Outspeed作为实际输出。

开环控制系统

在这里插入图片描述

作为一个开环控制系统来说,单通路的结构使得控制系统简单,搭建成本低,但却尤其怕扰动等不确定因素的存在,这会使整个系统很容易不稳定。

前馈控制系统

在这里插入图片描述

前馈控制系统仍然是一个开环的控制系统,前馈的意义在于我们可以事先通过传感器观测到某些干扰因素,然后针对这些干扰因素做出控制优化。

比如以道路倾斜作为干扰,陀螺仪作为传感器,此时经过控制器相比于平坦道路上一定要做出相应的改变。

单闭环控制系统

在这里插入图片描述

闭环控制系统相对于开环来说要更加复杂,控制起来难度也比较大,但面对干扰因素时,闭环控制系统就能展现它的优势。而实际控制系统是具有很多干扰因素的,比如场地粗糙程度,机械精度,温度,风力等等影响,所以我们通常会选用闭环控制。

  • 期望输入:电机转速

单闭环控制系统表示系统仅由一个闭环组成,比如给电机一个期望转速作为输入,最终的电机实际转速经过编码器反馈回来,由此我们便可以知道这一次控制的偏差是多少。通过调整我们的控制器(如PID参数),使我们的偏差变小达到系统稳定,这个系统对于大部分干扰都具有稳定性。

双闭环控制系统

在这里插入图片描述

双闭环控制系统是在电控系统中比较常见的控制系统结构。例如:

电机期望转角作为输入,最终实际输出的电机转角经过编码器反馈得到与期望转角的偏差,这是外环——电机的角度环控制系统

电机期望转角经过一级控制器解算得到期望转速,实际转速通过编码器反馈得到与期望电机转速的偏差,这是内环——电机的速度环控制系统

复合控制系统

在这里插入图片描述

复合控制系统=闭环控制系统+前馈控制系统。例如:
将期望车速作为输入,最终的实际车速通过反馈得到与期望车速的差,以此构成的闭环为速度环

将经过陀螺仪测量得出的干扰因素——坡面的倾斜度作为另一输出,构成前馈控制系统

实际的控制系统往往比上述要更加复杂,通常有多个闭环和前馈组成,但闭环虽然稳定性高,也不是越多越好,当一个控制系统越复杂,参与的变量越多时,对稳定性以及调整难度的影响都会很大。


为什么选择PID?

PID是连续系统中最常用且最成熟的控制算法,适用于对被控对象模型了解不清楚的场合。实际的经验也都表明,大多数控制过程中,PID控制器都能达到很好的效果。另外PID参数的调整上,也要比其他控制器的参数更加容易。


什么是PID?

理论含义

PID即:Proportional(比例)、Integral(积分)、Differential(微分)的缩写。顾名思义,PID控制算法是结合比例、积分和微分三种环节于一体的控制算法。

适用系统:二阶以内线性时不变控制系统。
PID公式
连续
在这里插入图片描述

离散
在这里插入图片描述

PID控制系统:

在这里插入图片描述

解释:

PID作为一种控制器,是参与控制系统运作的一部分。它通常控制的是闭环系统中期望输出与期望输入的偏差,目的是让这个偏差越小,越稳定,越快到0。这也对应了PID三个字母:

比例P:

假设车位移期望输入为100,P=0.9。

  • P<1的情况:
    ①第一次:因为此时反馈实际车位移为0,所以控制器最终的输出应该为90;
    ②第二次:此时偏差为100-90=10,所以控制器最终输出为99;
    …以此下去,车位移将会无限逼近100。

  • P=1的情况:
    这种情况下,实际车位移理论上会等于期望车位移,但因为干扰因素的存在,实际中是不可能的,典型的比如地面有摩擦力的情况,导致车位移无法达到100。

  • P>1的情况:
    这种情况下,实际输出比期望值大,车位移大于100,如果调整过程中P过大会导致超调量增大,导致系统不稳定。(车可能会出现跑飞的情况)

KP仿真:

①利用simulink分别仿真KP=0.2,KP=1,KP=5的情况,得到结果如下图:
在这里插入图片描述

可以看出,随着比例系数KP的增加,输出达到期望输出的时间会缩短(调节时间),但带来的是超调量和振荡效果的增加

②加入实际干扰因素的影响:
在这里插入图片描述

在干扰的作用下,KP=1时无法达到期望的输出值,这是更接近实际的情况。

综上,单有一个比例环节P,在实际控制情况中无法达到目的,只能尽可能使用P来减小误差,或者在一定的超调量内再去调整I和D的比例。


积分I:

I的作用就是为了弥补单纯的比例P所留下的净差问题。

KI仿真:

仿真接近实际的情况,选取比例Kp=1时,存在干扰且稳态误差为0.5的系统,对此系统控制器中加入积分环节,选取积分系数Ki分别为0.01,0.1,1,仿真结果如下:
在这里插入图片描述

从中可以看出,Ki的增加可以让系统的稳态误差减小到0,即弥补了实际情况中KP存在的静差。但随着Ki的增大,会导致系统超调量增大,产生振荡。最终应当选取一个稳态误差为0且超调量不太大的Ki参数。(Ki=0.3)
在这里插入图片描述

微分d:

微分,是对误差进行求导运算,我们得到的是误差变化的斜率,而斜率反映了曲线变化的趋势,选取适当的Kd系数,可以让我们用超前的思路去改变曲线的走向。

KD仿真:

在之前的基础上,我们选择KP=1,Ki=0.3的曲线,调整Kd分别为0.1,1,5得到结果如下:
在这里插入图片描述

可以看出,Kd可以影响系统达到稳态的时间,但Kd过大会导致系统振荡加剧,超调量增加


PID限幅

在对P、I、D三个参数的讲解中,I、D两个参数都有过大会导致系统振动、超调不稳定的特点,所以在控制系统中,常常需要对I和D参与的控制器的输出进行限幅。

积分限幅(抗积分饱和)

假设系统开始运行,期望输出为100。现在有一个阻力一直让系统实际输出为0,一段时间后阻力突然消失,那么会导致实际输出变得非常非常大,导致机器人跑飞或者直接崩溃。

因此要对积分(累计误差)规定一个上限值。
在这里插入图片描述

积分分离

假设机器人目前在100m处,此时实际位置突然变为1000m,如果这个误差大于我们的预想(大于Kd系数所能预想到的变化趋势),那么这个时候机器人系统也会跑飞。

所以如果确有实际突变的情况会发生,让不同的误差设置不同的积分系数是很有必要的。
在这里插入图片描述

微分先行

同样考虑上述误差突然增大的情况,当误差突然增大时,我们在第一时间可以让系统只由微分去控制,利用微分削弱误差的变化趋势,一段时间后再考虑积分和比例的作用。

PID死区误差算法

有些系统为了避免频繁的操作引起振荡,通常使用带死区的PID控制算法,在输出值较小的情况下,让实际输出为0。
在这里插入图片描述


PID的应用

考虑机器人底盘运动控制系统:
在这里插入图片描述

这是一个三环的串级PID复合控制系统。

最内环:电机速度环,输入期望电机转速,通过电机速度环PID输出,利用编码器获取实际转速。

中间环:机器人底盘运动速度环,输入期望机器人速度,通过速度环PID和电机环输出,利用定位模块计算得出机器人当前实际速度。

最外环:机器人底盘运动位置环,输入期望机器人位置,通过位置环PID、中间环、电机环输出,利用定位模块计算得出机器人当前实际位置。

干扰:在实际机器人的运动中,机械加工的精度(比如齿间隙,悬挂,弹性机构等)、摩擦力、平坦度等因素的干扰。
在这里插入图片描述

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值