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控制算法的最基本原理的理解,希望大家能够多多提意见,我一定会尽快改正。

 

转载于:https://my.oschina.net/u/3955129/blog/1939004

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值