zoukankan      html  css  js  c++  java
  • PID控制算法的C语言实现二 PID算法的离散化

    上一节中,我论述了PID算法的基本形式,并对其控制过程的实现有了一个简要的说明,通过上一节的总结,基本已经可以明白PID控制的过程。这一节中先继续上一节内容补充说明一下。 

       1.说明一下反馈控制的原理,通过上一节的框图不难看出,PID控制其实是对偏差的控制过程

      

     2.如果偏差为0,则比例环节不起作用,只有存在偏差时,比例环节才起作用。   

     

     3.积分环节主要是用来消除静差,所谓静差,就是系统稳定后输出值和设定值之间的差值,积分环节实际上就是偏差累计的过程,把累计的误差加到原有系统上以抵消系统造成的静差。 

      

     4.而微分信号则反应了偏差信号的变化规律,或者说是变化趋势,根据偏差信号的变化趋势来进行超前调节,从而增加了系统的快速性。 

       好了,关于PID的基本说明就补充到这里,下面将对PID连续系统离散化,从而方便在处理器上实现。下面把连续状态的公式再贴一下:

    假设采样间隔为T,则在第K T时刻: 

    偏差err(K)=rin(K)-rout(K); 

    积分环节用加和的形式表示,即err(K)+err(K+1)+„„

    微分环节用斜率的形式表示,即[err(K)-err(K-1)]/T; 

    从而形成如下PID离散表示形式:

    至于说KpKiKd三个参数的具体表达式,我想可以轻松的推出了,这里节省时间,不再详细表示了。

     

    其实到这里为止,PID的基本离散表示形式已经出来了。目前的这种表述形式属于位置型PID另外一种表述方式为增量式PID,由U上述表达式可以轻易得到:

    这就是离散化PID的增量式表示方式,由公式可以看出,增量式的表达结果和最近三次的偏差有关,这样就大大提高了系统的稳定性。需要注意的是最终的输出结果应该为 

           

        u(K)+增量调节值

     

    PID的离散化过程基本思路就是这样,下面是将离散化的公式转换成为C语言,从而实现微控制器的控制作用。

     

     

  • 相关阅读:
    $BZOJ4318$
    国庆集训——10.5
    [学习笔记]线段树分治
    数学基础——组合数学
    实验吧:首页>决斗场>训练题库>CTF题库>传统知识+古典密码
    实验吧:首页>决斗场>训练题库>CTF题库>变异凯撒
    实验吧:首页>决斗场>训练题库>CTF题库>杯酒人生
    南京邮电大学网络攻防训练平台:密码学:KeyBoard
    南京邮电大学网络攻防训练平台:密码学:easy!
    实验吧:首页>决斗场>训练题库>CTF题库>困在栅栏里的凯撒
  • 原文地址:https://www.cnblogs.com/wyuzl/p/6515728.html
Copyright © 2011-2022 走看看