PID算法数学原理

增量式PID算法

PID原理

位置式PID算法

PID的连续方程如下,TI是积分时间常数,它表示积分速度的大小,TI越大,积分速度越慢,积分作用越弱。TD是微分时间常数,TD越大微分作用越强。
U ( t ) = k p ( e r r ( t ) + 1 T I ∫ 0 t e r r ( t ) d t + T D d e r r ( t ) d t ) U(t)=k_p(err(t)+\frac{1}{T_I}\int_{0}^{t}{err(t)}dt+\frac{T_Dderr(t)}{dt}) U(t)=kp(err(t)+TI10terr(t)dt+dtTDderr(t))
如果想在计算机中实现该算法,就需要将其离散化。其中T是系统时间周期。
U ( k ) = k p ( e r r ( k ) + T T I ∑ e r r ( k ) + T D T ( e r r ( k ) − e r r ( k − 1 ) ) ) U(k)=k_p(err(k)+\frac{T}{T_I}\sum{err(k)}+\frac{T_D}{T}(err(k)-err(k-1))) U(k)=kp(err(k)+TITerr(k)+TTD(err(k)err(k1)))
由于T和TI和TD都是不随时间变化的常数,所以也可以简化记作
U ( k ) = k p e r r ( k ) + k i ∑ e r r ( k ) + k d ( e r r ( k ) − e r r ( k − 1 ) ) ) U(k)=k_perr(k)+k_i\sum{err(k)}+k_d(err(k)-err(k-1))) U(k)=kperr(k)+kierr(k)+kd(err(k)err(k1)))
上式就是位置式PID算法的离散描述公式。从数学公式我们可以看出,位置式PID算法计算的结果与每一时刻的err值都有关,这样就很容易产生累计误差。所以我们需要这个公式的变形,来解决增量误差过大的问题。

增量式PID算法

k-1时刻的位置式PID公式如下
U ( k − 1 ) = k p e r r ( k − 1 ) + k i ∑ e r r ( k − 1 ) + k d ( e r r ( k − 1 ) − e r r ( k − 2 ) ) ) U(k-1)=k_perr(k-1)+k_i\sum{err(k-1)}+k_d(err(k-1)-err(k-2))) U(k1)=kperr(k1)+kierr(k1)+kd(err(k1)err(k2)))
用k时刻的PID输出减去k-1时刻的PID输出,我们可以得到增量式PID公式
Δ U = k p ( e r r ( k ) − e r r ( k − 1 ) ) + k i e r r ( k ) + k d ( e r r ( k ) − 2 e r r ( k − 1 ) − e r r ( k − 2 ) ) \Delta U=k_p(err(k)-err(k-1))+k_ierr(k)+k_d(err(k)-2err(k-1)-err(k-2)) ΔU=kp(err(k)err(k1))+kierr(k)+kd(err(k)2err(k1)err(k2))

PID类设计

增量式PID

θ e = θ − arctan ⁡ ( y s − y x s − x ) \theta_e=\theta-\arctan(\frac{y_s-y}{x_s-x}) θe=θarctan(xsxysy)

l e 2 = ( x s − x ) 2 + ( y s − y ) 2 l_e^2=(x_s-x)^2+(y_s-y)^2 le2=(xsx)2+(ysy)2

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值