increasing value in stateflow

16 visualizzazioni (ultimi 30 giorni)
Luhur
Luhur il 11 Lug 2011
Commentato: Antony Smith il 12 Ott 2022
hi all
i want to make condition STATEFLOW, like:
*V=10 X=1 Z=20
if S>=5 && S<=10
then Value V repeatly increase by the value of X until its reach value Z.
so, the value V later could be= 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 then go to next state after reach value Z=20.*
how we did it in stateflow??
thanks

Risposta accettata

Gerd
Gerd il 11 Lug 2011
Hi Luhur,
assume you have 2 states. One is called increment the other is called nothing. With your S variable checked in a transition you can choose where to go.
Assume S satisfies the criteria and you are right now in state increment. In this state you can write EN:V = V + X; So everytime you enter this state V is incremented by X. From the state increment you can check in a transition if V>=Z and go to the next step.
If you are in state nothing you don't have to do anything just go back and check S again.
Gerd
  4 Commenti
Luhur
Luhur il 12 Lug 2011
the key is make a function in local stateflow to save data for a while. THANKS GERD!!!
Antony Smith
Antony Smith il 12 Ott 2022
I thought it would be this simple but I am getting a very irritating error:
The data signal was read before being written to.
This error will stop the simulation. State 'variable_1' in Chart 'sens_mtr/Motor Controller/Chart':
signal = signal + 20;
The variable was already given an initial value in a previous block before reacing this block? Any ideas of what causes this?

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Complex Logic in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by