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

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

3天内不再提示

自动控制系统PID控制器的基本实现

454398 来源:博客园 作者:木南创智 2020-11-04 14:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在自动控制中,PID及其衍生出来的算法是应用最广的算法之一。各个做自动控制的厂家基本都有会实现这一经典算法。我们在做项目的过程中,也时常会遇到类似的需求,所以就想实现这一算法以适用于更多的应用场景。

1PID算法基本原理

PID算法是控制行业最经典、最简单、而又最能体现反馈控制思想的算法。对于一般的研发人员来说,设计和实现PID算法是完成自动控制系统的基本要求。这一算法虽然简单,但真正要实现好,却也需要下一定功夫。首先我们从PID算法最基本的原理开始分析和设计这一经典命题。

PID算法的执行流程是非常简单的,即利用反馈来检测偏差信号,并通过偏差信号来控制被控量。而控制器本身就是比例、积分、微分三个环节的加和。其功能框图如下:

根据上图我们考虑在某个特定的时刻t,此时输入量为rin(t),输出量为rout(t),于是偏差就可计算为err(t)=rin(t)-rout(t)。于是PID的基本控制规律就可以表示为如下公式:

其中Kp为比例带,TI为积分时间,TD为微分时间。PID控制的基本原理就是如此。

2PID算法的离散化

上一节简单介绍了PID算法的基本原理,但要在计算机上实现就必须将其离散化,接下来我们就说一说PID算法的离散化问题。在实现离散化之前,我们需要对比例、积分、微分的特性做一个简单的说明。

比例就是用来对系统的偏差进行反应,所以只要存在偏差,比例就会起作用。积分主要是用来消除静差,所谓静差就是指系统稳定后输入输出之间依然存在的差值,而积分就是通过偏差的累计来抵消系统的静差。而微分则是对偏差的变化趋势做出反应,根据偏差的变化趋势实现超前调节,提高反应速度。

在实现离散前,我们假设系统采样周期为T。假设我们检查第K个采样周期,很显然系统进行第K次采样。此时的偏差可以表示为err(K)=rin(K)-rout(K),那么积分就可以表示为:err(K)+ err(K+1)+┈┈,而微分就可以表示为:(err(K)- err(K-1))/T。于是我们可以将第K次采样时,PID算法的离线形式表示为:

也可以记为:

这就是所谓的位置型PID算法的离散描述公式。我们知道还有一个增量型PID算法,那么接下来我们推到一下增量型PID算法的公式。上面的公式描述了第k个采样周期的结果,那么前一时刻也就是k-1个采样周期就不难表示为:

那么我们再来说第K个采样周期的增量,很显然就是U(k)-U(k-1)。于是我们用第k个采样周期公式减去第k-1个采样周期的公式,就得到了增量型PID算法的表示公式:

当然,增量型PID必须记得一点,就是在记住U(k)=U(k-1)+∆U(k)。

3PID控制器的基本实现

完成了离散化后,我们就可以来实现它了。已经用离散化的数据公式表示出来后,再进型计算机编程已经不是问题了。接下来我们就使用C语言分别针对位置型公式和增量型公式来具体实现。

1)位置型PID的简单实现

位置型PID的实现就是以前面的位置型公式为基础。这一节我们只是完成最简单的实现,也就是将前面的离散位置型PID公式的计算机语言化。

首先定义PID对象的结构体:

 1 /*定义结构体和公用体*/
 2 
 3 typedef struct
 4 
 5 {
 6 
 7   float setpoint;       //设定值
 8 
 9   float proportiongain;     //比例系数
10 
11   float integralgain;      //积分系数
12 
13   float derivativegain;    //微分系数
14 
15   float lasterror;     //前一拍偏差
16 
17   float result; //输出值
18 
19   float integral;//积分值
20 
21 }PID;

接下来实现PID控制器:

 1 void PIDRegulation(PID *vPID, float processValue)
 2 
 3 {
 4 
 5   float thisError;
 6 
 7   thisError=vPID->setpoint-processValue;
 8 
 9   vPID->integral+=thisError;
10 
11   vPID->result=vPID->proportiongain*thisError+vPID->integralgain*vPID->integral+vPID->derivativegain*(thisError-vPID->lasterror);
12 
13   vPID->lasterror=thisError;
14 
15 }

这就实现了一个最简单的位置型PID控制器,当然没有考虑任何干扰条件,仅仅只是对数学公式的计算机语言化。

2)增量型PID的简单实现

增量型PID的实现就是以前面的增量型公式为基础。这一节我们只是完成最简单的实现,也就是将前面的离散增量型PID公式的计算机语言化。

首先定义PID对象的结构体:

 1 /*定义结构体和公用体*/
 2 
 3 typedef struct
 4 
 5 {
 6 
 7   float setpoint;       //设定值
 8 
 9   float proportiongain;     //比例系数
10 
11   float integralgain;      //积分系数
12 
13   float derivativegain;    //微分系数
14 
15   float lasterror;     //前一拍偏差
16 
17   float preerror;     //前两拍偏差
18 
19   float deadband;     //死区
20 
21   float result; //输出值
22 
23 }PID;

接下来实现PID控制器:

void PIDRegulation(PID *vPID, float processValue)

{

  float thisError;

  float increment;

  float pError,dError,iError;

 

  thisError=vPID->setpoint-processValue; //得到偏差值

  pError=thisError-vPID->lasterror;

  iError=thisError;

  dError=thisError-2*(vPID->lasterror)+vPID->preerror;

  increment=vPID->proportiongain*pError+vPID->integralgain*iError+vPID->derivativegain*dError;   //增量计算

 

  vPID->preerror=vPID->lasterror;  //存放偏差用于下次运算

  vPID->lasterror=thisError;

  vPID->result+=increment;

}

这就实现了一个最简单的增量型PID控制器,也没有考虑任何的干扰条件,仅仅只是对数学公式的计算机语言化。

4、基本特点

前面讲述并且实现了PID控制器,包括位置型PID控制器和增量型PID控制器。界限来我们对这两种类型的控制器的特点作一个简单的描述。

位置型PID控制器的基本特点:

位置型PID控制的输出与整个过去的状态有关,用到了偏差的累加值,容易产生累积偏差。

位置型PID适用于执行机构不带积分部件的对象。

位置型的输出直接对应对象的输出,对系统的影响比较大。

增量型PID控制器的基本特点:

增量型PID算法不需要做累加,控制量增量的确定仅与最近几次偏差值有关,计算偏差的影响较小。

增量型PID算法得出的是控制量的增量,对系统的影响相对较小。

采用增量型PID算法易于实现手动到自动的无扰动切换。
编辑:hfy

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

    关注

    10

    文章

    721

    浏览量

    46238
  • PID控制器
    +关注

    关注

    2

    文章

    173

    浏览量

    19583
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    增产30%的秘密:智能温室自动控制系统如何重塑农业生产

    在温室大棚种植中,“温度高了忘通风、湿度大了没降湿、浇水施肥凭感觉” 是传统管理的常见问题,不仅消耗大量人力,还易导致作物减产、品质下降。 智能温室大棚自动控制系统通过物联网技术,实现 “环境参数
    的头像 发表于 11-05 16:46 305次阅读

    Aerodiode高带宽激光锁定PID控制器

    Aerodiode激光PID伺服控制器产品图 Aerodiode的超高带宽激光锁定PID控制器能够动态最小化系统信号与目标设定值之间的差异。
    的头像 发表于 10-22 07:48 166次阅读
    Aerodiode高带宽激光锁定<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>

    自动控制系统中什么叫开环控制,半闭环控制,闭环控制?三者有何区别?

    自动控制系统中,开环控制、半闭环控制和闭环控制是三种基础的控制方式,它们以不同的信息处理机制实现
    的头像 发表于 08-25 07:39 2414次阅读
    <b class='flag-5'>自动控制系统</b>中什么叫开环<b class='flag-5'>控制</b>,半闭环<b class='flag-5'>控制</b>,闭环<b class='flag-5'>控制</b>?三者有何区别?

    协同与高效:工业自动控制系统的多系统集成功能

    工业化自动控制系统作为现代工业生产的 “神经中枢”,通过集成传感控制器、执行与软件算法,实现了从生产参数采集到设备精准调控的全流程
    的头像 发表于 08-18 17:08 723次阅读

    水泵远程自动控制系统:功能解析与多场景化应用指南

    自动控制系统通过物联网、自动控制等技术,实现了水泵的远程监控、智能调节与故障示警,改变传统管理模式。 一、核心功能:构建水泵智能管理体系 水泵远程
    的头像 发表于 08-14 15:19 997次阅读

    温度位元式控制系统与连续的PID控制系统的区别

    电子发烧友网站提供《温度位元式控制系统与连续的PID控制系统的区别.pdf》资料免费下载
    发表于 08-13 15:54 1次下载

    一步到位,Moku数字PID控制器实现系统实时调节与验证

    PID控制被广泛应用于实验控制和工业自动系统中,但在实际调试中,传统的PID
    的头像 发表于 06-03 12:00 1076次阅读
    一步到位,Moku数字<b class='flag-5'>PID</b><b class='flag-5'>控制器</b><b class='flag-5'>实现</b><b class='flag-5'>系统</b>实时调节与验证

    PID控制经典培训教程

    目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志。同时,控制理论的发展也经历了古典控制理论、现代控制理论和智能控制理论三个阶段。
    发表于 02-26 15:22

    自锁电路怎么实现自动控制

    在现代电子技术中,自动控制实现智能化和自动化的关键。自锁电路作为一种基本的自动控制电路,因其简单、可靠和易于实现的特点,被广泛应用于各种
    的头像 发表于 01-18 10:04 2016次阅读

    智能温室大棚自动控制系统

    智能温室大棚自动控制系统作为现代农业发展的重要组成部分,正逐渐改变着传统农业的生产模式。该系统集成传感、物联网、自动控制、边缘计算等技术
    的头像 发表于 01-03 16:17 1491次阅读

    自动控制系统与物联网的结合 自动控制系统的实时监测技术

    自动控制系统提供了更丰富的数据支持,而自动控制系统则利用这些数据实现了更精确、更智能的控制。 物联网的数据支持 : 物联网通过连接各种设备和传感
    的头像 发表于 12-18 10:00 1429次阅读

    自动控制系统在智能制造中的应用

    1. 自动控制系统的定义 自动控制系统是指通过传感检测系统状态,利用控制器系统进行调节,以
    的头像 发表于 12-18 09:57 1619次阅读

    自动控制系统的常见故障分析

    自动控制系统通过反馈机制来调节和控制过程变量,以实现预定的性能标准。这些系统可能包括传感控制器
    的头像 发表于 12-18 09:52 3377次阅读

    自动控制系统的调试方法 自动控制系统与传统控制系统的比较

    自动控制系统的调试方法 自动控制系统的调试是一个复杂的过程,涉及到对系统性能的测试和优化。以下是一些基本的调试方法: 理论分析与仿真 : 在实际调试之前,通过理论分析和计算机仿真来预测系统
    的头像 发表于 12-18 09:50 1486次阅读

    自动控制系统的基本原理 自动控制系统在工业中的应用

    在现代工业生产中,自动控制系统扮演着至关重要的角色。它们不仅提高了生产效率,还确保了产品质量和安全性。 自动控制系统的基本原理 1. 开环控制与闭环控制
    的头像 发表于 12-18 09:48 3092次阅读