workspaceEnsemble
説明
workspaceEnsemble
オブジェクトは、診断特徴デザイナーで生成されたコードで使用するために特化したアンサンブル オブジェクトです。workspaceEnsemble
オブジェクトと fileEnsembleDatastore
オブジェクトは、両方ともアンサンブルのデータ変数、独立変数、および状態変数を指定するため、類似しています。しかし、ファイル アンサンブル データストアとは異なり、ワークスペース アンサンブルは、外部ファイルではなくメモリのデータに対して動作します。
table や cell 配列をアプリにインポートし、対話型の特徴設計が完了した後にコードを生成する場合は、そのコードにはワークスペース アンサンブルの作成が含まれます。このアンサンブルには、最初のインポートで使用したものと同じ変数が含まれており、同じ変数を含む入力データ セットを管理できます。たとえば、20 メンバーの table をアプリにインポートし、特徴を抽出し、関数を生成するとします。その関数のワークスペース アンサンブルは、同じ変数を含む table であれば、2000 メンバーの table と互換性があります。
データ アンサンブルの詳細については、状態監視と予知保全のためのデータ アンサンブルを参照してください。
作成
説明
入力引数
data
— 入力データ セット
table | table の cell 配列
入力データ セット。table の cell 配列として指定します。
data
が table の場合は、各行は 1 つのアンサンブル メンバーのデータを表します。data
が cell 配列の場合は、cell の各 table は 1 つのアンサンブル メンバーのデータを表します。
プロパティ
DataVariables
— データ変数
string | cell 配列
アンサンブル内のデータ変数。string または cell 配列として指定します。データ変数とは、アンサンブルのメンバーの主な内容です。データ変数には、測定データまたは派生データが含まれます。たとえば、データ変数には、測定された振動またはシミュレーションされた振動信号と、平均振動値または振動ピーク周波数などの派生値が含まれる場合があります。
例: outputEnsemble = workspaceEnsemble(inputData,'DataVariables',["Vibration";"Tacho"])
IndependentVariables
— 独立変数
string | cell 配列
アンサンブル内の独立変数。string または cell 配列として指定します。通常、独立変数はアンサンブルのメンバーに順序を付けます。たとえば、タイスタンプまたは操作サイクル数です。
例: outputEnsemble = workspaceEnsemble(inputData,'IndependentVariables',"Time")
ConditionVariables
— 状態変数
string | cell 配列
アンサンブル内の状態変数。string または cell 配列として指定します。状態変数は、アンサンブルのメンバーが収集された故障状態または他の動作状態に従って、アンサンブルのメンバーにラベルを付けます。
例: outputEnsemble = workspaceEnsemble(inputData,'ConditionVariables',"faultCode")
SelectedVariables
— 選択した変数
string | cell 配列
アンサンブルから読み取る変数。string または cell 配列として指定します。SelectedVariables
は、data
のどの変数を読み取って操作するかを特定します。
例: outputEnsemble.SelectedVariables = ["Vibration","Tacho"]
ReadSize
— 読み取るメンバー数
1 (既定値) | 正の整数
read
コマンドの使用時にワークスペース アンサンブルから一度に読み取るメンバーの数。アンサンブル内のメンバーの合計数よりも小さい正の整数として指定します。既定では、read
コマンドは、1 つのアンサンブル メンバーからのデータを含む 1 行の table を返します。1 回の read
操作で複数のメンバーからデータを読み取る場合は、このプロパティに 1 より大きい整数値を設定します。たとえば、ReadSize
が 3 の場合は、read
は 3 行の table を返し、各行には異なるアンサンブル メンバーからのデータが含まれます。未読のメンバーが ReadSize
より少ない場合は、read
は残りのメンバーの数だけ行を持つ table を返します。
また、ReadSize
プロパティを変更すると、アンサンブルは未読の状態にリセットされます。たとえば、ReadSize
を 1
に設定して、一部のアンサンブル メンバーを一度に 1 つずつ読み取り、ReadSize
を 3
に変更したとします。次の read
操作により、最初の 3 つのアンサンブル メンバーからのデータが返されます。
オブジェクト関数
refresh | 並列処理で計算されて変更または追加されたデータの分割でワークスペース アンサンブルを更新 |
writeMember | 特定のワークスペース アンサンブル メンバーにデータを書き込み |
readMember | アンサンブル メンバー データをメンバー インデックスに基づいて返す |
findIndex | 指定された変数の名前と値に一致するメンバーのワークスペース アンサンブル メンバー インデックスを特定 |
例
ワークスペース アンサンブルの作成と読み取り
アンサンブル table から workspaceEnsemble
オブジェクトを作成し、その内容を読み取ります。
アンサンブル table dataTable
を読み込み、最初の 3 つのメンバーを表示します。
load dfd_Tutorial dataTable head(dataTable,3)
Vibration Tacho faultCode __________________ __________________ _________ {6000x1 timetable} {6000x1 timetable} 0 {6000x1 timetable} {6000x1 timetable} 1 {6000x1 timetable} {6000x1 timetable} 1
table には 16 のメンバーが含まれており、それぞれには、振動データ、タコメーター データ、スカラー故障コードが含まれる timetable があります。
ワークスペース アンサンブルの作成
dataTable
からワークスペース アンサンブル wensemble
を作成します。
wensemble = workspaceEnsemble(dataTable,'DataVariables',["Vibration";"Tacho"],... 'ConditionVariables',"faultCode")
wensemble = workspaceEnsemble with properties: DataVariables: [2x1 string] IndependentVariables: [0x0 string] ConditionVariables: "faultCode" SelectedVariables: [3x1 string] ReadSize: 1 NumMembers: 16 LastMemberRead: [0x0 string]
データ状態変数の選択を確認します。
dv = wensemble.DataVariables
dv = 2x1 string
"Vibration"
"Tacho"
cv = wensemble.ConditionVariables
cv = "faultCode"
ワークスペース アンサンブル メンバーの読み取り
最初の 2 つのメンバーについて、ワークスペース アンサンブルのデータ変数を検査します。
既定では、アンサンブルを読み取ると、すべてのアンサンブル変数が返されます。読み取る変数のサブセットを選択する場合は、SelectedVariables
を指定します。
wensemble.SelectedVariables = ["Vibration","Tacho"];
read
を使用して、次の未読のメンバーの内容を取得します。メンバーを読み取るたびに、ソフトウェアはそのメンバーを読み取ったものとしてマークし、次の read
コマンドは以下のメンバーを返します。read
コマンドを連続して使用することで、アンサンブルをループ処理できます。最初のメンバーから始めるには、reset
を使用します。
reset(wensemble) m1 = read(wensemble)
m1=1×2 table
Vibration Tacho
__________________ __________________
{6000x1 timetable} {6000x1 timetable}
m2 = read(wensemble);
m1
と m2
はともに振動データとタコメーター データを含む table です。m1
には、1 番目のメンバーのデータが含まれます。m2
には、2 番目のメンバーのデータが含まれます。
両方のメンバーの振動サンプルを調べます。m1
および m2
から振動信号を抽出し、各信号の最初の 3 つのサンプルを表示します。
m1vib = readMemberData(m1,'Vibration'); m2vib = readMemberData(m2,'Vibration'); head(m1vib,3)
Time Data _________ ________ 0 sec -0.66925 0.005 sec -0.61623 0.01 sec -0.56666
head(m2vib,3)
Time Data _________ _______ 0 sec -1.6231 0.005 sec -1.5892 0.01 sec -1.5534
各 read
コマンドは一意の結果を返します。
ワークスペース アンサンブルの変数と特徴の管理
この例では、"診断特徴デザイナー" が生成するコードで使用される基本的なコマンドのいくつかを説明します。この例では、これらのコマンドを使用して、table からワークスペース アンサンブルを作成し、新しい特徴に対してメンバーごとの計算を実行し、ワークスペース アンサンブルから特徴テーブルとアンサンブル table を作成する方法を示しています。
ワークスペース アンサンブルの操作は、ファイル アンサンブル データストアやシミュレーション アンサンブル データストアの操作と類似しています。多くのコマンドがこれと同様です。外部ファイルの操作が可能なアンサンブル データストアとは異なり、ワークスペース アンサンブル データストアは、メモリ内のデータの操作が可能です。
table からワークスペース アンサンブルを作成
アンサンブル table dataTable
を読み込みます。この table には 16 のメンバーが含まれており、それぞれには、振動データ、タコメーター データ、スカラー故障コードが含まれる timetable があります。
load dfd_Tutorial dataTable
dataTable
からワークスペース アンサンブル wensemble
を作成し、dataTable
の変数に対応するデータ変数と状態変数を指定します。
wensemble = workspaceEnsemble(dataTable,'DataVariables',["Vibration";"Tacho"],... 'ConditionVariables',"faultCode")
wensemble = workspaceEnsemble with properties: DataVariables: [2x1 string] IndependentVariables: [0x0 string] ConditionVariables: "faultCode" SelectedVariables: [3x1 string] ReadSize: 1 NumMembers: 16 LastMemberRead: [0x0 string]
データの処理と特徴の抽出に必要なのは、Vibration
と Tacho
のみです。Vibration
と Tacho
を含むように SelectedVariables
を指定します。
wensemble.SelectedVariables = ["Vibration","Tacho"];
最初のアンサンブル メンバーの振動信号の平均値の計算
振動信号の平均値は、各メンバーのスカラーの特徴を表しています。複数のメンバーを処理するループにスケーリングする方法を使用して、最初のメンバーについてこの特徴を計算します。
アンサンブルをリセットして、最初のメンバーを読み取ります。
reset(wensemble) m = read(wensemble)
m=1×2 table
Vibration Tacho
__________________ __________________
{6000x1 timetable} {6000x1 timetable}
メンバー table m
から振動データを抽出します。
mvibd = readMemberData(m,'Vibration');
振動の平均値を計算します。
m_mean = mean(mvibd.Data)
m_mean = 0.0218
結果を m
に追加します。
m = [m,table(m_mean,'VariableNames',"Data_Mean")]
m=1×3 table
Vibration Tacho Data_Mean
__________________ __________________ _________
{6000x1 timetable} {6000x1 timetable} 0.021809
新しい特徴をアンサンブル変数に追加
更新されたメンバーを wensemble
に組み込むには、まず、新しい Data_Mean
特徴をアンサンブル変数として指定する必要があります。ドット表記を使用して、Data_Mean
をアンサンブル データ変数のセット dv
に追加します。
dv = wensemble.DataVariables;
wensemble.DataVariables = [dv;"Data_Mean"];
更新されたメンバー table をワークスペース アンサンブルに追加
writeToLastMemberRead
コマンドを使用して、更新されたメンバー table をアンサンブルに追加します。
writeToLastMemberRead(wensemble,m)
残りのアンサンブル メンバーのループ処理
残りのアンサンブル メンバーについても、同じメンバー固有の手順を実行します。
while hasdata(wensemble) m = read(wensemble); mvibd = readMemberData(m,'Vibration'); m_mean = mean(mvibd.Data); m = [m,table(m_mean,'VariableNames',"Data_Mean")]; writeToLastMemberRead(wensemble,m) end
ワークスペース アンサンブルから特徴テーブルとアンサンブル table を作成
readFeatureTable
コマンドで wensemble
から特徴テーブルを抽出します。最初の 3 行を表示します。
ft = readFeatureTable(wensemble); head(ft,3)
faultCode Data_Mean _________ __________ 0 0.021809 1 -0.0092964 1 -0.46431
特徴テーブルには、状態変数 FaultCode
とデータ変数 Data_Mean
が含まれます。
SelectedVariables
プロパティを設定してすべての変数を含めることで、結果のアンサンブル table にすべての情報が含まれるようにします。
wensemble.SelectedVariables = ["Vibration";"Tacho";"Data_Mean";"faultCode"]
wensemble = workspaceEnsemble with properties: DataVariables: [3x1 string] IndependentVariables: [0x1 string] ConditionVariables: "faultCode" SelectedVariables: [4x1 string] ReadSize: 1 NumMembers: 16 LastMemberRead: "Member 16"
データストア コマンド readall
を使用して、ワークスペース アンサンブルをアンサンブル table に変換します。
tensemble = readall(wensemble)
tensemble=16×4 table
Vibration Tacho Data_Mean faultCode
__________________ __________________ __________ _________
{6000x1 timetable} {6000x1 timetable} 0.021809 0
{6000x1 timetable} {6000x1 timetable} -0.0092964 1
{6000x1 timetable} {6000x1 timetable} -0.46431 1
{6000x1 timetable} {6000x1 timetable} 0.4922 1
{6000x1 timetable} {6000x1 timetable} 0.3923 1
{6000x1 timetable} {6000x1 timetable} -0.12383 1
{6000x1 timetable} {6000x1 timetable} 0.42548 1
{6000x1 timetable} {6000x1 timetable} -0.4598 1
{6000x1 timetable} {6000x1 timetable} 0.062685 0
{6000x1 timetable} {6000x1 timetable} 0.059155 0
{6000x1 timetable} {6000x1 timetable} 0.037965 0
{6000x1 timetable} {6000x1 timetable} 0.53982 1
{6000x1 timetable} {6000x1 timetable} 0.52377 1
{6000x1 timetable} {6000x1 timetable} 1.0357 1
{6000x1 timetable} {6000x1 timetable} 1.0592 1
{6000x1 timetable} {6000x1 timetable} -0.94084 1
table には、元の信号と新しい特徴が含まれます。
バージョン履歴
R2020a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)