필터 지우기
필터 지우기

conditionally executed subsystem introduces direct feedthrough

조회 수: 1 (최근 30일)
Markus
Markus 2011년 11월 3일
편집: Pan Zhao 2017년 6월 23일
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?

답변 (3개)

Fangjun Jiang
Fangjun Jiang 2011년 11월 3일
Did you use a Merge block? That's typically needed when you have a conditionally executed subsystem.

Markus
Markus 2011년 11월 4일
Hi Fangjun & thank you for answering!
Yes, in fact i have several enbaled subsystems running in parallel. Each of them has the same bus as output and afterwards i merge them.
I do not know for sure but i would suggest that this is a problem with the enabled subsystem itself, not with the following merge block. As far as I can see the information which signal has direct feedthough and which not seems to be generally lost and therefore the enabled subsystem declares all outputs as direct feedthough...

Pan Zhao
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

카테고리

Help CenterFile Exchange에서 General Applications에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by