浅谈PID

一 、PID的两种基本用法

  • 位置式PID
  • 增量式PID

二、浅谈两种用法

位置式PID

算法思想:对于一段时间内的数据进行分析,计算出输出量。
公式描述:

errorNow  = realData - aimData;					//获取当前误差( = 真实获取的数据 - 目标数据)
errorSum += errorNow; 							//更新errorSum的值
newOutput = Kp * (errorNow) + Ki * (errorSum) + Kd * (errorNow - errorLast);
新的输出值会有一个新的输入量,在while(True)循环里会形成一个完全的闭环。

注意/相关事宜

  • 调参顺序: Kp -> Ki -> Kd,其中Kp的值最好预先估计。
    比如在电机驱动车轮时运用PID,输出的值为PWM值,输入的值是速度值,PWM有一个区间范围,通过输入的实时速度值,预估计PWM和speed的关系,由此可以大致估计出Kp的值。
  • 问题:在长时间超调后,不能立即返回正常值。
    积分时间过长,导致errorSum的值增大,超调后不能立即调整或调整时间稍长。

增量式PID

算法思想:对于此次、上次和上上次的数据进行分析,计算出输出量。
公式描述:

errorNow  = aimData- realData;					//获取当前误差(= 目标数据 - 真实获取的数据)
newOutput = Kp * (errorNow - errorLast) + Ki * (errorNow) + Kd * (errorNow - 2 * errorLast + errorLastLast));
errorLastLast = errorLast ;						//更新上上次的error值
errorLast = errorNow;							//更新上次的error值
新的输出值会有一个新的输入量,在while(True)循环里会形成一个完全的闭环。

注意/相关事宜

  • 调参顺序: Ki -> Kp -> Kd,其中Ki的值最好预先估计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值