Run an enabled and triggered subsystem only one time (single shot)

I have a Simulink enabled and triggered subsystem that I want to execute only one time.
I think one way to do it is to make sure the enable pulse is only slightly wider than a time step, but I don't really want to mess with doing it that way because the time step could be variable.
Any other possibilities?
--- EDIT ---
Added model showing what I am trying to do. I have a byte, and I want to change it to a new byte in a timed, bitwise manner. So if I went from 0b00000000 to 0b11111111, I would after 1ms go to 0b00000001, then after two go to 0b00000011, and so on. What I want to see on the scope is this value staircasing up at millisecond intervals.

 Respuesta aceptada

Paul
Paul el 6 de Feb. de 2025
Does it really need be enabeld and triggered? Even if so, it should only run when triggered (and enabled), so if the trigger triggers only once, the block will execute only once.

4 comentarios

It seems like the trigger doesn't behave as you describe. Upon rising edge of trigger, it stays active as long as enabled is high. Not single shot every trigger.
I added a model and some explanation.
I'm afraid I won't be able to look at your model.
However, I'm quite sure that the subsystem will only execute when triggered and enabled. If the Outports of the subsystem are set with parameter "Output when disabled" set to "held", which is the default, then the output is held when the subsystem is disabled (per the Enable input).
In the example below, the subsystem is triggered once at T = 1 second from the Step block and the output jumps from the initial value of 0 to the value of sin(1) at that time and is subsequently held at that value.
I had a bug in my matlab function that was causing it not to work, and I mistakenly assumed it had to do with the enable/trigger.
Your nice example gave me the insight I needed to believe it behaved correctly. Many thanks!!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2024b

Preguntada:

el 6 de Feb. de 2025

Comentada:

el 7 de Feb. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by