Main Content

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

iddata

시간 또는 주파수 영역에서의 시스템 식별을 위한 입력-출력 데이터 및 데이터 속성

설명

식별하려는 시스템에 대한 입력 측정 데이터와 출력 측정 데이터를 캡슐화하기 위해 iddata 객체를 사용합니다. 시스템 식별 함수는 이러한 측정값을 사용하여 모델을 추정합니다. 모델 검증 함수는 입력 측정값을 사용하여 시뮬레이션을 위한 입력을 제공하고, 출력 측정값을 사용하여 추정된 모델 응답이 원본 데이터를 얼마나 잘 피팅하는지 비교합니다.

iddata 객체에는 측정값 세트가 하나 또는 여러 개 포함되어 있을 수 있습니다. 각 데이터 세트는 실험에 해당합니다. 이 객체에는 다음과 같은 특성이 있으며, 이러한 특성은 객체 속성에 인코딩되어 있습니다.

  • 데이터는 주파수 영역이나 시간 영역에 있을 수 있습니다. 한 영역에서 다른 영역으로 객체를 변환할 수 있습니다.

  • 시간 영역에서 데이터는 균일하거나 균일하지 않게 샘플링될 수 있습니다. 그러나 iddata 객체를 추정에 사용하려면 데이터를 균일하게 샘플링해야 하며, 각 실험에 대한 입력 데이터와 출력 데이터는 동일한 시점에 기록되어야 합니다.

  • 샘플 시간, 시작 시간, 시점, 주파수 샘플 점, 샘플 간 동작과 같은 데이터 속성을 지정할 수 있습니다.

  • 레이블과 주석을 제공하여 데이터 구성요소, 실험, 객체를 전체적으로 구별하고 주석을 달 수 있습니다.

객체 속성에 액세스하기 위해 점 표기법을 사용합니다. 예를 들어 sys = iddata(ym,um,Tsamp) 명령을 사용하여 iddata 객체를 만든다고 가정하겠습니다. 여기서 ym은 측정된 출력 데이터이고, um은 측정된 입력 데이터이며, Tsamp는 샘플 시간입니다. iddata는 이러한 변수를 각각 속성 InputData, OutputData, Ts에 저장합니다. sys.InputData, sys.OutputData, sys.Ts를 사용하여 데이터를 보거나 수정할 수 있습니다. 점 표기법을 사용하여 속성을 보고 수정하는 예제는 속성을 보고 수정하기 항목을 참조하십시오.

생성

설명

시간 영역 데이터 사용하기

예제

data = iddata(y,u,Ts)는 시간 영역 출력 신호 y와 입력 신호 u가 포함되어 있는 iddata 객체를 만듭니다. Ts는 실험 데이터의 샘플 시간을 지정합니다.

iddata를 사용해 yu를 셀형 배열로 지정하여 다중 실험 iddata 객체를 생성할 수 있습니다. 또는 단일 실험 iddata 객체를 여러 개 만들고 merge (iddata)를 사용하여 이러한 객체들을 하나의 다중 실험 iddata 객체로 결합할 수 있습니다. 다중 실험 iddata 객체에 대한 자세한 내용은 Create Multiexperiment Data at the Command Line 항목을 참조하십시오.

예제

data = iddata(y,[],Ts)는 시계열 데이터에 대한 iddata 객체를 만듭니다. 객체에는 시간 영역 출력 신호 y와 비어 있는 입력 신호 []이 포함되어 있습니다. Ts는 실험 데이터의 샘플 시간을 지정합니다.

예제

data = iddata(tt)는 타임테이블 tt에서 iddata 객체를 만듭니다.

tt에서 변수 이름과 샘플 시간이 추출됩니다.

기본적으로 소프트웨어는 tt의 마지막 변수를 단일 출력 채널로 해석합니다. 그 외 모든 변수는 입력 채널입니다. 이 해석을 변경하려면 이름-값 인수를 사용하여 'InputName''OutputName' 속성을 설정하십시오.

주파수 영역 데이터 사용하기

예제

data = iddata(y,u,Ts,'Frequency',W)는 주파수 영역 데이터가 포함되어 있는 iddata 객체를 만듭니다. Widdata 속성 Frequency를 주파수의 벡터로 설정합니다. 일반적으로 yu는 시간 영역 신호의 이산 푸리에 변환입니다.

추가 속성 구성하기

예제

data = iddata(___,Name,Value)는 이름-값 인수를 사용하여 추가 속성을 설정합니다. 위에 열거된 구문에 나와 있는 입력 인수를 원하는 대로 조합하고 그 뒤에 Name,Value를 지정하십시오.

입력 인수

모두 확장

시스템에서 오는 출력 신호로, 다음 중 하나로 지정됩니다.

  • 단일 출력 시스템의 경우 N×1 벡터. 여기서 N은 관측값의 개수입니다.

  • 다중 출력 시스템의 경우 N×Ny 행렬. 여기서 Ny는 출력 채널의 개수입니다.

  • 다중 실험 데이터 세트의 경우 Ne 요소 셀형 배열. 여기서 Ne는 실험의 개수이고 각 셀에는 하나의 실험에 대한 출력 신호가 포함됩니다.

  • 입력 신호만 기록될 때처럼 출력 신호가 없는 시스템의 경우 []

y는 입력 데이터 u와 동일한 영역에 있어야 합니다. 데이터가 시간 영역에 있는 경우 yu는 동일한 시점에 기록되어야 합니다.

추정에 iddata 객체를 사용하는 경우 yu가 균일하게 샘플링되어야 합니다. 비균일성이 작으면 데이터를 균일하게 샘플링된 세트로 변환할 수 있으며, 변환된 데이터는 추정에 사용하기에 충분할 정도의 무결성을 갖습니다. 시도해 볼 수 있는 기법에 대한 자세한 내용은 interp1MATLAB에서 누락된 데이터 항목을 참조하십시오.

yiddata 객체의 OutputData 속성을 설정합니다.

시스템으로 가는 입력 신호로, 다음 중 하나로 지정됩니다.

  • 단일 입력 시스템의 경우 N×1 벡터. 여기서 N은 관측값의 개수입니다.

  • 다중 입력 시스템의 경우 N×Nu 행렬. 여기서 Nu는 입력 채널의 개수입니다.

  • 다중 실험 데이터 세트의 경우 Ne 요소 셀형 배열. 여기서 Ne는 실험의 개수이고 각 셀에는 하나의 실험에 대한 입력 신호가 포함됩니다.

  • 시계열처럼 입력 신호가 없는 시스템의 경우 []

u는 출력 데이터 y와 동일한 영역에 있어야 합니다. 데이터가 시간 영역에 있는 경우 yu는 동일한 시점에 기록되어야 합니다.

추정에 iddata 객체를 사용하는 경우 yu가 균일하게 샘플링되어야 합니다. 비균일성이 작으면 데이터를 균일하게 샘플링된 세트로 변환할 수 있으며, 변환된 데이터는 추정에 사용하기에 충분할 정도의 무결성을 갖습니다. 시도해 볼 수 있는 기법에 대한 자세한 내용은 interp1MATLAB에서 누락된 데이터 항목을 참조하십시오.

uiddata 객체의 InputData 속성을 설정합니다.

입력 신호와 출력 신호로 구성된 타임테이블로, 일정한 간격의 시간 벡터를 사용하는 타임테이블로 지정됩니다.

다중 실험 데이터의 경우, tt를 Ne×1 셀형 배열로 지정합니다. 여기서 Ne는 실험 개수입니다.

어떤 변수가 입력 신호이고 어떤 변수가 출력 신호인지 식별하거나 변환에 사용할 변수 서브셋을 추출하려면 이름-값 인수를 사용하여 'InputName''OutputName' 속성을 설정하십시오.

속성 TimeUnit으로 지정되는 단위의 샘플 시간으로, 다음 중 하나로 지정됩니다.

  • yu가 균일하게 샘플링된 경우 스칼라.

  • 주파수 영역의 연속시간 데이터인 경우 0.

  • yu가 균일하게 샘플링되지 않고 SamplingInstants 속성에 시간 값을 지정하는 경우 []. 균일하지 않은 샘플링의 경우 yu는 시간 영역에 있어야 합니다.

Tsiddata 객체의 Ts 속성을 설정합니다.

속성

모두 확장

데이터 시간 또는 주파수 영역으로, 다음 중 하나로 지정됩니다.

  • 'Time' — 데이터가 시간 영역에 있는 경우

  • 'Frequency' — 데이터가 주파수 영역에 있는 경우

iddata 객체에 포함된 각 데이터 세트의 이름으로, 문자형 벡터로 구성된 Ne×1 셀형 배열로 지정됩니다. 여기서 Ne는 실험의 개수입니다. 각 셀에는 대응하는 실험의 이름이 포함되어 있습니다. 예를 들어, {'MyMeas1';'MyMeas2';'MyMeas3'}에는 세 개의 실험으로 구성된 iddata 객체에 대한 실험 이름이 포함됩니다.

주파수 영역 데이터에 대한 주파수 값으로, 다음 중 하나로 지정됩니다.

  • N×1 벡터. 여기서 N은 단일 실험에 포함된 주파수 값의 개수입니다.

  • 1×Ne 셀형 배열. 여기서 Ne는 실험의 개수이고 각 셀에는 대응하는 실험에 대한 주파수 벡터가 포함되어 있습니다. 주파수 벡터는 모두 단위가 같아야 합니다.

주파수 영역 데이터의 주파수 단위로, 다음 중 하나로 지정됩니다.

  1. 단일 실험의 경우 스칼라.

    1×Ne 셀형 배열. 여기서 Ne는 실험의 개수입니다. 모든 Frequency 벡터의 단위가 같아야 하므로 FrequencyUnit의 모든 값은 같아야 합니다.

이 속성을 변경해도 데이터가 스케일링되거나 변환되지 않습니다. 속성을 수정하면 기존 데이터의 해석만 변경됩니다.

시스템으로 가는 입력 신호 값으로, 다음 중 하나로 지정됩니다.

  • 단일 실험의 경우 N×Nu 행렬. 여기서 N은 데이터 샘플의 개수이고 Nu는 입력 채널의 개수입니다.

  • 다중 실험의 경우 Ne개의 단일 실험 행렬이 포함되어 있는 셀형 배열. 여기서 Ne는 실험의 개수입니다.

명령줄에서 InputData에 액세스하는 경우 축약형 u를 사용할 수 있습니다. 예를 들어, u1 = data.InputDatau1 = data.u와 동일합니다.

입력 채널 이름으로, Nu×1 셀형 배열로 지정됩니다. 여기서 Nu는 입력 채널의 개수입니다.

입력 채널 단위로, Nu×1 셀형 배열로 지정됩니다. 여기서 Nu는 입력 채널의 개수입니다. 각 셀에는 대응하는 입력 채널의 단위가 포함되어 있습니다.

예: {'rad';'rad/s'}

이산시간과 연속시간 사이의 변환을 위한 샘플 간 동작으로, 문자형 벡터 또는 문자형 벡터로 구성된 셀형 배열로 지정됩니다. 각 실험의 각 입력 채널에 대해 가능한 값은 다음과 같습니다.

  • zoh —영차 유지는 샘플 간에 조각별 상수 입력 신호를 유지합니다.

  • foh — 일차 유지는 샘플 간에 조각별 선형 입력 신호를 유지합니다.

  • bl — 대역 제한 동작은 나이퀴스트 주파수보다 높은 대역에서 연속시간 입력 신호의 전력이 0이 되도록 지정합니다.

단일 입력 채널이 있는 단일 실험의 경우 InterSample에는 이전 목록의 값 중 하나가 포함되어 있습니다. 다중 실험의 경우 InterSample은 Nu×Ne 셀형 배열입니다. 여기서 Nu는 입력 채널의 개수이며 Ne는 실험의 개수입니다. 각 셀에는 실험과 관련된 동작 값 및 셀이 나타내는 입력 채널이 포함되어 있습니다.

데이터 세트의 이름으로, 문자형 벡터로 지정됩니다.

예: 'dryer data'

데이터 세트에 대한 주석으로, 문자형 벡터로 지정되거나 다중 실험 데이터 세트의 경우 문자형 벡터로 구성된 Ne×1 셀형 배열로 지정됩니다. 여기서 Ne는 실험의 개수입니다.

예: {'data from experiment 1';data from experiment 2'}

시스템에서 오는 출력 신호 값으로, 다음 중 하나로 지정됩니다.

  • 단일 실험의 경우 N×Ny 행렬. 여기서 N은 데이터 샘플의 개수이고 Ny는 출력 채널의 개수입니다.

  • 다중 실험의 경우 Ne개의 단일 실험 행렬이 포함되어 있는 셀형 배열. 여기서 Ne는 실험의 개수입니다.

명령줄에서 OutputData에 액세스하는 경우 축약형 y를 사용할 수 있습니다. 예를 들어, y1 = data.InputDatay1 = data.y와 동일합니다.

출력 채널 이름으로, Ny×1 셀형 배열로 지정됩니다. 여기서 Ny는 출력 채널의 개수입니다.

출력 채널 단위로, Ny×1 셀형 배열로 지정됩니다. 여기서 Nu는 출력 채널의 개수입니다. 각 셀에는 대응하는 입력 채널의 단위가 포함되어 있습니다.

예: {'rad';'rad/s'}

입력 신호의 주기로, 각 실험에 대해 double형으로 지정됩니다. 이 값은 비주기적 입력 신호의 경우 Inf이거나, 주기적 입력 신호의 경우 속성 TimeUnit으로 지정되는 단위의 주기입니다.

  • 단일 입력 채널이 있는 단일 실험의 경우 Period에는 단일 값이 포함되어 있습니다.

  • 다중 입력 시스템의 경우 Period는 Nu×1 벡터입니다. 여기서 Nu는 입력 채널의 개수이고 k번째 요소에는 k번째 입력의 주기가 포함되어 있습니다.

  • 다중 실험 데이터의 경우 Period는 1×Ne 셀형 배열입니다. 여기서 Ne는 실험의 개수이고 각 셀에는 대응하는 실험에 대한 주기로 구성된 스칼라 또는 벡터가 포함되어 있습니다.

TimeUnit으로 지정되는 단위의 시간 영역 데이터에 대한 시간 값으로, 다음과 같이 지정됩니다.

  • N×1 벡터. 여기서 N은 데이터 점의 개수입니다.

  • 1×Ne 셀형 배열. 여기서 Ne는 실험의 개수이고 각 셀에는 대응하는 실험에 대한 샘플링 시점이 포함되어 있습니다.

SamplingInstants의 값은 균일하거나 균일하지 않을 수 있습니다. Ts 속성을 지정하면 소프트웨어는 TsTstart에서 SamplingInstants의 균일한 시간 값을 계산합니다. 균일하지 않은 샘플 점이 있는 경우 SamplingInstants에 시간 값을 지정하십시오. 그러면 소프트웨어는 Ts 속성을 비어 있는 것으로 설정합니다. 추정 함수는 균일하지 않은 샘플링을 지원하지 않습니다.

시간 변수와 샘플 시간의 단위로, 스칼라로 지정됩니다. 이 속성은 데이터 세트의 모든 실험에 적용됩니다.

이 속성을 변경해도 데이터가 리샘플링되거나 변환되지 않습니다. 속성을 수정하면 기존 데이터의 해석만 변경됩니다.

TimeUnit으로 지정되는 단위의 샘플 시간으로, 스칼라 또는 셀형 배열로 지정됩니다. 각 실험에서 값은 다음 중 하나입니다.

  • yu가 균일하게 샘플링된 경우 스칼라

  • 주파수 영역의 연속시간 데이터인 경우 0

  • yu가 시간 영역에서 균일하지 않게 샘플링된 경우 []. SamplingInstants 속성이 이러한 데이터에 대한 시간 값을 설정하기 때문입니다.

단일 실험의 경우 Ts는 스칼라입니다. 다중 실험 데이터의 경우 Ts는 1×Ne 셀형 배열입니다. 여기서 Ne는 실험의 개수이고 각 셀에는 대응하는 실험에 대한 샘플 시간이 포함되어 있습니다.

주파수 영역 데이터의 경우 소프트웨어는 Ts를 사용하여 데이터를 해석합니다.

  • Ts가 0인 경우 소프트웨어는 입력과 출력을 대응하는 신호의 연속시간 푸리에 변환(CTFT)으로 해석합니다.

  • Ts가 스칼라인 경우 소프트웨어는 Ts를 샘플 시간으로 사용하여 입력과 출력을 대응하는 신호의 이산시간 푸리에 변환(DTFT)으로 해석합니다.

시간 영역 데이터에 대한 시작 시간으로, 다음으로 지정됩니다.

  • 단일 실험의 경우 스칼라

  • 다중 실험의 경우 1×Ne 셀형 배열. 여기서 Ne는 실험의 개수이고 각 셀에는 대응하는 실험에 대한 시작 시간이 포함되어 있습니다.

데이터 세트의 추가 주석으로, 모든 MATLAB 데이터형으로 지정됩니다.

객체 함수

일반적으로, 시스템 식별 데이터에 적용 가능한 모든 함수는 iddata 객체에 적용 가능합니다. 이들 함수의 일반적인 유형은 세 가지입니다.

  1. iddata 객체에 대해 연산을 수행하고 이 객체를 반환하는 함수를 사용하면 iddata 객체를 조작하고 처리할 수 있습니다.

    • fftifft를 사용하여 기존 iddata 객체를 시간 영역과 주파수 영역으로 변환합니다. 예를 들면 다음과 같습니다.

      datafd = fft(Data);
      datatd = ifft(Dataf);

    • merge (iddata)를 사용하여 iddata 객체를 여러 실험이 포함된 단일 iddata 객체로 병합합니다. 다중 실험 iddata 객체에서 실험을 추출하려면 getexp를 사용합니다. 예를 들면 다음과 같습니다.

      data123 = merge(data1,data2,data3);
      data2 = getexp(data123,2);
      

      자세한 예제는 특정 데이터 세그먼트 추출 및 모델링하기 항목을 참조하십시오.

    • detrendidfilt와 같은 전처리 함수를 사용하여 iddata 객체의 데이터를 필터링하고 잘못된 데이터를 제거합니다. 예를 들면 다음과 같습니다.

      data_d = detrend(data);
      data_f = idfilt(data,filter);

  2. iddata 객체에 대한 해석적 처리를 수행하고 플롯을 생성하거나 특정 파라미터 또는 값을 반환하는 함수를 사용하면 데이터를 분석하여 추정에 사용할 입력을 결정할 수 있습니다.

    • delayestspa와 같은 분석 함수를 사용하여 시간 지연 및 주파수 스펙트럼과 같은 변수를 계산합니다.

  3. iddata 객체의 데이터를 사용하여 모델을 추정하고 시뮬레이션하고 검증하는 함수를 사용하면 동적 모델을 만들고 모델 응답이 검증 데이터와 얼마나 일치하는지 평가할 수 있습니다.

    • ssesttfest와 같은 추정 함수를 사용하여 특정 구조의 모델을 추정합니다.

    • comparesim과 같은 검증 함수를 사용하여 추정된 모델을 시뮬레이션하고 시뮬레이션된 출력을 검증 데이터 및 다른 모델과 비교합니다.

    다음 목록은 iddata 객체와 함께 사용할 수 있는 대표적인 함수 중 일부입니다.

모두 확장

idplotPlot input and output channels of estimation data
getexpGet specific experiments from multiple-experiment data set
merge (iddata)Merge data sets into iddata object
detrendSubtract offset or trend from time-domain signals contained in iddata objects
retrendAdd offsets or trends to time-domain data signals stored in iddata objects
idfiltFilter data using user-defined passbands, general filters, or Butterworth filters
diffiddata 객체에서의 차이 신호
misdataReconstruct missing input and output data
idresampResample time-domain data by decimation or interpolation
fftiddata 객체의 고속 푸리에 변환(FFT)
ifftiddata 객체를 주파수 영역에서 시간 영역으로 변환
realdataDetermine whether iddata is based on real-valued signals
delayest데이터를 바탕으로 시간 지연(불감 시간) 추정
isrealDetermine whether model parameters or data values are real
impulseestNonparametric impulse response estimation
pexcitLevel of excitation of input signals
checkFeedbackIdentify possible feedback data
etfeEstimate empirical transfer functions and periodograms
spafdrEstimate frequency response and spectrum using spectral analysis with frequency-dependent resolution
spaEstimate frequency response with fixed frequency resolution using spectral analysis
dataPlotOptionsOption set for idplot when plotting input/output estimation data contained in a timetable, numeric matrices, or an iddata object
ssestEstimate state-space model using time-domain or frequency-domain data
tfestEstimate transfer function model
ar스칼라 시계열에 대한 AR 모델 또는 ARI 모델 식별 시 파라미터 추정
simSimulate response of identified model
findstatesEstimate initial states of model
compareCompare identified model output with measured output
predict식별된 모델의 향후 K-스텝 출력 사전 예측
goodnessOfFitGoodness of fit between test and reference data for analysis and validation of identified models
procestEstimate process model using time-domain or frequency-domain data
residCompute and test residuals

예제

모두 축소

단일 입력/단일 출력(SISO) 시간 영역 데이터를 사용하여 iddata 객체를 만듭니다. 입력과 출력에는 각각 0.08초의 샘플 시간을 적용한 1000개의 샘플이 포함되어 있습니다.

load dryer2_data output input;
data = iddata(output,input,0.08)
data =

Time domain data set with 1000 samples.
Sample time: 0.08 seconds               
                                        
Outputs      Unit (if specified)        
   y1                                   
                                        
Inputs       Unit (if specified)        
   u1                                   
                                        

디폴트 채널 이름 'y1'이 첫 번째이자 유일한 출력 채널에 할당됩니다. 출력 신호에 여러 채널이 포함된 경우에는 디폴트 이름 'y1','y2',...,'yn'이 할당됩니다. 마찬가지로, 디폴트 채널 이름 'u1'이 첫 번째이자 유일한 입력 채널에 할당됩니다. 채널 명명에 대한 자세한 내용은 Naming, Adding, and Removing Data Channels 항목을 참조하십시오.

데이터를 플로팅합니다.

idplot(data)

Figure contains 2 axes objects. Axes object 1 with title y1 contains an object of type line. This object represents data. Axes object 2 with title u1 contains an object of type line. This object represents data.

서로 인접한 플롯에 출력 데이터와 입력 데이터가 표시됩니다.

시계열 데이터에서 iddata 객체를 만듭니다. 시계열 데이터에는 입력 채널이 없습니다.

데이터 세트의 출력 채널을 불러오고 샘플 시간이 0.08초인 iddata 객체를 만듭니다.

load dryer2_data output
data = iddata(output,[],0.08)
data =

Time domain data set with 1000 samples.
Sample time: 0.08 seconds               
                                        
Outputs      Unit (if specified)        
   y1                                   
                                        

데이터를 플로팅합니다.

idplot(data)

Figure contains an axes object. The axes object with title y1 contains an object of type line. This object represents data.

시계열 모델 추정에 data를 사용할 수 있습니다.

타임테이블 데이터 tt7을 불러오고 처음 4개의 행을 표시합니다.

load sdata7 tt7
head(tt7,4)
      t      u1      u2           y    
    _____    __    _______    _________

    1 sec     1     0.2749    -0.091981
    2 sec    -1    0.25148      0.22567
    3 sec    -1     1.2381     -0.28617
    4 sec    -1    -1.2216       1.4581

tt7은 변수 이름이 u1u2인 두 개의 입력값과 변수 이름이 y인 한 개의 출력값을 갖습니다. tt7iddata 객체로 변환합니다.

z7conv = iddata(tt7)
z7conv =

Time domain data set with 400 samples.
Sample time: 1 seconds                 
                                       
Outputs      Unit (if specified)       
   y                                   
                                       
Inputs       Unit (if specified)       
   u1                                  
   u2                                  
                                       
z7conv.OutputName
ans = 1×1 cell array
    {'y'}

z7conv.InputName
ans = 2×1 cell
    {'u1'}
    {'u2'}

z7conv는 샘플 시간을 유지하고 OutputNameInputName 속성에 변수 이름을 저장합니다.

복소수 값의 주파수 영역 입력-출력 데이터에서 iddata 객체를 만들고 검토합니다. 객체를 시간 영역으로 변환합니다.

입력 데이터와 출력 데이터는 간혹 시간 영역 입력-출력 신호로 구성된 푸리에 변환 형식으로 표현될 수도 있습니다. 이 데이터를 주파수 영역 iddata 객체에 캡슐화할 수 있습니다.

복소수 값의 입력-출력 주파수 영역 데이터 UY, 주파수 벡터 W, 샘플 시간 Ts로 구성된 데이터를 불러옵니다.

load demofr1 U Y W Ts

주파수 영역 iddata 객체 data_fr을 만듭니다.

data_fr = iddata(Y,U,Ts,'Frequency',W)
data_fr =

Frequency domain data set with responses at 501 frequencies.
Frequency range: 0 to 31.416 rad/seconds
Sample time: 0.1 seconds                                                                              
                                                                                                      
Outputs      Unit (if specified)                                                                      
   y1                                                                                                 
                                                                                                      
Inputs       Unit (if specified)                                                                      
   u1                                                                                                 
                                                                                                      

속성을 검토합니다. 주파수 영역 iddata 객체에는 주파수 벡터에 대한 Frequency와 주파수 단위에 대한 FrequencyUnit과 같은 주파수 관련 속성이 포함되어 있습니다. 대조적으로, 시간 영역 iddata 객체에는 시간 영역 데이터에 대한 TstartSamplingInstants와 같은 시간 관련 속성이 포함되어 있습니다.

get(data_fr)
ans = struct with fields:
            Domain: 'Frequency'
              Name: ''
        OutputData: [501x1 double]
                 y: 'Same as OutputData'
        OutputName: {'y1'}
        OutputUnit: {''}
         InputData: [501x1 double]
                 u: 'Same as InputData'
         InputName: {'u1'}
         InputUnit: {''}
            Period: Inf
       InterSample: 'zoh'
                Ts: 0.1000
     FrequencyUnit: 'rad/TimeUnit'
         Frequency: [501x1 double]
          TimeUnit: 'seconds'
    ExperimentName: 'Exp1'
             Notes: {}
          UserData: []

주파수 속성의 내용을 변수 F에 할당합니다.

F = data_fr.Frequency;

데이터의 주파수 단위를 가져옵니다. 속성 TimeUnit은 샘플 시간의 단위를 설정합니다.

frequ = data_fr.FrequencyUnit
frequ = 
'rad/TimeUnit'
timeu = data_fr.TimeUnit
timeu = 
'seconds'

푸리에 역변환 함수 ifft를 사용하여 data_fr를 시간 영역으로 다시 변환합니다.

data_t = ifft(data_fr)
data_t =

Time domain data set with 1000 samples.
Sample time: 0.1 seconds                
                                        
Outputs      Unit (if specified)        
   y1                                   
                                        
Inputs       Unit (if specified)        
   u1                                   
                                        
get(data_t)
ans = struct with fields:
              Domain: 'Time'
                Name: ''
          OutputData: [1000x1 double]
                   y: 'Same as OutputData'
          OutputName: {'y1'}
          OutputUnit: {''}
           InputData: [1000x1 double]
                   u: 'Same as InputData'
           InputName: {'u1'}
           InputUnit: {''}
              Period: Inf
         InterSample: 'zoh'
                  Ts: 0.1000
              Tstart: 0.1000
    SamplingInstants: [1000x1 double]
            TimeUnit: 'seconds'
      ExperimentName: 'Exp1'
               Notes: {}
            UserData: []

iddata 객체의 속성을 봅니다. 객체 생성 중에 그리고 객체 생성 후에 속성을 수정합니다.

입력 데이터와 출력 데이터를 불러옵니다.

load dryer2_data input output

iddata 객체를 만듭니다.

data = iddata(output,input,0.08)
data =

Time domain data set with 1000 samples.
Sample time: 0.08 seconds               
                                        
Outputs      Unit (if specified)        
   y1                                   
                                        
Inputs       Unit (if specified)        
   u1                                   
                                        

iddata 객체의 모든 속성을 봅니다.

get(data)
ans = struct with fields:
              Domain: 'Time'
                Name: ''
          OutputData: [1000x1 double]
                   y: 'Same as OutputData'
          OutputName: {'y1'}
          OutputUnit: {''}
           InputData: [1000x1 double]
                   u: 'Same as InputData'
           InputName: {'u1'}
           InputUnit: {''}
              Period: Inf
         InterSample: 'zoh'
                  Ts: 0.0800
              Tstart: 0.0800
    SamplingInstants: [1000x1 double]
            TimeUnit: 'seconds'
      ExperimentName: 'Exp1'
               Notes: {}
            UserData: []

이름-값 쌍 인수를 사용하여 iddata 객체를 만들 때 속성을 지정할 수 있습니다. 동일한 데이터 입력에서 iddata 객체를 만들되, 실험 이름을 디폴트 설정에서 Dryer2로 변경합니다.

data = iddata(output,input,0.08,'ExperimentName','Dryer2')
data =

Experiment Dryer2.Time domain data set with 1000 samples.
Sample time: 0.08 seconds                                 
                                                          
Outputs      Unit (if specified)                          
   y1                                                     
                                                          
Inputs       Unit (if specified)                          
   u1                                                     
                                                          

기존 iddata 객체의 속성값을 변경하기 위해 점 표기법을 사용합니다. 샘플 시간 속성 Ts를 0.05초로 변경합니다.

data.Ts = 0.05
data =

Experiment Dryer2.Time domain data set with 1000 samples.
Sample time: 0.05 seconds                                 
                                                          
Outputs      Unit (if specified)                          
   y1                                                     
                                                          
Inputs       Unit (if specified)                          
   u1                                                     
                                                          

속성 이름은 대/소문자를 구분하지 않습니다. 또한 처음 몇 글자가 속성을 고유하게 식별하는 경우 전체 속성 이름을 입력할 필요가 없습니다.

data.exp = "Dryer2 January 2015"
data =

Experiment Dryer2 January 2015.Time domain data set with 1000 samples.
Sample time: 0.05 seconds                                              
                                                                       
Outputs                   Unit (if specified)                          
   y1                                                                  
                                                                       
Inputs                    Unit (if specified)                          
   u1                                                                  
                                                                       

data.ydata.OutputData의 축약형으로 사용하여 출력에 액세스하거나 data.udata.InputData의 축약형으로 사용하여 입력에 액세스할 수 있습니다.

y_data = data.y;
u_data = data.u;

버전 내역

R2006a 이전에 개발됨

모두 확장