Triggering a subsystem to run for set duration
이전 댓글 표시
Hello, I want to trigger a subsystem that will then run for 0.25 time units (more than once) at points through the simulation but I do not know how to trigger a clock. Can anyone help?
Roger
채택된 답변
추가 답변 (2개)
Fangjun Jiang
2011년 5월 24일
0 개 추천
I am not fully understand your question. Let's see if this is the case. Set your simulation step size as 0.01 second. Drag a "Pulse Generator" block, set the period as 1 second and the pulse width as 25 (percent). Use the output of the "Pulse Generator" to trig an "Enabled Subsystem". The subsystem will be running every 0.25 second out of 1 second.
Mark
2011년 5월 24일
0 개 추천
Fangjun's approach is probably the best way if the interval between the 0.25 pulses is also known in advance. If it is not, I would recommend using Stateflow instead.
The general idea is that you would still use an "Enabled Subsystem" like above, but in this case, Stateflow would output a Boolean signal to drive it. Inside Stateflow, you could read any relevant inputs, and use them to enter a state that sets the output as "true", only exits after 0.25 (check the documentation for "temporal logic" to see the Stateflow keywords for defining time intervals), and then sets the output to "false" upon exiting the state.
댓글 수: 5
Roger
2011년 5월 25일
Mark
2011년 5월 25일
What sort of trigger/event are you looking for to indicate that the subsystem is supposed to run?
Fangjun Jiang
2011년 5월 25일
In other words, what is the logic to trig your subsystem? I understand that your subsystem needs to run more than once and every time it runs, it runs for the duration of 0.25 second, right?
Roger
2011년 5월 26일
Fangjun Jiang
2011년 5월 26일
The use of Matlab function block is not needed. You could just use a switch block.
카테고리
도움말 센터 및 File Exchange에서 Subsystems에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!