Relational and Logical Operators - MATLAB & Simulink (original) (raw)
This example shows how to implement relational and logical operators by using Simulink® blocks, Stateflow® Charts, and MATLAB® Function blocks.
Modeling Pattern for Relational or Logical Operators — Simulink Blocks
To include a logical operation in your model, use the Logical Operator block from the Logic and Bit Operations library.
1. Open example model ex_data_type_SL.
The Logical Operator block performs an OR operation in the model. To change the operation, double-click the block and set the Operator field to any of the operations in the menu.
You can implement relational operators by replacing the Logical Operator block with a Relational Operator block.
2. To build the model and generate code, press Ctrl+B.
The code implementing the logical operator OR is in the ex_logical_SL_step
function in ex_logical_SL.c
.
/* Exported block signals / boolean_T u1; / '/u1' / boolean_T u2; / '/u2' / boolean_T y1; / '/y1' */
/* Model step function / void ex_logical_SL_step(void) { / Outport: '/y1' incorporates:
- Inport: '/u1'
- Inport: '/u2'
- Logic: '/Logical Operator' */ y1 = (u1 || u2); }
Modeling Pattern for Relational and Logical Operators — Stateflow Chart
1. Open example model ex_data_type_SF.
In the Stateflow chart, the relational or logical operation actions are on the transition from one junction to another. Relational statements specify conditions to conditionally allow a transition. In that case, the statements are within square brackets.
2. To build the model and generate code, press Ctrl+B.
The code implementing the logical operator OR is in the ex_logical_SF_step
function in ex_logical_SF.c
.
/* Exported block signals / boolean_T u1; / '/u1' / boolean_T u2; / '/u2' / boolean_T y1; / '/Logical Operator' */
/* Model step function / void ex_logical_SF_step(void) { / Chart: '/Logical Operator' incorporates:
- Inport: '/u1'
- Inport: '/u2' */ y1 = (u1 || u2); }
Modeling Pattern for Relational and Logical Operators — MATLAB Function Block
This example shows the MATLAB Function block method for incorporating operators into the generated code by using a relational operator.
1. Open example model ex_logical_ML.
2. The MATLAB Function Block contains this function:
function y1 = fcn(u1, u2) y1 = u1 > u2; end
3. To build the model and generate code, press Ctrl+B.
The generated code appears in ex_data_type_ML.c
:
/* Exported block signals / real_T u1; / '/u1' / real_T u2; / '/u2' / boolean_T y; / '/MATLAB Function' */
/* Model step function / void ex_logical_ML_step(void) { / MATLAB Function: '/MATLAB Function' incorporates:
- Inport: '/u1'
- Inport: '/u2' */ y = (u1 > u2); }