主要内容

调谐2-DOF PID控制器(命令行)

此示例显示如何在命令行中设计两级自由度(2-DOF)PID控制器。该示例还将2-DOF控制器性能与1-DOF PID控制器实现的性能进行了比较。

二自由度PID控制器包括在比例和导数项上的设定值加权。与一自由度PID控制器相比,二自由度PID控制器可以在不显著增加设定点跟踪超调量的情况下实现更好的抗干扰。一个典型的控制架构使用2-DOF PID控制器如下图所示。

针对这个例子,为工厂设计一个两自由度控制器,如下所示:

$$ \左(s \右)= {1 \ over {{s ^ 2} + 0.5s + 0.1}}。$$

假设系统的目标带宽为1.5 rad / s。

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

使用类型“PID2”原因Pidtune.生成一个二自由度控制器,表示为pid2目的。显示器确认此结果。Pidtune.调整所有控制器系数,包括设定值权重bc,平衡性能和鲁棒性。

为了计算闭环响应,请注意2自由度PID控制器是一个2输入1输出的动态系统。可以将控制器分解为两个通道,一个用于参考信号,一个用于反馈信号,如图所示。(见连续时间2自由度PID控制器表示想要查询更多的信息。)

将控制器分解为组件CrCy,并使用它们来计算闭环响应ry

C2tf =特遣部队(C2);Cr = C2tf (1);Cy = C2tf (2);T2 = Cr *反馈(G, Cy, + 1);

为了检验其抗扰性能,计算传递函数dy

S2 =反馈(G,CY,+ 1);

为了进行比较,设计一个具有相同带宽的1-DOF PID控制器,并计算相应的传递函数。然后比较阶跃响应。

C1 = pidtune (G,“PID”,厕所);t1 =反馈(g * c1,1);S1 =反馈(G,C1);子图(2,1,1)Stepplot(T1,T2)标题('参考跟踪'stepplot(S1,S2) stepplot(S1,S2) stepplot(S1,S2) stepplot(S1,S2) stepplot(S1,S2) stepplot(S1,S2) stepplot“抗干扰”)传说(“1-DOF”二自由度的

图中显示,添加第二个自由度消除了参考跟踪响应中的超调,而不需要任何干扰抑制的代价。你也可以改进干扰抑制使用设计福克斯选择。这个选项会导致Pidtune.支持抗干扰而不是设定值跟踪。

选择= pidtuneOptions('designfocus'“骚扰 - 拒绝”);C2dr = pidtune (G,“PID2”、wc、选择)
C2dr = 1 u = Kp (b*r-y) + Ki --- (r-y) + Kd*s (c*r-y) s with Kp = 1.72, Ki = 0.593, Kd = 1.25, b = 0, c = 0 Continuous-time 2-DOF PID controller in parallel form.

使用默认的平衡设计焦点,Pidtune.选择一个b0到1之间的价值,对于这种植物,当您更换设计重点以倾向于扰乱拒绝,Pidtune.b= 0和c= 0。因此,Pidtune.自动生成一个I-PD控制器,以优化抗干扰。(显式指定I-PD控制器而不设置设计焦点会产生类似的控制器。)

比较三种控制器的闭环响应。

C2dr_tf =特遣部队(C2dr);Cdr_r = C2dr_tf (1);Cdr_y = C2dr_tf (2);T2dr = Cdr_r *反馈(G, Cdr_y, + 1);S2dr =反馈(G, Cdr_y, + 1);次要情节(2,1,1)stepplot (T1, T2, T2dr)标题('参考跟踪')子图(2,1,2)Stepplot(S1,S2,S2DR);标题(“抗干扰”)传说(“1-DOF”二自由度的“双自由度拒绝焦点”

结果表明,与平衡二自由度控制器相比,该控制器的抗干扰能力得到了进一步的提高。这种改进牺牲了一些引用跟踪性能,这要稍微慢一些。然而,参考跟踪响应仍然没有超调。

因此,采用二自由度控制可以在不牺牲与一自由度控制相同的参考跟踪性能的情况下提高抗干扰能力。这些对系统性能的影响很大程度上取决于你的工厂的性能。对于某些植物和某些控制带宽,使用二自由度控制或改变设计焦点对调谐结果的影响较小或没有影响。

另请参阅

|

相关话题