ドキュメンテーション

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

Data Store Memory

データ ストアの定義

ライブラリ

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 ブロックにはアクセスできません。

Data Store Memory ブロックを For Each Subsystem が表現するサブシステムに含めないでください。

データ ストアを初期化するには、[初期値] パラメーターを使用します。[初期値] パラメーターでスカラー値か値の配列を指定します。配列の次元によって、データ ストアの次元が決まります。データ ストアに書き込まれるデータは、[初期値] パラメーターによって指定された次元をもたなければなりません。そうでない場合、エラーが発生します。

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

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

サポートするデータ型

Data Store Memory ブロックは、次のデータ型の実信号または複素数信号を格納します。

  • 浮動小数点

  • 組み込み整数

  • 固定小数点

  • boolean

  • 列挙型

  • バス

ブロックは可変サイズの入力信号をサポートしていません。

    メモ:   このブロックのデータ型としてバス オブジェクトを指定した場合、ブロックのバス データの最小値および最大値を設定しないでください。Simulink® はこれらの設定を無視します。代わりに、データ型として指定したバス オブジェクトのバス要素の最小値と最大値を設定してください。値は有限の実数で double のスカラー値にする必要があります。

    バス要素の最小および最大プロパティの詳細は、Simulink.BusElement を参照してください。

詳細は、Simulink ドキュメンテーションの「Simulink でサポートされているデータ型」を参照してください。

Data Store Memory ブロックのあるバスの配列を使用できます。バス配列の定義と使用方法の詳細は、「バス配列へのバスの統合」を参照してください。

パラメーターとダイアログ ボックス

[Data Store Memory ブロック] ダイアログ ボックスの [メイン] ペインは、次のように表示されます。

データ ストア名

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

すべての名前の変更

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

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

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

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

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

対応する Data Store Read/Write ブロック

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

[Data Store Memory ブロック] ダイアログ ボックスの [信号属性] ペインは、次のように表示されます。

初期値

データ ストアに初期値を指定します。この値の次元によって、データ ストアに書き込むことができるデータの次元が決まります。[最小値] パラメーターは、このパラメーターの最小値を指定し、[最大値] パラメーターは最大値を指定します。

初期値の次元は、初期値が MATLAB® 構造体である場合を除き、[信号属性][次元] パラメーターに指定する次元と一致しなければなりません。

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

最小値

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

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

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

最大値

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

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

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

データ型

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

  • データ型継承ルール (例: [継承: 自動])

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

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

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

  • Bus: <object name>。バスの構造体の定義に使用するバス オブジェクト名を入力します。このバスは非バーチャル バスでなければなりません。バス オブジェクトを作成または変更する必要がある場合、[データ型アシスタントを表示] ボタン をクリックしてから [バス オブジェクト] フィールドの右にある [編集] ボタンをクリックして Simulink バス エディターを開きます。バス エディターの詳細は、「バス エディターによるバス オブジェクトの管理」を参照してください。

[データ型アシスタントを表示] ボタン をクリックして、[データ型] パラメーターに関する設定を行う [データ型アシスタント] を表示します

「信号のデータ型の制御」を参照してください。

固定小数点ツールによる変更に対して出力データ型の設定をロックする

固定小数点ツールや固定小数点アドバイザーによる変更を避けるために、このブロックの出力データ型の設定をロックします。詳細は、「[出力データ型の設定をロックする] の使用」を参照してください。

信号タイプ

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

次元 (初期値からの推定数 - 1)

初期値に MATLAB 構造体を指定する場合を除き、[初期値] の次元と一致する次元を指定します。たとえば、初期値に MATLAB 構造体を使用する場合、この MATLAB 構造体のバスの配列を初期化するために次元を指定する必要があります。

ベクトル パラメーターを 1 次元として解釈

このオプションを有効にし、[初期値] パラメーターを列行列または行行列として指定すると、Simulink はデータ ストアを要素数が行ベクトルまたは列ベクトルの要素数に等しい 1 次元配列に初期化します。「ソース ブロックの出力の次元の決定」を参照してください。

データ ストア名を Simulink の信号オブジェクトに関連付ける

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

信号オブジェクト クラス

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

ストレージ クラス

リストから選択したストレージ クラスまたはカスタム ストレージ クラスを適用します。ストレージ クラスの詳細については、「ストレージ クラスの適用による、コード内での信号と状態の制御」を参照してください。カスタム ストレージ クラスの詳細については、「Control Data Representation by Applying Custom Storage Classes」を参照してください。

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

TypeQualifier

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

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

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

詳細は、Simulink Coder™ ドキュメンテーションの「生成コードでの離散ブロック状態の名前付け」を参照してください。

[Data Store Memory ブロック] ダイアログ ボックスの [診断] ペインは、次のように表示されます。

書き込み前の読み取りを検出

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

既定の設定: 警告

なし

何のアクションもしません。

警告

警告が表示されます。

エラー

シミュレーションが終了し、エラー メッセージが表示されます。

読み取り後の書き込みを検出

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

既定の設定: 警告

なし

何のアクションもしません。

警告

警告が表示されます。

エラー

シミュレーションが終了し、エラー メッセージが表示されます。

書き込み後の書き込みを検出

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

既定の設定: 警告

なし

何のアクションもしません。

警告

警告が表示されます。

エラー

シミュレーションが終了し、エラー メッセージが表示されます。

[Data Store Memory ブロック] ダイアログ ボックスの [ログ] ペインは、次のように表示されます。

信号データのログ

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

ログ名

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

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

データ

このコントロール グループを使用して、Simulink がこの信号でログに記録するデータの量を制限します。

  • データ点の制限: 最後の N 個のデータ点を除いて、すべて破棄します。ここで、N は隣の編集フィールドに入力された値です。

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

詳細は、「データ ストアのログ記録」を参照してください。

特性

データ型

double | single | boolean | 整数 | 固定小数点 | 列挙型 | バス

多次元信号

あり

可変サイズの信号

なし

コード生成

あり

R2006a より前に導入

この情報は役に立ちましたか?