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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VC6.0是一款早期的集成开发环境,主要用于开发Windows操作系统下的应用程序。在VC6.0中,PID算法指的是Proportional-Integral-Derivative(比例-积分-微分)控制算法PID是一种常用的控制算法,用于调节系统的输出,使其尽可能接近预设的目标值。PID控制算法基于对系统当前状态进行测量,并根据测量结果计算出一个控制量,通过对系统执行的控制动作来影响系统的输出。 在VC6.0中,可以使用其内置的函数库和相关控件来实现PID算法。首先,需要通过相应的传感器或测量设备获取系统当前状态的测量值。然后,根据这些测量值,计算出控制量。控制量的计算通常基于PID的三个参数:比例增益(P)、积分时间(I)和微分时间(D)。这些参数的设定通常需要根据实际系统的特性和需求进行调整。 VC6.0提供了数学计算函数库,可以用于进行PID算法中涉及的各种数学运算。此外,还可以使用VC6.0中的绘图控件来实现对系统输出的实时监控和显示。 需要注意的是,在实际应用中,PID算法往往需要与系统的实际控制回路相结合。具体而言,需要将PID计算得到的控制量传递给系统的执行器或执行控制器,通过执行器对系统的某个参数或行为进行调节,从而实现对系统输出的控制。 总之,在VC6.0中,可以利用其提供的函数库和控件,结合PID控制算法原理和计算公式,来自行实现PID算法,并应用于Windows平台下的应用程序开发中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值