网上有很多关于这两种控制算法的实现,但是大多基于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)),积分离散化就是求和,微分求和就是查分,这么理解就可以,如果你要是想理解比例、微分、积分环节对系统会产生什么影