主要内容

指定时间延迟

这个例子显示了如何控制系统工具箱™让你代表,处理和分析任何LTI模型与有限数量的延迟。延迟可以在系统输入或输出,具体的I / O之间对,或内部的模型(例如,在一个反馈回路)。

时间延迟的线性时不变模型

传递函数(TF) zero-pole-gain (ZPK)和频率响应数据(朋友)对象提供建模延误的三个属性:

  • InputDelay,指定输入的延误

  • OutputDelay,指定输出延迟

  • IODelay,指定为每个I / O对独立的运输延误。

状态方程(SS)对象有三个delay-related属性:

  • InputDelay,指定输入的延误

  • OutputDelay,指定输出延迟

  • InternalDelay,跟踪延迟当结合模型或关闭反馈回路。

跟踪内部延迟的能力是整数阶最适合的建模和分析延迟效应控制系统。本教程展示了如何构建和操纵系统延迟。如何分析延迟效应的更多信息,见分析控制系统的延迟

一阶+死时间模型

一阶+死时间模型是常用的在过程控制应用程序。就是这样一个例子:

$ $ P (s) = {5 e ^ {-3.4} \ / s + 1} $ $

指定传递函数,使用

num = 5;穴= [1];P =特遣部队(num窝,“InputDelay”,3.4)
P = 5 exp (-3.4 *) * - - - - - - s + 1连续时间传递函数。

正如所料,阶跃响应P是一个移动版本的delay-free回应:

P0 =特遣部队(num穴);步骤(P0,“b”、磷、“r”)

如果流程模型有多个输出,例如:

左$ $ P (s) = \[\矩阵{{5 e ^ {-3.4} \ / s + 1} \ cr {2 e ^ {-2.7} \ / s + 3}} \正确),$ $

您可以使用OutputDelay属性来指定一个不同的延迟对每一个输出通道:

num = {5;2};穴= {[1];3 [1]};P =特遣部队(num窝,“OutputDelay”,(3.4;2.7])
从输入到输出P =…5 1:exp (-3.4 *) * - - - - - - s + 1 2 2: exp (-2.7 *) * - - - - - - s + 3连续时间传递函数。

接下来考虑多输入,多输出模型,例如,

左$ $ P (s) = \[\矩阵{{5 e ^ {-3.4} \ / s + 1} & # 38;1 \ cr {2 e ^ {-2.7} \ / s + 3} & # 38;{e ^ {-0.7} \ / s}} \]。$ $

这里的每个I / O延迟是不同的,因此您必须使用IODelay属性:

num = {5, 1;2 1};穴= {[1],1;3 [1],[1 0]};P =特遣部队(num窝,“IODelay”(3.4 0;2.7 - 0.7));

更直接和文字的方式来指定该模型引入拉普拉斯变量“s”和用传递函数运算:

s =特遣部队(“年代”);P = [5 * exp (-3.4 *) / (s + 1), 1;2 * exp (-2.7 *) / (s + 3), exp (-0.7 *) / s]
从输入1输出P =…5 1:exp (-3.4 *) * - - - - - - s + 1 2 2: exp(-2.7 *) * - - - - - -从输入2输出s + 3…1:1 1 2:exp(-0.7 *) *连续时间传递函数。

请注意,在这种情况下,MATLAB®自动决定如何分配InputDelay之间的延迟,OutputDelay, IODelay属性。

P。InputDelay P。OutputDelay P.IODelay
ans = 0 0 = 0 0.7000岁= 3.4000 0 2.0000 0

这个函数totaldelay总结了输入、输出和I / O延迟值回馈我们输入的值:

totaldelay (P)
ans 2.7000 - 0.7000 = 3.4000 0

状态空间模型与输入和输出延迟

考虑:状态空间模型

$ $ {dx \ / dt} = - x (t) + u (t - 2.5) \ \;;y (t) = 12 x (t)。$ $

请注意,输入信号u (t)是推迟了2.5秒。指定这个模型中,输入:

sys = ss (1,1 12 0,“InputDelay”,2.5)
sys u1 x1 = = x1 x1 1 B = 1 C = (x1, y1 12 D = u1 y1 0输入延迟(秒):2.5连续时间状态空间模型。

一个相关的模型

$ $ {dx_1 \ / dt} = - x_1 (t) + u (t); \ \;y (t) = 12 x_1 (t - 2.5)。$ $

这里的2.5秒延迟是在输出,当被重写这些状态方程为:

$ $ {dx_1 \ / dt} = - x_1 (t) + u (t); \ \;y_1 (t) = 12 x_1 (t); \ \; & # xA; y (t) = y_1 (t - 2.5)。$ $

因此可以指定这个模型为:

sys1 = ss (1,1 12 0,“OutputDelay”,2.5);

注意,两个模型有相同的I / O响应所证实

步骤(sys,“b”sys1,“r——”)

然而,他们的状态轨迹是不一样的,因为这两个州xx1是相关的

$ $ x (t) = x_1 (t - 2.5) $ $

结合模型和I / O延迟

到目前为止,我们只考虑线性时不变模型与特定的I / O之间的运输延误。虽然这是足以许多过程模型,这类模型不够通用分析大多数控制系统延迟,包括简单的反馈循环延迟。例如,考虑并联:

$ $ H (s) = H_1 (s) + H_2 (s) = {1 \ / s + 2} + {5 e ^ {-3.4} \ / s + 1} $ $

由此产生的传递函数

$ $ H (s) = {s + 1 + (5 s + 10) e ^ {-3.4} \ / (s + 1) (s + 2)} $ $

不能被表示为一个普通的传递函数与输入或输出延迟。代表H (s)美元,我们必须切换到使用状态方程描述和“内部延迟”的概念。状态(SS)模型有能力跟踪延迟时将系统联系在一起。结构信息的延迟位置及其与剩下的动力学耦合编码在一个有效和完全通用的方式。增加转移函数H_1美元美元H_2美元美元自动计算的状态表示H (s)美元:

H1 = 1 / (s + 2);H2 = 5 * exp (-3.4 *) / (s + 1);H = H1 + H2
H = = (x1, x2) x1 2 0 x2 0 1 B = u1 x1 1 x2 2 C = (x1, x2)日元1 u1日元2.5 D = 0(计算值与所有内部延迟设置为0)内部延迟(秒):3.4连续时间状态空间模型。

请注意,

  • 3.4的延迟值被列为“内部”

  • A, B, C, D数据对应于动力学当所有延误都设置为0(零级Pade逼近)

它既不可能也不可取的观察与内部延迟模型的传递函数。相反,使用时间和频率的情节比较和验证模型:

步骤(H1, H2, H)传说(“标题”,“氢气”,“H”,“位置”,“西北”)、网格

波德(H1,“b”H-H2,“r——”)%验证H-H2 = H1网格

建筑模型与内部延迟

通常,状态空间模型与内部延迟不是由指定,B, C, D数据加上一组内部延迟。相反,你建立这样的模型通过连接更简单的线性时不变模型(一些I / O延迟)串联,平行,或反馈。没有限制有多少延迟、线性时不变模型是怎样联系在一起的。

例如,考虑如下所示的控制回路,其中植物建模为一阶+死时间。

图1:与延迟反馈回路。

使用状态方程表示,可以推导出一个模型T的闭环响应从r y和模拟的

P = 5 * exp (-3.4 *) / (s + 1);C = 0.1 * (1 + 1 / (5 * s));T =反馈(P * C, 1);步骤(T, 100)网格,标题(“闭环阶跃响应”)

对于更复杂的连接,你可以命名每个块的输入和输出信号和使用连接自动布线的照顾。例如,假设您想要添加前馈的控制回路图1:

图2:前馈和反馈控制。

你可以推出相应的闭环模型T通过

F = 0.3 / (s + 4);P。u =“u”;P。y =“y”;C。u =“e”;C。y =加州大学的;F。u =“r”;F。y =佛罗里达大学的;Sum1 = sumblk (“e = r y”);Sum2 = sumblk (“u =超滤+加州大学”);Tff =连接(P、C、F、Sum1 Sum2,“r”,“y”);

并比较其响应与反馈只设计:

步骤(T)“b”Tff,“r”传说,100)(“没有前馈”,“前馈”)网格,标题(的和不使用前馈闭环阶跃响应)

状态方程和延迟

一类特殊的线性时不变模型与状态空间方程,延迟是延迟。一般的形式是

$ $ {dx \ / dt} = x (t) + B u (t) + \ sum_j (A_j x (t - \ tau_j) + B_j u (t - \ tau_j)) $ $

$ $ y (t) = C x (t) + D u (t) + \ sum_j (C_j x (t - \ tau_j) + B_j u (t - \ tau_j)) $ $

这个函数延迟帮助你指定这样的模型。例如,考虑

$ $ {dx \ / dt} = - x (t) - x (t - 1.2) + 2 u (t - 0.5) \ \;;y (t) = x (t - 0.5) + u (t) $ $

创建这个模型,指定Aj, Bj, Cj, Dj为每个延迟和使用延迟组装模型:

DelayT(1) =结构(“延迟”,0.5,“一个”0,“b”2,“c”,1' d ',0);% tau1 = 0.5DelayT(2) =结构(“延迟”,1.2,“一个”,1“b”0,“c”0,' d ',0);% tau2 = 1.2sys =延迟(1 0 0 1 DelayT)
sys = = x1 x1 2 B = u1 x1 2 C = (x1, y1 1 D = u1 y1 1(计算值与所有内部延迟设置为0)内部延迟(秒):0.5 0.5 1.2连续时间状态空间模型。

请注意,A, B, C, D所有延迟值设置为零。这些值的反应不需要接近实际响应延迟:

步骤(sys,“b”pade (sys, 0),“r”)

离散时间模型与延迟

离散时间延迟是以类似的方式处理一些细微的差别:

  • 离散时间延迟总是采样周期的整数倍

  • 离散时间延迟相当于波兰人在z = 0,所以它总是可以吸收动力学模型的延迟。然而,保持延迟独立更好的性能,特别是对于系统延迟采样周期比较长。

指定一阶模型

z H (z) = $ $ ^ {-25} {2 \ / z - 0.95} $ $

与采样周期t = 0.1,使用

H =特遣部队(0.1 2 -0.95 [1],“inputdelay”,25)步骤(H)
z H = 2 ^ (-25) * - - - - - - - - - - z - 0.95样品时间:0.1秒的离散传递函数。

相当于整数阶

H = ss (H)
H = = x1 x1 0.95 B = u1 x1 2 C = (x1, y1 1 D = u1 y1 0输入延迟(采样周期):25样品时间:0.1秒离散时间状态空间模型。

注意,延迟是分开的。接下来,考虑下面的反馈回路,g是一个纯收益。

图3:离散时间反馈循环。

计算闭环响应g = 0.01、类型

g = . 01;T =反馈(g * H, 1)步骤(T)
T = 0.93 B = = x1 x1 u1 x1 2 C = (x1, y1 0.01 D = u1 y1 0(值计算与所有内部延迟设置为0)内部延迟(采样周期):25样品时间:0.1秒离散时间状态空间模型。

请注意,T仍然是一个一阶模型与内部延迟25样品。相比之下,映射所有延迟波兰人z = 0时使用absorbDelay:

T1 = absorbDelay (T);订单(T1)
ans = 26

由此产生的模型有26个州,因此低效率的模拟。注意步骤的反应TT1像预期的那样精确匹配:

步骤(T)“b”T1,“r——”)

一般来说,建议将延迟分开除非分析的闭环动态模型与内部延迟:

rlocus (H)轴([1 2 1 1])

在状态空间模型与内部延迟

状态对象使用广义状态空间方程跟踪内部延迟。从概念上讲,这样的模型由两个相互关联的部分:

  • 一个普通的状态方程模型H(年代)与增强的I / O

  • 银行的内部延迟。

图4:内部表示状态空间模型与内部延迟。

相应的状态空间方程

矩阵{$ $ \ \点{x} (t) = x (t) + B_1 u (t) + B_2 w (t) \; \; \; \;\绘图xA;y (t) = c₁x (t) + D_ {11} u (t) + D_ {12} w \绘图xA (t);z (t) = c₂x (t) + D_ {21} u (t) + D_ {22} w \绘图xA (t);w_j (t) = z_j (t - \ tau_j) \ \;;j = 1,……,N } \;\;\;\; \;\;\;\; $$

你不需要打扰这种内部表示使用的工具。但是,如果由于某种原因你想提取H或者是矩阵A、B1、B2、…,你可以这样做getDelayModel。对于示例

P = 5 * exp (-3.4 *) / (s + 1);C = 0.1 * (1 + 1 / (5 * s));T =反馈(P * C, 1);(H,τ)= getDelayModel (T)“融通”);大小(H)
2输出状态空间模型,2个输入,和2个州。

请注意,H是两个输入,两个输出模式而T是输出。逆操作(结合Hτ构建T)是由setDelayModel