Simulink.LookupTable クラス
パッケージ: Simulink
スーパークラス:
ルックアップ テーブルおよびブレークポイント データを格納および共有し、ASAP2 および AUTOSAR コードの生成用にデータを構成
説明
Simulink.LookupTable
クラスのオブジェクトは、ルックアップ テーブルとブレークポイント データを格納します。このデータは、n-D Lookup Table ブロックなどのルックアップ テーブル ブロックで使用できます。このオブジェクトにより、テーブルおよびブレークポイント セットのデータ型とコード生成設定を指定できます。
すべてのテーブルおよびブレークポイント セットのデータを単一の Simulink.LookupTable
オブジェクトに格納すると、生成されたコードですべてのデータが単一の構造体に表示されます。STD_AXIS コード生成をキャリブレーション用に構成するには、この手法を使用します。
たとえば COM_AXIS コードの生成など、複数のルックアップ テーブル間でブレークポイント セットを共有する場合、1 つ以上の Prelookup ブロックで Simulink.Breakpoint
オブジェクトを使用します。Simulink.LookupTable
オブジェクトを Interpolation Using Prelookup ブロックで使用します。次に、ルックアップ テーブル オブジェクトがブレークポイント オブジェクトを指すように構成します。詳細については、ルックアップ テーブルの共有ブレークポイントとテーブル データのパッケージ化を参照してください。
Simulink.LookupTable
からサブクラス化し、基底クラスから継承するには、クラス定義ファイルの最初の行で次の構文を入力します。ここで、myLookuptable は新しいクラスの名前です。
classdef myLookuptable < Simulink.LookupTable
サブクラス化の例については、データ クラスの定義を参照してください。
サブクラスにプロパティを追加する場合、MATLAB® コマンド ラインでサブクラス オブジェクトを表示することでそれらを確認できます。プロパティ ダイアログ ボックスで、これらのプロパティが新しいタブに表示されます。
作成
LUTObj = Simulink.LookupTable
は、既定のプロパティ値をもつ Simulink.LookupTable
オブジェクト LUTObj
を返します。
モデル エクスプローラーを使用して Simulink.LookupTable
オブジェクトを作成するには、ツール バーのボタン を使用します。オブジェクトの既定の名前は
Object
です。
プロパティ ダイアログ ボックス
[ブレークポイントの指定] を [明示的な値]
(既定の設定) に設定すると、プロパティ ダイアログ ボックスのこのビューが表示されます。
ダイアログ ボックスの下部にテーブル データ値とブレークポイント データ値があります。この表形式の領域の詳細については、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集を参照してください。このテーブルの内容は [値] プロパティと等価であり、[ブレークポイントの指定] プロパティが [等間隔]
または [参照]
に設定されると表示されます。
テーブルとブレークポイント
- テーブルの次元数
ルックアップ テーブルの次元数。
30
以下の整数値を指定します。たとえば、3 次元のルックアップ テーブルを表すには、整数3
を指定します。- , ブレークポイントの指定
ブレークポイント セットの情報ソースで、
[Explicit values]
(既定)、[Reference]
または[Even spacing]
として指定されます。テーブルとレークポイント セットのすべてのデータを
Simulink.LookupTable
オブジェクトに格納するには、[ブレークポイントの指定] を[明示的な値]
に設定します。Simulink.LookupTable
オブジェクトは、生成コードに単一の構造体変数として表示されます。テーブル データを
Simulink.LookupTable
オブジェクトに格納し、ブレークポイント セットのデータをSimulink.Breakpoint
オブジェクトに格納するには、[ブレークポイントの指定] を[参照]
に設定します。Simulink.LookupTable
オブジェクトは、生成コードにテーブル データを含む別個の配列変数として表示されます。各Simulink.Breakpoint
オブジェクトは、ブレークポイント セットのデータを含む独立した配列または構造体変数として表示されます。テーブル データおよび等間隔のブレークポイントを
Simulink.LookupTable
オブジェクトに格納するには、[ブレークポイントの指定] を[等間隔]
に設定します。[最初の点] パラメーターと [間隔] パラメーターを使用して、等間隔のブレークポイントを生成します。
メモ
[ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定すると、ルックアップ テーブル オブジェクトが生成した構造体の調整可能なサイズ、ブレークポイント、およびテーブル エントリの順番を変更できます。- テーブル
テーブル データの情報。以下の特性を構成できます。
- 値
table データ。数値ベクトル、または最低 2 つの要素をもつ多次元配列を指定します。
[値] テーブル データは、[ブレークポイントの指定] プロパティが
[明示的な値]
に設定されている場合にダイアログ ボックスの下部に表示される表形式インターフェイスの内容と同じです。この表形式の領域の詳細については、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集を参照してください。メモ
このプロパティは、[ブレークポイントの指定] が
[等間隔]
または[参照]
に設定されている場合にのみ表示されます。式が数値ベクトルまたは多次元配列を返す場合、
sin(1:0.5:30)
などの算術演算子を含む式も使用できます。[適用] または [OK] をクリックすると、オブジェクトは式を実行し、その結果を使用してこのプロパティの値を設定します。[データ型] を
auto
に設定した場合、[値] を設定するためにはsingle([1 2 3])
などの型付き式を使用するか、fi
(Fixed-Point Designer) コンストラクターを使用してfi
オブジェクトを組み込みます。3 次元以上のテーブル データを指定する場合、[値] に表示されるデータは、関数
reshape
への呼び出しを含む式になります。データの値を編集するには、reshape
呼び出しの最初の引数を変更します。この引数にはすべての値がシリアル化されたベクトルで含まれています。次元に沿って要素を追加または削除する場合、変更された次元の長さを表す引数も修正しなければなりません。このデータは、より直感的なインターフェイスを使用して、ルックアップ テーブル ブロック内で編集できます。MATLAB からのルックアップ テーブル データのインポートを参照してください。
- データ型
テーブル データのデータ型。既定の設定は
[自動]
で、テーブル データは [値] に指定された値からデータ型を取得することを意味します。[1 2 3]
など型なし式を使用して [値] を設定する場合、テーブル データはデータ型としてdouble
を使用します。single([1 2 3])
など型付き式やfi
オブジェクトを指定する場合、テーブル データはその表現またはオブジェクトによって指定されたデータ型を使用します。列挙データ型もサポートされます。整数データ型、half データ型、浮動小数点データ型、固定小数点データ型、またはデータ型の式 (
Simulink.AliasType
オブジェクトの名前など) を明示的に指定できます。Simulink® のデータ型の詳細については、Simulink でサポートされているデータ型を参照してください。
Simulink.LookupTable
オブジェクトおよびSimulink.Breakpoint
オブジェクトのテーブルとブレークポイント データのデータ型を制御する方法を決定するには、ルックアップ テーブル オブジェクトのデータ型の制御 (Simulink Coder)を参照してください。- 次元
ルックアップ テーブル データの次元の長さ。
シンボリック次元を使用するには、文字ベクトルを指定します。Implement Symbolic Dimensions for Array Sizes in Generated Code (Embedded Coder)を参照してください。
- 最小値
table データの要素の最小値。既定値は空の
[]
です。数値の実数値を指定できます。Simulink がこのプロパティを使用する方法の詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。
- 最大値
table データの要素の最大値。既定値は空の
[]
です。数値の実数値を指定できます。Simulink がこのプロパティを使用する方法の詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。
- 格納された整数の最小値
固定小数点データ型をもつ
Simulink.LookupTable
オブジェクトに対する table データの要素の最小値。格納整数値として指定します。値は実際値の [最小値] から派生します。このプロパティは、プロパティ ダイアログ ボックスでのみ使用できます。- 格納された整数の最大値
固定小数点データ型をもつ
Simulink.LookupTable
オブジェクトに対する table データの要素の最大値。格納整数値として指定します。値は実際値の [最大値] から派生します。このプロパティは、プロパティ ダイアログ ボックスでのみ使用できます。- 単位
ルックアップ テーブルの要素の物理単位。
degC
などのテキストを指定できます。Simulink モデルでの単位の指定を参照してください。- フィールド名
生成コード内の構造体フィールドの名前。生成されたコードで構造体として表示されるように
Simulink.LookupTable
オブジェクトを構成した場合、このフィールドにはテーブル データが格納されます。既定値はTable
です。フィールド名を変更するには、テキストを指定します。- 説明
ルックアップ テーブルの説明。
This lookup table describes the action of a pump
などのテキストを指定できます。
- [ブレークポイント]
ブレークポイント セットの情報。各行は 1 つのブレークポイント セットです。追加のブレークポイント セットを構成するには、[テーブルの次元数] ボックスに整数値を指定します。
ブレークポイント セットについては、次の特性を構成できます。
- 値
ブレークポイント セットのデータ。最低 2 つの要素をもつ数値ベクトルを指定します。
メモ
このプロパティは、
[ブレークポイントの指定]
が[等間隔]
または[参照]
に設定されている場合にのみ表示されます。[値] ブレークポイント セット データは、[ブレークポイントの指定] プロパティが[明示的な値]
に設定されている場合にダイアログ ボックスの下部に表示される表形式インターフェイスの内容と同じです。この表形式の領域の詳細については、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集を参照してください。また、
sin(1:0.5:30)
のように算術演算子を含む式も、その式が数値ベクトルを返す限り使用できます。[適用] または [OK] をクリックすると、オブジェクトは式を実行し、その結果を使用してこのプロパティの値を設定します。[データ型] を
auto
に設定した場合、[値] を設定するためにはsingle([1 2 3])
などの型付き式を使用するか、fi
(Fixed-Point Designer) コンストラクターを使用してfi
オブジェクトを組み込みます。このデータは、より直感的なインターフェイスを使用して、ルックアップ テーブル ブロック内で編集できます。MATLAB からのルックアップ テーブル データのインポートを参照してください。
- データ型
ブレークポイント セットのデータ型。既定の設定は
auto
で、ブレークポイント セットが [値] に指定した値からデータ型を取得することを意味します。[1 2 3]
など型なし式を使用して [値] を設定する場合、ブレークポイント データはデータ型double
を使用します。single([1 2 3])
など型付き式やfi
オブジェクトを指定する場合、ブレークポイント データはその表現またはオブジェクトによって指定されたデータ型を使用します。整数データ型、浮動小数点データ型、固定小数点データ型、またはデータ型の表現 (
Simulink.AliasType
オブジェクトの名前など) を明示的に指定できます。Simulink のデータ型の詳細については、Simulink でサポートされているデータ型を参照してください。
Simulink.LookupTable
オブジェクトおよびSimulink.Breakpoint
オブジェクトのテーブルとブレークポイント データのデータ型を制御する方法を決定するには、ルックアップ テーブル オブジェクトのデータ型の制御 (Simulink Coder)を参照してください。- 次元
ブレークポイント セットの次元の長さ。
シンボリック次元を使用するには、文字ベクトルを指定します。Implement Symbolic Dimensions for Array Sizes in Generated Code (Embedded Coder)を参照してください。
- 最小値
ブレークポイント セットの要素の最小値。既定値は空の
[]
です。数値の実数値を指定できます。Simulink がこのプロパティを使用する方法の詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。
- 最大値
ブレークポイント セットの要素の最大値。既定値は空の
[]
です。数値の実数値を指定できます。Simulink がこのプロパティを使用する方法の詳細については、ブロック パラメーターの最小値と最大値の指定を参照してください。
- 単位
ブレークポイント セットの要素の物理単位。
degF
などのテキストを指定できます。Simulink モデルでの単位の指定を参照してください。- フィールド名
生成コード内の構造体フィールドの名前。このフィールドには、ブレークポイント セットのデータが保存されます。既定値は、最初のブレークポイント セットについては
BP1
、2 番目のセットについてはBP2
です。フィールド名を変更するには、テキストを指定します。- 調整可能なサイズの名前
生成コード内の構造体フィールドの名前。このフィールドには、ブレークポイント セットの長さ (要素数) が格納されます。生成されたコード アルゴリズムはこれを使用してテーブルのサイズを判定します。コードの実行中にテーブルの有効なサイズを調整するには、メモリ内でこの構造体フィールドの値を変更します。既定の名前は、最初のブレークポイント セットについては
N1
、2 番目のセットについてはN2
です。フィールド名を変更するには、テキストを指定します。この列は、[調整可能なサイズをサポートする] を選択したときのみ表示されます。
- 説明
ブレークポイント セットの説明。
This breakpoint set represents the pressure input
などのテキストを指定できます。- 最初の点
等間隔のブレークポイント データの最初の点。このパラメーターは、[ブレークポイントの指定] が
[等間隔]
に設定されている場合に使用できます。- 間隔
等間隔のブレークポイント データの点の間隔。このパラメーターは、[ブレークポイントの指定] が
[等間隔]
に設定されている場合に使用できます。- 名前
このブレークポイント セットの情報を格納する
Simulink.Breakpoint
オブジェクトの名前。この列は、[ブレークポイントの指定] を
[参照]
に設定しているときのみ表示されます。- 最初のポイント名
最初の点の情報を格納する
Simulink.Breakpoint
オブジェクトの名前。このパラメーターは、[ブレークポイントの指定] が[等間隔]
に設定されている場合に使用できます。- 間隔名
間隔の情報を格納する
Simulink.Breakpoint
オブジェクトの名前。このパラメーターは、[ブレークポイントの指定] が[等間隔]
に設定されている場合に使用できます。
- テーブル値およびブレークポイント値の編集領域
テーブル データおよびブレークポイント データの情報。関連付けられているテキスト ボックスに MATLAB 式を入力するか、付属するテーブルに直接データを追加できます。目的のデータ型を選択します。
テーブル要素を選択する
次のような標準キーボード ショートカットを使用する:
コピー — Ctrl + C
貼り付け — Ctrl + V
元に戻す — Ctrl + Z
削除
やり直し — Shift + Ctrl + Z
テーブルでのデータの入力または操作は簡単で直感的です。Microsoft® Excel® スプレッドシートのように、以下のような操作でテーブルを使用できます。
テーブル
— テーブル データ。数値ベクトル、または最低 2 つの要素をもつ多次元配列を指定します。式が数値ベクトルまたは多次元配列を返す場合、
sin(1:0.5:30)
などの算術演算子を含む式も使用できます。Enter キーを押すと、オブジェクトは式を実行し、その結果を使用してこのプロパティの値を設定します。3 次元以上のテーブル データを指定する場合、テーブルに表示されるデータは、関数
reshape
への呼び出しを含む式になります。データの値を編集するには、reshape
呼び出しの最初の引数を変更します。この引数にはすべての値がシリアル化されたベクトルで含まれています。次元に沿って要素を追加または削除する場合、変更された次元の長さを表す引数も修正しなければなりません。このデータは、より直感的なインターフェイスを使用して、ルックアップ テーブル ブロック内で編集できます。MATLAB からのルックアップ テーブル データのインポートを参照してください。
BP
N — ブレークポイント セットのデータ。最低 2 つの要素をもつ数値ベクトルを指定します。
また、
sin(1:0.5:30)
のように算術演算子を含む式も、その式が数値ベクトルを返す限り使用できます。Enter キーを押すと、オブジェクトは式を実行し、その結果を使用してこのプロパティの値を設定します。このデータは、より直感的なインターフェイスを使用して、ルックアップ テーブル ブロック内で編集できます。MATLAB からのルックアップ テーブル データのインポートを参照してください。
コード生成
- データ定義: ストレージ クラス
生成コードの構造体変数 ([ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定している場合) または配列変数 ([参照]
に設定している場合) のストレージ クラス。この変数にはテーブル データと、変数が構造体の場合にはブレークポイント セットのデータが格納されます。既定の設定は、[自動]
です。ストレージ クラスの詳細については、モデル インターフェイス要素の C コード生成の構成 (Simulink Coder)を参照してください。
Embedded Coder® がある場合、カスタム ストレージ クラスを選択できます。カスタム ストレージ クラスの詳細については、Struct ストレージ クラスを使用してパラメーター データを構造体に整理する (Embedded Coder)を参照してください。
- データ定義: 識別子
生成コードの構造体変数 ([ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定している場合) または配列変数 ([参照]
に設定している場合) の代替名。既定値は空で、この場合に生成コードはSimulink.LookupTable
オブジェクトの名前を構造体または配列変数の名前として使用します。識別子を設定するには、テキストを指定します。このプロパティを有効にするには、[データ定義: ストレージ クラス] を
[Auto]
以外に設定します。- データ定義: 配置
生成コードのデータ配置境界。構造体または配列変数に割り当てられるデータの開始メモリ アドレスは、指定した値の倍数になります。既定値は
-1
です。これは使用に基づいてコード ジェネレーターが最適な配置を決定することを指定します。128 を超えない 2 のべき乗である正の整数を指定します。コード置換のデータ配置を使用する方法の詳細については、Data Alignment for Code Replacement (Embedded Coder)を参照してください。
- 構造体の型定義: 名前
生成コードの構造体変数が使用する構造体の型の名前。既定値は空です。テキストを指定します。
このプロパティは、[ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定しているときのみ表示されます。- 構造体の型定義: データ スコープ
構造体の型定義のスコープで、カスタム コードからインポートされるか、生成コードからエクスポートされます。既定値は
[Auto]
です。[Auto]
を選択した場合、次のように処理されます。[構造体の型定義: ヘッダー ファイル] ボックスで値を指定していない場合、生成コードは構造体の型定義をファイル
にエクスポートします。model
_types.h
はモデル名です。model
[構造体の型定義: ヘッダー ファイル] ボックスで
myHdr.h
などの値を指定している場合、生成コードはmyHdr.h
から構造体の型定義をインポートします。
データ スコープを明示的に指定するには、次のようにします。
カスタム コードから生成コードに構造体の型定義をインポートするには、
[Imported]
を選択します。生成コードから構造体の型定義をエクスポートするには、
[Exported]
を選択します。
潜在的な MISRA C:2012 の違反を回避するには、構造体の型定義のデータ スコープを
[インポート]
または[エクスポート]
に設定します。[構造体の型定義: ヘッダー ファイル] ボックスに値を指定しない場合、生成コードと
との間で型定義がインポートまたはエクスポートされます。StructName
.h
は、プロパティ [構造体の型定義: 名前] で指定する名前です。StructName
このプロパティは、[ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定しているときのみ表示されます。- 構造体の型定義: ヘッダー ファイル
構造体の型定義を含むヘッダー ファイルの名前。作成したヘッダー ファイルから定義をインポートするか、生成されたヘッダー ファイルに定義をエクスポートすることができます。構造体の型のスコープを制御するには、[構造体の型定義: データ スコープ] プロパティの設定を調整します。
このプロパティは、[ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定しているときのみ表示されます。
詳細設定
- 調整可能なサイズをサポートする
生成コード内のテーブルの有効サイズの調整を可能にする指定。コード内で、オブジェクトに対応する構造体には、各ブレークポイント ベクトルについて 1 つの追加フィールドがあります。各追加フィールドには、対応するブレークポイント ベクトルの長さが格納されます。各フィールドの値を変更して、テーブルの有効サイズを調整できます。ブレークポイントおよびテーブルのサイズの詳細については、Breakpoint and Table Size Features in Lookup Tablesを参照してください。
このプロパティは、[ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定しているときのみ表示されます。このプロパティは、[このタイプの複数のインスタンスが別々のテーブル サイズおよびブレークポイント サイズをもつことを許可] を選択する場合は自動的に選択されます。メモ
[ブレークポイントの指定] を
[参照]
に設定してブレークポイントのデータをSimulink.Breakpoint
オブジェクトに格納している場合、生成コードでテーブル サイズの調整を有効にするには、各Simulink.Breakpoint
オブジェクトの [調整可能なサイズをサポートする] プロパティを使用します。- このタイプの複数のインスタンスが別々のテーブル サイズおよびブレークポイント サイズをもつことを許可
同じ構造体型をもつ異なるサイズのテーブルおよびブレークポイントをサポートするようにルックアップ テーブル オブジェクトを構成する指定。たとえば、次のように構成された同じ struct 型名をもつ 2 つの 1 次元ルックアップ テーブル オブジェクトがあるととします。
サイズ [1x4] のテーブルおよびブレークポイントをもつルックアップ テーブル
サイズ [1x6] のテーブルおよびブレークポイントをもつルックアップ テーブル
これらのオブジェクトを格納する 2 つのブロックをもつモデルをシミュレートできるようにするには、[このタイプの複数のインスタンスが別々のテーブル サイズおよびブレークポイント サイズをもつことを許可] チェック ボックスをオンにします。Simulink Coder™ によるコード生成では、テーブルおよびブレークポイントのデータを表す 2 つのオブジェクトに対するポインター型のメンバー フィールドをもつ共通の struct 型が生成されます。
このプロパティは、[ブレークポイントの指定] を
[明示的な値]
または[等間隔]
に設定しているときのみ表示されます。ブレークポイントおよびテーブルのサイズの詳細については、Breakpoint and Table Size Features in Lookup Tablesを参照してください。
プロパティ
コピーのセマンティクス
ハンドル。ハンドル クラスがコピー操作にどのように影響するかについては、オブジェクトのコピーを参照してください。
例
1 次元ルックアップ テーブルを表現する
LUTObj
という名前のSimulink.LookupTable
オブジェクトを作成します。LUTObj = Simulink.LookupTable;
テーブル データを指定します。
LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5];
ブレークポイント セットのデータを指定します。
LUTObj.Breakpoints(1).Value = [-2 -1 0 1 2];
生成コード内の構造体型の名前を指定します。
LUTObj.StructTypeInfo.Name = 'myLUTStruct';
LUTObj
を 1-D Lookup Table ブロック ダイアログ ボックスで使用できます。ブロック内で [データの仕様] を [ルックアップ テーブル オブジェクト]
に、[名前] を LUTObj
に設定します。
データを表示するには、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集の説明に従ってプロパティ ダイアログを使用します。
2 次元ルックアップ テーブルを表現する
LUTObj
という名前のSimulink.LookupTable
オブジェクトを作成します。LUTObj = Simulink.LookupTable;
テーブル データを指定します。
LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5; ... 6.6 7.7 8.8 9.9 10.1];
ブレークポイント セットのデータを指定します。
Breakpoints
プロパティで、ベクトル インデックス2
を使用して、2 番目のブレークポイント セットに値を設定します。LUTObj.Breakpoints(1).Value = [-1 1]; LUTObj.Breakpoints(2).Value = [-2 -1 0 1 2];
LUTObj
が、Breakpoints
プロパティの値に含まれる 2 番目のベクトル要素としてSimulink.lookuptable.Breakpoint
オブジェクトを作成します。Value
プロパティを除き、新しいオブジェクトのプロパティは既定の値です。生成コード内の構造体型の名前を指定します。
LUTObj.StructTypeInfo.Name = 'myLUTStruct';
LUTObj
を 2-D Lookup Table ブロック ダイアログ ボックスで使用できます。
データを表示するには、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集の説明に従ってプロパティ ダイアログを使用します。
1 から始まる毎秒値を等間隔に設定
1 から始まる毎秒値を等間隔に設定するには、Breakpoint オブジェクトを使用します。
LUTObj
という名前のSimulink.LookupTable
オブジェクトを作成します。LUTObj=Simulink.LookupTable
LUTObj = LookupTable with properties: Table: [1×1 Simulink.lookuptable.Table] BreakpointsSpecification: 'Explicit values' Breakpoints: [1×1 Simulink.lookuptable.Breakpoint] SupportTunableSize: 0 CoderInfo: [1×1 Simulink.CoderInfo] StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
ブレークポイントのプロパティを等間隔に設定します。
LUTObj.BreakpointsSpecification='Even spacing'
LUTObj = LookupTable with properties: Table: [1×1 Simulink.lookuptable.Table] BreakpointsSpecification: 'Even spacing' Breakpoints: [1×1 Simulink.lookuptable.Evenspacing] SupportTunableSize: 0 CoderInfo: [1×1 Simulink.CoderInfo] StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
ブレークポイントのプロパティを取得します。
LUTObj.Breakpoints(1)
ans = Evenspacing with properties: FirstPoint: 0 Spacing: 1 DataType: 'auto' Min: [] Max: [] Unit: '' FirstPointName: 'BPFirstPoint1' SpacingName: 'BPSpacing1' TunableSizeName: 'N1' Description: ''
最初の点のプロパティを設定するには、Breakpoint オブジェクトの
FirstPoint
プロパティを使用します。LUTObj.Breakpoints(1).FirstPoint=1
間隔のプロパティを設定するには、Breakpoint オブジェクトを使用します。
LUTObj.Breakpoints(1).Spacing=2
ブレークポイントのプロパティを取得します。
LUTObj.Breakpoints(1)
ans = Evenspacing with properties: FirstPoint: 1 Spacing: 2 DataType: 'auto' Min: [] Max: [] Unit: '' FirstPointName: 'BPFirstPoint1' SpacingName: 'BPSpacing1' TunableSizeName: 'N1' Description: ''
ルックアップ テーブルとブレークポイント セットのコード生成の制御
LUTObj
という名前の Simulink.LookupTable
オブジェクトを作成します。
LUTObj = Simulink.LookupTable;
テーブル データを指定します。
LUTObj.Table.Value = [1.00 2.25 3.50 4.75 6.00; ...
7.25 8.50 9.75 11.00 12.25];
ブレークポイント セットのデータを指定します。Breakpoints
プロパティで、配列インデックス 2
を使用して、2 番目のブレークポイント セットを表す追加の Simulink.lookuptable.BreakpointInfo
オブジェクトを作成します。
LUTObj.Breakpoints(1).Value = [-1 1]; LUTObj.Breakpoints(2).Value = [-2 -1 0 1 2];
ルックアップ テーブルと各ブレークポイント セットのデータ型を指定します。
LUTObj.Table.DataType = 'fixdt(1,16,2)'; LUTObj.Breakpoints(1).DataType = 'int16'; LUTObj.Breakpoints(2).DataType = 'int16';
生成コード内のテーブル データとブレークポイント セットを格納する、構造体フィールドの固有名を指定します。
LUTObj.Table.FieldName = 'myTable'; LUTObj.Breakpoints(1).FieldName = 'myBPSet1'; LUTObj.Breakpoints(2).FieldName = 'myBPSet2';
ストレージ クラス ExportedGlobal
を使用して、生成コードから構造体変数の定義をエクスポートします。
LUTObj.CoderInfo.StorageClass = 'ExportedGlobal';
生成コード内の構造体の型に LUTStructType
という名前を付けます。構造体の型定義を、生成された myLUTHdr.h
という名前のヘッダー ファイルにエクスポートします。
LUTObj.StructTypeInfo.Name = 'LUTStructType'; LUTObj.StructTypeInfo.DataScope = 'Exported'; LUTObj.StructTypeInfo.HeaderFileName = 'myLUTHdr.h';
モデルの n-D Lookup Table ブロックで、[データの仕様] を Lookup table object
に、[名前] を LUTObj
に設定します。
load_system('myModel_LUTObj') set_param('myModel_LUTObj/Lookup Table','DataSpecification','Lookup table object',... 'LookupTableObject','LUTObj')
モデルからコードを生成します。
slbuild('myModel_LUTObj')
### Starting build procedure for: myModel_LUTObj ### Generated code for 'myModel_LUTObj' is up to date because no structural, parameter or code replacement library changes were found. ### Successful completion of code generation for: myModel_LUTObj Build Summary 0 of 1 models built (1 models already up to date) Build duration: 0h 0m 2.141s
生成されたコードが、生成されたヘッダー ファイル LUTStructType
内の構造体の myLUTHdr.h
型を定義します。
file = fullfile('myModel_LUTObj_ert_rtw','myLUTHdr.h'); rtwdemodbtype(file,'typedef struct {','} LUTStructType;',1,1)
typedef struct { int16_T myBPSet1[2]; int16_T myBPSet2[5]; int16_T myTable[10]; } LUTStructType;
コードは、グローバル構造体変数 LUTObj
を使用して、テーブルおよびブレークポイント セットのデータを格納します。テーブル データは、指定された固定小数点データ型に基づいてスケーリングされます。
file = fullfile('myModel_LUTObj_ert_rtw','myModel_LUTObj.c'); rtwdemodbtype(file,'LUTStructType LUTObj = {','/* Variable: LUTObj',1,1)
LUTStructType LUTObj = { { -1, 1 }, { -2, -1, 0, 1, 2 }, { 4, 29, 9, 34, 14, 39, 19, 44, 24, 49 } } ; /* Variable: LUTObj
制限
サブシステム内のブロックが Simulink.LookupTable
オブジェクトまたは Simulink.Breakpoint
オブジェクトを使用する場合、データ型オーバーライドをサブシステムのみに設定することはできません。代わりに、データ型オーバーライドをモデル全体に設定します。