How to 'effectively' stop outputing signals from the subsystem when it is not triggered on or not enabled?
조회 수: 5(최근 30일)
I've built a system in Simulink,which tried to interprete binary signals of a certain pattern. A counter was set based on the sampling time, and at each moment when the signal changes from 0 to 1 or from 1 to 0, I'd like to record the counter of that moment, as well as the change characteristics (like rising or falling).
I used the 'trigger subsystems', but the problem is, the subsystem will always output something at each sampling point, even it's not a rising or falling signal that I'm interested. The settings for the triggered subsystem only allow to keep the output either held or reset to a random number.
How to get around this problem and let the triggered subsystem output something only when it's triggered?
Albert Yam 2012년 8월 15일
Off the top of my head, At the output of your subsystem (outside), put a switch block, with a known 'invalid' constant (NaN? or -1?) as the other input. The switch signal being the same as the 'enable'.
So if not enabled, you get an 'invalid' value.
Kaustubha Govind 2012년 8월 16일
편집: Kaustubha Govind 2012년 8월 16일
There is no way to "stop" outputting signals from any block in Simulink. The Simulink Engine expects blocks to produce some output every time there is a sample-hit. However, you should be able to achieve what you need by having the output reset or to hold the last value and construct additional logic around that (for example, see Albert's answer).