State flow temporal logic after(x,sec) only waits until x=simulation time. I need it to be event triggered.
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have used this temporal logic in the past with no problem, but for some reason it is not working for me now. I have a condition in StateFlow where I need to transition from one state to another when an input is transitioned from low to high with a timing requirement, or instantly when another condition is met.
[L_fireSwitch && after(6,sec) !L_genCont]
That's the transition statement. The logic works fine except the timing is only right if the simulation time is equal to the time specified. In this case 6 seconds. I need it to wait 6 seconds after L_fireSwitch is true before transitioning. Instead it only transitions to whenever L_fireSwitch is true and the simulation time is equal to or greater than the time I have specified.
1 commentaire
Réponses (1)
Ravi
le 30 Avr 2020
Hi,
If I understand your problem statement properly "First-> L_fireSwitch should come true, then -> condition 'after(6,sec)' should become true". After all transition should takes place.
But problem in this condition([L_fireSwitch && after(6,sec) !L_genCont]) is works independently. That is after(6,sec) will start independently irrespective of L_fireSwitch.
So we should go for alternate approach as shown in attached image.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/288849/image.jpeg)
0 commentaires
Voir également
Catégories
En savoir plus sur Complex Logic dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!