Stateflow while-logic dead loop

27 views (last 30 days)
Dingxin Wang
Dingxin Wang on 28 Mar 2024
Edited: Fangjun Jiang on 29 Mar 2024 at 19:13
I'am using stateflow to model a system.
With this logic i am expecting if the input is 1, the output should be 1. If the input is not 1, do nothing (it'a one-time logic, if the input is once not 1, the output will be none from then).
I used a step signal from 1 to 2 as an input. But the simulation can't proceed since its a dead loop at first time step. Why is that and how to solve this?
  2 Comments
VBBV
VBBV on 28 Mar 2024
Try using a continuous signal instead of step signal
Dingxin Wang
Dingxin Wang on 28 Mar 2024
yes i tried to use a signal builder to build a continuous signal but it still didnt work

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 28 Mar 2024 at 15:04
When input==1, you do have an infinite loop, right?
Connecting the feedback transition to the bottom junction would resolve it.
  2 Comments
Dingxin Wang
Dingxin Wang on 29 Mar 2024 at 2:09
hi, i dont really understand the infinite loop here. In the loop there is a precondition (input == 1), when the input changes to 2, it should jump out of the loop. How can i understand this?
Fangjun Jiang
Fangjun Jiang on 29 Mar 2024 at 19:12
Edited: Fangjun Jiang on 29 Mar 2024 at 19:13
See this for Stateflow while-loop. You don't have anything to change the condition. Any time when input==1, it will fall to the infinite loop trap.

Sign in to comment.

More Answers (0)

Categories

Find more on Complex Logic in Help Center and File Exchange

Tags

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!