Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

workspaceEnsemble

진단 특징 디자이너에서 생성된 코드를 사용하여 MATLAB 작업 공간에 저장된 앙상블 데이터 관리

R2020a 이후

설명

workspaceEnsemble 객체는 진단 특징 디자이너에서 생성된 코드에 사용하도록 특화된 ensemble 객체입니다. workspaceEnsemble 객체와 fileEnsembleDatastore 객체는 둘 다 앙상블의 데이터 변수, 독립 변수, 상태 변수를 지정하기 때문에 서로 유사합니다. 그러나 파일 앙상블 데이터저장소와 달리 작업 공간 앙상블은 외부 파일이 아닌 메모리의 데이터에 대해 연산을 수행합니다.

테이블 또는 셀형 배열을 앱으로 가져와서 대화형 방식으로 특징을 설계한 후 코드를 생성하면, 이 코드는 작업 공간 앙상블 생성을 포함하게 됩니다. 이 앙상블에는 처음 가져온 것과 동일한 변수가 들어 있으며, 이 동일한 변수가 들어 있는 어떠한 입력 데이터 세트도 관리할 수 있습니다. 예를 들어 20개 멤버로 이루어진 테이블을 앱으로 가져와서 특징을 추출하고 함수를 생성한다고 가정하겠습니다. 이 함수에서 작업 공간 앙상블은 테이블에 동일한 변수가 포함되어 있기만 하다면 2000개 멤버의 테이블과 호환됩니다.

데이터 앙상블에 대한 자세한 내용은 상태 모니터링 및 예측 정비를 위한 데이터 앙상블 항목을 참조하십시오.

생성

설명

wsensemble = workspaceEnsemble(Name,Value)는 이름-값 쌍의 인수로 지정된 속성을 사용하여 빈 workspaceEnsemble 객체 wsensemble을 생성합니다.

예제

wsensemble = workspaceEnsemble(data,Name,Value)는 데이터 세트 data에서 workspaceEnsemble 객체 wsensemble을 생성합니다.

입력 인수

모두 확장

입력 데이터 세트로, 테이블 또는 테이블로 구성된 셀형 배열로 지정됩니다.

  • data가 테이블인 경우 각 행이 하나의 앙상블 멤버의 데이터를 나타냅니다.

  • data가 테이블로 구성된 셀형 배열인 경우 셀의 각 테이블이 하나의 앙상블 멤버의 데이터를 나타냅니다.

속성

모두 확장

앙상블에 있는 데이터 변수로, string형 또는 셀형 배열로 지정됩니다. 데이터 변수는 앙상블 멤버의 주된 내용물입니다. 데이터 변수에는 측정된 데이터 또는 파생 데이터가 포함될 수 있습니다. 예를 들어, 데이터 변수에는 측정된 진동 신호나 시뮬레이션된 진동 신호 및 평균 진동 값, 피크 진동 주파수 같은 파생된 값을 포함할 수 있습니다.

예: outputEnsemble = workspaceEnsemble(inputData,'DataVariables',["Vibration";"Tacho"])

앙상블에 있는 독립 변수로, string형 또는 셀형 배열로 지정됩니다. 일반적으로 독립 변수는 앙상블 멤버의 순서를 지정합니다. 타임스탬프 또는 작동 주기 수를 예로 들 수 있습니다.

예: outputEnsemble = workspaceEnsemble(inputData,'IndependentVariables',"Time")

앙상블에 있는 상태 변수로, string형 또는 셀형 배열로 지정됩니다. 상태 변수는 앙상블 멤버에 대해 수집된 결함 상태나 기타 작동 상태에 따라 앙상블의 멤버에 레이블을 지정합니다.

예: outputEnsemble = workspaceEnsemble(inputData,'ConditionVariables',"faultCode")

앙상블에서 읽어올 변수로, string형 또는 셀형 배열로 지정됩니다. SelectedVariablesdata에서 어떤 변수를 읽어와 연산을 수행할지 식별합니다.

예: outputEnsemble.SelectedVariables = ["Vibration","Tacho"]

read 명령을 사용할 때 작업 공간 앙상블에서 한 번에 읽어올 멤버 수로, 앙상블의 총 멤버 수보다 작은 양의 정수로 지정됩니다. 기본적으로 read 명령은 하나의 앙상블 멤버의 데이터가 포함된 1행 테이블을 반환합니다. 한 번의 read 연산으로 여러 개의 멤버에서 데이터를 읽어오려면 이 속성을 1보다 큰 정수 값으로 설정하십시오. 예를 들어, ReadSize가 3이면 read는 3행 테이블을 반환하며 각 행은 각기 다른 앙상블 멤버의 데이터를 포함합니다. 읽지 않은 멤버 수가 ReadSize보다 작으면, read는 남아 있는 멤버와 동일한 개수의 행을 갖는 테이블을 반환합니다.

ReadSize 속성을 변경하면 앙상블이 읽지 않음 상태로 재설정됩니다. 예를 들어 ReadSize1로 설정하여 일부 앙상블 멤버를 한 번에 하나씩 읽은 다음 ReadSize3으로 변경한다고 가정하겠습니다. 그다음 read 연산은 처음 3개의 앙상블 멤버에서 데이터를 반환합니다.

객체 함수

refresh병렬 처리 계산으로 수정되었거나 추가된 데이터의 분할을 작업 공간 앙상블에 업데이트
writeMemberWrite data to a specific workspace ensemble member
readMemberReturn ensemble member data based on the member index
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);

m1m2는 모두 진동 데이터와 회전속도계 데이터를 포함하는 테이블입니다. m1에는 첫 번째 멤버의 데이터가 포함됩니다. m2에는 두 번째 멤버의 데이터가 포함됩니다.

두 멤버의 진동 샘플을 검사합니다. m1m2에서 진동 신호를 추출하고 각 신호의 처음 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]

데이터 처리와 특징 추출에는 VibrationTacho만 필요합니다. VibrationTacho를 포함하도록 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: "Member 16"

데이터저장소 명령 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에 개발됨