Main Content

rising

Detect rising edge in data since last time step

Description

example

tf = rising(expression) returns 1 (true) if:

  • The previous value of expression was negative and its current value is zero or positive.

  • The previous value of expression was zero and its current value is positive.

Otherwise, the operator returns 0 (false). If expression changes value from negative to zero to positive at three consecutive time steps, the operator detects a single edge when the value of expression becomes zero.

The argument expression:

  • Must be a scalar-valued expression

  • Can combine chart input data, constants, nontunable parameters, continuous-time local data, and state data from Simulink® based states

  • Can include addition, subtraction, and multiplication of scalar variables, elements of a matrix, fields in a structure, or any valid combination of structure fields and matrix elements

Index elements of a matrix by using numbers or expressions that evaluate to a constant integer.

Note

Edge detection is supported only in Stateflow® charts in Simulink models.

Examples

expand all

Transition out of state if the value of the input data signal rises above a threshold of 2.5.

[rising(signal-2.5)]

Stateflow chart that uses the rising operator in a transition.

The rising edge is detected when the value of the expression signal-2.5 becomes zero or positive.

Tips

  • The operator rising imitates the behavior of a Trigger (Simulink) block with Trigger Type set to rising.

  • Edge detection for continuous-time local data and state data from Simulink based states is supported only in transition conditions.

  • In atomic subcharts, map all input data that you use in edge detection expressions to input data or nontunable parameters in the main chart. Mapping these input data to output data, local data, or tunable parameters can result in undefined behavior.

Introduced in R2021b