当time delay设置为0时禁用TransportDelay警告

9次浏览(过去30天)
嘿,伙计们,
我发现这个问题之前被问过几次,但总是没有答案,所以我想我不妨再试一次:)
问题很简单。在任何系统中放置一个TransportDelay块,并将其延迟时间设置为零,您将收到以下警告:
当延迟时间设置为零时,传输延迟块'PATHTOBLOCK'将自动设置为支持直接馈通。万博1manbetx这可能会导致一个代数循环。内存块可以用来代替传输延迟来打破循环。
我已经尝试通过手动关闭模型首选项中的所有警告来修复它,但它仍然弹出。我还尝试用Simulink. suppressdiagnostic ('PATHTO万博1manbetxBLOCK','Simulink:blocks: tdelaydirectthroughhautoset ')抑制警告,但Matlab说:
消息标识符Simulink:blocks: td万博1manbetxelaydirectthroughhautoset不能被抑制。
然而,在我们的例子中,在某些情况下需要TransportDelay,而在其他情况下则不需要。因此,将延迟时间设置为0应该不是什么大问题,因为我们获得了“错误”上代数循环的诊断设置,并正确地测试了所有内容,我们确保在任何情况下都不会遇到将其设置为0的麻烦。这是我们的模型抛出的最后一个警告,如果有人能告诉一种方法如何绕过它,那就太好了。
提前谢谢你,
妮可
2的评论
尼古拉·Maximini
尼古拉·Maximini 2022年8月4日
嘿,里卡多,不幸的是目前还没有……
警告是由块本身生成的,并且不能被模型首选项关闭,也不能被块本身压制:/
如果你找到工作,请告诉我!

登录评论。

答案(1)

Fangjun江
Fangjun江 2022年8月4日
我理解您使用TransportDelay块的便利性。当没有延迟时,只需将延迟设置为零。但正如你所尝试的,似乎不可能消除这个警告。
我会尝试一个变通办法。最简单的方法是使用Switch块。找出控制Switch的条件。一条路径是通过TransportDelay块。另一种方式是直接馈通。

类别

了解更多大规模的建模帮助中心而且文件交换

s manbetx 845


释放

R2018b

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的