PID控制算法的C语言实现(一)
PID算法原理
最近几天开通了我的博客,想总结一下本身的大学生活,一时间竟不知从何下手,冥想半天,最终决定仍是从PID开始吧,毕竟比较简单,也是控制的基础,更是编程的精髓。
在工业应用中,PID及其衍生算法是应用最广的算法之一,能够说是当之无愧的万能算法,若是可以熟练掌握PID算法的设计与实现过程,对于通常的研发人员来说,应该是可以应对最基本的研发问题了;在我目前所接触到的算法当中,PID算法能够说是最简单最能体现反馈思想的控制算法了。咱们先看下PID控制算法的通常形式:

PID 的控制流程简单到了不能再简单的程度,经过偏差信号控制被控量,而控制器自己就是比例、积分、微分三个环节的加和。这里咱们规定(在 t 时刻):
1.输入量为 rin(t);
2.输出量为 rout(t);
3.误差量为 err(t)=rin(t)-rout(t);
pid 的控制规律为:
理解一下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境具体一下:
1.规定这个流程是用来为直流电机调速的;
2.输入量 rin(t)为电机转速预约值;
3.输出量 rout(t)为电机转速实际值;
4.执行器为直流电机;
5.传感器为光电码盘,假设码盘为 10 线;
6.直流电机采用 PWM 调速 转速用单位 转 /min 表示;
由PID算法的控制流程图及通常公式,能够得出如下结论:
1.输入量 rin(t)为电机转速预约值(转/min);
2. 输出量 rout(t)为电机转速实际值(转/min);
3.误差量为预约值和实际值之差(转/min);
补充说明:
1. 反馈控制的原理:经过上述的PID框图能够看出,PID 控制实际上是对误差量的控制过程;
2. 若是误差为 0,则比例环节不起做用,只有存在误差时,比例环节才起做用。
3. 积分环节主要是用来消除静差,所谓静差,就是系统稳定后输出值和设定值之间的差值,积分环节实际上就是误差累计的过程,把累计的偏差加到原有系统上以抵消系统形成的静差。
4. 而微分信号则反应了误差信号的变化规律,或者说是变化趋势,根据误差信号的变化趋势来进行超前调节,从而增长了系统的快速性。
以上是我对PID控制算法的最基本原理的理解,但愿你们可以多多提意见,我必定会尽快改正。
欢迎关注本站公众号,获取更多信息