Create and Manage Conditionals
You can use conditionals to monitor when simulation data meets specified criteria and as a trigger for faults. Conditionals use workspace variables, signals, or parameter values to evaluate a Boolean expression. During each major time step, Simulink® Fault Analyzer™ evaluates the conditional after the simulation data is generated. Each fault can use one conditional as the trigger. After simulating models with conditionals, you can view when conditionals trigger in the Simulation Data Inspector.
Create Conditionals
To create a conditional:
Open a model or create and save a new model.
Open the Fault Table pane. In the Fault Analyzer tab, in the View section, click Fault Table.
In the Conditional tab, click the Create new conditional button .
Modify the properties of the conditional by selecting the conditional and click the Property Inspector button . The properties open in the Property Inspector.
Conditionals evaluate the Boolean expression in the Condition
property at each time step. The expression must evaluate to a logical
true
or false
. The conditional triggers the
fault when the expression is true
.
You can use these MATLAB® operations and functions:
Relational operations:
>
,<
,>=
,<=
,==
,~=
, and~
Logical operations:
&
,&&
,|
, and||
Arithmetic operations:
+
,-
, and*
MATLAB functions:
abs
,logical
,int8
,int16
,uint16
,int32
,uint32
,int64
,uint64
,single
,double
, andhalf
For more information, see MATLAB Operators and Special Characters and Logical (Boolean) Operations. The data types in the expression must match, and must be explicitly defined. Using unsupported functions, operators, and inconsistent data types produces an error at compilation.
To retrieve the simulation time at each time step, enter t
into the
expression. For example, to create a conditional expression that is true where the
simulation time is greater than 6
, enter t > 6
into the expression.
To save the conditional and updates to its properties, save the model or, in the Fault Table pane, click the Save fault information button (since R2024a). If you attempt to close the model without saving, Simulink displays a dialog box that allows you to save the fault information file before closing.
Assign Symbols to Expressions or Model Elements
To use simulation or workspace data in your conditionals, define symbols. When you add unprotected symbols to an expression, Simulink Fault Analyzer automatically adds them to the Symbols table.
After defining the symbol names, you must assign the symbols to a value. In the
Symbols table, double-click the cell in the
Mapped To column to choose the symbol assignment type. You
can set Mapped To to Expression
or
Model Element
.
Note
Symbols must evaluate to a real scalar.
If you select Expression
, you must set the
Value cell to a variable defined in the model or base
workspace, or to a literal real scalar. See Specify Source for Data in Model Workspace.
If you select Model Element
, the model opens bind mode.
To select the model element, click a signal and select a model element. You can
select one block output signal per symbol. Exit bind mode by clicking the exit icon
in the top-right corner of the model canvas. The
Value column shows the path of the selected model
element.
Clicking the Value cell highlights the associated signal in the model.
Assign Conditionals to Fault Triggers
To assign a conditional to a fault trigger:
Open the Fault Table pane.
Open the Property Inspector to view the fault properties. In the Fault tab, right-click the fault and click Properties.
Set the Trigger Type property to Conditional.
Set the Select conditional from model property to the conditional.
After you create and assign the conditional to a fault, you can view the conditional assigned to the fault in the Fault Table pane by selecting the fault in the Property Inspector and clicking View conditional.
If you open a conditional in the Property Inspector, the Associated Faults section displays the assigned faults. Click the fault to open the fault properties in the Property Inspector, and click the model element to highlight the model element in the model.
You can adjust how the fault triggers due to the conditional with the Trigger stays on once activated property. If you enable this property, the fault injects when the conditional first satisfies, then continues to inject until simulation ends. If you disable this property, the fault injects only when the conditional expression is satisfied.
Log Conditional Information
When you simulate the model, you can log the conditional trigger status. To log a conditional, in the Fault Table pane, in the Conditional tab, select Log Activity. You can also select the property in the Property Inspector.
When you simulate the model, Simulink records the conditional status as either true
or
false
at the end of each time step. Consequentially, the fault
evaluates the state of the conditional in the following time step. You can view the
results in the Simulation Data Inspector. To open the Simulation Data
Inspector, in the Fault Analyzer tab, in the
Review Results section, click Data
Inspector. After simulating the model, select the conditional to view
the conditional status throughout the simulation.
If you run additional simulations, you can overlay the results by selecting the conditionals in each run and adjusting the layout. For more information on the available layouts, see Inspect Simulation Data.
Delete Conditionals
To delete a conditional, right-click the conditional in the Fault
Table pane and select Delete. If the
conditional is assigned to a fault, the assigned trigger of the fault reverts back to
Always On
.
Additionally, deleting the fault information file associated with the model deletes the conditionals. Use this option to permanently delete the model faults and conditionals.
Investigate an Example Model with a Conditional
This example uses a fault with a conditional that triggers based on the value of a workspace variable.
Open the fault_conditional_exp
model. The model uses a callback to define the workspace variable K
. You can modify the model callback by opening the Model Properties window. In the Modeling tab, click Model Settings > Model Properties. In the Model Properties window, open the Callbacks tab and click PreLoadFcn in the left pane.
Open the Conditional
Open the conditional properties in the Property Inspector. In the Fault Analyzer tab, in the View section, click Fault Table. In the Fault Table pane, in the Conditional tab, right-click the conditional and select Properties. The conditional uses two symbols, signalVal
and const_K
. const_K
is assigned to the workspace variable K
. signalVal
is assigned to the value of the Sine Wave block output port. The Condition Expression property defines the relationship between the two symbols. If the absolute value of the signal from the Sine Wave block is greater than K
, then the condition is true and the fault triggers.
Simulate the Model
Simulate the model. The fault triggers when the conditional is satisfied, which overwrites the signal from the Sum block output to 0
. Open the Scope block to view the model behavior.
You can view the conditional and fault injection status during simulation in the Simulation Data Inspector. Open the Simulation Data Inspector and select the conditional and fault to view the statuses at each major time step.
The fault evaluates the state of the conditional before the conditional evaluates. As a result, the fault injects in the time step that follows from the time step where the conditional signal_greater_than_val
is true
.