具有 if/else 和不同信号维度的 Simulink

Simulink with if/else and different signal dimension

我需要在 simulink 中实现 if/else 以确定输入是标量值还是矩阵。请看下图:

鉴于:

要求是:

到目前为止,我遇到了以下问题:

有什么线索吗?

Block(2) 是最简单的部分,可以使用 Simulink 库中的 "Probe" 块来实现。您在端口 1 的输入必须是可变大小的信号,因为您需要一个标量或矩阵。

我假设您正在将 Input(1) 馈送到块 4 和 5。在模型编译时,Simulink 无法根据输入大小 运行 知道这些块中的哪一个。因此 Simulink 需要假设两个模块都可能获得标量或矩阵。您需要使块 4 和块 5 不会对标量和矩阵都抛出错误,即使它们在 运行 时仅用于一种类型。

如果您无法做到这一点,对于标量情况,一个简单的变通方法是在始终选择第一个样本的块 5 之前放置一个选择器。这将使 Simulink 知道块 5 的输入始终是标量。