当前位置:首页 > 工业控制 > 工业控制
[导读]在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。

在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。

它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、…)。

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

在自动控制中,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算法易于实现手动到自动的无扰动切换。

这篇就写到这里。要想直观地体验PID的控制作用,需要一个具体的东西来调试。如果感觉文章还不错欢迎大家收藏转发。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为解决使用现有接装纸分离装置生产“视窗烟支”时出现的安装调整难度大、耗时长、稳定性差,烟支接装纸外观质量缺陷率高等问题,设计了一种接装纸三级分离和控制装置。通过接装纸初步分离、分离定位控制和最终定位输送装置模块化设计,且...

关键字: 视窗烟支 接装纸 分离 控制

构建了机载电源特性测试系统 , 包括硬件平台和软件平台:硬件平台用于产生电源特性测试所需激励信号 , 软件 平台实现电源特性测试架构的 自动切换和电源特性的数据采集;硬件平台由APS15000线性功放 、LVA2500线...

关键字: 电源特性测试 测试切换 数据采集 自动控制

作为业内持续专注于物联网(IoT)芯片开发的厂商,Silicon Labs(芯科科技)自2021年剥离基础设施与汽车(I&A)业务后,全力聚焦物联网领域。而随着物联网迈向全场景无缝连接与人工智能(AI)端侧赋能的新阶段,...

关键字: 芯科科技 IoT BLE AoA Sub-G AI

永磁同步电机具有高效节能 、低噪声 、高功率密度等显著优点 ,特别适用于新能源电动汽车行业 。针对城市用轻型 低速电动汽车的应用 , 分析了一款内置式永磁同步电机的设计方法及特点 , 对汽车驱动电机的基本性能及设计策略进...

关键字: 永磁同步电机 新能源汽车 有限元计算 电机设计 内置式

介绍了“W ”型锅炉的燃烧特性 ,深度调峰过程中常见的问题及风险点 。结合某电厂630 MW超临界机组在200 MW负 荷深度调峰过程中给煤机断煤引起的燃烧恶化工况 ,对燃烧恶化后的现象 、处理过程及原因进行了全面分...

关键字: “W”型锅炉 深度调峰 燃烧恶化 稳燃措施

在地铁供电系统中 ,直流牵引系统故障可能会导致地铁列车失电 ,对运营服务造成严重影响 。地铁出入场(段)线 的部分直流牵引供电设备处于露天环境 , 与正线隧道内较为封闭的环境相比 , 易因外部环境影响 ,导致设备故障 。...

关键字: 出入段线 牵引直流开关 电流变化率保护 跳闸

在现代电力系统中 , 无论是大电流 、高电压 、快速运行的电源开关系统 , 还是高速电机的驱动系统 , 电磁干扰的传 播一直是系统设计的难点 。鉴于此 ,介绍了通过控制高速开关核心模块PWM(脉宽调制)的展频方式来减少E...

关键字: 电磁干扰(EMI) 脉宽调制(PWM) 展频

水厂作为城市供水系统的重要组成部分 , 其电气设计的合理性和高效性直接关系到整个供水系统的稳定性和经 济性 。鉴于此 ,从供配电系统 、设备选型 、电缆敷设 、节能措施及智慧化平台等五个维度 , 结合现行规范与工程实践...

关键字: 水厂 电气设计 供配电系统 智慧化平台

由于负载的特殊性和运行条件的复杂性 ,海上油气平台的电气系统功率因数普遍较低 。这种低功率因数会对电力 系统造成一系列负面影响 , 包括电能损耗增加 、设备运行效率降低及对平台电力系统的冲击 。鉴于此 , 结合具体项目案...

关键字: 油气平台 静止无功发生器(SVG) 功率因数 无功补偿 改造案例

在电子制造领域,DFM(Design for Manufacturability,可制造性设计)作为连接研发与量产的桥梁,通过在设计阶段预判制造风险,已成为提升产品良率、降低成本的核心工具。以手机摄像头模组封装工艺为例,...

关键字: DFM BSOB
关闭