記録されたシミュレーション データのデータ形式
ブロックベースで記録されたデータのデータ形式
Scope、To File または To Workspace ブロックは、シミュレーション データのエクスポートに使用できます。これらのブロックには、それぞれデータ形式パラメーターがあります。
モデルベースで記録されたデータのデータ形式
シミュレーション データをモデル ベースでエクスポートするためのデータ形式は、エクスポートされたデータの Simulink® での格納方法を指定します。
Simulink では、エクスポートするデータの種類に応じて、さまざまなデータ形式を使用します。詳細は、以下を参照してください。
信号のログ形式
信号のログ記録では常に Dataset
形式を使用します。個別の信号のログ記録を timeseries
オブジェクトまたは timetable
オブジェクトのどちらとして行うかを指定できます。
Dataset
要素の保存方法を制御するには、[データセットの信号形式] コンフィギュレーション パラメーターを設定します。既定の設定は timeseries
です。詳細については、データセットの信号形式を参照してください。
[形式] パラメーターを Dataset
に設定すると、[データセットの信号形式] パラメーターは、信号のログ記録と、出力および状態データに適用されます。
ログ データ ストア形式
データ ストア データのログを作成する場合、Simulink は Simulink.SimulationData.Dataset
オブジェクトを使用します。
詳細については、データ ストアのログ データへのアクセスを参照してください。
時間、状態および出力データ形式
エクスポートされた時間、状態および出力データでは、次のいずれかの形式を使用します。
[コンフィギュレーション パラメーター] 、 [データのインポート/エクスポート] 、 [出力] チェック ボックスをオンにした場合、固定小数点データは double として Simulink によって記録されます。固定小数点データのログを記録する場合、以下のいずれかの方法を検討してください。
信号のログ — 詳細は、信号ログを使用して、信号データをエクスポートを参照してください。
Simulink エディターで、1 つ以上の信号を選択します。
[信号のログ] をクリックします。
To File ブロック
To Workspace ブロック — To Workspace の [ブロック パラメーター] ダイアログ ボックスで、[fi オブジェクトとして固定小数点データのログを記録する] パラメーターを有効にします。
ログに記録された最終状態データの形式の詳細は、Save Block States and Simulation Operating Pointsを参照してください。
Dataset
既定では、時間、状態、および出力が Dataset
形式を使用してログ記録されます。Dataset
形式には次のような特徴があります。
ログ記録されたデータを
timeseries
オブジェクトまたはtimetable
オブジェクトに格納します。Simulink ライセンスがなくとも、MATLAB® のtimeseries
オブジェクトまたはtimetable
オブジェクトに保存されたデータを操作できます。特定のタイム ステップでの複数のデータ値のログ記録をサポートします。これは、For Iterator Subsystem、While Iterator Subsystem、および Stateflow® でのデータのログ記録で必要となる可能性があります。
Function-Call Subsystem 内またはラピッド アクセラレータ シミュレーション中での状態情報のログ記録はサポートしません。
コード生成をサポートしない。
信号のログ記録では常に Dataset
形式を使用します。Dataset
形式を使用して状態と出力データをログ記録することで、さまざまなタイプのログ記録されたデータに対してカスタム コードを記述することなく、シミュレーション データを後処理できます。Dataset
形式を使用して状態と出力をログ記録する場合、データはシミュレーション中に自動的にシミュレーション データ インスペクターにもストリーミングされます。
配列
この [配列]
オプションを選択する場合、Simulink はモデルの状態および出力を状態および出力配列にそれぞれ保存します。
状態行列の名前は、[コンフィギュレーション パラメーター] 、 [データのインポート/エクスポート] ペインで指定された名前になります (xout
など)。状態行列の各行は、モデルの状態の時間サンプルに対応します。各列は、状態の要素に対応します。たとえば、モデルに 2 つの連続する状態があり、各状態は 2 要素のベクトルであるとします。このとき、状態行列の各行の最初の 2 要素には、1 番目の状態ベクトルの時間サンプルが含まれます。各行の最後の 2 要素には、2 番目の状態ベクトルの時間サンプルが含まれます。
モデル出力行列の名前は、[コンフィギュレーション パラメーター] 、 [データのインポート/エクスポート] ペインで指定された名前になります (yout
など)。各列はモデルの出力端子に対応し、各行は特定の時刻での出力に対応します。
メモ
ログ データが以下の "すべての" 条件を満たした場合にのみ、配列形式を使用してモデルの出力と状態を保存します。
データがすべてスカラーまたはすべてベクトル (またはすべて状態の行列)
データがすべて実数またはすべて複素数
データがすべて同じデータ型
データにバス信号を含む
モデルの出力と状態がこれらの条件を満たさない場合、Structure
または Structure with time
出力形式を使用してください (時間付き構造体を参照)。
時間付き構造体
この形式を選択する場合、Simulink はモデルの状態と出力を [コンフィギュレーション パラメーター] 、 [データのインポート/エクスポート] ペインで名前が指定された構造体に保存します。既定では、これらの構造体は xout
が状態用で yout
が出力用です。
出力の保存に使用される構造体には、次の 2 つの最上位フィールドがあります。
time
シミュレーション時間のベクトルを格納します。
signals
サブ構造体の配列を格納します。各サブ構造体は、モデルの出力端子に対応します。
各サブ構造体には、次の 4 つのフィールドがあります。
values
対応する出力端子の出力を格納します。
出力がスカラーまたはベクトルの場合、
values
フィールドは行列です。その各行は、対応する時間ベクトル要素によって指定される時刻における出力を表します。出力が行列 (2 次元) 値の場合、
values
フィールドは M x N x T 次元の 3 次元配列です。ここで、M x N は出力信号の次元であり、T は出力サンプル数です。T =1 の場合、MATLAB は最後の次元を無視します。したがって、
values
フィールドは M 行 N 列の行列になります。
dimensions
出力信号の次元を指定します。
label
出力端子に接続された信号のラベル、S-Function ブロックまたは状態のタイプ (連続または離散) を指定します。S-Function ブロックの状態のラベル以外は、
DSTATE
またはCSTATE
です。S-Function ブロックの離散状態のラベルは、DSTATE
ではなく状態の名前になります。blockName
対応する出力端子の名前、または状態を伴うブロックの名前を指定します。
inReferencedModel
signals
フィールドが参照モデルに存在するブロックの最終状態を記録する場合、1
の値を格納します。それ以外の場合は、値は false (0
) です。
次の例は非参照モデルの時間付き構造体形式を示します。
xout.signals(1)
ans = values: [296206x1 double] dimensions: 1 label: 'CSTATE' blockName: 'vdp/x1' inReferencedModel: 0
状態の保存に使用される構造体の構成は類似しています。状態構造体には、次の 2 つの最上位フィールドがあります。
time
time
フィールドには、シミュレーション時間のベクトルが含まれます。signals
このフィールドには、サブ構造体の配列が含まれ、各サブ構造体は、モデルの状態の 1 つに対応します。
各 signals
構造体には、values
、dimensions
、label
、および blockName
という 4 つのフィールドがあります。values
フィールドには、blockName
フィールドで指定されるブロックの状態の時間サンプルが含まれます。組み込みブロックの label
フィールドは、CSTATE
(連続状態) または DSTATE
(離散状態) のいずれかの状態のタイプを示します。S-Function ブロックの場合、ラベルには、S-Function ブロックによって状態に割り当てられた名前が含まれます。
状態の時間サンプルは、値の行列として values
フィールドに格納されます。各行は、時間サンプルに対応します。行の各要素は、状態の要素に対応します。状態が行列の場合、行列は列の大きい順に values
配列に格納されます。たとえば、モデルが 2 行 2 列状態をもち、かつシミュレーション実行時に状態の 51 個のサンプルのログが作成されるとします。
この状態の values
フィールドには、51 行 4 列の行列が含まれます。各行は状態の時間サンプルに対応し、各行の最初の 2 要素がサンプルの最初の列に対応します。最後の 2 要素は、サンプルの 2 番目の列に対応します。
メモ
Simulink は、MATLAB ワークスペースに保存されたシミュレーション データを Structure with time
出力形式で読み取ることができます。詳細については、信号および時間データの指定の例を参照してください。
構造体
この形式は、保存した構造体の time
フィールドに Simulink がシミュレーション時間を格納しないことを除いて、時間付き構造体
出力形式と同じです。
参考
Simulink.SimulationData.Dataset
| Simulink.SimulationData.forEachTimeseries