增量式pid c语言,关于增量式PID的代码(C语言)实现的详细说明--应该可以解决部分人的疑惑...

本文详细介绍了增量式PID控制器的C语言实现,通过公式推导和代码解析,解答了读者可能存在的疑惑。提供了两种不同的代码实现方式,并指出第二种写法在参数调整时更为直观。
摘要由CSDN通过智能技术生成

关于增量式PID的代码(C语言)实现的详细说明

网上可以找到很多关于增量式PID的一些解释说明;

最终都可以得到如下的公式:

Δu=Kp·{e(n)-e(n-1)}+Ki·e(n)+Kd·{e(n)-2·e(n-1)+e(n-2)} ;

最终转换成代码有很多是

typedef struct

{

float Kp; //比例系数Proportional

float Ki; //积分系数Integral

float Kd; //微分系数Derivative

float Ek; //当前误差

float Ek1; //前一次误差 e(k-1)

float Ek2; //再前一次误差 e(k-2)

}PID_IncTypeDef;

//非本人编写

float PID_Inc(float SetValue, float ActualValue, PID_IncTypeDef *PID)

{

float PIDInc; //增量

PID->Ek = SetValue - ActualValue;

PIDInc = (PID->Kp * PID->Ek) - (PID->Ki * PID->Ek1) + (PID->Kd * PID->Ek2);

PID->Ek2 = PID->Ek1;

PID->Ek1 = PID->Ek; return PIDInc;

}

有些人对代码存在一定的疑惑,其实代码是没有问题的;

公式为:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值