Does the use of latency in statflow state work as expected?

Hi, I have a problem with stateflow, which is if I use a delay function in the state to execute two sentences, does that delay function work?
Because the compilation prompted me to delete, so I hope you help me,thanks!
This temporal logic expression has no side-effect. It either needs to be used in an expression, or removed if deemed unnecessary. State 'init' in Chart 'BLDDPM_cpu1_CCP_V1_0_20190818/extraControl/Protect_Logic': after(1,sec)
aftersec.png

 Accepted Answer

Jonas
Jonas on 19 Aug 2019
Edited: Jonas on 19 Aug 2019
Your state expression will not work indeed. You will need to create an additional state where ProtectStartBit = uint16(1); which has a state transition leading towards it with the condition after(1,sec);.

5 Comments

This should be mentioned in the compilation information, but why is this necessary? Thank you very much
Each sample time step of the controller, it can execute only one state execution or one state transition. If you define a delay of 1 seconds inside such a state expression, the controller will need to wait for one second to finish the calculation which should fit inside one sample time step. If your sample time is for example 1 ms, your controller will be stuck for 1000 samples. When using the temporal logic on a state transition, the controller will remain in the first state and will just check if a counter has exceeded 1 seconds, which it can execute within the one sample time step.
You might want to dive deeper into how stateflow with its states, conditions and transitions work.
hi, Jonas
If my stateflow sample time is 1hz, does it execute the first sentence, then the controller can do something else, and then when the next second comes it executes the third sentence?
thanks
Stateflow does not work that way, all expressions within one state are executed each sample time when active. You need to separate the expressions in separate states.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2019a

Asked:

on 19 Aug 2019

Commented:

on 19 Aug 2019

Community Treasure Hunt

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

Start Hunting!