3

我的问题

我有一个 SIMULINK 模型,它有一个反馈循环,也就是代数循环,它会导致模拟错误。我最初的求解器配置是带 Dormand-Prince 的 Fixed-Step(5 阶)。我还尝试了 Order 3 (Runga-Kutta) 的 Fixed-Step。它仍然没有解决问题。

我的问题

有没有什么方法可以解决代数环,而不会过多地改变电路的原始性能或设计?

澄清问题

我相信会有办法解决这个问题。但是,我不希望它损害电路的原始性能。此外,这是客户提供的数据,他们似乎已经成功地解决了这个问题。我只是需要有人指出我如何解决这个问题的正确方向。

到目前为止我的方法

我试图打破循环使用:

i) Switch (if ip = 0, op = 0; if ip = 1, op = 1) 我知道这很愚蠢,但它是一个不同的块,它打破了循环。

ii) 逻辑门(将反馈信号与 0 异或)。

不幸的是,我不知道如何进行零阶保持单元延迟循环,这似乎是此类问题的另一种常用解决方案。但我相信这可能会导致我的模型最初预期的性能出现问题。

我在 Mathworks 网站上发布了一个查询,但到目前为止没有回复。所以我想......为什么不使用stackoverflow?下面是图片。

在此处输入图像描述

4

2 回答 2

4

在反馈信号上添加一个单位延迟块(从逻辑运算符 1 到逻辑运算符 4)。

单位延迟提供了输出信号的先前值——这不会影响这种情况下的大部分电路。

于 2013-07-26T02:48:01.900 回答
3

对于代数环,没有“一刀切”的答案。以下是一些关于代数环的资源:

在您的情况下,我建议突出显示代数循环(根据上面超链接中的文档),并尝试在循环中插入单位延迟。该文档显示了如何执行此操作。其他建议是尝试代数循环求解器或与代数循环相关的模型参数,或者在循环中放置一个IC代数约束模块。同样,有关详细信息,请参阅上面超链接中的文档。我假设您被限制使用固定步长求解器并且不能切换到可变步长求解器。

于 2013-07-25T12:48:54.153 回答