多速率模型的线性化

此示例显示了命令线性化在提取非线性多速率Simulink模型的线性模型时使用的过程。为了说明这些概念,首先使用控制系统工具箱中的函数执行该过程,然后使用线性化命令重复该过程。金宝app

示例问题

在Simuli金宝appnk模型中scdmrate.slx在五个块中指定了三种不同的采样率。这些区块是:

  • sysC-连续线性块,

  • 积分器-连续积分器,

  • 系统1-采样时间为0.01秒的块,

  • 系统2-采样时间为0.025秒的块,以及

  • 零阶保持-以0.01秒对输入信号进行采样的块。

sysC=zpk(-2,-10,0.1);积分器=zpk([],0,1);sysTs1=zpk(-0.7463,[0.4251 0.9735],0.2212,0.01);sysTs2=zpk([],0.7788,0.2212,0.025);

下面的模型显示了这些块是如何连接的。

scdmrate

在本例中,我们将常数块的输出与块的输出之间的模型线性化系统2.

步骤1:线性化模型中的块

线性化的第一步是对模型中的每个块进行线性化。饱和和零阶保持块的线性化为1。LTI块已经是线性的,因此保持不变。具有线性化块的新模型如下所示。

SCDMRate步骤1

步骤2:利率转换

由于模型中的块包含不同的采样率,因此,如果不首先使用速率转换函数将各种采样率转换为代表性的单速率,就不可能为系统创建单速率线性化模型。速率转换函数使用迭代方法。迭代从模型中采样时间的最小公倍数开始。在此示例中,采样时间分别为0、0.01和0.025秒,其最小公倍数为0.05。然后,速率转换函数采用采样速率最快的块组合,并以下一个最快的采样速率对其重新采样。在此示例中,第一次迭代转换线性化连续时间块的组合,sysC积分器用零阶保持连续到离散转换将采样时间转换为0.01。

sysC_Ts1 = c2d (sysC *积分器,0.01);

数据块sysC积分器现在被sysC_Ts1.

SCDMRate步骤2

下一个迭代将所有样本时间为0.01的块转换为0.025的样本时间。首先,下面的命令通过关闭反馈循环来表示这些块的组合。

sysCL =反馈(sysTs1 * sysC_Ts1, 1);

接下来,零阶保持方法将闭环系统sysCL的采样率从0.01转换为0.025。

sysCL_Ts2=d2d(sysCL,0.025);

系统sysCL_Ts2然后替换模型中的反馈回路。

SCDMRate步骤3

最后的迭代对闭环系统和块的组合进行重新采样系统2从0.025秒的速率到0.05秒的速率。

sys_L = d2d (sysCL_Ts2 * sysTs2, 0.05)
sys_L=0.0001057(z+22.76)(z+0.912)(z-0.9048)(z+0.06495)------------------------------------------------------------------------------------------------------------(z-0.01373)(z-0.6065)(z-0.6386)(z-0.8588)(z-0.9754)采样时间:0.05秒离散时间零/极/增益模型。

使用Simulink控制设计命令对模型进行线性化金宝app

我们可以使用Simulink Control Design的命令行界面来重现这些结果。金宝app

模型=“scdmrate”; io(1)=linio(“scdmrate /常数”1.“输入”); io(2)=linio(“scdmrate / sysTs2”1.“openoutput”); sys=zpk(线性化(模型,io))
sys =从输入“常数”输出“sysTs2”:0.0001057 (z + 22.76) (z + 0.912) (z - 0.9048) (z + 0.06495 ) ------------------------------------------------------- ( z - 0.6065) (z - 0.6386) (z - 0.8588) (z - 0.9754) (z - 0.01373)样品时间:0.05秒离散时间零/钢管/增益模型。