皮顿

线性对象模型的PID整定算法

语法

C=pidtune(系统,类型)
C = pidtune (sys, C0)
C = pidtune (sys、类型、wc)
C = pidtune (sys, C0, wc)
C = pidtune (sys,…,选择)
[C,info]=pidtune(…)

描述

C= pidtune (sys类型设计了一类PID控制器类型的植物sys如果类型指定一个单自由度(1-DOF)PID控制器,然后为装置反馈回路设计控制器,如图所示:

如果类型指定一个二自由度(2-DOF) PID控制器,则皮顿设计一个2-DOF控制器,如图所示:

皮顿调整PID控制器的参数C平衡性能(响应时间)和鲁棒性(稳定裕度)。

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

C= pidtune (sys类型wcC= pidtune (sysC0wc指定一个目标值wc对于开环响应的前0 dB增益交叉频率。

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

C信息] = pidtune(…)返回数据结构信息,其中包含有关闭环稳定性、所选开环增益交叉频率和实际相位裕度的信息。

输入参数

sys

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

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

  • 连续或离散时间模型。

  • 稳定的,不稳定的,积分的。然而,具有不稳定极点的设备在PID控制下可能是不稳定的。

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

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

如果植物有不稳定的极点sys是下列情况之一:

  • 一个的朋友模型

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

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

类型

控制器要设计的控制器类型,指定为字符向量。术语控制器类型指在控制器动作中出现的术语。例如,PI控制器只有比例项和积分项,而PIDF控制器则包含比例项、积分项和滤波导数项。类型可以采用下面总结的值。有关这些控制器类型的更多详细信息,请参阅PID控制器类型

1-DOF控制器

  • “P”-仅成比例

  • “我”-仅积分

  • “π”-比例积分

  • “PD”-比例与导数

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

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

  • “PIDF”-基于导数项的一阶滤波器的比例、积分和导数

二自由度控制器

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

  • “PD2”-二自由度比例微分

  • “PDF2”-带导数项一阶滤波器的二自由度比例导数

  • “PID2”-2自由度比例、积分和微分

  • “PIDF2”- 2-DOF比例、积分和导数,在导数项上有一阶滤波器

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

具有固定权重的二自由度控制器

  • “I-PD”-二自由度PID控制b= 0,c= 0

  • ‘I-PDF’- 2-DOF PIDF withb= 0,c= 0

  • “ID-P”-二自由度PID控制b= 0,c= 1

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

  • “πd的”-二自由度PID控制b= 1,c= 0

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

关于固定设定值权重的2-DOF PID控制器的详细信息,请参见PID控制器类型

控制器形式

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

如果sys是带有样本时间的离散时间模型吗Ts皮顿为此设计了一种离散时间控制器Ts.控制器有ForwardEuler用于积分和导数作用的离散积分器公式。使用的输入C0而不是类型如果您想设计一个具有不同离散积分公式的控制器。

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

C0

所设计控制器的PID控制器设置属性,指定为pidpidstdpid2pidstd2对象。如果您提供C0皮顿

  • 设计以下类型的控制器:C0

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

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

  • 返回一个二自由度pid2控制器,如果C0是一个pid2控制器。

  • 返回一个二自由度pidstd2控制器,如果C0是一个pidstd2控制器。

  • 返回具有相同属性的控制器叶状体Dformula价值观C0如果sys是一个离散时间系统。请参阅pidpid2pidstdpidstd2有关的更多信息的参考页叶状体Dformula

wc

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

增加wc以加快反应速度。减少wc以提高稳定性。当您忽略wc皮顿根据设备动态自动选择一个值,以实现响应和稳定性之间的平衡。

选择

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

输出参数

C

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

控制器形式:

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

  • 如果第二个参数皮顿C0

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

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

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

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

控制器类型:

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

  • 如果第二个参数皮顿C0C一般有相同的类型C0

然而,在这两种情况下,算法可以实现充分的性能和鲁棒性使用较低阶控制器比指定类型C0皮顿返回一个C比指定的动作少。例如,C可以是PI控制器,即使类型“PIDF”

时域:

  • Csys

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

  • 如果您指定C0C有相同的叶状体Dformula作为C0如果noC0指定,叶状体Dformula向前欧拉.看到pidpid2pidstdpidstd2有关的更多信息的参考页叶状体Dformula

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

信息

数据结构,包含有关调谐PID回路的性能和鲁棒性的信息信息是:

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

  • CrossoverFrequency—开环系统的前0 dB交叉频率Csys在里面rad / TimeUnit,在那里时间单位是中指定的时间单位时间单位的属性sys

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

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

例子

命令行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控制器的控制器对象信息结果表明,调谐算法选择了约0.52 rad/s的开环交叉频率。

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

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

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

[C_pi_fast,信息]= 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])图例(“π”“圆周率,快”

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

设计了一种pid控制器Gc目标交叉频率为1.0 rad/s。

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

信息领域表明,在控制器中的微分作用允许调谐算法设计一个更积极的控制器,以实现目标交叉频率与良好的相位裕度。

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

T_pidf_fast =反馈(C_pidf_fast * sys, 1);步骤(T_pi_fast T_pidf_fast);轴([0 30 0 1.4]);传奇(“圆周率,快”“PIDF,快”);

你可以用快速PI和PIDF控制器比较被控系统的输入(负载)抗扰性。为此,绘制从设备输入到设备输出的闭环传递函数的响应。

S_pi_fast =反馈(sys, C_pi_fast);S_pidf_fast =反馈(sys, C_pidf_fast);步骤(S_pi_fast S_pidf_fast);轴([0 50 0 0.4]);传奇(“圆周率,快”“PIDF,快”);

这幅图表明,PIDF控制器也提供了更快的干扰抑制。

设计标准形式的PID控制器

为被定义的对象设计一个标准形式的PID控制器

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

要设计标准形式的控制器,使用标准形式的控制器作为C0参数皮顿

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

指定积分离散化方法

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

如果你的工厂是离散时间的,皮顿使用默认的正向欧拉积分方法自动返回一个离散时间控制器。要指定不同的积分方法,请使用pidpidstd创建一个具有所要求的积分方法的离散时间控制器。

sys=c2d(tf([11],[156]),0.1;C0=pid(1,1,“t”, 0.1,“IFormula”“后秩序”);C = pidtune (sys, C0)
C = Ts*z Kp + Ki * ------ z-1, Kp = -0.518, Ki = 10.4, Ts = 0.1采样时间:0.1秒并行形式离散时间PI控制器。

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

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

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

设计二自由度PID控制器

为给定传递函数的被控对象设计一个二自由度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并联形式的连续二自由度PID控制器。

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

提示

  • 默认情况下,皮顿类型输入返回一个pid以并行形式设计控制器。要以标准形式设计控制器,请使用pidstd控制器作为输入参数C0. 有关并行和标准控制器窗体的更多信息,请参阅pidpidstd参考页。

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

算法

有关MathWorks的信息®PID调节算法,请参阅PID优化算法

选择

参考文献

Åström, k.j.和Hägglund, T。先进的PID控制,研究三角园区,数控:仪器仪表、系统和自动化学会,2006。

介绍了R2010b