Main Content

Lookup Table ブロック

hisl_0033: Lookup Table 系ブロックの使用方法

ID: タイトルhisl_0033: Lookup Table 系ブロックの使用方法
説明

1-D Lookup Table ブロック、2-D Lookup Table ブロック、n-D Lookup Table ブロック、Prelookup ブロック、Interpolation Using Prelookup ブロックの使用時に、生成コードのロバスト性をサポートするには、以下に従ってください。

A

1-D Lookup Table2-D Lookup Tablen-D Lookup Table、または Prelookup の各ブロックで、ブロック パラメーター [生成コードの範囲外入力に対する保護を削除する] をクリアする。

B

Interpolation Using Prelookup ブロックで、ブロック パラメーター [生成コードの範囲外インデックスに対する保護を削除] をクリアする。

メモ

ルックアップ テーブル入力が有効なブレークポイント値の範囲内に収まることが保証されない場合、範囲チェック コードの対象外指定によって予期しない結果が生じる可能性があります。

根拠A、B

範囲外の入力またはインデックスから保護する。

モデル アドバイザー チェックCheck usage of lookup table blocks (Simulink Check)
参考文献
  • DO-331, Section MB.6.3.2.g 'Algorithms are accurate'

  • IEC 61508-3, Table A.3 (3) 'Language subset’
    IEC 61508-3, Table A.4 (3) 'Defensive programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'
    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.4 (11) 'Language Subset'
    EN 50128, Table A.3 (1) 'Defensive Programming'

参考

1-D Lookup Table

2-D Lookup Table

n-D Lookup Table

Prelookup

最終更新R2021a

hisl_0016: 関係演算子を計算するブロックの使用方法

ID: タイトルhisl_0016: 関係演算子を計算するブロックの使用方法
説明演算のロバスト性をサポートするために、浮動小数点データ型に対する等価演算子と不等演算子の使用を避けます。
メモ浮動小数点の精度に問題があるため、浮動小数点式の等価 (==) または不等価 (~=、!=) をテストしないでください。
根拠モデルのロバスト性を向上させて、予期しない結果を防止する。
モデル アドバイザー チェックCheck relational comparisons on floating-point signals (Simulink Check)
参考文献
  • IEC 61508-3, Table A.3 (2) 'Strongly typed programming language’

    IEC 61508-3, Table A.3 (3) 'Language subset’

    IEC 61508-3, Table A.4 (3) 'Defensive programming'

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'

    ISO 26262-6, Table 1 (1c) 'Enforcement of strong typing'

  • EN 50128, Table A.4 (11) 'Language Subset'

    EN 50128, Table A.4 (8) 'Strongly Typed Programming Language'

    EN 50128, Table A.3 (1) 'Defensive Programming'

  • DO-331, Section MB.6.3.1.g 'Algorithms are accurate'

    DO-331, Section MB.6.3.2.g 'Algorithms are accurate'

  • MISRA C:2012, Dir 1.1

参考関係演算
最終更新R2021b

例: 1

例 — 正

  • myDouble > 0.99 && myDouble < 1.01; % test range

例 — 誤

  • myDouble == 1.0

  • mySingle ~= 15.0

例: 2

例 — 正

等価比較演算子は、浮動小数点オペランドで使用されていません。

例 — 誤

等価比較演算子 == が浮動小数点オペランドで使用されています。

例 — 正

2 つの浮動小数点変数または式が等しいかどうかをテストするには、浮動小数点の相対的精度 (eps) と数字の大きさを考慮に入れるしきい値と 2 つの変数の差を比較します。

次のパターンは、倍精度の 2 つの入力信号 In1 および In2 の等価性をテストする方法を示します。

例 — 誤

等価比較演算子 == が浮動小数点オペランドで使用されています。

hisl_0072: 参照モデルの調整可能なパラメーターの使用方法

ID: タイトルhisl_0072: 参照モデルの調整可能なパラメーターの使用方法
説明

Simulink.Parameter オブジェクトを使用して調整可能なパラメーターを定義します。これは、ベース ワークスペースまたは Simulink データ ディクショナリのいずれかで共有されるすべての調整可能なパラメーターに適用されます。モデルの引数には適用されません。

メモ

Simulink® は、参照モデルの [モデル パラメーター設定] ダイアログ ボックスを使用して設定されたパラメーターのストレージ クラス設定を無視します。

このガイドラインは、コンフィギュレーション パラメーター [既定のパラメーター動作]Inlined に設定されている場合にのみ適用されます。

根拠パラメーターの調整可能性の意図しない消失を回避します。
モデル アドバイザー チェック参照モデルに対して無視されたパラメーター調整情報をチェック
参考文献
  • DO-331, Section MB.6.3.1.g – Algorithms are accurate

    DO-331, Section MB.6.3.2.g – Algorithms are accurate

  • IEC 61508-3, Table A.4 (3) 'Defensive Programming’

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) 'Use of language subsets'

    ISO 26262-6, Table 1 (1d) 'Use of defensive implementation techniques'

  • EN 50128, Table A.3 (1) 'Defensive Programming'

参考

生成されたコードにおける調整可能なキャリブレーション パラメーターの作成 (Simulink Coder)

最終更新R2021b

hisl_0073: ビットシフト演算の使用方法

ID: タイトルhisl_0073: ビットシフト演算の使用方法
説明

ビットシフト演算 (a >> b または a << b など) の場合は、以下を実行しないでください。

ビット幅以上のシフト演算 (b は a のビット幅以上であってはなりません)。

根拠シフト演算を含むコードを生成すると、コーディング規約違反を引き起こす可能性があります。
モデル アドバイザー チェックCheck usage of bit-shift operations (Simulink Check)
参考文献
  • DO-331 Section MB.6.3.1.b 'High-level requirements are accurate and consistent'

    DO-331 Section MB.6.3.2.b 'Low-level requirements are accurate and consistent'

  • IEC 61508–3, Table A.3 (2) Strongly typed programming language

    IEC 61508–3, Table A.4 (3) Defensive programming

  • IEC 62304, 5.5.3 - Software Unit acceptance criteria

  • ISO 26262-6, Table 1 (1b) Use of language subsets

    ISO 26262-6, Table 1 (1c) Enforcement of strong typing

    ISO 26262-6, Table 1 (1d) Use of defensive implementation techniques

  • EN 50128, Table A.3 (1) Defensive Programming

    EN 50128, Table A.4 (8) Strongly Typed Programming Language

  • MISRA C:2012, Rule 12.2

  • INT34-C. Do not shift an expression by a negative number of bits or by greater than or equal to the number of bits that exist in the operand

参考

生成されたコードにおける調整可能なキャリブレーション パラメーターの作成 (Simulink Coder)

最終更新R2021b