workspaceEnsemble
설명
workspaceEnsemble
객체는 진단 특징 디자이너에서 생성된 코드에 사용하도록 특화된 ensemble 객체입니다. workspaceEnsemble
객체와 fileEnsembleDatastore
객체는 둘 다 앙상블의 데이터 변수, 독립 변수, 상태 변수를 지정하기 때문에 서로 유사합니다. 그러나 파일 앙상블 데이터저장소와 달리 작업 공간 앙상블은 외부 파일이 아닌 메모리의 데이터에 대해 연산을 수행합니다.
테이블 또는 셀형 배열을 앱으로 가져와서 대화형 방식으로 특징을 설계한 후 코드를 생성하면, 이 코드는 작업 공간 앙상블 생성을 포함하게 됩니다. 이 앙상블에는 처음 가져온 것과 동일한 변수가 들어 있으며, 이 동일한 변수가 들어 있는 어떠한 입력 데이터 세트도 관리할 수 있습니다. 예를 들어 20개 멤버로 이루어진 테이블을 앱으로 가져와서 특징을 추출하고 함수를 생성한다고 가정하겠습니다. 이 함수에서 작업 공간 앙상블은 테이블에 동일한 변수가 포함되어 있기만 하다면 2000개 멤버의 테이블과 호환됩니다.
데이터 앙상블에 대한 자세한 내용은 상태 모니터링 및 예측 정비를 위한 데이터 앙상블 항목을 참조하십시오.
생성
설명
입력 인수
data
— 입력 데이터 세트
테이블 | 테이블로 구성된 셀형 배열
입력 데이터 세트로, 테이블 또는 테이블로 구성된 셀형 배열로 지정됩니다.
data
가 테이블인 경우 각 행이 하나의 앙상블 멤버의 데이터를 나타냅니다.data
가 테이블로 구성된 셀형 배열인 경우 셀의 각 테이블이 하나의 앙상블 멤버의 데이터를 나타냅니다.
속성
DataVariables
— 데이터 변수
string형 | 셀형 배열
앙상블에 있는 데이터 변수로, string형 또는 셀형 배열로 지정됩니다. 데이터 변수는 앙상블 멤버의 주된 내용물입니다. 데이터 변수에는 측정된 데이터 또는 파생 데이터가 포함될 수 있습니다. 예를 들어, 데이터 변수에는 측정된 진동 신호나 시뮬레이션된 진동 신호 및 평균 진동 값, 피크 진동 주파수 같은 파생된 값을 포함할 수 있습니다.
예: outputEnsemble = workspaceEnsemble(inputData,'DataVariables',["Vibration";"Tacho"])
IndependentVariables
— 독립 변수
string형 | 셀형 배열
앙상블에 있는 독립 변수로, string형 또는 셀형 배열로 지정됩니다. 일반적으로 독립 변수는 앙상블 멤버의 순서를 지정합니다. 타임스탬프 또는 작동 주기 수를 예로 들 수 있습니다.
예: outputEnsemble = workspaceEnsemble(inputData,'IndependentVariables',"Time")
ConditionVariables
— 상태 변수
string형 | 셀형 배열
앙상블에 있는 상태 변수로, string형 또는 셀형 배열로 지정됩니다. 상태 변수는 앙상블 멤버에 대해 수집된 결함 상태나 기타 작동 상태에 따라 앙상블의 멤버에 레이블을 지정합니다.
예: outputEnsemble = workspaceEnsemble(inputData,'ConditionVariables',"faultCode")
SelectedVariables
— 선택된 변수
string형 | 셀형 배열
앙상블에서 읽어올 변수로, string형 또는 셀형 배열로 지정됩니다. SelectedVariables
는 data
에서 어떤 변수를 읽어와 연산을 수행할지 식별합니다.
예: outputEnsemble.SelectedVariables = ["Vibration","Tacho"]
ReadSize
— 읽어올 멤버 수
1 (디폴트 값) | 양의 정수
read
명령을 사용할 때 작업 공간 앙상블에서 한 번에 읽어올 멤버 수로, 앙상블의 총 멤버 수보다 작은 양의 정수로 지정됩니다. 기본적으로 read
명령은 하나의 앙상블 멤버의 데이터가 포함된 1행 테이블을 반환합니다. 한 번의 read
연산으로 여러 개의 멤버에서 데이터를 읽어오려면 이 속성을 1보다 큰 정수 값으로 설정하십시오. 예를 들어, ReadSize
가 3이면 read
는 3행 테이블을 반환하며 각 행은 각기 다른 앙상블 멤버의 데이터를 포함합니다. 읽지 않은 멤버 수가 ReadSize
보다 작으면, read
는 남아 있는 멤버와 동일한 개수의 행을 갖는 테이블을 반환합니다.
ReadSize
속성을 변경하면 앙상블이 읽지 않음 상태로 재설정됩니다. 예를 들어 ReadSize
를 1
로 설정하여 일부 앙상블 멤버를 한 번에 하나씩 읽은 다음 ReadSize
를 3
으로 변경한다고 가정하겠습니다. 그다음 read
연산은 처음 3개의 앙상블 멤버에서 데이터를 반환합니다.
객체 함수
refresh | 병렬 처리 계산으로 수정되었거나 추가된 데이터의 분할을 작업 공간 앙상블에 업데이트 |
writeMember | 특정 작업 공간 앙상블 멤버에 데이터 쓰기 |
readMember | 멤버 인덱스를 기준으로 앙상블 멤버 데이터 반환 |
findIndex | 지정된 변수 이름 및 값과 일치하는 멤버의 작업 공간 앙상블 멤버 인덱스 찾기 |
예제
작업 공간 앙상블을 만들고 읽기
앙상블 테이블에서 workspaceEnsemble
객체를 만들고 그 내용을 읽습니다.
앙상블 테이블 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
테이블에는 16개 멤버가 포함되어 있으며 각 멤버는 진동 데이터와 회전속도계 데이터, 스칼라 결함 코드를 갖습니다.
작업 공간 앙상블 만들기
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
는 모두 진동 데이터와 회전속도계 데이터를 포함하는 테이블입니다. m1
에는 첫 번째 멤버의 데이터가 포함됩니다. m2
에는 두 번째 멤버의 데이터가 포함됩니다.
두 멤버의 진동 샘플을 검사합니다. 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
명령마다 고유한 결과가 반환됩니다.
작업 공간 앙상블에서 변수 및 특징 관리하기
이 예제에서는 진단 특징 디자이너에서 생성하는 코드에 사용되는 몇몇 기본 명령을 보여줍니다. 이 예제는 이러한 명령을 사용하여 테이블에서 작업 공간 앙상블을 만들고, 새 특징에 대해 멤버별로 계산을 수행하고, 작업 공간 앙상블에서 특징 테이블과 앙상블 테이블을 만드는 방법을 보여줍니다.
작업 공간 앙상블과 상호 작용하는 것은 파일 앙상블 데이터저장소 또는 시뮬레이션 앙상블 데이터저장소와 상호 작용하는 것과 비슷합니다. 대다수 명령이 동일합니다. 외부 파일과 상호 작용하는 앙상블 데이터저장소와 달리, 작업 공간 앙상블 데이터저장소는 메모리 내 데이터와 상호 작용합니다.
테이블에서 작업 공간 앙상블 만들기
앙상블 테이블 dataTable
을 불러옵니다. 여기에는 16개의 멤버가 포함되어 있으며 각 멤버는 진동 데이터, 회전속도계 데이터와 스칼라 결함 코드를 갖습니다.
load dfd_Tutorial dataTable
dataTable
의 변수에 해당하는 데이터 변수와 상태 변수를 지정하여 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]
데이터 처리와 특징 추출에는 Vibration
과 Tacho
만 필요합니다. Vibration
과 Tacho
를 포함하도록 SelectedVariables
를 지정합니다.
wensemble.SelectedVariables = ["Vibration","Tacho"];
첫 번째 앙상블 멤버에서 진동 신호의 평균 계산하기
진동 신호의 평균은 각 멤버의 스칼라 특징을 나타냅니다. 여러 개의 멤버를 처리하는 루프로 스케일링하는 방식을 사용하여, 첫 번째 멤버에 대해 이 특징을 계산합니다.
앙상블을 재설정하고 첫 번째 멤버를 읽습니다.
reset(wensemble) m = read(wensemble)
m=1×2 table
Vibration Tacho
__________________ __________________
{6000x1 timetable} {6000x1 timetable}
멤버 테이블 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
특징을 앙상블 변수로 지정해야 합니다. 점 표기법을 사용하여 앙상블 데이터 변수 dv
세트에 Data_Mean
을 추가합니다.
dv = wensemble.DataVariables;
wensemble.DataVariables = [dv;"Data_Mean"];
업데이트된 멤버 테이블을 작업 공간 앙상블에 추가하기
writeToLastMemberRead
명령을 사용하여 업데이트된 멤버 테이블을 앙상블에 추가합니다.
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
작업 공간 앙상블에서 특징 테이블 및 앙상블 테이블 만들기
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
속성에 모든 변수가 포함되도록 설정하여 결과 앙상블 테이블에 모든 정보가 포함되도록 합니다.
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: [0x0 string]
데이터저장소 명령 readall
을 사용하여 작업 공간 앙상블을 앙상블 테이블로 변환합니다.
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
테이블에 원래 신호와 새 특징이 포함되어 있습니다.
버전 내역
R2020a에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 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)