このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Math Operations
hisl_0001: Abs ブロックの使用法
ID: タイトル | hisl_0001: Abs ブロックの使用法 | ||
---|---|---|---|
説明 | Abs ブロックの使用時に、生成コードのロバスト性をサポートするには以下に従ってください。 | ||
A | Abs ブロックへの入力として Boolean データ型と符号なしデータ型を避ける。 | ||
B | ブロック パラメーター [整数オーバーフローで飽和] を選択する。 | ||
メモ: | Abs ブロックは、Boolean データ型をサポートしていません。符号なし入力データ型を指定すると、生成されたコードの外で Abs ブロックが最適化され、その結果、生成コードまでトレースできないブロックになる可能性があります。 符号付きデータ型の場合、Simulink® は最小の負の絶対値を表現しません。[整数オーバーフローで飽和] を選択すると、データ型の絶対値は、表現可能な最大の正の数値まで飽和します。[整数オーバーフローで飽和] の選択を解除すると、シミュレーションでの絶対値の計算と生成コードに一貫性がなくなるか予期しないものになることがあります。 | ||
根拠 | A | トレース可能なコードの生成のサポート。 | |
B | モデル シミュレーションと生成コードの一定の動作および予想される動作を実行する。 | ||
モデル アドバイザー チェック | Check usage of Abs blocks (Simulink Check) | ||
参考文献 |
| ||
最終更新 | R2021b | ||
例 |
推奨 非推奨 |
hisl_0002: 残余演算および逆数演算の使用
ID: タイトル | hisl_0002: 残余演算および逆数演算の使用 | ||
---|---|---|---|
説明 | 除算後の残余演算 ( | ||
A | 関数 | ||
B | 関数 | ||
メモ: | ゼロ除算演算が生成される場合があります。その場合、関数 | ||
根拠 | オーバーフローまたは未定義の値になるのを防ぐ | ||
モデル アドバイザー チェック | Check usage of remainder and reciprocal operations (Simulink Check) | ||
参考文献 |
| ||
最終更新 | R2021b | ||
例 | 次の例では、入力信号がゼロ近傍で振動している場合、出力値に大きな変化が見られます。値の大幅な変化を防ぐことが必要です。
|
hisl_0003: 平方根演算の使用
ID: タイトル | hisl_0003: 平方根演算の使用 | ||
---|---|---|---|
説明 | Square Root 演算の使用時に、生成されたコードのロバスト性をサポートするには、以下のいずれかを行います。 | ||
A | 複素数を出力として見なす。 | ||
B | 入力が負の値になるのを防ぐ。 | ||
根拠 | 生成されたコードの望ましくない結果を避ける。 | ||
モデル アドバイザー チェック | Check usage of square root operations (Simulink Check) | ||
参考文献 |
| ||
最終更新 | R2021b | ||
例 |
|
hisl_0028: Reciprocal Square Root ブロックの使用
ID: タイトル | hisl_0028: Reciprocal Square Root ブロックの使用 | ||
---|---|---|---|
説明 | Reciprocal Square Root ブロックの使用時に、生成されたコードのロバスト性をサポートするには、以下のいずれかを行います。 | ||
A | 入力が負の値になるのを防ぐ。 | ||
B | 入力がゼロになるのを防ぐ。 | ||
メモ: | ゼロ除算演算が生成される場合があります。その場合、逆関数の | ||
根拠 | A、B | 生成されたコードの望ましくない結果を避ける。 | |
モデル アドバイザー チェック | Check usage of Reciprocal Sqrt blocks (Simulink Check) | ||
参考文献 |
| ||
最終更新 | R2021b | ||
例 |
|
hisl_0004: 自然対数演算と 10 を底とする対数演算の使用
ID: タイトル | hisl_0004: 自然対数演算と 10 を底とする対数演算の使用 | ||
---|---|---|---|
説明 | 自然対数 ( | ||
A | 入力が負の値になるのを防ぐ。 | ||
B | 入力がゼロになるのを防ぐ。 | ||
C | 複素数を出力値として見なす。 | ||
メモ: | 出力データ型を複素数に設定した場合、自然対数関数と 10 を底とする対数関数は、負の入力値に対して複素数値を出力します。出力データ型を実数に設定すると、これらの関数は、負の数値には | ||
根拠 | A、B、C | ロバストなコードの生成のサポート。 | |
モデル アドバイザー チェック | Check usage of log and log10 operations (Simulink Check) | ||
参考文献 |
| ||
最終更新 | R2021b | ||
例 |
以下の保護が可能です。
以下の例では、
|
hisl_0005: Product ブロックの使用方法
ID: タイトル | hisl_0005: Product ブロックの使用方法 | |
---|---|---|
説明 | Product ブロック パラメーター [乗算] が | |
メモ | Product ブロックを使用して逆行列、または逆行列除算を計算する場合、特異行列による除算が発生することがあります。この除算により | |
根拠 | オーバーフローを防ぎ、生成コードのロバスト性をサポートします。 | |
モデル アドバイザー チェック | モデル アドバイザー チェックを使用して、このモデリング ガイドラインへの準拠を確認することはできません。 | |
参考文献 |
| |
前提条件 | hisl_0314: [コンフィギュレーション パラメーター]、[診断]、[データ有効性]、[信号] | |
最終更新 | R2021a |
hisl_0029: Assignment ブロックの使用方法
ID: タイトル | hisl_0029: Assignment ブロックの使用方法 |
---|---|
説明 | Assignment ブロックの使用時に、生成されたコードのロバスト性をサポートするには、最初に使用する前に配列フィールドを初期化します。 |
メモ: | Assignment ブロックの出力ベクトルがブロックへの入力で初期化されていない場合は、ベクトルの要素が生成コードで初期化されない可能性があります。 1 回のシミュレーション タイム ステップの間に Assignment ブロックを反復して使用し、すべての配列フィールドを割り当てる場合は、ブロックへの初期化入力は必要ありません。 初期化されていないブロック出力の要素にアクセスすると、予期しない動作が発生する可能性があります。 |
根拠 | 生成されたコードの望ましくない結果を避ける。 |
モデル アドバイザー チェック | Check usage of Assignment blocks (Simulink Check) |
参考文献 |
|
最終更新 | R2021b |
例 |
非推奨: ブロックを反復して使用しない場合に初期化入力 Y0 なし 推奨: ブロックを反復して使用しない場合に初期化入力 Y0 あり 推奨: ブロックを反復して使用する場合に配列フィールドを初期化 |
hisl_0066: Gain ブロックの使用方法
ID: タイトル | hisl_0066: Gain ブロックの使用方法 | ||
---|---|---|---|
説明 | 生成されたコードのトレーサビリティをサポートするためには、Gain ブロックの値を 1 に関連付けてはなりません。 | ||
メモ | コード生成プロセスは、最適化中に 非自動ストレージ クラスをもつ名前付きパラメーターのデータ オブジェクトに対するゲイン値の設定は、このルールに対する例外です。 | ||
根拠 | 追跡可能なコードの生成をサポートする。 | ||
モデル アドバイザー チェック | Check usage of Gain blocks (Simulink Check) | ||
参考文献 |
| ||
最終更新 | R2018a |
hisl_0067: ゼロ除算の計算を回避
ID: タイトル | hisl_0067: ゼロ除算の計算を回避 |
---|---|
説明 | 生成コードのロバスト性をサポートするため、除算演算を行うときに、除数がゼロになるのを防ぎます。 |
メモ | ゼロ除算が不可能であることを証明するため、モデルの静的解析を実行します。 ゼロ除算が可能である場合は、以下のいずれかを実装します。1 つを超えるオプションを使用すると、冗長保護演算になる可能性があります。
CRL を使用するか、コンフィギュレーション パラメーター [除算演算の例外処理を防止するコードを削除] (Embedded Coder) をクリアすると、除算演算がゼロ除算演算から保護されます。ただし、このアクションによって追加の計算およびメモリのオーバーヘッドが発生するうえ、到達不能コードが生じる可能性もあります。 |
根拠 | 生成されるコードのコード準拠性を高める |
モデル アドバイザー チェック | Check for divide-by-zero calculations (Simulink Check) |
参考文献 |
|
参考 |
|
最終更新 | R2021a |
例 | 不正解 除算演算にはゼロ除算シナリオとなる可能性があります。 正解 ゼロ除算チェックをモデル化するグラフィカル関数。 |