内存块替代ISN&T固定在次要时间步骤?

时间:2014-07-30 21:16:37

标签: c++ matlab simulink s-function

我有一个带有一些输入的模型通过存储块输入CMEX S-Function,S-Function根据这些输入提供输出,这些输入反馈到S-Function。经典代数循环场景。我正在使用内存块来防止这种情况,因为我们的求解器通常是可变时间步骤

根据Mathworks documentation存储块和单位延迟块,根据其输出固定在次要时间步长中。我意识到输入可以是离散的也可以是连续的,但输出只能在主要时间步骤中连续,并在未成年人。

现在,由于各种原因,对我们来说重要的是模型中的所有内容都会在次要主要时间步骤中更新。我想出了一种使用PWork向量来存储状态点的先前值并将它们转发到我们使用的CMEX S-Function的方法。这可以防止代数循环发生,并确保在较小的时间步长内连续,但不像我想的那样优雅。

有没有人有其他建议?

PS:除此之外,我认为无论我的解算器是固定步进还是变步长,最好使用存储器块,因为它将在内部成为固定步进解算器的单位延迟块。这个假设是正确的吗?

1 个答案:

答案 0 :(得分:0)

根据this article,使用快速响应传递函数可能会获得相似的结果,而无需花太多时间。