conditionally executed subsystem introduces direct feedthrough
2 次查看(过去 30 天)
显示 更早的评论
i have to run a subsystem conditionally with a fixed step size and generate code for it. I descided to use an enabled subsystem. The subsystem has several inputs and outputs. The problem i am stucking with is that this nonvirtual subsystem now defines a direct feethrough for all outputs (they need all inputs of the same timestep), even if states are introduced inside the subsystem. So what happens is that I introduce an algebraic loop in the parent subsystem - this would not be the case without an enabled subystem.
Adding a unit delay block for the outputs of the enabled subsystem is not acceptable for me because my fixed-step simulation can get instable an inaccurate.
Has anybody any suggestion how to deal with this problem? Or an explanation why the subsystem has to behaves this way?
0 个评论
回答(3 个)
Fangjun Jiang
2011-11-3
Did you use a Merge block? That's typically needed when you have a conditionally executed subsystem.
0 个评论
Pan Zhao
2017-6-23
编辑:Pan Zhao
2017-6-23
Hi Markus,
I was wondering whether you figured out your problem. I met a similar problem and solved it in the way explained here https://www.mathworks.com/matlabcentral/answers/345895-why-does-putting-a-s-function-inside-an-enabled-subsystem-cause-an-algebraic-loop.
Regards Pan
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 General Applications 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!