If ブロック内の論理式をチェック
チェック ID: mathworks.maab.na_0003
ガイドライン: na_0003:If ブロックの使用方法
説明
論理式内に一次式の不適切な構成がないか、If ブロックをチェックします。
一次式が複雑な If ブロックのインスタンスを特定します。
一次式は以下のように定義されます。
入力
定数
定数パラメーター
ゼロ、
<、>、>=、<=、==、~=、|、&、および~以外の演算子が含まれていない、かっこで囲まれた式
一次式の例を以下に示します。
u15K(
u1>0)(
u1<=G)(
u1>U2)(~
u1)
受け入れられる論理式の例外の例を以下に示します。
u1 | u2(
(u1 > 0) & (u1 < 20)(u1 > 0) & (u2 < u3)(u1 > 0) & (~u2)
次の表では、受け入れられない論理式の例を示します。
| 一次式 | 理由 |
|---|---|
| 一次式が多すぎる。 |
| 受け入れられない演算子が一次式に含まれている。 |
| 入力ではない一次式が多すぎる。 |
| 受け入れられない演算子が一次式に含まれている。 |
例外
以下の両方の条件が満たされている場合、論理式には 2 つを超える一次式を含めることができます。
一次式がすべて入力である。
1 つのタイプの論理演算子のみが存在している。
受け入れられる例外の例を以下に示します。
u1 | u2 | u3 | u4 | u5u1 & u2 & u3 & u4
シンプルな "If" 式
ガイドライン na_0003 のリテラルの解釈では、式 u1 < u2 は違反になります。ただし、この式は、一般的に使用される "If" 式テンプレート (<一次式><演算子><一次式>) に従っています。そのため、論理演算子が使用されておらず、関係演算子が 1 つだけ存在している場合は、式はガイドライン na_0003 を満たし、u1 < u2 は違反にはなりません。
このチェックには Simulink® Check™ ライセンスが必要です。
チェックのパラメーター化
MAB モデリング ガイドラインはサブ ID を 1 つのみ提供するため、このチェックにはサブチェックは含まれません。
参考として、NA-MAAB および JMAAB モデリング標準組織で使用が推奨されている MAB ガイドライン サブ ID は以下のとおりです。
NA-MAAB — 推奨なし
JMAAB — a
結果と推奨アクション
| 条件 | 推奨アクション |
|---|---|
| 定数、定数パラメーター、および入力で構成されている 2 つを超える一次式が論理式に含まれている。 | 次のいずれかを検討してください。
|
| 論理式に、複数の関係演算子を使用する、2 つを超えるかっこで囲まれた式が含まれている | 次のいずれかを検討してください。
|
かっこで囲まれた式に、ゼロ、<、>、>=、<=、==、~=、|、&、~ 以外の関係演算子が含まれている。 | 次のいずれかを検討してください。
|
機能および制限事項
関係演算子
<、>、>=、<=、==、~=、|、&、~の 1 つのみを使用している論理式にはフラグは設定されません。ライブラリ モデルで実行されます。
ライブラリにリンクされたブロックの内容を解析します。既定では、入力パラメーター [リンクに従う] は
[オン]に設定されます。マスク サブシステムの内容を解析します。既定では、入力パラメーター [マスク内を表示] は
[グラフィカル]に設定されます。