最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
Interpolation Using Prelookup ブロックのためのインデックスと分割を計算
Simulink / Lookup Tables
HDL Coder / Lookup Tables
PreLookup ブロックは、その入力値 u
がブレークポイント データセットとどのように関連するかを指定するインデックスと区間分割を計算します。Prelookup ブロックは、Interpolation Using Prelookup ブロックと併用するのが最も効果的です。n 次元 table を内挿するために、結果のインデックスと割合の値を Interpolation Using Prelookup ブロックに入力します。これらの 2 つのブロックには分散アルゴリズムがあります。それらを組み合わせることで、n-D Lookup Table ブロックの統合アルゴリズムと同じ処理になります。ただし、Prelookup ブロックと Interpolation Using Prelookup ブロックを使用すると、n-D Lookup Table ブロックよりもシミュレーションとコード生成の柔軟性と効率を向上させることができます。詳細については、処理効率を参照してください。
Prelookup ブロックを使用するには、一連のブレークポイント値を指定しなければなりません。[ソース] パラメーターを [ダイアログ]
または [入力端子]
に設定して、ブレークポイント値をダイアログ ボックスで直接指定するか、値を bp
入力端子に値を送るかを選択します。通常の使用では、このブレークポイント データセットは、Interpolation Using Prelookup ブロックのテーブル データの 1 次元に対応します。Prelookup ブロックは、以下を計算することにより各入力値 u
ごとに一組の出力を生成します。
u
に等しいか、その値よりも小さいブレークポイント セット要素のインデックスで、u
を含む区間を作成します。
範囲 0 ≤ f < 1 の区間分割。これは、範囲内入力に対するインデックスとそれに隣接するインデックス値との間にあるブレークポイント区間上にある u
の正規化された位置を表します。
たとえば、ブレークポイント データセットが [0 5 10 20 50 100]
に設定され、入力値 u
が 55 である場合、インデックスは 4 であり、小数部の値は 0.1 です。インデックスと区間分割のラベルは、Prelookup ブロック アイコンでは k および f として表示されます。インデックス値はゼロベースです。
区間分割は、範囲外入力に対して負または 1
より大きい数値になります。詳細については、[外挿法] ブロック パラメーターを参照してください。
Port_1
— 入力信号 u
Prelookup ブロックは、Simulink® がサポートする任意の数値データ型の実数値信号を受け入れますが、boolean は例外となります。Prelookup ブロックは、信号およびブレークポイント データの固定小数点データ型をサポートします。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
| bus
k
— 入力 u
を含む区間のインデックス0 ベースのインデックス k は、入力 u
を含む区間を指定する実数値の整数です。
この端子を有効にするには、[出力の選択] を [インデックスと小数部]
または [インデックスのみ]
に設定します。
データ型: int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
f
— 区間 k 内で入力 u
の正規化された位置を表す小数部。区間 k 内で入力 u
の正規化された位置を表す小数部 f。
この端子を有効にするには、[出力の選択] を [インデックスと小数部]
に設定します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| fixed point
Port_2
— インデックス k と小数部 f を含むバスインデックス k と小数部 f をバス オブジェクトとして出力すると、モデルを簡略化できます。
この端子を有効にするには、[出力の選択] を [バスとしてのインデックスと小数部]
に設定します。
データ型: bus
指定
— ブレークポイント データの入力方法を選択明示的な値
(既定値) | 等間隔
| ブレークポイント オブジェクト
以下はこのパラメーターの各設定です。
[明示的な値]
。[ソース] および [値] パラメーターがダイアログ ボックスに表示されます。
[等間隔]
。[最初の点]、[間隔] および [点数] パラメーターがダイアログ ボックスに表示されます。
[ブレークポイント オブジェクト]
。[名前] パラメーターがダイアログ ボックスに表示されます。
ブロック パラメーター: BreakpointsSpecification |
型: 文字ベクトル |
値: 'Explicit values' | 'Even spacing' | 'Breakpoint
object' |
既定の設定: 'Explicit values' |
ソース
— ブレークポイント データのソースを指定ダイアログ
(既定値) | [入力端子]
以下は [ソース] の各設定です。
[ダイアログ]
。ブレークポイント データを [値] で指定します。
[入力端子]
。上流信号がブレークポイント データを bp
入力端子に提供することを確認します。各ブレークポイント データセットは、2 つ以上の要素を含み、厳密に単調増加するベクトルでなければなりません。このオプションの場合、ブロックは bp
入力端子からブレークポイントの属性を継承します。
このパラメーターを有効にするには、[指定] を [明示的な値]
に設定します。
ブロック パラメーター: BreakpointsDataSource |
型: 文字ベクトル |
値: 'Dialog' | 'Input port' |
既定の設定: 'Dialog' |
値
— ブレークポイント データ値[10:10:110]
(既定値)ブレークポイント データを明示的に指定します。各ブレークポイント データセットは、2 つ以上の要素を含み、厳密に単調増加するベクトルでなければなりません。このオプションでは、[データ型] ペインで追加のブレークポイント属性を指定します。
ルックアップ テーブル エディターを開くには、[編集] をクリックします (ルックアップ テーブルの編集を参照)。
[指定] を [明示的な値]
に設定し、[ソース] を [入力端子]
に設定する場合、上流信号がブレークポイント データを bp
入力端子に提供することを確認します。各ブレークポイント データセットは、2 つ以上の要素を含み、厳密に単調増加するベクトルでなければなりません。このオプションの場合、ブロックは bp
入力端子からブレークポイントの属性 (データ型も含め) を継承します。
このパラメーターを有効にするには、[指定] を [明示的な値]
、[ソース] を [ダイアログ]
に設定します。
ブロック パラメーター: BreakpointsData |
型: 文字ベクトル |
値: '[10:10:110]' |
既定の設定: '[10:10:110]' |
最初の点
— 等間隔のブレークポイント データの最初の点10
(既定値) | real-valued scalar
このパラメーターを有効にするには、[指定] を [等間隔]
に設定します。
ブロック パラメーター: BreakpointsFirstPoint |
型: 文字ベクトル |
値: '10' |
既定の設定: '10' |
間隔
— 等間隔のブレークポイント間の間隔10
(既定値) | real-valued, positive scalar
このパラメーターを有効にするには、[指定] を [等間隔]
に設定します。
ブロック パラメーター: BreakpointsSpacing |
型: 文字ベクトル |
値: '10' |
既定の設定: '10' |
点数
— 等間隔のポイントの数11
(既定値) | real-valued, positive scalar
このパラメーターを有効にするには、[指定] を [等間隔]
に設定します。
ブロック パラメーター: BreakpointsNumPoints |
型: 文字ベクトル |
値: '11' |
既定の設定: '11' |
名前
— Simulink.Breakpoint
オブジェクトの名前no default
| Simulink.Breakpoint
Simulink.Breakpoint
オブジェクトの名前を指定します。ブレークポイント オブジェクトは、Simulink ブレークポイント オブジェクトを参照します。Simulink.Breakpoint
オブジェクトがない場合は、アクション ボタン をクリックして [作成] を選択します。新しいブレークポイント オブジェクトの対応するパラメーターにブロック情報が自動的に入力されます。
このパラメーターを有効にするには、[指定] を [ブレークポイント オブジェクト]
に設定します。
ブロック パラメーター: BreakpointObject |
型: 文字ベクトル |
値: Simulink.Breakpoint オブジェクト |
既定の設定: '' |
出力の選択
— ブロックが出力する信号を指定インデックスと小数部
(既定値) | バスとしてのインデックスと小数部
| インデックスのみ
ブロックでインデックスおよび区間分割を出力する場合、ブロックで個々の信号またはインデックス信号と小数部信号の両方を含むバス信号のどちらを出力するかを指定できます。
[インデックスのみ]
はインデックスのみを出力し、小数部を出力しません。このオプションの代表的な適用例としては、次のようなものがあります。
区間に内挿法を使用せずに Direct Lookup Table (n-D) ブロックを入力する
Interpolation Using Prelookup ブロックのサブテーブル選択の選択端子を入力する
非線形量子化の実行
[インデックスと小数部]
はインデックスと小数部を個々の信号として出力します。
[バスとしてのインデックスと小数部]
はインデックス信号および小数部信号を含むバス信号を出力します。これらの信号にバスを使用することで以下を実現します。
これらの 2 つの関連する信号をまとめることで、モデルを簡潔にする。
AUTOSAR 4.0 ライブラリのテストポイント DpResult
構造体を作成する。
AUTOSAR 4.0 ライブラリの場合、Prelookup および Interpolation Using Prelookup ブロックが別個のモデル内にあるときは、コード生成中に余分なコピーを作成しないようにしないようにする。
[バスとしてのインデックスと小数部]
を選択することにより、[データ型] ペインに [出力] パラメーターが表示され、[出力] パラメーターは [Inherit: auto]
に設定されます。ユーザー定義のバス オブジェクトを指定するように既定値を変更します。バス オブジェクトの定義の詳細については、[出力] パラメーターを参照してください。
ブロック パラメーター: OutputSelection |
値: 'Index and fraction' | 'Index and fraction as bus' |
'Index only' |
型: 文字ベクトル |
既定の設定: 'Index and fraction' |
インデックス検索法
— ブレークポイント データを検索する方法等間隔のポイント
(既定値) | 線形探索
| 二分探索
各検索法は、さまざまな状況で速度の利点をもっています。
ブレークポイント セットが均等の間隔に並んでいる場合 (例: 10, 20, 30, ...)、[等間隔のポイント]
を選択してテーブル インデックスを計算することにより、速度を最大に上げることができます。このアルゴリズムは最初の 2つのブレークポイントのみを利用して残りのポイントのオフセットと間隔を求めます。
不規則な間隔に並んでいるブレークポイント セットについては、以下のガイドラインに従ってください。
あるタイム ステップから次のタイム ステップまでに u
の入力値が大きく変化しない場合は、[前回のインデックス結果を使ってインデックス検索を始める] と組み合わせて [線形探索]
を選択すると、最高のパフォーマンスが得られます。
u
の入力値がタイム ステップあたり 2 個以上または 3 個以上のテーブル区間をジャンプする場合は、[二分探索]
を選択すると、最高のパフォーマンスが得られます。
インデックス検索法に関する準最適な選択は、ルックアップ テーブルに大きく依存しているモデル内でパフォーマンスの低下をもたらします。
生成コードは、以下の場合、最初のブレークポイント、間隔、およびブレークポイントの数だけを保存します。
ブレークポイント データが調整不可能な場合。
インデックス検索法は [等間隔のポイント]
です。
前回のインデックス結果を使ってインデックス検索を始める
— 前のタイム ステップで検出されたインデックスを使用して検索を開始off
(既定値) | on
区間サイズに関してゆっくりと変化する入力値 u
に対して、このオプションをオンにするとパフォーマンスを改善できます。そうでない場合、線形探索法と二分探索法は非常に長い時間を要します。特に、ブレークポイントセットが大きな場合には長い時間を要します。
ブロック パラメーター: IndexSearchMethod |
値: 'Binary search' | 'Evenly spaced points' | 'Linear
search' |
型: 文字ベクトル |
既定の設定: 'Binary search' |
外挿法
— 範囲外入力値を処理する方法クリップ
(既定値) | 線形
オプションは次のとおりです。
[クリップ]
ブロック入力 | ブロック出力 |
---|---|
最初のブレークポイントより小さい場合 |
|
最初のブレークポイントより大きい場合 |
|
たとえば、範囲が [1 2 3]
に等しいときにこのオプションを選択したと仮定します。u
が 0.5
の場合、インデックスは 0
であり、区間分割は 0
です。u
が 3.5
の場合、インデックスは 1
であり、区間分割は 1
です。
線形
ブロック入力 | ブロック出力 |
---|---|
最初のブレークポイントより小さい場合 |
|
最初のブレークポイントより大きい場合 |
|
たとえば、範囲が [1 2 3]
に等しいときにこのオプションを選択したと仮定します。u
が 0.5
の場合、インデックスは 0
であり、区間分割は -0.5
です。u
が 3.5
の場合、インデックスは 1
であり、区間分割は 1.5
です。
Prelookup ブロックは、次の条件がすべて真である場合に限り、線形外挿をサポートします。
入力 u
、ブレークポイント データ、小数部の出力が浮動小数点データ型を使用する。
インデックスが組み込みの整数データ型を使用する。
ブロック パラメーター: ExtrapMethod |
型: 文字ベクトル |
値: 'Clip' | 'Linear' |
既定の設定: 'Clip' |
上限またはそれを超える入力に対して最後のブレークポイントを使用する
— 上限またはそれを超える入力を処理する方法off
(既定値) | on
最後のブレークポイント以上の入力値 u
に、インデックスを付ける方法を指定します。インデックス値はゼロベースです。入力が最後のブレークポイントと同じである場合、ブロック出力は次のように異なります。
チェック ボックス | ブロック出力 |
---|---|
選択 ( |
|
クリア ( |
|
Prelookup ブロックの [上限またはそれを超える入力に対して最後のブレークポイントを使用する] を選択すると、これに接続されている Interpolation Using Prelookup ブロックの [インデックスの入力を最後のインデックスに達するようにする] も選択しなければなりません。これにより、ブロックはブレークポイントとテーブル データのセットの最後の要素にアクセスするとき、同じインデックス付けの規則を使用できます。
このチェック ボックスは、以下の場合にのみ表示されます。
[インデックスのみ出力] がオフの場合
[外挿法] が [クリップ]
の場合
ただし、[インデックスのみ出力] が選択され、[外挿法] が [クリップ]
である場合、このブロックは、このチェック ボックスが非表示であってもオンであるかのように動作します。
ブロック パラメーター: UseLastBreakpoint |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
範囲外入力の診断
— 入力が範囲外の場合のブロックのアクションなし
(既定値) | 警告
| エラー
オプションは次のとおりです。
なし
— 応答しません。
警告
— 警告が表示され、シミュレーションは続行されます。
エラー
— シミュレーションを終了し、エラーを表示します。
ブロック パラメーター: DiagnosticForOutOfRangeInput |
型: 文字ベクトル |
値: 'None' | 'Warning' | 'Error' |
既定の設定: 'None' |
生成コードの範囲外入力に対する保護を削除
— 範囲外ブレークポイント入力をチェックするコードを削除Off
(既定値) | On
チェック ボックス | 結果 | 使用時 |
---|---|---|
| 生成コードには範囲外のブレークポイント入力をチェックするための条件文が含まれません。 入力 | コード効率の場合 |
| 生成コードには範囲外のブレークポイント入力をチェックするための条件文が含まれます。 | セーフティ クリティカルなアプリケーションの場合 |
入力が範囲外でない場合、[生成コードの範囲外インデックスに対する保護を削除] チェック ボックスをオンにしてコードの効率性を高めることができます。既定の設定では、このチェック ボックスはオフです。セーフティ クリティカルなアプリケーションの場合、このチェック ボックスをオンにしないでください。[生成コードの範囲外インデックスに対する保護を削除] チェック ボックスをオンにする場合は、最初にモデルの入力が範囲内であることを確認します。次に例を示します。
[生成コードの範囲外インデックスに対する保護を削除] チェック ボックスをオフにします。
[範囲外入力の診断] パラメーターを Error
に設定します。
ノーマル モードでモデルのシミュレーションを実行します。
範囲外エラーがある場合は、範囲内に修正してシミュレーションをもう一度実行します。
シミュレーションによって範囲外の入力エラーが発生しなくなったら、[生成コードの範囲外インデックスに対する保護を削除] チェック ボックスをオンにします。
[生成コードの範囲外インデックスに対する保護を削除] チェック ボックスをオンにした際に入力 k
または f
が範囲外の場合、生成されたコードおよびアクセラレータ モードを使用するシミュレーションの動作は未定義となります。
アプリケーションによって、次のモデル アドバイザー チェックを実行して、このチェック ボックスが使用されていることを確認できます。
[製品別] 、 [Embedded Coder] 、 [計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックを識別します]
[製品別] 、 [Simulink Check] 、 [モデリング標準] 、 [DO-178C/DO-331 チェック] 、 [Lookup Table ブロックの使用をチェックします]
モデル アドバイザーの詳細については、モデル チェックの実行を参照してください。
ブロック パラメーター: RemoveProtectionInput |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
サンプル時間
— サンプル時間を -1
以外の値として指定-1
(既定値) | スカラーサンプル時間を -1 以外の値で指定します。詳細については、サンプル時間の指定を参照してください。
このパラメーターは、明示的に -1
以外の値に設定されていない限り表示されません。詳細は、サンプル時間が推奨されないブロックを参照してください。
ブロック パラメーター: SampleTime |
型: 文字ベクトル |
値: スカラー |
既定の設定: '-1' |
ブレークポイント
— ブレークポイント データ型継承: 入力と同じ
(既定値) | Inherit: Inherit from 'Breakpoint data'
| double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| Enum: <class name>
| <data type expression>
ブレークポイント データ型を指定します。以下を指定可能です。
データ型継承ルール (例: 継承: 入力と同じ
組み込みデータ型名 (例: single
)
データ型クラスの名前 (例: 列挙データ型クラス)
データ型を評価する式 (例: fixdt(1,16,0)
)
[データ型アシスタントを表示] ボタン をクリックして、データ型の属性の設定に役立つ [データ型アシスタント] を表示します。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
以下の場合に入力 u
のデータ型と異なるブレークポイント データ型を指定します。
入力信号 u
よりも小さいタイプを使用するブレークポイント データの保存のためのメモリ必要量が少ない場合
入力 u
の異なるデータ型をもつ 2 つの Prelookup ブロック間で事前スケーリングされたブレークポイント データを共有する場合
入力 u
の異なるデータ型のブロックに対して生成コード内のカスタム ストレージ ブレークポイント データを共有する場合
列挙型データ:
ブレークポイントは順序付けされていない列挙データをサポートします。結果として、線形探索も順序付けされていません。これは柔軟性をもたらしますが、パフォーマンスに影響する可能性があります。検索はブレークポイントの最初の要素から開始されます。
[前回のインデックス結果を使ってインデックス検索を始める] チェック ボックスがオンの場合、順序付けされた単調増加のデータを使用しなければなりません。この順序付けはパフォーマンスを向上させます。
列挙型データでは、[外挿法] は Clip
でなければなりません。
小数部が 1
または 0
であるため、[出力の選択] 、 [インデックスのみ] を選択します。
Interpolation Using Prelookup ブロックを設定したインデックスのみの出力選択を使用している場合、[サブテーブル選択次元数] パラメーターの使用を検討してください。
これらは、このブロックで列挙型データを使用する場合の制限です。
ブロックは列挙型データに対する範囲外の入力をサポートしません。列挙型データを指定する場合、ブレークポイント データセットに列挙全体を含めるようにします。たとえば、関数 enumeration
を使用します。
ブレークポイント データ ソースを Inport
port
に設定すると、列挙データ型は既定値として 0
をもたなければなりません。たとえば、この列挙型クラスの場合、GEAR1
の既定値は 0
でなければなりません。
classdef(Enumeration) Gears < Simulink.IntEnumType enumeration GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(32), NEUTRAL(0) end end
このパラメーターを有効にするにはブレークポイント データ [ソース] を [ダイアログ]
に設定します。
[ソース] を [入力端子]
に設定すると、ブロックはすべてのブレークポイント属性 (データ型、最小、最大) を bp
入力端子から継承します。
ブロック パラメーター: BreakpointDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Same as input' | 'Inherit: Inherit from
'Breakpoint data'' | 'double' | 'single' | 'int8' | 'uint8'
| 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt(1,16)' |
'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type
expression>' |
既定の設定: 'Inherit: Same as input' |
インデックス
— インデックス データ型uint32
(既定値) | int8
| uint8
| int16
| uint16
| int32
| uint32
| fixdt(1,16)
| <data type expression>
ブレークポイント データセットのすべての要素にインデックス付けできるデータ型を指定します。次のことが可能です。
リストから組み込みの整数データ型を選択します。
固定小数点表現を使って整数データ型を指定します。
[データ型アシスタントを表示] ボタン をクリックして、データ型の属性の設定に役立つ [データ型アシスタント] を表示します。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
ブロック パラメーター: IndexDataTypeStr |
型: 文字ベクトル |
値: |
'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' |
'uint32' | 'fixdt(1,16)' | '<data type
expression>' |
既定の設定: 'uint32' |
小数部
— 小数部データ型Inherit: Inherit via internal
rule
(既定値) | double
| single
| fixdt(1,16,0)
| <data type expression>
区間分割のデータ型を指定します。次のことが可能です。
リストから組み込みのデータ型を選択します。
内部ルールからデータ型の継承を指定します。
スケーリングの表現として、「勾配とバイアス」、または「2 進小数点」のいずれかを使って、固定小数点データ型を指定します。
「勾配とバイアス」 の表現を使用する場合、スケーリングが自明 (勾配は 1
で、バイアスは 0
) でなければなりません。
「2 進小数点」の表現を利用する場合、2 のべき乗の指数は 0 以下でなければなりません。
[データ型アシスタントを表示] ボタン をクリックして、データ型の属性の設定に役立つ [データ型アシスタント] を表示します。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
[メイン] タブの [出力の選択] を、[インデックスと小数部]
に設定する場合にのみ、このパラメーターが表示されます。
ブロック パラメーター: FractionDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Inherit via internal rule' | 'double' |
'single' | 'fixdt(1,16,0)' | '<data type
expression>' |
既定の設定: 'Inherit: Inherit via internal rule' |
出力
— 出力データ型Inherit: auto
(既定値) | Bus: <object name>
バーチャル バスを出力するには、Inherit: auto
設定を使用します。得られるバーチャル バスには 2 つの要素、インデックス信号、小数部信号が含まれます。
非バーチャル バスを出力および指定するには、[Bus: <object name>]
テンプレートを使用します。<object name>
をインデックス信号および小数部信号を含むバス オブジェクトの名前に置き換えます。
バス オブジェクトには 2 つの要素が含まれていなければなりません。最初の要素はインデックス信号に対応し、2 番目は小数部信号に対応します。
インデックスおよび小数部のバス要素信号をバス信号にすることはできません。
[出力の選択] を [インデックスと小数部]
に設定している場合、バス要素のデータ型および実数/複素数は、インデックスと小数部の信号に適用されるのと同じ制約を満たさなければなりません。
インデックスおよび小数部のバス要素をもつバス オブジェクトを作成するには、これに類似した MATLAB® コードを使用して、バス オブジェクト名およびバス要素の名前およびデータ型をカスタマイズします。
% Bus object: kfBus elems(1) = Simulink.BusElement; elems(1).Name = 'Index'; elems(1).DataType = 'int8'; elems(2) = Simulink.BusElement; elems(2).Name = 'Fraction'; elems(2).DataType = 'double'; kfBus = Simulink.Bus; kfBus.Elements = elems; clear elems;
あるいは、バス エディターを使用して、Prelookup ブロックで使用するバス オブジェクトを作成または編集できます。
このブロックから Interpolation Using Prelookup ブロックにバス出力信号をフィードするには、フィード先のブロックで [インデックスと小数部をバスにする] チェック ボックスをオンにします。
固定小数点ツールのデータ型オーバーライド オプションを使用して、固定小数点データ型を浮動小数点データ型に置き換える新しいバス オブジェクトで、バス オブジェクトをオーバーライドします。
Prelookup ブロックで使用されるバス オブジェクトがオーバーライドされると、ブロックはバスの最初の要素として浮動小数点データ型を受け入れないため、エラーが発生する可能性があります。
この問題が発生する場合は、[修正] ボタンを使用して元のバス オブジェクトを再定義し、これがオーバーライドされないようにします。たとえば、バス オブジェクトの最初の要素を int32
に定義するとします。
myBus.Elements(1).DataType
int32
[修正] ボタンをクリックして最初のバス要素を次のように再定義します。
myBus.Elements(1).DataType = 'fixdt(''int32'',''DataTypeOverride'',''Off'')'
[データ型アシスタントを表示] ボタン をクリックして、データ型の属性の設定に役立つ [データ型アシスタント] を表示します。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
[メイン] タブの [出力の選択] を、[バスとしてのインデックスと小数部]
に設定する場合にのみ、このパラメーターが表示されます。
ブロック パラメーター: OutputBusDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: auto' | 'Bus: <object name>' | '<data
type expression>' |
既定の設定: 'Inherit: auto' |
ブレークポイントの最小値
— ブレークポイント データが取りうる最小値[]
(既定値) | スカラーブレークポイント データに使用できる最小値を指定します。既定値は []
(指定なし) です。
このパラメーターを有効にするには、[メイン] タブで、ブレークポイント データ [ソース] を [ダイアログ]
に設定します。
ブロック パラメーター: BreakpointMin |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[]' |
ブレークポイントの最大値
— ブレークポイント データが取りうる最大値[]
(既定値) | スカラーブレークポイント データに使用できる最大値を指定します。既定値は []
(指定なし) です。
このパラメーターを有効にするには、[メイン] タブで、ブレークポイント データ [ソース] を [ダイアログ]
に設定します。
ブロック パラメーター: BreakpointMax |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[]' |
固定小数点ツールによる変更に対して出力データ型の設定をロックする
— 固定小数点ツールが出力データ型をオーバーライドするのを防止off
(既定値) | on
固定小数点ツールが、ブロックに指定した [出力] データ型をオーバーライドしないようにするには、このパラメーターを選択します。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。
ブロック パラメーター: LockScale |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
整数丸めモード
— 固定小数点演算の丸めモード負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算の丸めモードを指定します。詳細については、丸め (Fixed-Point Designer)を参照してください。
ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロックパラメーターの丸めを直接制御するには、MATLAB の丸め関数を使用する式をマスク フィールドに入力します。
ブロック パラメーター: RndMeth |
型: 文字ベクトル |
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' |
'Zero' |
既定の設定: 'Floor' |
データ型 |
|
直接フィードスルー |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
列挙値で Prelookup ブロックのシミュレーションを実行します。
次のように定義される列挙型クラスをもつ Prelookup ブロックがあるとします。
classdef(Enumeration) Gears < Simulink.IntEnumType enumeration GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(-1), NEUTRAL(0) end end
Prelookup ブロックの設定を以下に示します。
[ブレークポイント データ] 値は enumeration('Gears')
。
[出力の選択] は [インデックスのみ]
。
順序付けされていない検索では、[インデックス検索法] を [線形探索]
に設定し、[前回のインデックス結果を使ってインデックス検索を始める] チェック ボックスをオフにします。
[外挿法] が [クリップ]
の場合。
Prelookup ブロックを使用した内挿の設定を以下に示します。
[次元数] は 1
。
[テーブル データ] 値は [5 10 20 40 80 -5
0]
。
[内挿法] が [フラット]
。
[サブテーブル選択次元数] は 1
。
シミュレーションはベクトル [10 -5 80]
を出力します。これは GEAR2
、REVERSE
、および SPORTS
に対応します。
HDL コード生成の詳細については、Prelookup を参照してください。
Simulink PLC Coder では、Lookup Table ブロックのサポートに制限があります。この Coder は以下をサポートしません。
2 を超える次元の数
3 次スプライン内挿法
前のインデックス モードを使用したインデックス検索の開始
3 次スプライン外挿法
MATLAB のコマンドを実行するリンクがクリックされました。
このリンクは、Web ブラウザーでは動作しません。MATLAB コマンド ウィンドウに以下を入力すると、このコマンドを実行できます。
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.