• 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语言,从而实现微控制器的控制作用。

     

     

  • 相关阅读:
    快速查询 jsp页面 和 js方法
    order by 特定字段放在特定的位置
    eclipse中将java项目变成web项目
    Eclipse导入项目:No projects are found to import
    解决【Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modul】报错问题
    ORA-24247:网络访问被访问控制列表(ACL)拒绝器
    Oracle 使用UTL_HTTP发送http请求--转载
    Oracle ACL (Access Control List) 详细介绍
    PLSQL中&符号处理
    windows oracle11gR2安装使用
  • 原文地址:https://www.cnblogs.com/wyuzl/p/6515728.html
Copyright © 2020-2023  润新知