このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
データセットの信号形式
説明
記録された Dataset
リーフ要素の形式。
カテゴリ: Data Import/Export
設定
既定値: timeseries
timeseries
Dataset
要素値を MATLAB®timeseries
形式で保存します。可変サイズの信号でログ記録されるデータは、各タイム ステップについての信号値の cell 配列を含む timetable に常に格納されます。timetable
Dataset
要素値を MATLABtimetable
形式で保存します。
書式の比較
[timetable]
形式では、複数のシミュレーションのログ データを簡単にマージできます。
プロパティ表示
timeseries
形式では、時間プロパティ (TimeInfo
) 用の最初のフィールドと、データ プロパティ (DataInfo
) 用の 2 番目のフィールドが表示されます。たとえば、非スカラー信号の timeseries
オブジェクトのプロパティは次のようになります。
ts
timeseries Common Properties: Name: '' Time: [1001x1 double] TimeInfo: [1x1 tsdata.timemetadata] Data: [1001x1 double] DataInfo: [1x1 tsdata.datametadata]
timetable
オブジェクトの名前 (たとえば tt
) を入力し、プロパティをクエリすると、すべてのプロパティが表示されます。
tt.Properties
ans = struct with fileds: Description: '' UserData: [] DimensionNames: {'Time' 'Variables'} VariableDescriptions: {} VariableNames: ['temperature' 'WindSpeed' 'WindDirection'] VariableUnits: {} VariableContinuity: ['continuous'] RowTimes: [64x1 duration]
データ アクセス
timeseries
形式で記録されたデータにアクセスするには、信号の Data
プロパティを使用します。たとえば、timeseries
オブジェクト ts
の場合は次のようになります (最初の 5 個の値のみを表示)。
ts = yout{1}.Values; ts.Data
ans = 0 -0.0002 -0.0012 -0.0062 -0.0306
記録された timetable
形式の Dataset
データは、1 つの時間列 (Time
) と 1 つのデータ列 (Data
) をもつテーブルを生成します。Time
列は、指定された信号のシミュレーション時間ベクトルです。duration 型として格納され、シミュレーション時間の単位と一致するように秒が設定され、シミュレーション開始時間で開始します (通常は 0 sec
に設定)。[n]
および [nx1]
の Simulink® 信号の次元は、timetable
表現では等価に扱われます。たとえば、timetable
オブジェクト tt
の場合は次のようになります (最初の 5 個の値のみを表示)。
tt = yout{1}.Values; tt.Data
Time Data _________ ____________ 0 sec [1x3x2 double] 0.1 sec [1x3x2 double] 0.2 sec [1x3x2 double] 0.3 sec [1x3x2 double] 0.4 sec [1x3x2 double]
サンプル数は timetable
オブジェクトの Data
列の最初の次元ですが、nonscalar
である記録済みの timeseries
データのデータ フィールドでは最後の次元です。そのため、timetable
形式のデータにアクセスする場合、各サンプルが非スカラーの配列であるときはデータの形状を変更しなければならない場合があります。1 つのオプションとして、関数 squeeze
を使用できます。たとえば、データセットの最初のデータ行にアクセスするには、次のようなコマンドを使用できます。
squeeze(tt.Data{1,1})
ans = 1 2 3 4 5 6
信号がバスまたはバス配列の場合、信号の値は timetable
オブジェクトの構造体としてログに記録され、構造体の各リーフはバス内の各リーフ信号のログ記録された結果に対応します。
単位
Simulink に記録されたデータの場合、[timeseries]
形式は Units
プロパティの時間値の単位を表示します。単位は任意のクラスの任意の値として指定できます。記録された信号に単位が指定されている場合、timeseries ログはその単位を Simulink.SimulationData.Unit
オブジェクトに設定します。読み込み時は、Simulink.SimulationData.Unit
型である場合にのみ単位が適用され、それ以外の場合は無視されます。
[timetable]
形式の場合は、Simulink は記録されたデータの単位をサポートしません。
データの内挿
[timeseries]
形式の Interpolation
プロパティは、内挿法が linear
(既定値) または zoh
であるかを表示します。
[timetable]
形式の VariableContinuity
プロパティは、変数の特性 (連続または離散) を示します。シミュレーション データにとって考えられる値は次のとおりです。
continuous
–timeseries
プロパティであるlinear
のInterpolation
設定に対応します。Simulink では、連続サンプル時間を入力するためにこの設定が使用されます。step
–timeseries
プロパティであるzoh
のInterpolation
設定に対応します。Simulink では、離散サンプル時間を入力するためにこの設定が使用されます。
等間隔および非等間隔の時間
timeseries
形式は、時間データが等間隔または非等間隔であるかを表示します。連続サンプル時間 (線形内挿) 用に記録されたデータの場合、TimeInfo
プロパティは時間が非等間隔であることを示し、長さを提供します。離散サンプル時間 (ゼロ次ホールド内挿) の場合、TimeInfo
プロパティは時間が等間隔であることを示しており、長さとインクリメント値を提供します。
timetable
形式には等間隔および非等間隔の時間データに対応するプロパティがありません。
timeseries
形式または timetable
形式のデータの場合は、MATLAB 関数 isregular
を使用してこの時間情報を取得できます。
信号名
[timeseries]
形式では、記録された信号の名前が Simulink.SimulationData.Element
ラッパー オブジェクトと、timeseries
オブジェクト自体に保存されます。
[timetable]
形式では、記録された信号の名前が Simulink.SimulationData.Element
ラッパー オブジェクトに保存されますが、timetable
オブジェクト自体には保存されません。
ヒント
Scope ブロックを使用してデータを記録する場合、[データセットの信号形式] パラメーターは影響しません。
プログラムでの使用
パラメーター: DatasetSignalFormat |
値: 'timeseries' | 'timetable' |
既定の設定: 'timeseries' |
推奨設定
アプリケーション | 設定 |
---|---|
デバッグ | 影響なし |
トレーサビリティ | 影響なし |
効率性 | 推奨なし |
安全対策 | 推奨なし |