From Workspace
ワークスペースから Simulink モデルへの信号データの読み込み

ライブラリ:
Simulink /
Sources
説明
From Workspace ブロックは、ワークスペースから Simulink® モデルに対してデータを読み取り、そのデータをブロック出力で信号または非バーチャル バスとして提供します。データはベース ワークスペース、モデル ワークスペース、またはマスク ワークスペースから読み込むことができます。From Workspace ブロックを使用して、参照モデルまたはサブシステムにアクセスできるワークスペースからモデルの階層構造内の任意のモデルまたはサブシステムに信号データを読み込むことができます。
サンプルの出力周期、内挿および外挿動作、ゼロクロッシング検出を使用するかどうかを含む、ブロックでワークスペース データから出力を構成する方法を指定できます。
From Workspace ブロック アイコンは [データ] パラメーターの値を表示します。たとえば、From Workspace ブロックを使用してデータを変数 x に読み込む場合、x
を [データ] パラメーターの値として指定すると、ブロックが x
を表示します。
読み込むデータの指定
From Workspace ブロックの読み込むデータは [データ] パラメーターを使用して指定します。変数名などの [データ] パラメーターの値は MATLAB® 式として指定できます。[データ] パラメーター内の式は、From Workspace ブロックがサポートする形式のデータとして評価されなければなりません。式がどのように評価されるかの詳細については、記号の解釈を参照してください。
From Workspace ブロックはデータ ディクショナリからデータを読み込みません。データ ディクショナリを使用して、シミュレーションの入力データではなく、モデルの設計データのみを保存します。[サンプル時間] パラメーターの値など、From Workspace ブロックに関連する設計データをデータ ディクショナリに保存できます。
例
この例では、MATLAB ワークスペースから 2 次元構造体を読み取る方法を示します。モデルを開くと、次のコードが PreLoadFcn
コールバックで実行されます。
t1 = 0.2 * [0:49]'; m = magic(10); M = repmat(m,[1 1 length(t1)]); data.time=t1; data.signals.values = M; data.signals.dimensions=[10 10];
このコードでは、関数 magic
を使用して、10 行 10 列の行列 (2 次元信号) を作成し、時間ベクトルを追加することにより 3 次元行列を作成します。時間ベクトルは列ベクトルでなければなりません。signals.values
フィールドは 3 次元行列で、3 番目の次元は時間に対応します。signals.dimensions
フィールドは 2 要素のベクトルです。最初の要素は signals.values
フィールドの行数、2 番目の要素は列数です。
モデルを実行すると、From Workspace ブロックはワークスペースから構造体 data
を読み取ります。
拡張例
端子
出力
ワークスペースから読み込まれたデータ。ブロック出力で信号または非バーチャル バスとして提供されます。読み込むデータに応じて、出力信号は次のようになります。
スカラー、ベクトル、多次元、または制限付き可変サイズ信号
バス
バス配列 (R2021a 以降)
From Workspace ブロックは、すべての組み込み数値データ型とカスタム固定小数点データ型の実数データおよび複素数データの読み込みをサポートします。string データやカスタムの列挙データ型またはバス データ型をもつデータを読み込むこともできます。
R2024b より前: From Workspace ブロックで int64
データ型または uint64
データ型をもつ入力信号値の読み込みはサポートされていません。
データ型: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
複素数のサポート: あり
パラメーター
ワークスペースから読み込むデータ。MATLAB 変数、または From Workspace ブロックによってサポートされている形式のデータとして評価される MATLAB 式として指定します。この式では、From Workspace ブロックが出力で提供するデータを作成したり、あるいは読み込むデータが含まれるワークスペース変数を参照したりすることができます。式の評価方法の詳細については、記号の解釈を参照してください。
From Workspace ブロックは、スカラー、多次元、可変サイズの信号の実数または複素数のデータ、さらにバスまたはバス配列のデータを読み込むことができます。
From Workspace ブロックでは、モデル内でブロックに生成させる出力のタイプに応じて異なる入力データ形式がサポートされています。すべての出力のタイプとデータ形式で、以下のとおりです。
入力データの時間値は
double
データ型で、単調増加する必要があります。時間値およびデータ値に
Inf
値またはNaN
値が含まれていてはなりません。
出力のタイプ | データ形式 | ヒント |
---|---|---|
スカラーまたはベクトル信号 |
|
|
多次元信号 |
|
|
可変サイズの信号 |
| From Workspace ブロックを使用して読み込むことのできる形式で可変サイズの信号を記録するには、信号を最上位の Outport ブロックに接続し、モデルの [保存形式] コンフィギュレーション パラメーターを |
バス |
| バスの入力データを部分的に指定するには、入力データ構造体で、データを読み込む必要がないバス要素を |
バス配列 (R2021a 以降) | それぞれがバス配列内のバスのデータを表す構造体の配列 |
|
詳細については、From Workspace ブロックを使用したデータの読み込みを参照してください。
ヒント
To File ブロックを使用して配列形式に記録されたデータを読み込むには、時間値が 1 行ではなく 1 列になるように配列を転置します。関数
transpose
を使用して、転置されたデータを新しいファイルに保存できます。関数
sim
、parsim
、またはbatchsim
を使用して実行したプログラムによるシミュレーションでは、Simulink.SimulationInput
オブジェクトを使用して From Workspace ブロックの読み込むデータを指定できます。関数
setBlockParameter
を使用してブロックに対してシミュレーションで使用するVariableName
パラメーターの値を設定します。関数
setVariable
を使用して、入力データが含まれた変数をSimulationInput
オブジェクトに追加します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
ブロック パラメーターの値をプログラムで取得するには、関数 get_param
を使用します。
パラメーター: | VariableName |
値: | 'simin' (既定値) | MATLAB expression | timeseries object | timetable | structure | 2-D array |
データ型: | char | string |
例: set_param("myModel/From Workspace","VariableName","inData")
configures the From Workspace block named From Workspace
in the model myModel
to load data stored in the MATLAB variable named inData
.
From Workspace ブロックが読み込むワークスペース データのデータ型。既定では、From Workspace ブロックはワークスペース データ、または信号のデータ型を定義する下流のブロックから出力信号のデータ型を継承します。
ヒント
スカラー、ベクトル、または多次元信号のデータを読み込むときに、出力データ型を継承することを選択するか、ワークスペース データのデータ型に一致するように出力データ型を指定することができます。
バスまたはバス配列のデータを読み込むには、[出力データ型] を
Bus: <bus_object>
に設定し、出力バスを定義するSimulink.Bus
オブジェクトの名前を指定します。列挙型データを読み込むときは、[出力データ型] を
Enum: <class_name>
に設定し、列挙型データ値を定義する列挙型クラスの名前を指定します。データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、
をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
ブロック パラメーターの値をプログラムで取得するには、関数 get_param
を使用します。
パラメーター: | OutDataTypeStr |
値: | 'Inherit: auto' (既定値) | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'string' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'Enum: <class name>' | 'Bus: <object name>' | data type expression |
データ型: | char | string |
例: set_param("myModel/From Workspace","OutDataTypeStr","int32")
specifies that data type must be int32
for the data the From Workspace block named From Workspace
loads into the model myModel
.
[サンプル時間] パラメーターは、シミュレーション中にブロックが新しい出力値をいつ計算するかを指定します。詳細については、サンプル時間の指定を参照してください。
出力に時間オフセットをもたせない場合は、[サンプル時間] パラメーターをスカラーとして指定します。出力に時間オフセットを追加する場合は、[サンプル時間] パラメーターを、最初の要素がサンプリング周期、2 番目の要素がオフセットである 1
行 2
列のベクトルとして指定します。
既定では、[サンプル時間] パラメーターの値は 0
で、これは時間オフセットのない連続サンプル時間を示します。離散信号の場合は、[サンプル時間] を離散サンプリング間隔として指定します。たとえば、[サンプル時間] として 0.1
を指定して、100 ミリ秒ごとにサンプリングされる離散信号をモデル化します。値を継承するには、[サンプル時間] として -1
を指定します。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
ブロック パラメーターの値をプログラムで取得するには、関数 get_param
を使用します。
パラメーター: | SampleTime |
値: | '0' (既定値) | scalar | vector |
データ型: | char | string |
例: set_param("myModel/From Workspace","SampleTime","0.1")
configures the From Workspace block named From Workspace
in the model myModel
to execute with a sample time of 0.1
seconds.
内挿法は、読み込まれたワークスペース データにおいて、時間値の間にあるシミュレーション時間に対して出力値を提供するために使用されます。[データを内挿する] を選択すると、From Workspace ブロックは、読み込まれたワークスペース データ内の隣接する値を使用して出力値を線形内挿します。[データを内挿する] が選択されていない場合、From Workspace ブロックは、読み込まれたワークスペース データ内の前のデータ点の値を提供します。内挿アルゴリズムの詳細については、内挿を参照してください。
[データを内挿する] パラメーターと [最後のデータ後の出力フォーム] パラメーターは、読み込まれたワークスペース データにおいて、From Workspace ブロックが最初のデータ点の前または最後のデータ点の後のシミュレーション時間に対して出力値を外挿する方法を制御します。From Workspace ブロックの外挿動作に関する詳細については、外挿を参照してください。
以下の場合は、[データを内挿する] パラメーターをクリアし、[最後のデータ後の出力フォーム] パラメーターを [外挿]
以外の値に設定します。
string、列挙、固定小数点、または可変サイズの信号データを読み込む。
ラピッド アクセラレータ シミュレーション用に
int64
またはuint64
のデータを読み込む。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
ブロック パラメーターの値をプログラムで取得するには、関数 get_param
を使用します。
パラメーター: | Interpolate |
値: | 'on' (既定値) | 'off' |
データ型: | char | string |
例: set_param("myModel/From Workspace","Interpolate","off")
configures the From Workspace block named From Workspace
to use zero-order hold interpolation for loading data into the model myModel
.
ゼロクロッシング検出とは、ブロック出力内の不連続点を特定したり、不連続点近くでの過度に小さいタイム ステップの使用を回避してシミュレーションの低速化を防ぐために用いられる手法です。"ゼロクロッシング" とはデータ内の不連続点のことです。From Workspace ブロックでは、サンプル時間が連続 (0
) の場合にゼロクロッシングを検出できます。
データに同じ時間を持つ複数のサンプルが含まれている場合に、読み込まれたワークスペース データによってブロック出力内の不連続点が作成されます。たとえば、次の入力データの場合、不連続点は時間 2
で発生します。
time: 0 1 2 2 3 signal: 2 3 4 5 6
From Workspace ブロックは、[内挿] パラメーターを選択した場合にのみ、入力データ内の重複時間値によって生じるゼロクロッシングを検出します。
また、[最後のデータ後の出力フォーム] を [0 に設定]
に設定すると、From Workspace ブロックはワークスペース データ内の最後のサンプルで出力内の不連続点を作成できます。
バスの入力データを読み込むときに、From Workspace ブロックはすべてのバス要素のゼロクロッシングを検出します。
このブロックでは、可変ステップ ソルバーを使用するシミュレーションでのみゼロクロッシング検出がサポートされます。シミュレーションに固定ステップ ソルバーを使用する場合、このブロックに対してゼロクロッシングの検出や特定は行われません。
詳細については、ゼロクロッシング検出を参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
ブロック パラメーターの値をプログラムで取得するには、関数 get_param
を使用します。
パラメーター: | ZeroCross |
値: | 'on' (既定値) | 'off' |
データ型: | char | string |
例: set_param("myModel/From Workspace","ZeroCross","off")
disables the Enable zero-crossing detection parameter for the From Workspace block named From Workspace
in the model myModel
.
From Workspace ブロックは [データを内挿する] 設定と [最後のデータ後の出力フォーム] 設定を使用して、ワークスペース データで使用可能な最後のサンプル後のシミュレーション時間に対するブロック出力を決定します。
[最後のデータ後の出力フォーム] の設定 | [データを内挿する] の設定 | 最終データの後のブロック出力 |
---|---|---|
外挿 | オン | 最終データ値から外挿 |
オフ | エラー | |
0 に設定 | オン | 0 |
オフ | ||
最終値を保持 | オン | ワークスペースからの最終値 |
オフ | ||
周期的に繰り返す | オン | エラー |
オフ | 読み込まれたワークスペース データが時間なしの構造体形式を使用する場合、ワークスペース データを最初の値から繰り返します。 時間付き構造体以外のワークスペース データ形式の場合はエラーになります。 |
From Workspace ブロックの外挿動作に関する詳細については、外挿を参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param
を使用します。
ブロック パラメーターの値をプログラムで取得するには、関数 get_param
を使用します。
パラメーター: | OutputAfterFinalValue |
値: | 'Extrapolation' (既定値) | 'Setting to zero' | 'Holding final value' | 'Cyclic repetition' |
データ型: | char | string |
例: set_param("myModel/From Workspace","OutputAfterFinalValue","Holding final value")
configures the From Workspace block named From Workspace
in the model myModel
to use the final input data value as the output value for time steps that occur after the last time value in the input data.
ブロックの特性
アルゴリズム
内挿とは、読み込まれたワークスペース データにおいて、サンプル時間の間にあるシミュレーション時間に対して出力値を提供するために From Workspace ブロックで使用されるプロセスです。[データを内挿する] を選択すると、From Workspace ブロックは、ワークスペース データ内の隣接する 2 点を使用して出力値を線形内挿します。[データを内挿する] を選択しない場合、From Workspace ブロックは前のワークスペース データ点の値を出力値として使用します。たとえば、このモデルには [データを内挿する] が選択された 1 つの From Workspace ブロックと、[データを内挿する] がクリアされたもう 1 つのブロックがあります。どちらのブロックも、ベース ワークスペースから同じ正弦波データを読み込みます。
[データを内挿する] パラメーターを選択すると、From Workspace ブロックは読み込むデータの型に応じて異なるステップを実行します。
データ型 | 内挿の説明 |
---|---|
double | From Workspace ブロックは、シミュレーション時間の前後にワークスペース データ値を使用して出力値を線形内挿します。 |
Boolean | シミュレーション時間が異なる値をもつ 2 つのワークスペース データ点の間にある場合、From Workspace ブロックはワークスペース データ点の中間に値の遷移を配置します。たとえば、ワークスペース データが |
| From Workspace ブロックは以下のステップを実行します。
|
他のすべての組み込み数値データ型 | From Workspace ブロックは以下のステップを実行します。
|
From Workspace ブロックでは、以下については内挿はサポートされません。
string、列挙、固定小数点、または可変サイズの信号データ
ラピッド アクセラレータ シミュレーションでの
int64
またはuint64
のデータ
外挿とは、読み込まれたワークスペース データにおいて、最初のデータ点の前および最後のデータ点の後にあるシミュレーション時間に対して出力値を提供するために From Workspace ブロックで使用されるプロセスです。From Workspace ブロックが最初のワークスペース データ値の前に出力値を外挿する方法を [データを内挿する] パラメーターを使用して制御できます。[データを内挿する] パラメーターと [最後のデータ後の出力フォーム] パラメーターを使用して、ブロックが最後のワークスペース データ点の後のシミュレーション時間に対して出力値を外挿する方法を指定します。
データを内挿する | 最初のデータ点前の出力 | 最後のデータ後の出力値フォーム | 最後のデータ点後の出力 |
---|---|---|---|
| 最初の 2 つのワークスペース データ点を使用して線形に外挿 |
| 最後の 2 つのワークスペース データ値を使用して線形に外挿 |
| 0 | ||
| 最後のワークスペース データ値 | ||
| エラー | ||
| 0 |
| エラー |
| 0 | ||
| 最後のワークスペース データ値 | ||
| 読み込まれたワークスペース データが時間なしの構造体形式を使用する場合、ワークスペース データを最初の値から繰り返します。 時間付き構造体以外のワークスペース データ形式の場合はエラーになります。 |
たとえば、[データを内挿する] が有効化され、[最後のデータ後の出力フォーム] が [外挿]
に設定された From Workspace ブロックを持つモデルについて考えてみます。From Workspace ブロックは、16 秒のシミュレーション用の Sine Wave ブロックの出力をログに記録することで作成されたワークスペース データを読み取ります。Dashboard Scope ブロックにより、20 秒のシミュレーション用の Sine Wave ブロック出力と From Workspace ブロック出力が表示されます。シミュレーションが 16 秒に到達すると、From Workspace ブロックがシミュレーションの残りの出力値を線形外挿するときに、From Workspace ブロック出力は Sine Wave ブロック出力から離れます。
拡張機能
量産コードには推奨されません。From Workspace ブロックで読み込むデータは、静的に割り当てられる配列として生成コードにハード コードされます。コード生成に From Workspace ブロックを使用すると、生成コードのサイズやメモリ使用量が大幅に増える可能性があります。生成コードでの入力端子の実装には、Inport ブロックまたは In Bus Element ブロックを使用してください。
ソフトウェアインザループ (SIL) テストには、SIL/PIL マネージャー (Embedded Coder)を使用することを検討してください。From Workspace ブロックを使用して、モデル参照用の生成コードで SIL テストのための入力を提供できます。詳細については、SIL シミュレーションと PIL シミュレーションを使用した生成コードのテスト (Embedded Coder)を参照してください。
Fixed-Point Designer™ を使用して作成された fi
(Fixed-Point Designer) オブジェクトにより入力をサポートします。
バージョン履歴
R2006a より前に導入From Workspace ブロックで int64
データ型または uint64
データ型をもつ入力信号データ値の読み込みがサポートされます。From Workspace ブロックを使用して int64
または uint64
の信号データを読み込むときは次のようになります。
int64
データ型またはuint64
データ型にできるのは信号値だけです。時間値はdouble
データ型でなければなりません。timetable
、timeseries
、構造体など、配列以外の形式を使用します。配列形式では、double
以外のデータ型はいずれもサポートされていません。
int64
および uint64
の信号データの読み込みはすべてのシミュレーション モードでサポートされますが、int64
および uint64
のデータの内挿はラピッド アクセラレータ シミュレーションではサポートされません。ラピッド アクセラレータ シミュレーションに int64
または uint64
のデータを読み込むには次のようにします。
[データを内挿する] パラメーターをクリアします。
[最後のデータ後の出力フォーム] パラメーターを
[外挿]
以外のいずれかの値に設定します。
From Workspace ブロックではバス配列データの読み込みがサポートされています。最上位モデルの From Workspace ブロックでは、ノーマル モードまたはアクセラレータ モードのシミュレーションでバス配列データを読み込むことができます。参照モデルの From Workspace ブロックを使用したバス配列データの読み込みは、参照モデルがノーマル モードで実行されている場合にのみサポートされています。
From Workspace ブロックでは timetable
として格納されているデータの読み込みがサポートされています。timetable
にはデータが 1 列だけ含まれている必要があります。
バスの入力データを読み込むと、データを含む構造体には、リーフ信号のデータの単一の列のみを含む 1 つ以上の timetable
オブジェクトが含まれることがあります。
From Workspace ブロックでは string データの読み込みがサポートされています。From Workspace ブロックを使用して string データを読み込むときは次のようになります。
string
データ型にできるのは信号値だけです。時間値はdouble
データ型でなければなりません。timeseries
や構造体など、配列以外の形式を使用します。配列形式では、double
以外のデータ型はいずれもサポートされていません。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)