主要内容

pidtune

线性植物模型的PID整定算法

语法

C = pidtune(sys,type)
C = pidtune(sys,C0)
C = pidtune(sys,type,wc)
C = pidtune(sys,C0,wc)
C = pidtune(sys,…,opts)
[C,info] = pidtune(…)

描述

C= pidtune (sys类型设计了一类PID控制器类型对于植物来说sys.如果类型指定一个一自由度(1-DOF) PID控制器,则控制器设计为单元反馈回路,如图所示:

如果类型为二自由度PID控制器,则pidtune设计一个2-DOF控制器,如图所示的反馈回路:

pidtune整定PID控制器参数C平衡性能(响应时间)和健壮性(稳定裕度)。

C= pidtune (sysC0设计一个与控制器类型和形式相同的控制器C0.如果sys而且C0都是离散时间模型,C有相同的离散积分公式吗C0

C= pidtune (sys类型wc而且C= pidtune (sysC0wc指定目标值wc为开环响应的前0 dB增益交叉频率。

C= pidtune (sys、……选择使用其他调优选项,如目标相位裕度。使用pidtuneOptions指定选项集选择

C信息[cn] [cn]返回数据结构信息,其中包含闭环稳定性、所选开环增益交叉频率和实际相位裕度等信息。

输入参数

sys

对于单输入,动态系统模型对该装置进行控制器设计。sys可以是:

  • 任何类型的SISO动态系统模型,包括数值LTI模型和标识模型。如果sys是一个可调或不确定的模型,pidtune的电流或标称值设计控制器sys

  • 连续或离散时间模型。

  • 稳定的,不稳定的,积分的。然而,在PID控制下,具有不稳定极点的电厂可能无法稳定。

  • 包括任何类型的时间延迟的模型。然而,具有长时间延迟的装置在PID控制下可能无法达到足够的性能。

  • 一组植物模型。如果sys是一个数组,pidtune为阵列中的每个设备设计单独的控制器。

如果植物有不稳定的极点,并且sys是下列之一:

  • 一个的朋友模型

  • 一个党卫军模型的内部时间延迟不能转换为I/O延迟

你必须使用pidtuneOptions指定工厂中不稳定极点的数量(如果有的话)。

类型

要设计的控制器的控制器类型,指定为字符向量。这个词控制器类型指哪些项出现在控制器动作中。例如,PI控制器只有比例项和积分项,而PIDF控制器包含比例项、积分器项和过滤后的导数项。类型可以取下面总结的值。有关这些控制器类型的详细信息,请参见PID控制器整定类型

1-DOF控制器

  • “P”-仅按比例

  • “我”-仅限积分

  • “π”-比例和积分

  • “PD”-比例和导数

  • “PDF”-比例和导数与导数项上的一阶滤波器

  • “PID”-比例,积分和导数

  • “PIDF”-比例,积分,导数与一阶滤波器的导数项

二自由度控制器

  • “皮”- 2-DOF比例积分

  • “PD2”- 2-DOF比例和导数

  • “PDF2”- 2-DOF比例和导数与一阶滤波器的导数项

  • “PID2”- 2-DOF比例,积分和导数

  • “PIDF2”- 2-DOF比例,积分,导数与一阶滤波器的导数项

有关2-DOF PID控制器的更多信息,请参见二自由度PID控制器

具有固定设定值权值的2自由度控制器

  • “I-PD”- 2-DOF PID与b= 0,c= 0

  • “I-PDF”- 2-DOF PIDF与b= 0,c= 0

  • “ID-P”- 2-DOF PID与b= 0,c= 1

  • “IDF-P”- 2-DOF PIDF与b= 0,c= 1

  • “πd的”- 2-DOF PID与b= 1,c= 0

  • “PI-DF”- 2-DOF PIDF与b= 1,c= 0

有关固定设定值权重2自由度PID控制器的详细信息,请参见PID控制器整定类型

控制器形式

当你使用类型输入,pidtune并行设计控制器(pidpid2)的形式。使用输入C0而不是类型如果你想设计一个标准的控制器(pidstdpidstd2)的形式。

如果sys离散时间模型是否具有采样时间Tspidtune设计了一个离散时间控制器Ts.控制器具有ForwardEuler用于积分和导数运算的离散积分器公式。使用输入C0而不是类型如果你想设计一个有不同离散积分器公式的控制器。

有关PID控制器形式和公式的更多信息,请参见:

C0

PID控制器对所设计控制器的设置属性,指定为pidpidstdpid2,或pidstd2对象。如果你提供C0pidtune

  • 所表示的类型的控制器C0

  • 返回一个pid控制器,如果C0是一个pid控制器。

  • 返回一个pidstd控制器,如果C0是一个pidstd控制器。

  • 返回2-DOFpid2控制器,如果C0是一个pid2控制器。

  • 返回2-DOFpidstd2控制器,如果C0是一个pidstd2控制器。

  • 返回一个具有相同属性的控制器Iformula而且Dformula值作为C0,如果sys是一个离散时间系统。看到pidpid2pidstd,pidstd2有关的更多信息的参考页Iformula而且Dformula

wc

调优开环响应的0 dB增益交叉频率的目标值。指定wc单位为弧度/TimeUnit,在那里TimeUnit时间单位是sys.交叉频率wc粗略设置控制带宽。闭环响应时间约为1 / wc

增加wc加快反应速度。减少wc提高稳定性。当你省略wcpidtune自动选择一个值,根据工厂的动态,实现响应和稳定性之间的平衡。

选择

属性的其他调优选项pidtune设计算法,如目标相位裕度或设计焦点。使用pidtuneOptions创建选择

输出参数

C

控制器设计sys.如果sys是线性模型的数组,pidtune为每个线性模型设计一个控制器,并返回一组PID控制器。

控制器形式:

  • 如果第二个参数为pidtune类型C是一个pidpid2控制器。

  • 如果第二个参数为pidtuneC0

    • C是一个pid控制器,如果C0是一个pid对象。

    • C是一个pidstd控制器,如果C0是一个pidstd对象。

    • C是一个pid2控制器,如果C0是一个pid2对象。

    • C是一个pidstd2控制器,如果C0是一个pidstd2对象。

控制器类型:

  • 如果第二个参数为pidtune类型C一般具有指定的类型。

  • 如果第二个参数为pidtuneC0C一般具有相同的类型C0

然而,在任何情况下,算法可以实现足够的性能和鲁棒性使用比指定的低阶控制器类型C0pidtune返回一个C动作少于指定动作的。例如,C可以是PI控制器吗类型“PIDF”

时间域:

  • C具有相同的时域sys

  • 如果sys是一个离散时间模型,C有相同的采样时间sys

  • 如果你指定C0C有相同的Iformula而且Dformula作为C0.如果没有C0都指定了Iformula而且Dformula向前欧拉.看到pidpid2pidstd,pidstd2有关的更多信息的参考页Iformula而且Dformula

如果你指定C0C还可以获得模型属性,例如InputName而且OutputNameC0.有关模型属性的更多信息,请参阅每种类型的动态系统模型的参考页面。

信息

包含调谐PID回路的性能和鲁棒性信息的数据结构。的领域信息是:

  • 稳定的-表示闭环稳定性的布尔值。稳定的闭环稳定时为1,否则为0。

  • CrossoverFrequency—开环系统的第一个0db交叉频率Csys,在rad / TimeUnit,在那里TimeUnit时间单位是否在TimeUnit的属性sys

  • PhaseMargin-调谐PID回路的相位裕度,以度为单位。

如果sys是一组植物模型,信息是包含每个调优PID循环信息的数据结构数组。

例子

全部折叠

本例展示了如何为给定的工厂设计PID控制器:

年代 y 年代 1 年代 + 1 3.

作为第一步,创建一个工厂模型,并为它设计一个简单的PI控制器。

Sys = zpk([],[-1 -1 -1],1);[C_pi,info] = pidtune(sys,“π”
C_pi = 1 Kp + Ki *——s, Kp = 1.14, Ki = 0.454连续时间PI控制器并联形式。
信息=带字段的结构:稳定:1交叉频率:0.5205相位边际:60.0000

C_pi是一个pid表示PI控制器的controller对象。的领域信息表明调谐算法选择了约0.52 rad/s的开环交叉频率。

检查被控系统的闭环阶跃响应(参考跟踪)。

T_pi = feedback(C_pi*sys, 1);步骤(T_pi)

图中包含一个轴对象。axis对象包含一个line类型的对象。该对象表示T\_pi。

为了提高响应时间,可以设置一个比结果更高的目标交叉频率pidtune自动选择,0.52。将交叉频率增加到1.0。

[C_pi_fast,info] = pidtune(sys,“π”, 1.0)
C_pi_fast = 1 Kp + Ki *——s, Kp = 2.83, Ki = 0.0495并行形式的连续时间PI控制器。
信息=带字段的结构:稳定:1交叉频率:1相位边际:43.9973

新控制器实现了更高的交叉频率,但代价是相位裕度减小。

比较两种控制器的闭环阶跃响应。

T_pi_fast =反馈(C_pi_fast*sys,1);step(T_pi,T_pi_fast)轴([0 30 0 1.4])“π”“π,快”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些物体代表圆周率,圆周率,快。

这种性能下降的原因是PI控制器没有足够的自由度来在1.0 rad/s的交叉频率下实现良好的相位裕度。添加一个衍生动作可以改善响应。

设计一个PIDF控制器Gc目标交叉频率为1.0 rad/s。

[C_pidf_fast,info] = pidtune(sys,“PIDF”, 1.0)
C_pidf_fast = 1 s Kp + Ki *——+ Kd * -------- s Tf*s+1 with Kp = 2.72, Ki = 0.985, Kd = 1.72, Tf = 0.00875并行形式的连续时间PIDF控制器。
信息=带字段的结构:稳定:1交叉频率:1相位边际:60.0000

信息字段表明,控制器中的导数动作允许调谐算法设计一个更积极的控制器,以良好的相位裕度实现目标交叉频率。

比较了快速PI和PIDF控制器的闭环阶跃响应和抗干扰性能。

(C_pidf_fast*sys,1);步骤(T_pi_fast T_pidf_fast);轴([0 30 0 1.4]);传奇(“π,快”“PIDF,快”);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表PI,快,PIDF,快。

您可以将被控系统的输入(负载)干扰抑制与快速PI和PIDF控制器进行比较。为此,绘制从植物输入到植物输出的闭环传递函数的响应。

S_pi_fast = feedback(sys,C_pi_fast);S_pidf_fast = feedback(sys,C_pidf_fast);步骤(S_pi_fast S_pidf_fast);轴([0 50 0 0.4]);传奇(“π,快”“PIDF,快”);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表PI,快,PIDF,快。

该图显示PIDF控制器还提供了更快的干扰抑制。

为以下工厂设计一个标准形式的PID控制器。

sys 1 年代 + 1 3.

要以标准形式设计控制器,请使用标准形式控制器作为C0参数pidtune

Sys = zpk([],[-1 -1 -1],1);C0 = pidstd(1,1,1);C = pidtune(sys,C0)
C = 1 1 Kp *(1 + ---- *—+ Td * s) Ti s,其中Kp = 2.18, Ti = 2.57, Td = 0.642连续时间PID控制器的标准形式

用指定的方法对积分器进行离散化,设计一个离散PI控制器。

如果你的植物处于离散时间,pidtune自动返回一个离散时间控制器使用默认的前向欧拉积分方法。若要指定不同的集成方法,请使用pidpidstd创建一个具有所需积分方法的离散时间控制器。

Sys = c2d(tf([1 1],[1 5 6]),0.1);C0 = pid(1,1,“t”, 0.1,“IFormula”“BackwardEuler”);C = pidtune(sys,C0)
C = Ts*z Kp + Ki * ------ z-1, Kp = -0.0658, Ki = 1.32, Ts = 0.1采样时间:0.1秒并行形式的离散时间PI控制器。

使用C0作为输入原因pidtune设计控制器C的形式、类型和离散化方法相同的C0.的积分项C采用后向欧拉积分法。

指定一个梯形积分器并比较得到的控制器。

C0_tr = pid(1,1,“t”, 0.1,“IFormula”“梯形”);Ctr = pidtune(sys,C0_tr)
Ctr = Ts*(z+1) Ki * -------- 2*(z-1) with Ki = 1.32, Ts = 0.1采样时间:0.1秒离散I-only控制器。

根据传递函数,设计一个二自由度PID控制器:

G 年代 1 年代 2 + 0 5 年代 + 0 1

使用1.5 rad/s的目标带宽。

Wc = 1.5;G = tf(1,[1 0.5 0.1]);C2 = pidtune(G,“PID2”wc)
C2 = 1 u = Kp (b*r-y) + Ki—(r-y) + Kd*s (c*r-y) s, Kp = 1.26, Ki = 0.255, Kd = 1.38, b = 0.665, c = 0并联形式的连续时间2自由度PID控制器。

使用类型“PID2”原因pidtune生成2-DOF控制器,表示为pid2对象。显示屏证实了这一结果。显示屏也显示了这一点pidtune调优所有控制器系数,包括设定值权重b而且c,以平衡性能和健壮性。

提示

  • 默认情况下,pidtune类型输入返回一个pid并行形式的控制器。要设计标准形式的控制器,请使用pidstd控制器作为输入参数C0.有关并行和标准控制器表单的更多信息,请参见pid而且pidstd参考页面。

  • 有关实时编辑器中的交互式PID调优,请参阅整定PID控制器实时编辑器任务。本任务允许您交互式地设计PID控制器并自动生成MATLAB®为您的活动脚本编写代码。

算法

有关MathWorks的信息®PID整定算法,见PID整定算法

选择

参考文献

Åström, K. J.和Hägglund, T。高级PID控制,研究三角园,NC:仪器仪表,系统和自动化学会,2006。

版本历史

在R2010b中引入