0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PID控制算法基本原理

嵌入式开发爱好者 来源:嵌入式开发爱好者 作者:嵌入式开发爱好者 2022-11-02 09:44 次阅读

大家好,我是ST。

今天和大家聊一聊PID算法的控制原理。

在讲解PID算法之前,在此抛出一个问题,如何通过算法控制加热器使水温稳定在50摄氏度?

一、传统的位式控制算法(非PID算法)

bd416156-59f1-11ed-a3b6-dac502259ad0.jpg

(1)算法逻辑:用户设置目标温度Sv为50,传感器检测控制对象即水的温度Pv

①当Pv ②当Pv==SV时,表示实际温度等于目标温度,不输出

③当Pv>Sv时,表示实际温度高于目标温度,输出低电平OUT=L,让执行元件即加热器不工作,即0功率输出

(2)代码实现:

#define Sv 50
void func(unsigned int Pv)
{
          if(Pv

(1)缺点

①控制算法过于简单,单纯对设定值和输出值进行比较,一旦发现低于设定值,就输出高,否则就输出低

②要么处于全功率下,要么处于0功率下工作

③会导致温度总是在设定值上下波动如下图所示,因为控制对象具有一定的惯性,即加热时水的温度不会立即上升,不加热时水的温度不会立即下降

bd4a8466-59f1-11ed-a3b6-dac502259ad0.jpg

二、PID闭环控制

PID闭环即比例-积分-微分控制,即通过对偏差进行比例-积分-微分控制,使得当前值趋于目标值的过程。一般来说,比例P控制是必须的,所以衍生出很多组合的PID控制,如PD、PI、PID。离散PID公示为:

bd554edc-59f1-11ed-a3b6-dac502259ad0.jpg

其中,e(k):为k时刻的偏差,u(k):为输出的控制量(对于加热器来说是PWM)

bd643046-59f1-11ed-a3b6-dac502259ad0.jpg

(1)比例控制(P)

Sv为用户设置目标值,Pv为控制对象即水的当前温度值

Ek为目标温度与当前温度的偏差:Ek=Sv-Pv

①当Ek<0时,表示当前温度未达标

②当Ek==0时,表示当前温度正好达标

③当Ek>0时,表示当前温度已超标

比例控制算法公式:PWM=Kp*Ek

Kp参数的解释:Kp可以理解为一个衰减器或者放大器,主要是用来调整偏差值,调整其增益或者说是放大倍数

比例控制的作用:

调节到达目标值的时间,增大Kp会增加相应速度,但可能会造成超调,有静态误差

(2)积分控制(I)

Ek为历史上某一时刻的偏差,Sk为历史偏差之和:Sk=E1+E2+E3+...+EN ①当Sk<0时,表示历史上大部分时间温度未达标(现在是否达标不知道) ②当Sk==0时,表示历史上温度总体上是好的(现在温度是否达标不管) ③当Sk>0时,表示历史上大部分时间温度超标(现在温度是否超标不知道)

积分控制公式:

PWM=Ki*Sk Ki参数的解释:Ki可以理解为一个衰减器或者放大器,主要是用来调整Sk,调整其增益或者说是放大倍数

比例控制的作用:

如果我们把加热器放到一个非常冷的地方对水进行加热,加热目标值是50摄氏度在比例控制下,水温度慢慢升高,直到升高到45摄氏度,发现天气太冷,水散热的速度正好等于比例控制下的加热速度。所以水温永远停留在45摄氏度,永远到不了50摄氏度。如果加上积分控制,只要没有达到50摄氏度,就会存在偏差,这时候对偏差不断积分(累加),输出的PWM就会增大,即增大的加热器的功率,使水温能达到50摄氏度。所以比例控制的作用是,减少静态情况下的误差,但容易造成震荡

(3)微分控制(D)

E(k)为当前偏差值,E(k-1)为上一次偏差值 Dk为最近两次偏差相减,表示最近两个时间点偏差的变化:Dk=E(k)-E(k-1) ①当Dk<0时,表示偏差有增大的趋势 ②当Dk==0时,表示偏差稳定,输出为0 ③当Dk>0时,表示偏差有减小的趋势

微分控制公式:

PWM=Kd*Dk Kd参数的解释:Kd可以理解为一个衰减器或者放大器,主要是用来调整Dk,调整其增益或者说是放大倍数

微分控制的作用:

只要物理量存在变化,微分控制就会起作用,让物理量的变化速度趋于0,增大Kd参数能够抑制震荡,尽快稳定,但有可能造成调节周期过长

(4)PID算法控制代码实现

int PID(int Sv,int Pv)
{
      /* Sv:用户设定的目标值
      ** Pv:传感器检测到的当前值
      ** Ek:目标值与当前值的偏差值
      ** last_Ek:上一次的Ek值
      ** Sk:偏差值Ek的积分值
      ** PWM:输出的PWM值
      */
      static int Ek,last_Ek,Sk;
      static float PWM;
      Ek=Sv-Pv;
      Sk+=Ek;
      /*积分限幅,Sk_max和Sk_min根据情况自己给定*/
      if(Sk>Sk_max)   Sk=Sk_max;
      if(SkPWM_max)   PWM=PWM_max;
      if(PWM

当Ek、Ki和Kp参数参数调节的比较好时,温度能及时达到目标温度并且很平稳如图所示:

bd706974-59f1-11ed-a3b6-dac502259ad0.jpg

三、PID控制参数整定的方法

PID控制的调节经验可以总结为:先只使用 P 控制,增大 P 系数直到系统振荡,然后加入微分控制增大阻尼,消除振荡之后再根据系统对响应和静差等具体要求,调节 P 和 I 参数。

例子:我们需要调节目标值为 10390,当前值为 10000

①先设置Kd和Ki的参数值为0,然后把Kp参数从0逐渐增大,直到出现震荡

当Kp=62,Ki=0,Kd=0时,响应曲线如下:

bd7a8ac6-59f1-11ed-a3b6-dac502259ad0.jpg

②保持Kp=62,Ki=0不变,Kd从0逐渐增大,当Kd=188时,响应曲线如下:

bdaa5af8-59f1-11ed-a3b6-dac502259ad0.jpg

当加入微分控制的时候,可以看到,系统的振荡得到了抑制,但是系统的响应变慢了。因为微分控制相当于一个阻尼力,引入微分控制相当于增大系统的阻尼。这个时候需要结合 KP 和 KI 进行进一步的优化。在实际生产中,需要对不同项目进行评估,比如一个系统对快速性要求不高,但对稳定性和准确性的要求很高,那么就需要严格控制超调量和静差。

总结:PID控制算法是经典控制方法中,现实生活中使用非常广泛,掌握其中的原理非常重要。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PID
    PID
    +关注

    关注

    35

    文章

    1444

    浏览量

    83693
  • 控制算法
    +关注

    关注

    4

    文章

    155

    浏览量

    21485

原文标题:PID控制算法基本原理

文章出处:【微信号:嵌入式开发爱好者,微信公众号:嵌入式开发爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    蚁群算法基本原理及其应用实例

    蚁群算法是一种仿生学算法,其灵感来源于蚂蚁在寻找食物过程中发现路径的行为。蚁群算法是一种模拟进化算法,初步的研究表明该算法具有许多优良的性质
    发表于 02-02 09:44 9.1w次阅读
    蚁群<b class='flag-5'>算法</b><b class='flag-5'>基本原理</b>及其应用实例

    FFT的基本原理算法结构

    FFT的基本原理算法结构FFT是利用了旋转因子的周期性和对称性,对DFT进行简化的运算。各种FFT算法可分两大类:一类是针对N等于2的整数次幂的算法,如基二
    发表于 06-14 00:20

    3个下卷-PID控制基本原理

    再发一个好了百度好评文章,PID控制基本原理
    发表于 01-20 15:26

    遗传算法基本原理

    遗传算法基本原理.zip
    发表于 01-07 12:13

    TSP控制基本原理是什么?

    TSP控制基本原理是什么?
    发表于 05-11 06:39

    视频增强算法基本原理是什么?

    视频增强算法基本原理是什么?单尺度算法的原理是什么?视频增强能解决的实际问题及应用领域
    发表于 06-03 07:14

    直流电机转速测量与控制基本原理

    自控原理—直流电机转速控制设计实验报告实验报告一.实验目的了解直流电机转速测量与控制基本原理掌握LabVIEW图形化编程方法,编写电机转速控制系统程序熟悉
    发表于 11-12 07:09

    ADRC的基本原理是什么?有哪些应用?

    ADRC的基本原理是什么?有哪些应用?PID到底好在在哪里?如何保留PID的优点?
    发表于 11-22 06:14

    PID算法基本原理及其执行流程

    景。1、PID算法基本原理PID算法控制行业最经典、最简单、而又最能体现反馈
    发表于 12-21 08:22

    嵌入式系统中语音算法基本原理是什么

    嵌入式系统中语音算法基本原理是什么?嵌入式系统中语音算法有何功能?
    发表于 12-23 08:49

    PID调节概念及基本原理

    PID调节概念及基本原理:PID全称比例(proportion)-积分(integral)-微分(derivative)控制器,是自动控制
    发表于 09-23 23:42 76次下载

    LSB算法基本原理

    LSB算法基本原理LSB算法基本原理是:对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。由于水
    发表于 12-09 02:41 7168次阅读

    预测PID控制算法基本原理及研究现状

    自1992 年Hagglund 提出预测PI 控制器的思想以来,预测PID 算法得到了逐 步发展和完善,并成功应用在一些复杂对象的控制上。现在文献上所说的预测
    发表于 04-09 09:59 79次下载

    蚁群算法基本原理及其改进算法.ppt

    蚁群算法基本原理及其改进算法.ppt
    发表于 04-23 14:28 6次下载
    蚁群<b class='flag-5'>算法</b>的<b class='flag-5'>基本原理</b>及其改进<b class='flag-5'>算法</b>.ppt

    PID调节及PID调节的基本原理

    PID调节及PID调节的基本原理免费下载。
    发表于 04-25 15:41 47次下载