PID算法学习

PID算法学习

以下内容来自对于B站链接的学习笔记:

<学会PID-基于板球平衡系统-初中基础就能听懂的简单讲_哔哩哔哩_bilibili>

1.闭环控制概念

以小车为例,在现实中很难要求小车一直走直线(因为电机的性能问题),此时我们可以给小车提供一个参照物:比如一条白线。这样,小车通过传感器,可以监视自己与白线的偏差距离,偏差多少,小车就修正多少。这样的控制流程可以保证小车一直沿着白线直线行走,上述流程可以称为闭环控制。

闭环控制的流程图
在这里插入图片描述

那么应该如何从偏差量得到执行量呢?,就需要使用PID算法

2.PID算法

PID算法由三个环节组成

(1)比例环节 P P P

  1. 比例P定义:

比例值是有数据范围的

  1. 比例环节

比例环节分为以下三步:

  • 偏差量 = 目标量 - 小球位置

  • 比例P = 偏差量 × \times × 比例系数

  • 执行量 = 比例P

偏差量 需要乘以 一个比例系数的原因是:偏差量与执行量的单位可能不同(因为偏差量来源于传感器,执行量需要传递给执行器),需要二者统一到一个范围内.

  1. 比例P的缺点

在这里插入图片描述

  • 数值固定

  • 不辨情形

不辨情形指的是,比例P不能够环境动态调整大小;而导致这种情况的主要原因,是因为比例P是对于单一时间点而言的。即在某个时间点,传感器传递一个偏差量,我们计算出一个比例值P。

  1. 解决方案:

在时间维度上,需要增幅器(即积分 I ),和抑制器(即微分D)来完成增幅和抑制,来解决比例值P过小和过大的情况

比例P过小时,由增幅器进行补充;比例P过大时,由抑制器进行削减

(2) 积分环节 I I I - 增幅器

  1. 积分 I 定义:积累经验

积分 I 利用了过去的累加经验,来判断比例P是否需要增加数值。这就是增幅器的原理。

  1. 积分环节
  • 偏差量 = 目标量 - 小球位置

  • 积分 I = 积分 I + 偏差量 × \times × 积分 I 系数

  • 执行量 = 比例P + 积分 I

在这里插入图片描述

我们具体地理解一下:

  1. 如果偏差量一直朝一个方向出现(比如向100的方向出现),说明比例P小了(没有把小车纠正回直线路径),这是积分 I 就会不断累加到一个很大的值,来影响执行量。

  2. 如果在目标附近(也就是 0 附近抖动),会发生什么样的情况?这个时候偏差量会不断在正、负数之间跳动,这就会导致积分 I 不断趋近于 0 ,也就不会产生效果了。

  1. 增幅器需要限制

如果系统出现意外或者错误,增幅器可能会累加到无限大,这就会影响系统的正常工作。通常使用两种方法来限制增幅器 积分 I :

  • 限制幅度

在任何时刻限制积分 I 的幅度,即设置上限和下限

  1. 如果积分 I > 最大值:积分 I = 最大值

  2. 如果积分 I < 最小值:积分 I = 最小值

  • 不运行时清零

当系统判断此时没有在运行或者目标丢失时,主动将积分 I 清零

(3) 微分环节 D D D - 抑制器

  1. 微分D定义:预测未来

当前的偏差量减去上一次的偏差量,得到的结果就可能是下一次的偏差量,我们可以让下一次的偏差量提前参与到当前运算环节中。

  1. 微分环节
  • 偏差量 = 目标量 - 小球位置

  • 微分D = (偏差量 - 上一次偏差量) × \times ×微分D系数

此处偏差量 - 上一次偏差量 其实就是 下一次偏差量

  • 上一次的偏差量 = 偏差量

  • 执行量 = 比例P + 积分 I + 微分D

我们具体理解一下:

在小车沿直线行驶模型中,如果小车以非常快的速度偏离直线,这个时候微分D的调整量就会非常大,从而避免小车完全偏离直线导致目标小车,系统给停止工作。

(4) PID算法的流程:

  1. 基础流程

在这里插入图片描述

这里由于UP主设计的板球系统,需要独立的控制x和y两个方向上的倾斜量,因此需要两套PID系统。

代码中,每个变量都储存了两个量(即x,y),代码格局for循环运行两次。

  1. 改善流程 - 追加时间因数

追加时间因数的原因是:由于系统的采样频率会影响到偏差量,进而影响PID值的计算。比如每5秒获取一次偏差量,一般来说,会比每1秒获取一次偏差量要更大。

在这里插入图片描述

3. PID调参

(1)明白各项功能

  1. 比例P - 基础运行能力。大小适中
  1. P过小,则系统无法达到目标

  2. P过大,则系统会超过目标

  1. 积分 I - 补足P过小产生过的问题,对小偏差量起效
  1. I 过小,则不能达到目标。

在实际系统中,表现为:小幅度的偏差无法回正

  1. I 过大,则很容易超出目标

在实际系统中,表现为: 系统表现迟钝

  1. 微分D - 阻止超出目标
  1. D 过小,则超出目标

  2. D 过大,则系统会在目标范围内高频抖动,对误差非常敏感

(3) 调节顺序和关联

三个环节的系数从0开始调节,0代表这个环节不起作用。以下给出顺序:

  1. 先调节P

一般先调节P,P的系数是可以计算的。我们需要计算出偏差量与执行量的比例。

小车直线行走系统涉及速度,先不考虑

按照板球平衡系统来说,摄像头画面宽度是240,而舵机可运行角度设置为50(这不一定是角度,只是代表的数值),那么就可以得到 P 系数 50/240=0.2

之后D和I的顺序是要看设计的系统对什么敏感。板球平衡系统对 I 不敏感(即有足够的能力使小球滚动,但很有可能用力过猛,抑制器的作用更大)

  1. 调节D

抑制小球超出目标

对于板球平衡系统,小球每移动50抬高5

有足够的限制力时,可以增加P

  1. 调节 I

能加快回正

有足够的回复力时,可以减少P

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值