Main Content

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 つの要素をもつ多次元配列を指定します。

[値] テーブル データは、[ブレークポイントの指定] プロパティが [明示的な値] に設定されている場合にダイアログ ボックスの下部に表示される表形式インターフェイスの内容と同じです。この表形式の領域の詳細については、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集を参照してください。

メモ

このプロパティは、[ブレークポイントの指定][等間隔] または [参照] に設定されている場合にのみ表示されます。

Lookup Table property dialog box with Breakpoints specification set to Even spacing.

式が数値ベクトルまたは多次元配列を返す場合、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 からのルックアップ テーブル データのインポートを参照してください。

  • BPN — ブレークポイント セットのデータ。

    最低 2 つの要素をもつ数値ベクトルを指定します。

    また、sin(1:0.5:30) のように算術演算子を含む式も、その式が数値ベクトルを返す限り使用できます。Enter キーを押すと、オブジェクトは式を実行し、その結果を使用してこのプロパティの値を設定します。

    このデータは、より直感的なインターフェイスを使用して、ルックアップ テーブル ブロック内で編集できます。MATLAB からのルックアップ テーブル データのインポートを参照してください。

コード生成

データ定義: ストレージ クラス

生成コードの構造体変数 ([ブレークポイントの指定][明示的な値] または [等間隔] に設定している場合) または配列変数 ([参照] に設定している場合) のストレージ クラス。この変数にはテーブル データと、変数が構造体の場合にはブレークポイント セットのデータが格納されます。既定の設定は、[自動] です。

ストレージ クラスの詳細については、C Data Code Interface Configuration for Model Interface Elements (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を参照してください。

プロパティ

すべて展開する

ブレークポイント セットの情報。Simulink.lookuptable.Breakpoint オブジェクトのベクトル、文字ベクトルの cell 配列、または Simulink.lookuptable.Evenspacing オブジェクトのベクトルとして指定します。

Simulink.lookuptable.Breakpoint オブジェクトのベクトルを使用する場合、各オブジェクトはブレークポイント セットを表します。Simulink.lookuptable.Breakpoint オブジェクトのベクトルを使用するには、プロパティ BreakpointsSpecification'Explicit values' に設定します。

文字ベクトルの cell 配列を使用する場合、各文字ベクトルは Simulink.Breakpoint オブジェクトの名前を表します。文字ベクトルの cell 配列を使用するには、プロパティ BreakpointsSpecification'Reference' に設定します。

Simulink.lookuptable.Evenspacing オブジェクトのベクトルを使用する場合、各オブジェクトはブレークポイント セットを表します。Simulink.lookuptable.Evenspacing オブジェクトのベクトルを使用するには、プロパティ BreakpointsSpecification'Even Spacing' に設定します。

ブレークポイント セット情報のソースで、'Explicit values' (既定)、'Even spacing' または 'Reference' として指定されます。[ブレークポイント][指定] パラメーターを参照してください。

データ型: char

ルックアップ テーブルとブレークポイント セットを格納する構造体変数 (BreakpointsSpecification'Explicit values' または 'Even spacing' に設定している場合) または配列変数 ('Reference') のコード生成設定。Simulink.CoderInfo オブジェクトとして指定します。この組み込みオブジェクトを使用して、ストレージ クラスまたはカスタム ストレージ クラスを指定できます。Simulink.CoderInfo を参照してください。

生成コード内で構造体変数が使用する構造体の型の設定。Simulink.lookuptable.StructTypeInfo オブジェクトとして指定します。

BreakpointsSpecification'Reference' に設定すると、Simulink.LookupTable オブジェクトは生成コードに構造体として出現しません。コード ジェネレーターはこのプロパティを無視します。

テーブルの有効サイズの調整可能性を有効にするコードを生成するオプションで、true または false が指定されます。[調整可能なサイズをサポートする] パラメーターを参照してください。

データ型: logical

table データの情報。Simulink.lookuptable.Table オブジェクトとして指定します。

コピーのセマンティクス

ハンドル。ハンドル クラスがコピー操作にどのように影響するかについては、オブジェクトのコピーを参照してください。

1 次元ルックアップ テーブルを表現する

  1. LUTObj という名前の Simulink.LookupTable オブジェクトを作成します。

    LUTObj = Simulink.LookupTable;

  2. テーブル データを指定します。

    LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5];

  3. ブレークポイント セットのデータを指定します。

    LUTObj.Breakpoints(1).Value = [-2 -1 0 1 2];

  4. 生成コード内の構造体型の名前を指定します。

    LUTObj.StructTypeInfo.Name = 'myLUTStruct';

LUTObj1-D Lookup Table ブロック ダイアログ ボックスで使用できます。ブロック内で [データの仕様][ルックアップ テーブル オブジェクト] に、[名前]LUTObj に設定します。

データを表示するには、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集の説明に従ってプロパティ ダイアログを使用します。

2 次元ルックアップ テーブルを表現する

  1. LUTObj という名前の Simulink.LookupTable オブジェクトを作成します。

    LUTObj = Simulink.LookupTable;

  2. テーブル データを指定します。

    LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5; ...
                              6.6 7.7 8.8 9.9 10.1];

  3. ブレークポイント セットのデータを指定します。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 プロパティを除き、新しいオブジェクトのプロパティは既定の値です。

  4. 生成コード内の構造体型の名前を指定します。

    LUTObj.StructTypeInfo.Name = 'myLUTStruct';

LUTObj2-D Lookup Table ブロック ダイアログ ボックスで使用できます。

データを表示するには、ルックアップ テーブル スプレッドシートによるルックアップ テーブル データの編集の説明に従ってプロパティ ダイアログを使用します。

1 から始まる毎秒値を等間隔に設定

1 から始まる毎秒値を等間隔に設定するには、Breakpoint オブジェクトを使用します。

  1. 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]
  2. ブレークポイントのプロパティを等間隔に設定します。

    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]
  3. ブレークポイントのプロパティを取得します。

    LUTObj.Breakpoints(1)
    
    
    ans = 
    
      Evenspacing with properties:
    
             FirstPoint: 0
                Spacing: 1
               DataType: 'auto'
                    Min: []
                    Max: []
                   Unit: ''
         FirstPointName: 'BPFirstPoint1'
            SpacingName: 'BPSpacing1'
        TunableSizeName: 'N1'
            Description: ''
  4. 最初の点のプロパティを設定するには、Breakpoint オブジェクトの FirstPoint プロパティを使用します。

    LUTObj.Breakpoints(1).FirstPoint=1
  5. 間隔のプロパティを設定するには、Breakpoint オブジェクトを使用します。

    LUTObj.Breakpoints(1).Spacing=2
  6. ブレークポイントのプロパティを取得します。

    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')
Warning: Method 'getInstance' is not defined for class 'CloneDetector.ExclusionEditorUIService' or is removed from MATLAB's search path.
### Starting build procedure for: myModel_LUTObj
### Successful completion of code generation for: myModel_LUTObj

Build Summary

Top model targets built:

Model           Action           Rebuild Reason                                    
===================================================================================
myModel_LUTObj  Code generated.  Code generation information file does not exist.  

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 54.386s

生成されたコードが、生成されたヘッダー ファイル LUTStructType 内の構造体の myLUTHdr.h 型を定義します。

file = fullfile('myModel_LUTObj_ert_rtw','myLUTHdr.h');
coder.example.extractLines(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');
coder.example.extractLines(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 オブジェクトを使用する場合、データ型オーバーライドをサブシステムのみに設定することはできません。代わりに、データ型オーバーライドをモデル全体に設定します。

バージョン履歴

R2016b で導入

すべて展開する