关于两种PID算法(位置型和增量式)的linux下的C++工程实现

       网上有很多关于这两种控制算法的实现,但是大多基于c语言,而且用的是c语言中的结构体,看起来比较繁琐。所以我利用c++面向对象的结构以及STL中vector容器来编写两种算法,看起来简洁多了。在编写的过程中,更深刻理解了如何在实际工程中运用PID控制算法。

        话不多说,先上代码GitHub - JackJu-HIT/PID: 关于两种PID算法(位置型和增量式)的c++工程实现

       关于两种算法的原理,我直接粘贴我们老师上课的课件图片了,自己打字太费劲!

      

       上述就是位置型pid算法,核心就是u(t)=kperror(t)+ki(sum(error))+kd(error(t)-error(t-1)),积分离散化就是求和,微分求和就是查分,这么理解就可以,如果你要是想理解比例、微分、积分环节对系统会产生什么影响啊,上升时间、超调量、稳定裕度等指标,建议你最好从连续系统理解,类似时域分析法、频域分析法、根轨迹之类的,具体参见自动控制原理即可。

      同样增量型的pid算法,就是从位置型推出来的,你把u(k)-u(k-1)化简一下就能得到下图那个

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jack Ju

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值