主要内容

pidtune

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

语法

C = pidtune (sys、类型)
C = pidtune (sys, C0)
C = pidtune (sys、类型、wc)
C = pidtune (sys, C0, wc)
C = pidtune (sys,…,选择)
[C,信息]= pidtune(…)

描述

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

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

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

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

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

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

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

输入参数

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比例、积分和导数,在导数项上有一阶滤波器

有关一般二自由度PID控制器的更多信息,请参见二自由度PID控制器

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

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

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

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

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

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

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

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

控制器形式

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

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

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

C0

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

  • 设计一个由表示的类型的控制器C0

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

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

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

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

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

wc

为调谐开环响应的0db增益交叉频率的目标值。指定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”

时间域:

  • Csys

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

  • 如果您指定C0C有相同的IformulaDformula作为C0.如果没有C0指定,IformulaDformula向前欧拉.看到pidpid2pidstd,pidstd2有关的更多信息的参考页IformulaDformula

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

信息

数据结构,包含关于调谐PID循环的性能和鲁棒性的信息。等领域的信息是:

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

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

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

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

例子

全部折叠

这个例子展示了如何为给定的对象设计PID控制器:

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

首先,建立电站模型并为其设计一个简单的PI控制器。

Sys = zpk([],[-1 -1 -1],1);[C_pi,信息]= 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 = feedback(C_pi*sys, 1);步骤(T_pi)

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

为了提高响应时间,您可以设置比结果更高的目标交叉频率pidtune自动选择,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])图例(“π”“π,快”

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象表示PI, PI,很快。

性能下降的原因是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,快”);

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象代表PI,fast, PIDF,fast。

你可以用快速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,快”);

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象代表PI,fast, PIDF,fast。

这幅图表明,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

为给定传递函数的被控对象设计一个二自由度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”原因pidtune生成一个二自由度控制器,表示为apid2对象。显示器证实了这个结果。显示屏上也显示了这一点pidtune调优所有控制器系数,包括设定值权重bc,以平衡性能和健壮性。

提示

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

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

算法

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

选择

参考文献

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

介绍了R2010b