Main Content


Implement monostable flip-flop (one-shot multivibrator)


Simscape / Electrical / Specialized Power Systems / Control

  • Monostable block


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.


Edge detection

Select the detection criteria triggering the output pulse. Choices are Rising (default), Falling, or Either.

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. Default is 0.015.

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. Default is 0.

Sample time

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

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.

Version History

Introduced in R2013a