ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Data Store Memory

データ ストアの定義

  • ライブラリ:
  • Simulink / Signal Routing

説明

Data Store Memory ブロックは、名前付き共有データ ストアを定義して初期化します。共有データ ストアとは、同じデータ ストア名を指定する Data Store Read ブロックおよび Data Store Write ブロックが使用できるメモリ領域です。

データ ストアを定義する Data Store Memory ブロックの位置によって、そのデータ ストアにアクセスできる Data Store Read ブロックおよび Data Store Write ブロックが決まります。

  • Data Store Memory ブロックが "最上位システム" 内にある場合、Data Store Read ブロックと Data Store Write ブロックはモデル内のどの位置にあっても、データ ストアにアクセスできます。

  • Data Store Memory ブロックが "サブシステム" 内にある場合、モデルの階層構造内で同じサブシステムかそれより下にあるサブシステム内の Data Store Read ブロックと Data Store Write ブロックが、データ ストアにアクセスできます。

Data Store Read ブロックと Data Store Write ブロックは、Model ブロックを含むモデル内にあるか、参照モデル内にある Data Store Memory ブロックにはアクセスできません。

For Each Subsystem に Data Store Memory ブロックを含めないでください。

データ ストアから正しい結果を得るためには、データ ストアの読み込みと書き込みが、所定の順序で行われる必要があります。詳細は、以下を参照してください。

Data Store Memory ブロックに加えて、またはその代わりとして、Simulink.Signal オブジェクトを使用してデータ ストアを定義することができます。信号オブジェクトのある "ベース" ワークスペースに定義されたデータ ストアは、"グローバル" データ ストアです。グローバル データ ストアは、すべての参照モデルを含むすべてのモデルにアクセスできます。詳細については、データ ストアを参照してください。

パラメーター

すべて展開する

メイン

このブロックで定義するデータ ストアの名前を指定します。同じ名前をもつ Data Store Read ブロックと Data Store Write ブロックは、このブロックによって初期化されたデータ ストアから読み取りおよび書き込みを行うことができます。この名前は、Data Store Memory ブロックを表すことも、データ ストアになるように定義された記号オブジェクトを表すこともできます。

プログラムでの使用

ブロック パラメーター: DataStoreName
: 文字ベクトル
: 'A' | ...
既定の設定: 'A'

Data Store Read ブロックと Data Store Write ブロックがモデル内で使用するすべての場所のこのデータ ストアの名前を変更します。

制限

次の場合、[すべての名前の変更] を使用してデータ ストアの名前を変更することはできません。

  • データ ストア用に生成されたコードを制御するのにワークスペース内の Simulink.Signal オブジェクトを使用している

  • データ ストアを定義するのに Data Store Memory ブロックではなく Simulink.Signal オブジェクトを使用している

代わりに、モデル エクスプローラーで対応する Simulink.Signal オブジェクトの名前を変更しなければなりません。例については、信号オブジェクトで定義されるデータ ストアの名前の変更を参照してください。

現在のブロックと同じデータ ストア名をもち、現在のシステムまたはモデルの階層構造内でそれより下にあるサブシステム内にある Data Store Read ブロックと Data Store Write ブロックがすべてリストされます。ブロック パスをクリックすると、モデル内のそのブロックが表示および強調表示されます。

Signal Attributes

データ ストアに初期値を指定します。[最小値] パラメーターは、このパラメーターの最小値を指定し、[最大値] パラメーターは最大値を指定します。

非スカラー値を指定して、[次元]-1 (既定値) に設定した場合、データ ストアの次元は配列と同じになります。データ ストアに (Data Store Write ブロックを使用して) 書き込むデータはこれらの次元でなければなりません。

[次元] パラメーターを -1 以外の値に設定した場合、初期値がスカラーまたは MATLAB® 構造体である場合を除き、初期値の次元と指定した次元は一致しなければなりません。スカラーを指定した場合、データ ストアの各要素は、初期値としてスカラーを使用します。この手法を使用して、初期値の次元をデータ ストアの次元に手動で合わせることなく、各要素に同じ初期値 (指定したスカラー) を適用します。

このブロックを使用して非バーチャル バス信号を初期化するには、初期値を MATLAB 構造体として指定し、モデル コンフィギュレーション パラメーターの指定不足の初期化の検出[簡易] に設定します。構造体を使用した非バーチャル バス信号の初期化についての詳細は、バス信号の初期条件の指定を参照してください。

プログラムでの使用

ブロック パラメーター: InitialValue
: 文字ベクトル
: スカラー | ベクトル | 行列 | N 次元配列
既定の設定: '0'

ブロックが出力する最小値を指定します。既定値は [] (指定なし) です。この数値は有限の実数で double のスカラー値でなければなりません。

メモ

このブロックのデータ型としてバス オブジェクトを指定した場合、ブロックのバス データの最小値を設定しないでください。Simulink によりこの設定は無視されます。代わりに、データ型として指定したバス オブジェクトのバス要素の最小値を設定してください。バス要素の最小値プロパティの詳細については、Simulink.BusElement を参照してください。

Simulink® は、最小値を使って以下を行います。

プログラムでの使用

ブロック パラメーター: OutMin
: 文字ベクトル
: スカラー
既定の設定: '[ ]'

ブロックが出力する最大値を指定します。既定値は [] (指定なし) です。この数値は有限の実数で double のスカラー値でなければなりません。

メモ

このブロックのデータ型としてバス オブジェクトを指定した場合、ブロックのバス データの最大値を設定しないでください。Simulink によりこの設定は無視されます。代わりに、データ型として指定したバス オブジェクトのバス要素の最大値を設定します。バス要素の最大値プロパティの詳細については、Simulink.BusElement を参照してください。

Simulink は、最大値を使って以下を行います。

プログラムでの使用

ブロック パラメーター: OutMax
: 文字ベクトル
: スカラー
既定の設定: '[ ]'

出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: Inherit: auto)。

  • 組み込みデータ型名 (例: single)。

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)。

  • データ型に評価される式 (例: fixdt(1,16,0))。バス オブジェクトは式の中ではデータ型としては指定せず、Bus: <object name> を使用してバス データ型を指定してください。

[データ型アシスタントを表示] ボタン をクリックして、データ型の属性の設定に役立つ [データ型アシスタント] を表示します。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
型: 文字ベクトル
値: 'Inherit: auto' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>'
既定の設定: 'Inherit: auto'

固定小数点ツールが、ブロックに指定した [出力] データ型をオーバーライドしないようにするには、このパラメーターを選択します。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。

プログラムでの使用

ブロック パラメーター: LockScale
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

データ ストアの次元。既定の値 -1 を使用すると、[初期値] パラメーターでデータ ストアの次元を設定できます。ただし、この場合、初期値にスカラー拡張を使用することはできません。必要な次元数をもつ配列を使用して初期値を指定しなければなりません。

-1 以外の値を使用すると、初期値をスカラー (スカラー拡張用) または MATLAB 構造体として指定した場合を除き、[初期値] パラメーターと同じ次元を指定します。データ ストアがバス配列を表し、初期値に MATLAB 構造体を使用している場合、次元を指定して、この構造体でバス配列を初期化できます。

プログラムでの使用

ブロック パラメーター: Dimensions
型: 文字ベクトル
値: スカラー | ベクトル | 行列
既定の設定: '-1'

データ ストアがベクトルの初期値を 1 次元として解釈するよう指定します。

既定では、MATLAB はベクトル データを 2 次元の行列として表現します。たとえば、MATLAB は、ベクトル [1 2 3] を 1 行 3 列の行列として表現します。

このパラメーターを選択すると、データ ストアは 2 次元ではなく 1 次元のみを使用してベクトル データを表現します。たとえば、[1 2 3] を初期値に指定した場合、データ ストアは 3 つの要素をもつ 1 次元ベクトルを格納します。

詳細については、ソース ブロックの出力の次元の決定を参照してください。

プログラムでの使用

ブロック パラメーター: VectorParams1D
: 文字ベクトル
: 'off' | 'on'
既定の設定: 'on'

データ ストアに格納される値の数値型 (実数または複素数) を指定します。

プログラムでの使用

ブロック パラメーター: SignalType
型: 文字ベクトル
値: 'auto' | 'real' | 'complex'
既定の設定: 'auto'

単一のモデル参照階層で、複数の Model ブロックを使用して Data Store Memory ブロックが含まれるモデルを参照する場合、既定では、参照モデル (各 Model ブロック) の各インスタンスはデータストアの個別のコピーに対して読み書きを行います。[モデル インスタンス間で共有する] を選択すると、個別のコピーを操作する代わりに、すべてのインスタンスが同じデータ ストアに対して読み書きを行います。

モデル コンフィギュレーション パラメーターの [コード インターフェイスのパッケージ化][再利用可能な関数] に設定し、モデル (Simulink Coder™) から再呼び出し可能なコードを生成すると、[モデル インスタンス間で共有する] が選択されているデータ ストアがエントリポイント関数を直接アクセスして生成したグローバル シンボルとしてコードに表示されます。たとえば、グローバル シンボルはグローバル変数またはグローバル構造体変数のフィールドです。したがって、エントリポイント関数に対してコードが行う各呼び出し (モデルの各インスタンス) でデータが共有されます。

例については、再利用可能なアルゴリズムのインスタンス間でのデータ ストアの共有を参照してください。詳細については、参照モデル インスタンス間でのデータの共有を参照してください。

プログラムでの使用

ブロック パラメーター: ShareAcrossModelInstances
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

モデルをコンパイルする際に Simulink が、モデル ワークスペースとベース ワークスペースで同じ名前をもつ Simulink.Signal オブジェクトを検索するよう指定します。詳細については、記号の解釈で説明されています。Simulink がそのようなオブジェクトを見つけられない場合、コンパイルは停止してエラーが発生します。そうでない場合には、Simulink は信号オブジェクトの属性を対応する Data Store Memory ブロックの属性と比較します。ブロックとオブジェクトの属性が矛盾する場合、Simulink はモデル コンパイルを停止し、エラーを表示します。

プログラムでの使用

ブロック パラメーター: StateMustResolveToSignalObject
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

ターゲット パッケージが定義する信号オブジェクト クラスを選択してカスタム ストレージ クラスのパッケージを選択します。たとえば、組み込みパッケージ mpt からカスタム ストレージ クラスを適用するには [mpt.Signal] を選択します。Embedded Coder® ソフトウェアで ERT ベースのコード生成ターゲットを使用している場合を除き、カスタム ストレージ クラスは生成されたコードに影響しません。

ストレージ クラスの詳細については、個別の信号、状態、およびパラメーター データ要素へのストレージ クラスの適用 (Simulink Coder)を参照してください。カスタム ストレージ クラスの詳細については、Apply Built-In and Customized Storage Classes to Data Elements (Embedded Coder)を参照してください。

プログラムでの使用

ブロック パラメーター: StateSignalObject
型: 文字ベクトル
値: 'Simulink.Signal' | ...
既定の設定: 'Simulink.Signal'

リストから選択したストレージ クラスまたはカスタム ストレージ クラスを適用します。ストレージ クラスの詳細については、個別の信号、状態、およびパラメーター データ要素へのストレージ クラスの適用 (Simulink Coder)を参照してください。カスタム ストレージ クラスの詳細については、Apply Built-In and Customized Storage Classes to Data Elements (Embedded Coder)を参照してください。

[信号オブジェクト クラス] を使用して、Simulink 以外のパッケージからカスタム ストレージ クラスを選択します。

このパラメーターをプログラムによって設定するには、StateStorageClass または StateSignalObject を使用します。個別の信号、状態、およびパラメーター データ要素へのストレージ クラスの適用 (Simulink Coder)を参照してください。

プログラムでの使用

ブロック パラメーター: StateStorageClass
型: 文字ベクトル
値: 'Auto' | 'Model default' | 'ExportedGlobal' | 'ImportedExtern' | 'ImportedExternPointer' | 'Custom' | ...
既定の設定: 'Auto'

const または volatile などのストレージ型修飾子を指定します。

メモ

TypeQualifier は将来のリリースで削除されます。ストレージ型修飾子をデータに適用するには、カスタム ストレージ クラスとメモリ セクションを使用します。Embedded Coder で ERT ベースのコード生成ターゲットを使用している場合を除き、カスタム ストレージ クラスとメモリ セクションは生成されたコードに影響しません。

シミュレーション時、このブロックは次の値を使用します。

  • 状態名が関係付けられる信号オブジェクトの初期値

  • 信号オブジェクトの最小値と最大値

詳細については、データ オブジェクトを参照してください。

依存関係

このパラメーターを有効にするには、[コード生成ストレージ クラス][ExportedGlobal][ImportedExtern][ImportedExternPointer] または [Model default] に設定します。このパラメーターは以前にこの値を設定している場合を除き、非表示です。

プログラムでの使用

ブロック パラメーター: RTWStateStorageTypeQualifier
型: 文字ベクトル
値: '' | 'const' | 'volatile' | ...
既定の設定: ''

診断

このタイム ステップで、モデルがデータを書き込んでいないデータ ストアからデータを読み取ろうとしたときに実行する診断アクションを選択します。[モデル コンフィギュレーション パラメーター][診断][データ有効性] ペインの [Data Store Memory ブロック] セクションの書き込み前の読み取りを検出診断も参照してください。

  • なし — 応答しません。

  • 警告 — 警告が表示され、シミュレーションは続行されます。

  • エラー — シミュレーションを終了し、エラーを表示します。

プログラムでの使用

ブロック パラメーター: ReadBeforeWriteMsg
型: 文字ベクトル
値: 'none' | 'warning' | 'error'
既定の設定: 'warning'

モデルがデータ ストアからデータを読み込んだ後、現在のタイム ステップでモデルがデータ ストアにデータを書き込もうとしたときに、行う診断アクションを選択します。[モデル コンフィギュレーション パラメーター][診断][データ有効性] ペインの [Data Store Memory ブロック] セクションの読み取り後の書き込みを検出診断も参照してください。

  • なし — 応答しません。

  • 警告 — 警告が表示され、シミュレーションは続行されます。

  • エラー — シミュレーションを終了し、エラーを表示します。

プログラムでの使用

ブロック パラメーター: WriteAfterReadMsg
型: 文字ベクトル
値: 'none' | 'warning' | 'error'
既定の設定: 'warning'

現在のタイム ステップで、モデルが 2 度連続してデータ ストアにデータを書き込もうとしたときに、行う診断アクションを選択します。[モデル コンフィギュレーション パラメーター][診断][データ有効性] ペインの [Data Store Memory ブロック] セクションの書き込み後の書き込みを検出診断も参照してください。

  • なし — 応答しません。

  • 警告 — 警告が表示され、シミュレーションは続行されます。

  • エラー — シミュレーションを終了し、エラーを表示します。

プログラムでの使用

ブロック パラメーター: WriteAfterWriteMsg
型: 文字ベクトル
値: 'none' | 'warning' | 'error'
既定の設定: 'warning'

ログ

シミュレーション時にこの信号の値を MATLAB ワークスペースに保存するには、このオプションを選択します。詳細については、信号のログを参照してください。

プログラムでの使用

ブロック パラメーター: DataLogging
型: 文字ベクトル
値: 'off' | 'on'
既定の設定: 'off'

リスト ボックスと編集フィールドで構成されるこのコントロールのペアを使用して、ログに記録された信号データに関連付けられた名前を指定します。

既定の設定で、Simulink は信号名をログ名として使用します。独自のログ名を指定するには、リスト ボックスから [カスタム] を選択し、隣接する編集フィールドにカスタム名を入力します。

プログラムでの使用

ブロック パラメーター: DataLoggingNameMode
型: 文字ベクトル
値: 'SignalName' | 'Custom'
既定の設定: ''

メモ

DataLoggingNameModeCustom に設定すると、DataLoggingName パラメーターを使用して、ログに記録された信号データに関連付けられた名前を指定しなければなりません。

ブロック パラメーター: DataLoggingName
型: 文字ベクトル
値: 文字ベクトル
既定の設定: ''

最後の N 個のデータ点を除いて、すべて破棄します。ここで、N は隣の編集フィールドに入力された値です。詳細については、データ ストアのログ記録を参照してください。

プログラムでの使用

ブロック パラメーター: DataLoggingMaxPoints
型: 文字ベクトル
値: 非ゼロの整数
既定の設定: '5000'

N 個ごとに 1 個のデータ点のログを作成します。ここで、N は隣の編集フィールドに入力された値です。たとえば、ステップ サイズが 0.1 の固定ステップ ソルバーをモデルで使用するとします。このオプションを選択し、既定の間引き値 (2) を受け入れると、Simulink はこの信号のデータ点を時刻 0.00.20.4、などで記録します。詳細については、データ ストアのログ記録を参照してください。

プログラムでの使用

ブロック パラメーター: DataLoggingLimitDataPoints
型: 文字ベクトル
値: 非ゼロの整数
既定の設定: '2'

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | integer | single | string

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

R2006a より前に導入