State Transition with a time delay

21 visualizaciones (últimos 30 días)
Frazer Watson
Frazer Watson el 8 de Jun. de 2015
Comentada: Julia el 9 de Jun. de 2015
I have a state transition which needs to be triggered when a condition is met for a fixed period of time.
In the example below, the response I would like is for the transition from the on to the off state to occur when the input is > 0 continuously for 5 seconds. If, during the 5 seconds input becomes <= 0 the state should remain on and the timer should reset. i.e. if input is > 0 again, it will wait for 5 seconds before transitioning to off.
The state machine below will transition to off instantly if input becomes > 0 after it has been in the on state for > 5 seconds.
Any help with resolving this problem is appreciated

Respuestas (1)

Julia
Julia el 8 de Jun. de 2015
Hi,
you have to combine your two conditions with '&&'. That should solve your problem.
  2 comentarios
Frazer Watson
Frazer Watson el 8 de Jun. de 2015
Thanks Julia.
I've tried the following for the on to off transition:
[after(5,sec)&& input>0]
although I'm still seeing the same problem. I believe that the 'after' timer is only reset on the transition into the state. this means that the 5 seconds begins as soon as the on state is entered rather starting when input is > 0.
I can fix my problem by adding the 'StartTimer' state as shown below which resets the timer when input is <=0. Doing this on my actual system would create other problems as I execute logic using the 'during:' command whilst in the on state and these would be distributed by as the state switches to StartTimer and back.
Julia
Julia el 9 de Jun. de 2015
Here is another solution. However, I did not use the after() command.

Iniciar sesión para comentar.

Categorías

Más información sobre Complex Logic en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by