2

我希望在 SIMULINK 中使用 if-else 流程块(或执行此操作的自定义 matlab 函数)并使用嵌入式编码器为其生成代码。我以前遇到过使用 SIMULINK 中使用的 MATLAB 功能块进行基于零和一的索引的问题。似乎几乎没有办法解决它。那么如何在 SIMULINK 中建模 if-elseif 逻辑呢?

我曾尝试使用 switch 和 mux 块,但它们太乱了,可能会导致对我试图实现的原始流逻辑的误解。

我的流程逻辑(PSEUDOCODE)是:

if (a<b) then
    p = x;
else if (a<c) then
    p = max(y, some_const_val);
else
    p = z;

有人可以建议一种方法吗?

韩国,

4

1 回答 1

1

您的伪代码应用作MATLAB Function模块(它支持为 MATLAB 函数的子集生成代码)。我真的看不出基于零和一的索引有任何问题?

对于更复杂的逻辑,Stateflow是一个非常强大的工具,但它是一个附加组件,所以如果你还没有它,你需要花更多的钱。我同意,除了非常简单的逻辑算法之外,纯粹的 Simulink=blocks 方法很快就会变得非常麻烦。

于 2013-10-02T10:20:14.920 回答