智能车制作——速度环PID

  做了智能车写这个做个记录,各位大佬勿喷。

PID控制器

  PID 控制器(比例-积分-微分控制器)是一种通过控制系统的偏差来调整输入信号的线性反馈控制算法。通俗的说,它可以给出使执行器(电机)快速准确到达目标的“指导方案”。

反馈

  反馈是指将系统输出量通过恰当的检测装置,返回到输入端,与输入量进行比较,并以某种方式改变输入,进而影响系统功能的过程。

开环与闭环

  在智能车控制中开环意味着电机的PWM是我们自己随便给的一个固定值:而闭环系统的电机PWM是PID控制器的输出。

PID组成

  PID 实际上是一个作用于闭环系统的控制算法,由三个部分组成,分别是 P 比例环节,I 积分环节,D 微分环节。
在这里插入图片描述

比例环节

  PID 比例控制器实际上就是个放大倍数可调的放大器,即△P=Kp×e,式中Kp为比例增益,即Kp可大于1,也可小于1;e为控制器的输入,也就是测量值与给定值之差,又称为偏差。
  PID 比例控制有个缺点,就是会产生余差,要克服余差就必须引入积分作用。

积分环节

  控制器的积分作用就是为了消除自控系统的余差而设置的。所谓积分,就是随时间进行累积的意思,即当有偏差输入e存在时,积分控制器就要将偏差随时间不断累积起来,也就是积分累积的快慢与偏差e的大小和积分速度成正比。只要有偏差e存在,积分控制器的输出就要改变,也就是说积分总是起作用的,只有偏差不存在时,积分才会停止。

微分环节

  微分项主要是用来加快系统反应的,但如果微分作用过强,则可能由于变化太快二引起自身震荡。

PID代码理解

{
本次误差 = 目标值-实际值
P输出 =Kp 本次误差
I输出 += Ki
本次误差
D输出 =Kd *(本次误差-上次误差)
ID输出 = P输出+I输出+D输出
上次误差 = 本次误差
}
  注意要进行 积分限幅,即将积分项做一个最大最小限制

位置式与增量式

  上面的PID理解也就是位置式PID,下面是增量式PID的理解
{
本次误差 = 目标值-实际值
P输出 =Kp (本次误差-上次误差)
I输出 = Ki
本次误差
D输出 =Kd (本次误差-2上次误差+上上次误差)
ID输出 += P输出+I输出+D输出
上上次误差=上次误差
上次误差 = 本次误差
}
即:

void Left_Speed_Control()
{
  float Left_Speed_Erro = 0.0 ;       //左电机误差
  Left_Speed_Erro     = Speed_Goal - Left_Encoder ;   //Left_Encoder :编码器反馈值
  Left_Speed_PID.OUT += (Left_Speed_PID.P * (Left_Speed_Erro - Left_Speed_Lasterro)  +
		  	  	  	  	 Left_Speed_PID.I * Left_Speed_Erro +
						 Left_Speed_PID.D * (Left_Speed_Erro - 2 * Left_Speed_Lasterro + Left_Speed_Preverro));
  Left_Speed_OUT      =  Range_protect((int)Left_Speed_PID.OUT,-9000,9000);   //输出限幅
  Left_Speed_Preverro = Left_Speed_Lasterro ;
  Left_Speed_Lasterro = Left_Speed_Erro ;
}

  增量式与位置式主要区别:
    1、位置式PID的积分项是以前所有的误差和,容易产生大的累积误差,而增量式仅与最近几次有关,影响小
    2、位置式PID需要进行积分限幅和输出限幅,而增量式PID只需要输出限幅。

速度环位置式与增量式调参

  在调位置式速度环时我们先加大Kp值,同时令Ki、Kd为0,查看编码器值和目标值的差值,当反馈回来的编码器值在目标值上下震荡时加入Ki值即可。
  通过上面的代码理解我们可以知道增量式的I就是位置式的P,因此对于增量式我们先加I,再加P,实际现象中当我们的i给很小时电机都能达到目标值。

  我们通过调参要达到的效果是:可以明显看到波形趋于平滑且编码器上下震荡范围小,当我们突然改变目标速度时,编码器值能很快且平滑到达改变后的目标值。

  • 48
    点赞
  • 478
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值