在本教程中,我们将介绍一个简单而灵活的反馈补偿器的结构,比例 - 积分 - 微分(PID)控制器。我们将讨论每个PID参数的闭环动态的效果,并演示了如何使用PID控制器,提高了系统的性能。
在本教程中所使用的主要MATLAB命令:TF,步骤,PID控制,反馈,pidtool,pidtune
PID概述
在本教程中,我们将考虑以下单位反馈系统:
PID控制器的输出,等于到工厂的控制输入端,在所述时域是如下:
(1)
首先,让我们来看看如何PID控制器在一个闭环系统,利用上述原理图。变量()表示的跟踪误差,所需的输入值()和实际的输出()之间的差异。该误差信号()将被发送到PID控制器,控制器计算衍生物与此误差信号的积分。的控制信号()的植物是相等的比例增益()倍的误差大小加上积分增益()的时间积分的错误加微分增益()倍的衍生物的错误。
该控制信号()被发送给植物,并得到新的输出()。新的输出(),然后反馈相比,参考查找新的误差信号()。控制器采用这个新的错误信号,并计算其衍生物及其整体再次,循环往复。
PID控制器的传递函数,通过服用的拉普拉斯变换方程(1),被发现。
(2)
在MATLAB中直接使用的传递函数,例如,我们可以定义一个PID控制器:
连续时间传递函数。
或者,我们可以使用MATLAB的PID控制器对象来生成等效连续时间控制器如下:
连续PID控制器并联构成。
让转换的pid对象的传递函数地看到,它产生与上述相同的结果:
连续时间传递函数。
PID控制器的特点
比例控制器()将减少上升时间的影响,并会减少,但不会消除稳态误差。一个不可分割的控制()将有消除稳态误差为一个常数或阶跃输入的效果,但它可能使瞬态响应变慢。 A衍生物的控制()将有增加了系统的稳定性,减少了过冲,和改进的瞬态响应的影响。
每个控制器参数的影响和上的闭环系统的总结在下面的表中。
CL响应上升时间过冲稳定时间SS ERROR
KP减少增加小的变化减少
文减少增加增加消除
KD小变化减少减少不变
请注意,这些相关性可能并不完全准确,因为,并且是彼此依赖。事实上,改变这些变量中的一个,可以改变其他两个的效果。出于这个原因,只应使用的表时,确定的值作为参考。
PID控制*例题
假设我们有一个简单的质量,弹簧和阻尼器的问题。是该系统的建模方程
(3)
以拉普拉斯变换的造型方程,我们得到
(4)
的位移和输入之间的传递函数,然后变成
(5)
F = 1 NPlug这些值代入上述的传递函数
(6)
这个问题的目的是向您展示如何每个,并有助于获得
快速上升时间
*小的过冲
无稳定状态errorOpen,环阶跃响应
让我们先来查看的开环阶跃响应。创建一个新的m文件,并运行下面的代码:
PID控制*工序(P)
植物的传递函数的直流增益为1/20,所以0.05是单位阶跃输入的输出的*终值。这相当于稳态误差为0.95,的确是相当大的。此外,上升时间约为一秒,沉降时间为约1.5秒。让我们来设计一个控制器,这将减少上升时间,减少沉淀时间,并消除稳态误差。
PID控制*比例控制
从上面所示的表中,我们可以看到,比例控制器(Kp)的时间的上升时间,增加了超调量,和时间的稳态误差。
上述系统与一个比例控制器的闭环传递函数是:
(7)
让的比例增益()等于300,和改变m文件如下:
连续时间传递函数。
上述图显示比例控制器的上升时间和稳态误差减少,增加了过冲,以及由少量的稳定时间下降。
PID控制*比例微分控制
现在,让我们来看看在PD控制。从上面所示的表中,我们可以看到,微分控制器(Kd值)的过冲和稳定时间的降低。与一个PD控制器的给定的系统的闭环传递函数是:
(8)
让我们像以前一样,让等于10等于300。在MATLAB命令窗口输入以下命令到一个m文件,并运行它。
该图显示,微分控制器的过冲和稳定时间减少,并有一个小的上升时间和稳态误差的影响。
PID控制*比例积分控制
在进入PID控制之前,让我们来看看在PI控制。从表中,我们可以看到,积分控制器(KI),减少了上升时间,不但增加了超调量和稳定时间,并消除了稳态误差。对于给定的系统中,与PI控制的闭环传递函数是:
(9)
让我们减少至30,并让等于70。创建一个新的m文件,并输入以下命令。
在MATLAB命令窗口中运行的m文件,与你应该得到下面的图形。我们已经减少了,因为集中控制器也减少的上升时间和增加了超调的比例控制器(双重效果)的比例增益(Kp)。上面的响应表明积分控制器消除稳态误差。
PID控制*比例-积分-微分控制
现在,让我们来看看在PID控制器。与PID控制器的给定的系统的闭环传递函数是:
(10)
经过多次试验和错误运行时,增益= 350 = 300 = 50提供了所希望的响应。要确认,一个m文件中输入以下命令,并在命令窗口中运行它。你应该得到以下步骤响应。
现在,我们已经获得了闭环系统无超调,快速上升时间,且无稳态误差。
设计一个PID控制器的一般提示
当你正在设计一个PID控制器对于一个给定的系统,请按照下面所示的步骤,以获得所需的响应。
1.获取一个开环反应,并确定需要改进
2.添加比例的上升时间控制,得以提高
3.衍生工具的控制,以提高过冲
4.添加一个不可分割的控制,以消除稳态误差
5.调整的Kp,Ki和Kd,直到你获得所需的整体响应。你总是可以参照到“PID教程”页所示的表格,找出控制有什么特点。
*后,请记住,你并不需要落实到一个系统中的所有三个控制器(比例,微分,积分),如果没有必要的。例如,如果一个PI控制器提供了一个很好的足够的响应(如上面的例子),那么你并不需要实现一个微分控制系统。保持尽可能简单的控制器。
自动PID调整
MATLAB提供了用于自动地选择*佳PID增益,这使得上述不必要的试验和错误的过程的工具。您可以访问调整算法直接使用pidtune的,或通过一个漂亮的图形用户界面(GUI)pidtool。
MATLAB自动调整算法选择PID增益,以平衡性能(响应时间,带宽)和鲁棒性(稳定裕度)。默认情况下,algorthm设计为60度的相位裕度。
让我们来探讨这些自动化工具,先产生一个比例控制器的质量 - 弹簧 - 阻尼系统,通过输入下面的命令:
pidtool(P,'p'的)
pidtool GUI窗口,如下图所示,应该会出现。
请注意,所示的阶跃响应是慢比用手我们设计的比例控制器。现在按一下按钮,在右上角的显示参数。正如预期的比例增益常数中,Kp,是低于我们所使用的一个中,Kp = 94.85 <300。
现在,我们可以交互地调整控制器的参数,并立即得到的响应int他GUI窗口。请在下面的图所示,拖动时间滑块的resposne的权利0.14s。回应并indeeed加快,我们可以看到KP现在已接近手动值。我们还可以看到所有其他的系统性能和鲁棒性参数。请注意,相位裕度为60度时,默认为pidtool和一般的健壮性和性能的良好平衡。
现在让我们尝试我们的系统PID控制器的设计。通过指定先前设计或(基线)控制器,C,作为**个参数,pidtool将设计的另一个PID控制器(而不是P或PI),并与自动化控制器与基线,将比较的系统响应。
pidtool(P,C)
我们看到在输出窗口中,自动控制器的响应速度较慢,表现出更多的超调较基线。现在选择的设计模式:扩展选项的顶部,从而揭示更多的调整参数。
现在输入带宽:32弧度/秒和相位裕度:90度,以生成一个控制器在性能上的基准。请记住,更高的带宽(0 dB的交叉开环),更快的上升时间,且有较高的相位裕量减少超调,提高了系统的稳定性。
*后,我们注意到,我们可以生成相同的控制器使用的命令线工具pidtune的,,而不是GUI的pidtool