浮動小数点組み込みモデルの検証
データ型オーバーライド モードを使用すると、モデルのデータ型を一時的に切り替えることができます。この機能により、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 と入力します。モデルで単精度をサポートしないブロックを検出するには、モデル アドバイザー チェックIdentify questionable operations for strict single-precision designを使用します。
参考
Simulink.AliasType | Simulink.NumericType