浮動小数点組み込みモデルの検証
データ型オーバーライド モードを使用すると、モデルのデータ型を一時的に切り替えることができます。この機能により、1 つのモデルを維持し、複数のデータ型を使用してモデルをシミュレートできるだけではなく、型ごとの数値的な動作を検証できます。たとえば、倍精度データ型を使用してアルゴリズムを実装し、そのアルゴリズムが単精度の使用にも適しているかを確認する場合、浮動小数点データ型にデータ型オーバーライドを適用して、モデル内のその他のデータ型に永続的に影響することなく、すべての倍精度を単精度に置き換えることができます。
データ型オーバーライドを適用するには、適用するデータ型、および置き換えるデータ型を指定しなければなりません。
データ型オーバーライドは、次の方法を使用して設定できます。この例ではすべての浮動小数点データ型を single に変更します。
以下に例を示します。
set_param(gcs, 'DataTypeOverride', 'Single',... 'DataTypeOverrideAppliesTo','Floating-point');
データ型オーバーライド設定の詳細については、データ型オーバーライドの制御を参照してください。
モデルの確認
この例では、ex_single_validation
モデルを使用してデータ型オーバーライドの使用方法を説明します。倍精度データ型を実装するアルゴリズムが単精度の組み込み型の使用にも適していることを実証します。
モデルを開きます。
open_system('ex_single_validation')
入力
In2
とIn3
はSum
ブロックとProduct
ブロックへの倍精度の入力です。Sum
ブロックとProduct
ブロックの出力は、Multiport Switch
ブロックへのデータ入力です。入力
In1
は、Multiport Switch
ブロックへの制御入力です。この制御入力の値が、その他の入力、つまりIn3
とIn2
の和またはIn3
とIn2
の積のいずれが出力端子に渡されるかを決定します。In1
は制御入力であるため、データ型はint8
です。Relational Operator
ブロックは、Multiport Switch
ブロックの出力をIn4
と対比し、Boolean 信号を出力します。
単精度モデルの検証
single での浮動小数点データ型オーバーライド
コマンド ラインで、モデル内の浮動小数点データ型を single でオーバーライドします。
set_param(gcs, 'DataTypeOverride', 'Single',... 'DataTypeOverrideAppliesTo','Floating-point');
モデルの [モデル化] タブで [モデルの更新] をクリックします。
データ型オーバーライドによって、モデル内のすべての浮動小数点 (
double
) データ型がsingle
データ型で置き換えられますが、整数データ型または boolean データ型には影響しません。
モデル アドバイザー チェックの実行
モデルの [モデル化] タブで [モデル アドバイザー] をクリックします。
[システム セレクター] ダイアログ ボックスで、[OK] をクリックします。
モデル アドバイザーが開きます。
モデル アドバイザーで、[タスク別] ノードを展開し、[単精度システムのモデル化] の下にある [厳密な単精度の設計に対して問題のある演算を特定] チェックを選択します。
右側のペインで [このチェックを実行] をクリックします。
チェックがパスすると、このアルゴリズムが単精度の使用に適していることが示されます。生成コードに倍精度データ型が残っていないことを確認するには、単精度組み込み型の使用のためにコードを生成する前に単精度コンバーターを使用します。詳細については、単精度コンバーター入門 (Fixed-Point Designer)を参照してください。
単精度をサポートするブロック
単精度をサポートする Simulink® ブロックを特定するには、コマンド プロンプトで showblockdatatypetable
と入力します。モデルで単精度をサポートしないブロックを検出するには、モデル アドバイザー チェック厳密な単精度の設計に対して問題のある演算を特定を使用します。
参考
Simulink.AliasType
| Simulink.NumericType
関連するトピック
- Simulink モデルの単精度の設計 (Fixed-Point Designer)
- 組み込みアプリケーションの単精度データ型の指定 (Simulink Coder)
- 信号のデータ型の制御
- 指定不足のデータ型の既定値
- 厳密な単精度の設計に対して問題のある演算を特定
- Inf または NaN のブロック出力
- Simulink におけるデータ型について