控制算法简析6——PID的控制工程原理

本文深入介绍了PID控制器的工作原理及其在闭环控制系统中的应用。通过MATLAB示例,展示了如何调整PID参数以优化系统性能,包括减少上升时间、超调,消除稳态误差。比例增益(Kp)影响上升时间和稳态误差,微分增益(Kd)有助于减少超调和增加系统稳定性,积分增益(Ki)则用于减少稳态误差。文章提供了逐步指南,指导读者设计满足特定要求的PID控制器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

承接上一篇(控制算法简析5——被控系统分析),也和《控制算法简析1——PID和负反馈的数学原理》有呼应关系。

介绍完系统建模和基本的系统分析后,我们已经了解了被控对象的特性,这时,就需要用一个合理的控制器,让这个被控对象在该控制器下按照指定的给定来执行,最为广泛使用的那就是PID控制器了。
在本教程中,我们将介绍一个简单而通用的反馈补偿结构,比例积分微分(PID)控制器,PID控制器之所以被广泛采用,是因为它非常容易理解并且非常有效,工程师不需要太理解控制论,只需要理解积分和微分就可以实施控制系统。此外,即使微分积分很简单,它也很复杂,因为它可以包含了系统的历史(积分),并可以预测系统的未来行为(微分)。我们将讨论每个PID参数对闭环系统动力学的影响,并将演示如何使用PID控制器来改善系统性能。

PID概述

在本教程中,我们将考虑以下统一的反馈系统:
在这里插入图片描述
上闭环图的传递函数为:
在这里插入图片描述

其中, C ( s ) C(s) C(s) 中PID控制器的输出等于被控对象的输入,它在时域中根据反馈误差计算如下:

在这里插入图片描述

首先,让我们使用上面显示的示意图了解PID控制器在闭环系统中的工作方式,变量 e e e 表示跟踪误差,即期望输出 r r r 与实际输出 y y y 之差。该误差信号 e e e 传给PID控制器,并且控制器计算该误差信号相对于时间的导数和积分,发送到被控对象的控制信号 u u u 即通过controller的PID计算得出。

通过对上式进行拉普拉斯变换,可以找到PID控制器的传递函数。

在这里插入图片描述

其中, K p K_p Kp 是比例增益, K i K_i Ki 是积分增益, K d K_d Kd 是微分增益。
我们可以使用传递函数直接在MATLAB中定义PID控制器,例如:

Kp = 1;
Ki = 1;
Kd = 1;

s = tf('s');
C = Kp + Ki/s + Kd*s

在这里插入图片描述

或者,我们可以使用MATLAB的pid对象生成等效的连续时间控制器,如下表示:

C = pid(Kp,Ki,Kd)

在这里插入图片描述
让我们将pid对象转换为传递函数,可以看到产生的结果与上述相同:

tf(C)

在这里插入图片描述

PID的特征

增加比例增益 K p K_p Kp 具有在相同误差水平下按比例增加控制信号的效果,对于给定的误差级别,控制器将更"有力",会使闭环系统做出更快的反应,但也会导致超调,增加 K p K_p Kp 的另一个效果是它将稳态误差趋于减少,但不能消除误差。

在控制器中添加一个微分项 K d K_d Kd ,可以增加控制器对“未来”误差的判断能力,对于简单的比例控制,如果 K p K_p Kp 是固定的,要想增大控制输出,则必须增大误差,而利用微分项,即使误差的幅值很小,但如果误差的斜率是增大的,那么控制输出也会增大,这种方式往往会增加系统阻尼,从而减少超调。但是,增加导数项并不会对稳态误差产生影响。

在控制器中添加一个积分项 K i K_i Ki ,有助于降低稳态误差,如果存在持续的,稳定的误差,则积分器会不断累积,从而增加控制输出来降低误差。但是,积分项的一个缺点是,但误差的正负发生改变时,积分器可能需要一段时间才能“改变符号”,这会使系统更加缓慢和振荡。

下表总结了每个控制器参数:

参数上升时间超调稳定时间误差
K p K_p Kp减小增大变化小减小
K d K_d Kd减小增大增大减小
K i K_i Ki变化小减小减小减小

例子

假设我们有一个简单的质量块弹簧阻尼器系统,这个在前面建模部分有介绍过。

在这里插入图片描述

该系统的控制方程为:
在这里插入图片描述

对控制方程进行拉普拉斯变换,可以得到:
在这里插入图片描述

给定:
m = 1 kg
b = 10 N s/m
k = 20 N/m
F = 1 N
将这些值代入上述传递函数

在这里插入图片描述

此问题的目的是展示 K p K_p Kp K i K_i Ki K d K_d Kd 的调整,对以下被控系统指标的影响:

  • 快速的上升时间
  • 最小过冲
  • 零稳态误差

开环响应

让我们首先查看开环阶跃响应:

s = tf('s');
P = 1/(s^2 + 10*s + 20);
step(P)
grid on;

开环响应图:
在这里插入图片描述

被控对象的传递函数的直流增益为1/20,因此0.05是单位阶跃输入的最终值,这相当于95%的稳态误差,这是非常大的。此外,上升时间约为1s,稳定时间约为1.5s,让我们设计一个控制器,该控制器将减少上升时间,减少稳定时间并消除稳态误差。

比例控制

从上表中可以看出,比例控制器 K p K_p Kp 减少了上升时间,增加了超调,但减少了稳态误差。
以下是带有比例控制器的单位反馈系统的闭环传递函数,其中 X ( s ) X(s) X(s) 是我们的输出(等于 Y ( s ) Y(s) Y(s) ),而我们的参考 R ( s ) R(s) R(s) 是输入:
在这里插入图片描述
让比例增益 K p K_p Kp 等于300

Kp = 300;
C = pid(Kp)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)
grid on;

在这里插入图片描述
在这里插入图片描述
上图显示比例控制器减少了上升时间,稳定时间和稳态误差,但增加了过冲。

比例微分控制

现在,让我们看一下PD控制,从上表中可以看出,添加微分控制 K d K_d Kd 可以减少过冲和稳定时间,具有PD控制器的给定系统的闭环传递函数为:
在这里插入图片描述
K p K_p Kp 等于300,并让 K d K_d Kd 等于10

Kp = 300;
Kd = 10;
C = pid(Kp,0,Kd)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)
grid on;

在这里插入图片描述

在这里插入图片描述
该图表明,微分项的增加减少了超调和稳定时间,并且对上升时间和稳态误差的影响可忽略不计。

比例积分控制

在进行PID控制之前,让我们研究一下PI控制,从表中可以看出,积分控制 K i K_i Ki 的增加有减少上升时间,增加超调和稳定时间,减小稳态误差的趋势。对于给定的系统,带有PI控制器的闭环传递函数:

在这里插入图片描述
让我们将 K p K_p Kp 减少到30,并使 K i K_i Ki 等于70。

Kp = 30;
Ki = 70;
C = pid(Kp,Ki)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

在这里插入图片描述
在这里插入图片描述
在MATLAB命令窗口中运行,即可生成上面的图,我们减小了比例增益 K p K_p Kp,因为积分控制器也像比例控制器那样减少上升时间和增加超调(双重作用),上面的响应表明,在这种情况下,积分控制器消除了稳态误差。

比例积分微分控制

现在,让我们研究一下PID控制,具有PID控制器的给定系统的闭环传递函数为:
在这里插入图片描述
经过多次调整,比例增益 K p K_p Kp = 350, K i K_i Ki = 300 和 K d K_d Kd = 50。

Kp = 350;
Ki = 300;
Kd = 50;
C = pid(Kp,Ki,Kd)
T = feedback(C*P,1);

t = 0:0.01:2;
step(T,t)
grid on;

在这里插入图片描述
在这里插入图片描述

现在,我们设计了一种闭环系统,该系统没有超调,上升时间快且没有稳态误差。

设计PID控制器的一般流程

在为给定系统设计PID控制器时,请遵循以下所示的步骤来获得所需的响应

  1. 获得开环响应并确定需要改进的内容;
  2. 添加比例环节来改善上升时间;
  3. 添加微分环节来减少超调;
  4. 添加积分环节来减少稳态误差;
  5. 调整 K p K_p Kp K i K_i Ki K d K_d Kd,直到获得所需的效果。

最后,请记住,你可以不用再系统中都使用三个控制环节,例如,如果PI控制器可以满足所定的要求(如上述示例),则无需在系统上实现PID控制器,保持控制器尽可能的简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值