线性系统中的时滞
可通过以下模型属性表示线性系统中的时滞。
InputDelay、OutputDelay- 系统输入或输出端的时滞ioDelay、InternalDelay- 系统内部的时滞
在离散时间模型中,这些属性被限制为整数值,代表以采样时间整数倍表示的延迟。如需逼近延迟为采样时间分数倍的离散时间模型,可使用 thiran。
一阶加纯滞后模型
此示例说明如何使用 tf 的 InputDelay 或 OutputDelay 属性创建一阶加纯滞后模型。
要创建以下具有 2.1 秒时滞的一阶传递函数:
请输入:
G = tf(1,[1 10],'InputDelay',2.1)其中 InputDelay 指定传递函数的输入端的延迟。
对于 SISO 传递函数,输入端延迟与输出端延迟等效。因此,以下命令可创建相同的传递函数:
G = tf(1,[1 10],'OutputDelay',2.1)使用圆点表示法检查或更改时滞值。例如,将时滞更改为 3.2 秒的命令如下:
G.OutputDelay = 3.2;
要查看当前值,请输入:
G.OutputDelay
ans =
3.2000提示
创建具有时滞的模型的另一种方法是将延迟作为 s 中的表达式指定到传递函数中:
为变量 s 创建一个传递函数模型。
s = tf('s');将 G(s) 指定为 s 中的表达式。
G = exp(-2.1*s)/(s+10);
状态空间模型中的输入和输出延迟
此示例说明如何使用 ss 的 InputDelay 或 OutputDelay 属性,创建具有输入和输出端延迟的状态空间模型。
创建描述如下单输入双输出系统的状态空间模型:
此系统的输入延迟为 1.5。第一个输出的输出延迟为 0.7,第二个输出无延迟。
注意
与 SISO 传递函数不同,状态空间模型的输入延迟与输出延迟并不等效。要在状态空间模型中将延迟从输入端转移到输出端,需对模型状态引入时移。例如,在此示例的模型中,定义 T = t – 1.5 和 X(T) = x(T + 1.5) 可得到如下等效系统:
此时所有时滞均位于输出端,但新状态变量 X 相对于原状态变量 x 存在时间偏移。因此,如果状态具有物理意义,或已知状态初始条件,在输入输出端之间转移时滞需谨慎。
要创建此系统,请执行以下操作:
定义状态空间矩阵。
A = -2; B = 3; C = [1;-1]; D = 0;
创建模型。
G = ss(A,B,C,D,'InputDelay',1.5,'OutputDelay',[0.7;0])
G 是 ss 模型。
MIMO 传递函数中的传输延迟
此示例说明如何创建每个输入输出 (I/O) 对组具有不同传输延迟的 MIMO 传递函数。
创建 MIMO 传递函数:
如此示例所示,MIMO 系统中的延迟可针对每个 I/O 对组单独设置。无法通过 InputDelay 和 OutputDelay 建模 I/O 对组特定的传输延迟。请改用 ioDelay 为每个 I/O 对组指定传输延迟。
要创建此 MIMO 传递函数,请执行以下操作:
为变量
s创建一个传递函数模型。s = tf('s');使用变量
s指定不具有时滞的H传递函数。H = [2/s (s+1)/(s+10); 10 (s-1)/(s+5)];
将
H的ioDelay属性指定为数组,数组值对应每个 I/O 对组的传输延迟。H.IODelay = [0.1 0.3; 0 0.2];
H 是双输入双输出 tf 模型。H 中的每个 I/O 对组具有由 tau 中的对应条目指定的时滞。
具有时滞的离散时间传递函数
此示例说明如何创建具有一个时滞项的离散时间传递函数。
在离散时间模型中,一个采样周期的延迟对应传递函数中的 因子。例如,以下传递函数表示具有 25 个采样周期延迟的离散时间 SISO 系统。
要在 MATLAB® 中表示离散时间系统的整数延迟,需将模型对象的 'InputDelay' 属性设为整数值。例如,以下命令创建 tf 模型,用于表示 ,采样时间为 0.1 秒。
H = tf(2,[1 -0.95],0.1,'InputDelay',25)H =
2
z^(-25) * --------
z - 0.95
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties
如果系统时滞非采样时间的整数倍,可使用 thiran 命令,通过全通滤波器逼近时滞的小数部分。请参阅Time-Delay Approximation。