Reactive Systems logo
October 24, 2020

Reactis V2020 Released

The Reactis team has been hard at work (mostly from home offices) over the past months preparing Reactis V2020, now available for download. The biggest new feature is support for the MATLAB® action language in Stateflow® charts. V2020 also includes a simple but powerful extension to expression-based Validator objectives: a pre function to access the value of a variable in the previous simulation step.

The MATLAB Action Language in Stateflow

Stateflow supports two alternative notations for the labels on transition segments and the definition of actions within states; namely, the original C action language and the more recently introduced MATLAB action language. A chart-level setting toggles between the C and MATLAB action languages. Reactis V2020 supports charts configured to use the MATLAB action language.

New Simulink Support

Additional newly supported Simulink features include the following:

  • MATLAB R2020a.
  • State Writer and State Reader blocks.
  • Initialize Function and Reset Function blocks.
  • Reset event input ports in referenced models.

Access Previous Variable Values in Validator Expression-Based Objectives

Reactis Validator lets you check if a model satisfies its requirements. You check requirements by formulating two types of Validator objectives:

  • user-defined targets specify scenarios to execute in order to test requirements, and
  • assertions specify the expected model responses necessary to comply with requirements.

Reactis supports two mechanisms for capturing Validator objectives:

  • expression-based objectives that use a c-like notation, and
  • diagram-based objectives that use Simulink/Stateflow observer models to capture objectives.

V2020 extends the expression-based notation to include a pre function to query the value of a variable in the previous simulation step. For example, pre(x) will return the value of x at the end of the previous simulation step. The following assertion checks that x never changes by more than 0.5 in a simulation step:

if t==0 then 1 else abs(x-pre(x)) <= 0.5

Since the property cannot be calculated at simulation time zero, we return true (1) in the then branch when time (t) is zero.

The pre function accepts an optional second argument which is a positive integer indicating how many simulation steps back you wish to query. For example, pre(x,2) returns the value of x two simulation steps ago.

The first argument to pre need not be a single variable, it can be any expression. For example, the following checks that the sum of x and y in the previous step is less than one:

pre(x + y) < 1

Reactis for EML Plugin

The supported subset of Embedded MATLAB has been extended to include:

  • For a matrix A, Reactis previously supported the transpose operator A'. V2020 adds support for performing the operation with the transpose function: transpose(A).
  • New trigonometric functions: csc, sec, cot.
  • For an enumerated type EnumType, support the notation:
    • EnumType(EnumVal) which is equivalent to EnumType.EnumVal
    • EnumType(n) to denote the element of EnumType with underlying integer value n.
  • Support A ^ n where A is a square matrix and n is an integer.
  • Other new functions: deg2rad, cond

Reactis for C Plugin

Support was added for macros which access structure members from within a Stateflow action.

Other Enhancements

The test suite export dialog now preserves settings from the previous export.

Download Reactis V2020

Stay safe!

Reactis is a registered trademark of Reactive Systems, Inc. Simulink, Stateflow, and MATLAB are registered trademarks of The MathWorks, Inc.

Best Regards,
The Reactis Team