Implement monostable flip-flop (one-shot multivibrator)


Control and Measurements/Logic


The Monostable block outputs a true pulse when a change in the logical input is detected.

The Monostable block can be programmed to detect a rising edge (when the input goes from false to true), a falling edge (when the input goes from true to false), or either edge (any change in input is detected). The Monostable block ignores any edge occurring when the pulse is true.

Dialog Box and Parameters

Edge detection

Select the detection criteria triggering the output pulse.

Pulse duration (s)

Specify the duration of the output true state. When the Sample time parameter is greater than 0, the Pulse duration value must be a multiple of the sample time.

Initial condition of previous input

Specify the initial value of the previous input (0 or 1). The Monostable block can detect an edge at t = 0 if the input is different from the specified value.

Sample time

Specify the sample time of the block, in seconds. Set to 0 to implement a continuous block.

Inputs and Outputs

The input signal must be a Boolean signal. The output is Boolean.


Direct FeedthroughYes
Sample TimeSpecified in the Sample Time parameter
Scalar ExpansionYes, of parameters
Zero-Crossing DetectionYes (in continuous-time domain)


The power_Logic example shows the operation of the monostable flip-flop.

The model sample time is parameterized with the variable Ts (default value Ts = 5e-3). To simulate a continuous Monostable block, specify Ts = 0 in the MATLAB® Command Window.

Was this topic helpful?