您可以将 Simulink 图视为具有输入和输出的离散线性动力系统。使用传递函数方法,这样的系统可以表示为
(1)Y(z)=G(z)X(z),
其中Y(z) 是系统外,X(z) 是输入,G(z) 是传递函数(注意:为了解释的简单,我在此阶段省略了初始条件)。系统的每个单独的块也可以被视为(1)形式的系统。
考虑您的第一个图表。输入输出形式(1)表示的常量块为
(2)Y1(z) = G1(z)X(z),
与:G1(z) = 1,即
(3)Y1(z) = X(z).
每个 Simulink 'unit delay' 模块都可以被视为(1) 形式的系统,其传递函数为Gu(z) = z^(-1)。将与图表中间的“单位延迟”块关联的传递函数表示为G2(z),将图表底部的传递函数表示为G3(z)。在这种情况下,我们有G3(z) = G2(z) = Gu(z) = z^(-1)。请注意,与G2 关联的系统的输入是(3) 系统的输出,与G3 关联的系统的输入是与G2 关联的系统的输出。考虑到上述考虑,与G1和G2相关联的单位延迟块对应的系统分别由(4)和(5)给出。
(4)Y2(z) = G2(z)*Y1(z) = z^(-1)*Y1(z) = z^(-1)*G1(z)*X(z) = z^(-1)*X(z)
(5)Y3(z) = G3(z)Y2(z) = z^(-1)*z^(-1)*X(z) = z^(-2)*X(z)
假设与整个模型关联的系统的输出记为Y(z),并对应求和块的输出,则整个系统的传递函数可以表示为
(6)Y(z) = Y1(z) + Y2(z) + Y3(z)
总结:
(7a)Y1(z) = X(z)
(7b)Y2(z) = z^(-1)*Y1(z)
(7c)Y3(z) = z^(-1)*Y2(z)
(7d)Y(z) = Y1(z) + Y2(z) + Y3(z)
上面的系统对应于形式的差分方程
(8a)y1(k) = x(k)
(8b)y2(k) = y1(k-1)
(8c)y2(k) = y2(k-1)
(8d)y(k) = y1(k) + y2(k) + y3(k)
要查看这一点,您可以将Z-transform 应用于上面的等式(8)。您可以假设在Simulink 中,模拟始终从k=0 开始(要获得与输出相关的“物理时间”,您需要使用t(k) = k*T,其中T 是在求解器属性)。因此,您需要为k=-1 提供y1(k) 和y2(k) 的值,才能解决所有k>=0 的系统问题。
表示传递函数(无论是离散的还是连续的)的所有 Simulink 模块都允许分配 initial conditions。对于离散系统,假设初始条件对所有k<=0(或t<=0,如果考虑物理时间)都有效。表示传递函数的模块的默认初始条件是0。因此,当您模拟系统 (8) 时,Simulink 假定 y1(-1)=0、y2(-1)=0。 constant block 为所有 k>=0 分配 x(k) = 1。
鉴于以上所述,让我们在时间步长k=0,1,2 处计算系统(8) 的值。
k=0:
y1(0) = x(0) = 1、y2(0) = y1(-1) = 0、y3(0) = y2(-1) = 0、y(0) = 1
k=1:
y2(1) = x(1) = 1、y2(1) = y1(0) = 1、y3(1) = y2(0) = 0、y(0) = 2
k=2:
y2(2) = x(2) = 1、y2(2) = y1(1) = 1、y3(2) = y2(1) = 1、y(0) = 3