Main Content

If

if-else ステートメントに類似したロジックを使用してサブシステムの実行を選択する

  • If block

ライブラリ:
Simulink / Ports & Subsystems

説明

If ブロックは、Action Port ブロックを含む If Action Subsystem ブロックと同様に、if-else ロジックを実装してサブシステムの実行を制御します。If ブロックを使用する例については、選択サブシステムの実行を参照してください。

Model ex_if_block

制限

If ブロックには次の制限があります。

  • 調整可能なパラメーターをサポートしません。if 式または elseif 式の値は、通常モードまたはアクセラレータ モードでのシミュレーション中、または生成コードの実行時に調整することはできません。

    調整可能な if-else 式を実装するには、その式を If ブロックの外で調整するようにしてください。たとえば、Relational Operator ブロックを使用して If ブロックの外部で式を評価します。または、If ブロックへの入力として、調整可能なパラメーターを追加します。

  • カスタム ストレージ クラスをサポートしません。Struct ストレージ クラスを使用してパラメーター データを構造体に整理する (Embedded Coder)を参照してください。

  • [If 式] および [Elseif 式] では、+-*/ などの特定の演算子は受け入れられません。

端子

入力

すべて展開する

入力 u1,u2,...,un は同じデータ型でなければなりません。入力は、列挙型のような、ユーザー定義のタイプにはできません。

If ブロックは、固定小数点データ型を直接的にはサポートしません。ただし、この制限を解決するために、Compare To Constant ブロックを使用することができます。選択サブシステムの実行の固定小数点データ型のサポートを参照してください。

If ブロックは、Boolean データ型をサポートしていません。If ブロックに Boolean 信号を入力する場合は、Data Type Conversion ブロックを使用してその信号を整数型に変換します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

出力

すべて展開する

ifelse および elseif 端子からの出力は If Action Subsystem ブロックに対するアクション信号です。

パラメーター

すべて展開する

1

1 つの入力端子を指定します。

整数

入力端子の数を指定します。ブロック端子には文字 'u' の後に番号 1,2,...,n が続くラベルが付けられます。n は、指定した入力数です。

プログラムでの使用

ブロック パラメーター: NumInputs
: 文字ベクトル
: '1' | '<integer>'
既定の設定: '1'

if 端子に接続された If Action Subsystem は、関連付けられた式が true に評価されたときに実行されます。

u1 > 0

入力 u10 より大きい場合に出力端子のアクション信号を送信することを指定します。

論理式

論理式を指定します。この式は if 出力端子に隣接する If ブロックに表示されます。

式に含めることができる演算子は <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus だけです。+, -, *, /^ などの演算子は許可されません。この式は、たとえば、int8(6) などのデータ型の式を含むことはできません。また、データ型が double または single 以外のワークスペース変数を参照することはできません。

プログラムでの使用

ブロック パラメーター: IfExpression
: 文字ベクトル
: 'u1 > 0' | '<logical expression>'
既定の設定: 'u1 > 0'

elseif 端子に接続されている If Action Subsystem は、式が true に評価され、すべての if 式と elseif 式が false の場合に実行されます。

論理式は指定されません。

論理式のリスト

コンマで区切られた論理式のリストを指定します。[else 条件の表示] チェック ボックスをオンにすると、If ブロックの if 端子の下および else 端子の上に式が表示されます。

式に含めることができる演算子は <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus だけです。+, -, *, /^ などの演算子は許可されません。この式は、たとえば、int8(6) などのデータ型の式を含むことはできません。また、データ型が double または single 以外のワークスペース変数を参照することはできません。

プログラムでの使用

ブロック パラメーター: ElseIfExpressions
: 文字ベクトル
: '' | '<list of logical expressions>'
既定の設定: ''

if 端子とすべての elseif 端子の式が false である場合、else 端子はアクション信号を送信し、接続された If Action Subsystem ブロックを実行します。

オン

else 端子を表示します。

オフ

else 端子を表示しません。

プログラムでの使用

ブロック パラメーター: ShowElse
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

ゼロクロッシング検出を制御します。

オン

ゼロクロッシングを検出します。

オフ

ゼロクロッシングを検出しません。

プログラムでの使用

ブロック パラメーター: ZeroCross
型: 文字ベクトル
値: 'on' | 'off'
既定の設定: 'on'

ブロックの特性

データ型

Boolean | double | integer | single

直達

はい

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

はい

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入