メインコンテンツ

固定小数点のインストルメンテーションおよびデータ型オーバーライド

浮動小数点から固定小数点へのモデルの変換には、固定小数点のインストルメンテーションとデータ型オーバーライド (DTO) の構成が必要です。固定小数点のインストルメンテーションは、どのオブジェクトがシミュレーション中に最小、最大、およびオーバーフロー データのログを作成するかを制御します。データ型オーバーライドを使用して、double、single またはスケーリングされた double データ型を使用したモデルをシミュレートします。

インストルメンテーションの設定の制御

固定小数点ツール[範囲の収集] ボタンをクリックすると、ツールで固定小数点のインストルメンテーションが自動で有効になります。既定では、固定小数点ツールは、モデルに設定されている現在のデータ型オーバーライドを使用します。また、データ型を double、single、またはスケーリングされた double でオーバーライドすることもできます。シミュレーションまたは派生の完了時に、固定小数点のインストルメンテーションが自動で無効になり、ツールでデータ型オーバーライドが選択されていた場合はデータ型オーバーライドが削除されます。[組み込み型によるシミュレーション] をクリックすると、シミュレーションの間、インストルメンテーションが有効になります。モデルのデータ型オーバーライドの設定には影響しません。

インストルメンテーションは、固定小数点ツールを使用してシミュレーション範囲 (最小、最大、およびオーバーフロー データを含む) を収集するために必要です。これらの範囲はモデルのデータ型の推奨に使用されます。モデルを固定小数点に頻繁に変換していない場合は、固定小数点のインストルメンテーションを無効にしてモデルへのシミュレーション速度を最大に戻します。変換後にインスツルメンテーションおよびデータ型オーバーライドの設定をオンにしたままにすると、予期しない結果が生じる可能性があります。

固定小数点ツール外でインストルメンテーションを有効にするには、コマンド ラインで MinMaxOverflowLogging パラメーターを MinMaxAndOverflow または OverflowOnly に設定します。

set_param('MyModel','MinMaxOverflowLogging','MinMaxAndOverflow')

インストルメンテーションには Fixed-Point Designer™ のライセンスが必要です。モデルでインストルメンテーションを無効にするには、パラメーターを ForceOff または UseLocalSettings にします。

set_param('MyModel','MinMaxOverflowLogging','UseLocalSettings')

データ型オーバーライドの制御

データ型オーバーライドを使用して、double、single またはスケーリングされた double データ型を使用したモデルをシミュレートします。Fixed-Point Designer がない場合でも、データ型オーバーライド設定を構成し、固定小数点データ型を指定するモデルのシミュレーションを行うことができます。この設定を使用して、シミュレーション中はデータ型が浮動小数点データ型で一時的にオーバーライドされます。

set_param('MyModel','DataTypeOverride','Double')

モデルの真の動作を観察するには、データ型オーバーライド パラメーターを UseLocalSettings または Off に設定します。

set_param('MyModel','DataTypeOverride','Off')

固定小数点ツールによる整数データ型オーバーライドの回避

選択されたシステムでデータ型オーバーライド (DTO) を実行する場合、固定小数点ツールはシステム内の各ブロックの出力データ型をオーバーライドします。DTO の影響を受けない唯一のブロックは、出力データ型が boolean または列挙型であるブロック、および設計により DTO によって処理されないブロック (たとえば、Lookup Table ブロック) です。アプリケーションによっては、特定の信号のデータ型を保持したい場合もあります (たとえば、インデックスを表現するブロック)。

固定小数点ツールが特定のブロックのデータ型をオーバーライドしないようにするには、ブロックの数値型の DataTypeOverride 設定を Off に設定します。

  1. ブロックをダブルクリックして [ブロック パラメーター] ダイアログ ボックスを開きます。

  2. [信号属性] タブの [出力データ型] フィールドで、目的のデータ型を指定し、DataTypeOverride プロパティを [オフ] に設定します。

コマンド ラインで、信号の numerictype の [データ型オーバーライド] の設定を変更して、このオーバーライドをオフに設定できます。この例では、ブロックの出力データ型は、データ型オーバーライドが実行された後も、組み込みの uint8 に保持されます。

または、多くのブロックで使用可能な [固定小数点ツールによる変更に対して出力データ型の設定をロックする] パラメーターを使用して、固定小数点ツールによる現在のデータ型の置き換えを回避することもできます。詳細については、[出力データ型の設定をロックする] の使用を参照してください。

モデル参照階層に対するインストルメンテーションの設定とデータ型のオーバーライド

参照モデルが含まれるモデルのシミュレーションを実行する場合、最上位モデルのデータ型オーバーライドと固定小数点のインストルメンテーションの設定によって、参照モデルの設定が制御されることはありません。これらの設定は、参照モデルで個別に指定しなければなりません。設定に矛盾がある場合、たとえば、最上位モデルの [データ型オーバーライド設定] を [double] にし、参照モデルでは [ローカル設定を使用] を設定し、参照モデルで固定小数点データ型を使用する場合、データ型伝播の問題が発生する可能性があります。

参照モデルのいずれかのインスタンスで、固定小数点のインストルメンテーションおよびデータ型オーバーライドの設定を変更すると、モデルのすべてのインスタンスと参照モデル自体の設定が変更されます。

データ型オーバーライドの制限事項

次のブロックではデータ型オーバーライドはサポートされていません。

  • アクション言語として MATLAB を使用する Stateflow® Chart ブロック

  • アクション言語として MATLAB を使用する State Transition Table® ブロック

  • アクション言語として MATLAB を使用する Truth Table® ブロック

  • Test Sequence ブロック

  • MATLAB Function ブロック

  • MATLAB Discrete-Event System ブロック

  • Requirements Table ブロック

参考

トピック