State flow temporal logic after(x,sec) only waits until x=simulation time. I need it to be event triggered.
조회 수: 11 (최근 30일)
이전 댓글 표시
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
답변 (1개)
Ravi
2020년 4월 30일
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
참고 항목
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!