주요 콘텐츠

공정 모델 추정

라이브 편집기에서 SISO(단일 입력 단일 출력) 시스템에 대한 연속시간 공정 모델을 시간 영역 또는 주파수 영역에서 추정

설명

공정 모델 추정 작업을 통해 SISO 시스템에 대한 공정 모델을 대화형 방식으로 추정하고 검증할 수 있습니다. 모델 구조를 정의하고 바꾸고, 초기 조건 처리 및 탐색 방법 같은 선택적 파라미터를 지정할 수 있습니다. 이 작업은 라이브 스크립트에 대한 MATLAB® 코드를 자동으로 생성해 줍니다. 일반적인 라이브 편집기 작업에 대한 자세한 내용은 라이브 스크립트에 대화형 방식 작업 추가하기 항목을 참조하십시오.

공정 모델은 선형 시스템 동특성을 설명하는 간단한 연속시간 전달 함수입니다. 공정 모델 요소에는 정적 이득, 시정수, 시간 지연, 적분기, 프로세스 영점이 포함됩니다.

공정 모델은 다양한 산업에서 시스템 동특성을 설명할 때 자주 사용되며, 다양한 프로덕션 환경에 적용 가능합니다. 이 모델의 장점은 단순하고, 전송 지연 추정을 지원하며, 모델 계수가 극점과 영점처럼 쉽게 해석 가능하다는 점입니다. 공정 모델 추정에 대한 자세한 내용은 What Is a Process Model? 항목을 참조하십시오.

공정 모델 추정 작업은 보다 일반적인 System Identification 앱과는 별개입니다. 여러 모델 구조에 대한 추정값을 계산하고 비교하려면 System Identification 앱을 사용하십시오.

시작하려면, 입력 및 출력 데이터가 포함된 실험 데이터를 MATLAB 작업 공간에 불러온 다음 그 데이터를 작업에 가져오십시오. 그런 다음 추정할 모델 구조를 선택합니다. 이 작업에서 제공하는 컨트롤과 플롯을 통해 서로 다른 모델 구조로 실험하고 각 모델의 출력이 측정값과 얼마나 잘 맞는지 비교할 수 있습니다.

관련 함수

공정 모델 추정에서 생성되는 코드에는 다음 함수가 사용됩니다.

이 작업에서는 idproc 공정 모델을 추정합니다.

Estimate Process Model task in Live Editor

작업 열기

MATLAB 편집기에서 공정 모델 추정 작업을 라이브 스크립트에 추가하려면 다음을 수행하십시오.

  • 라이브 편집기 탭에서 작업 > 공정 모델 추정을 선택합니다.

  • 스크립트의 코드 블록에 process, estimate 같은 관련 키워드를 입력합니다. 제안된 명령 완성 항목에서 공정 모델 추정을 선택합니다.

예제

모두 확장

공정 모델 추정 라이브 편집기 작업을 사용하여 공정 모델을 추정하고 모델 출력을 측정 데이터와 비교합니다.

데이터 설정하기

측정 데이터 tt1을 MATLAB 작업 공간에 불러옵니다. tt1은 하나의 입력 변수 u와 하나의 출력 변수 y를 포함하는 타임테이블입니다.

load sdata1 tt1

데이터를 작업으로 가져오기

데이터 선택 섹션에서 데이터형Timetable로 설정하고 추정 데이터tt1로 설정합니다.

tt1 입력 및 출력 변수 이름이 포함된 테이블이 작업에 표시됩니다.

디폴트 설정을 사용하여 모델 추정하기

모델 구조와 선택적 파라미터를 검토합니다.

모델 구조 지정 섹션에서 디폴트 옵션은 지연, 영점 또는 적분기가 없는 One Pole입니다. 이 섹션의 파라미터 아래에 표시되는 수식을 통해 지정된 구조를 알 수 있습니다.

추정 초기화 지정 섹션에서 모델 구조의 파라미터와 일치하는 초기화 파라미터를 통해 추정 시작점을 설정할 수 있습니다. 고정을 선택하는 경우 파라미터는 사용자가 지정한 값으로 고정된 상태를 유지합니다. 이 예제에서는 초기화를 지정하지 마십시오. 그러면 시작점에 디폴트 값이 사용됩니다.

선택적 파라미터 지정 섹션에는 프로세스 추정에 대한 디폴트 옵션이 설정되어 있습니다.

녹색 화살표를 클릭하여 라이브 편집기 탭에서 작업을 실행합니다. 자동 실행을 선택하여 파라미터를 업데이트할 때마다 자동으로 작업을 실행할 수도 있습니다.

플롯에 추정 데이터, 추정된 모델 출력, 피팅 백분율이 표시됩니다.

파라미터 설정을 사용한 실험

파라미터 설정을 사용하여 실험하고 그러한 설정이 피팅에 미치는 영향을 확인합니다.

예를 들어 지연을 One Pole 구조에 추가하고 작업을 실행해 보겠습니다.

피팅 백분율은 여전히 50% 미만이지만 추정 피팅이 개선되었습니다.

다른 모델 구조를 사용해 보십시오. 모델 구조 지정에서 지연 없이 Underdamped Pair를 선택하고 작업을 실행합니다.

피팅 결과가 크게 향상되었습니다.

코드 생성하기

작업에서 생성된 코드를 표시하려면 파라미터 섹션의 맨 아래에 있는 를 클릭하십시오. 코드에는 작업의 현재 파라미터 구성이 반영되어 있습니다.

추정된 공정 모델을 검증할 수 있도록 별도의 추정 데이터와 검증 데이터를 사용합니다.

데이터 설정하기

측정 데이터 sdata1을 MATLAB 작업 공간에 불러오고 그 내용을 검토합니다.

load sdata1 umat1 ymat1 Ts

데이터를 두 개의 세트로 분할합니다. 하나는 추정을 위한 것이고 다른 하나는 검증을 위한 것입니다. 원래 데이터 세트에는 300개의 샘플이 있으므로, 새 데이터 세트에는 각각 150개의 샘플이 있습니다.

u_est = umat1(1:150);
u_val = umat1(151:300);
y_est = ymat1(1:150);
y_val = ymat1(151:300);
Ts
Ts = 
0.1000

데이터를 작업으로 가져오기

데이터 선택 섹션에서 데이터형을 숫자로 설정합니다. 샘플 시간 0.1초로 설정합니다. 추정과 검증에 적절하게 데이터 세트를 선택합니다.

모델 추정 및 검증하기

예제 라이브 편집기 작업을 통해 공정 모델 추정하기에서는 모델 구조 Underdamped Pair를 사용할 때 결과가 가장 좋았습니다. 이 예제에도 동일한 옵션을 선택합니다.

작업을 실행합니다. 작업을 실행하면 플롯 두 개가 생성됩니다. 첫 번째 플롯은 추정 결과를 보여주고, 두 번째 플롯은 검증 결과를 보여줍니다.

추정 데이터에 대한 피팅이 라이브 편집기 작업을 통해 공정 모델 추정하기에서보다 다소 떨어집니다. 현재 예제에서의 추정에는 모델 추정을 위한 데이터가 절반밖에 들어 있지 않습니다. 모델의 적합도를 보다 일반적으로 나타내는 검증 데이터에 대한 피팅이 추정 데이터에 대한 피팅보다 더 낫습니다.

파라미터

모두 확장

데이터 선택하기

이 작업은 시간 영역에서 균일하게 샘플링된 숫자형 측정값을 받습니다. 입력 신호와 출력 신호에는 여러 개의 채널이 포함될 수 있습니다. 데이터는 숫자형 배열(Numeric 또는 Frequency의 경우)이나 타임테이블, 또는 iddataidfrd 객체 같은 데이터 객체로 패키징할 수 있습니다. 다중 실험 데이터의 경우 숫자형 데이터와 타임테이블 데이터를 셀형 배열로 패키징할 수 있습니다. 타임테이블로 구성된 셀형 배열의 경우 모든 타임테이블에 동일한 변수 이름이 포함되어야 합니다. 데이터 객체는 다중 실험 데이터를 내부적으로 처리합니다.

선택하는 데이터형에 따라 추가 파라미터를 지정해야 하는지 여부가 결정됩니다.

  • 숫자샘플 시간시작 시간을 사용자가 선택한 시간 단위로 지정합니다.

  • 타임테이블 — 타임테이블에 이미 샘플 시간과 시작 시간에 대한 정보가 있으므로 추가 파라미터를 지정하지 않습니다.

  • 주파수 —MATLAB 작업 공간에서 주파수 벡터의 변수 이름을 선택하여 주파수를 지정합니다. 이 주파수 벡터에 대한 단위를 지정합니다. 샘플 시간(단위: 초)을 지정합니다.

  • 데이터 객체 — 데이터 객체에 이미 시간 샘플링 또는 주파수 샘플링에 대한 정보가 있으므로 추가 파라미터를 지정하지 않습니다.

MATLAB 작업 공간에서 입력 및 출력 변수 이름을 선택합니다. 데이터형숫자 또는 주파수인 경우 이러한 파라미터를 사용합니다.

선택 사항이기는 하지만 검증 데이터를 지정하는 것이 좋습니다.

MATLAB 작업 공간에서 타임테이블 변수 이름을 선택합니다. 데이터형타임테이블인 경우 이 파라미터를 사용하십시오. 입력 및 출력에 대한 타임테이블 변수 이름이 작업에 표시됩니다. 추정 타임테이블과 검증 타임테이블의 변수 이름은 동일해야 합니다.

MATLAB 작업 공간에서 데이터 객체 변수 이름을 선택합니다. 데이터형데이터 객체인 경우 이 파라미터를 사용하십시오.

모델 구조 지정하기

이 작업에서 4개의 기본 구조 중 하나를 지정할 수 있습니다. 이러한 구조에는 단순 1차 프로세스부터 켤레 복소수(즉, 부족감쇠) 극점이 있는 보다 동적인 2차 또는 3차 프로세스까지 포함됩니다.

  • 1개 극점

  • 2개 실수 극점

  • 부족감쇠된 쌍

  • 부족감쇠된 쌍 + 실수 극점

한 개 샘플의 전송 지연, 즉 샘플 1개만큼의 입력-출력 지연을 포함합니다. 전송 지연은 불감 시간으로도 알려져 있습니다.

분자에 프로세스 영점을 포함합니다.

추가 1/ s 항으로 표현되는 적분기를 포함합니다. 적분기를 포함하면 자체 조절 프로세스가 생성됩니다.

추정 초기화 지정하기

추정에 대한 초기값과, 이러한 값을 고정할지 또는 추정할지 여부를 지정합니다. 지정하는 값은 모델 구조와 지연영점에 대한 사양에 따라 달라집니다. 모델 구조 지정 아래에 지정된 시스템을 나타내는 수식이 표시됩니다. 이 수식에는 추정 가능하거나 사용자가 초기화 또는 고정할 수 있는 모든 파라미터가 포함되어 있습니다. 가능한 파라미터는 다음과 같습니다.

  • Kp — 정적 이득

  • Tp1 — 첫 번째 실수 극점에 대한 시정수

  • Tp2 — 두 번째 실수 극점에 대한 시정수

  • — 복소수 극점에 대한 시정수로, 고유 주파수의 역수와 동일함

  • ζ — 복소수 극점에 대한 감쇠 계수

  • Td — 전송 지연

  • Tz — 프로세스 영점에 대한 시정수

시간 기반의 모든 파라미터는 샘플 시간에 선택한 시간 단위로 표현됩니다.

선택적 파라미터 지정하기

피팅 중점은 추정 중에 손실 함수에서 최소화할 오차를 지정하는 파라미터입니다.

  • 예측 — 측정된 출력과 예측된 출력 간의 1-스텝 사전 예측 오차를 최소화합니다. 이 추정 방식에서는 추정 입력 및 출력에 대해 양호한 예측 모델을 생성하는 데 중점을 둡니다. 일반적으로 예측 중점에서는 입력 측정과 출력 측정을 모두 사용하고 외란을 고려하므로 가장 좋은 추정 결과가 생성됩니다.

  • 시뮬레이션 — 측정된 출력과 시뮬레이션 출력 간의 오차를 최소화합니다. 이 추정 방식에서는 추정 입력과 출력에 잘 피팅된 시뮬레이션된 모델 응답을 생성하는 데 중점을 둡니다. 일반적으로 시뮬레이션 중점은 검증에 가장 적합하며, 원래 추정에 사용되지 않은 데이터 세트를 함께 사용할 경우에 특히 그렇습니다.

모델 초기화를 위한 특정 방법을 선택하고자 할 때 이 옵션을 설정합니다. 디폴트 설정인 자동을 사용할 경우 추정 데이터에 따라 방법이 선택됩니다. 선택 가능한 옵션은 다음과 같습니다.

  • 0 — 초기 상태가 0으로 설정됩니다.

  • 추정 — 초기 상태가 독립적인 추정 파라미터로 취급됩니다.

  • 백캐스트 — 초기 상태가 최적의 최소제곱 피팅을 사용하여 추정됩니다.

입력 샘플 간 동작은 입력 데이터의 속성입니다. 공정 모델을 추정할 때 작업에서 이 속성이 사용됩니다. 데이터형이 시간 또는 주파수인 경우 입력 샘플 간 동작을 지정하십시오. iddata 객체를 사용 중인 경우 이 객체에는 이미 입력 샘플 간 동작 정보가 포함되어 있습니다. 이 속성에 대해 선택 가능한 옵션은 다음과 같습니다.

  • 영차 유지 — 샘플 간의 조각별 상수 입력 신호

  • 삼각 근사 — 샘플 간의 조각별 선형 입력 신호(일차 유지라고도 함)

  • 대역 제한 — 나이퀴스트 주파수보다 높은 대역에서 입력 신호의 전력이 0임

반복적 파라미터 추정에 사용할 수 있는 수치 탐색 방법은 다음과 같습니다.

탐색 방법설명
자동추정 비용을 줄이는 첫 번째 하강 방향을 발견할 때까지 각 반복 시 여러 방법이 순서대로 돌아가며 적용됩니다.
가우스-뉴턴탐색 방향을 계산할 때 야코비 행렬에서 GnPinvConstant*eps*max(size(J))*norm(J)보다 작은 특이값은 무시됩니다. J는 야코비 행렬입니다. 헤세 행렬은 JTJ로 근사됩니다. 이 방향에서 개선이 보이지 않으면 함수는 기울기 방향을 시도합니다.
적응 가우스-뉴턴헤세 행렬의 gamma*max(sv)보다 작은 고유값은 무시됩니다. 여기서 sv에는 헤세 행렬의 특이값이 포함됩니다. 나머지 부분공간에서는 가우스-뉴턴 방향이 계산됩니다. gamma의 초기값은 InitialGnaTolerance입니다(자세한 내용은 'SearchOptions'Advanced 참조). 이 값은 탐색에서 5번 미만의 이분법으로 기준의 하한 값을 찾지 못할 때마다 인자 LMStep만큼 늘어납니다. 이 값은 이분법 없이 탐색에 성공할 때마다 인자 2*LMStep만큼 감소합니다.
Levenberg-Marquardt각 파라미터 값은 이전 값의 -pinv(H+d*I)*grad입니다. H는 헤세 행렬이고 I는 단위 행렬이며 grad는 기울기입니다. d는 기준의 하한 값이 발견될 때까지 증가하는 숫자입니다. 이 방법을 사용하려면 Optimization Toolbox™가 필요합니다. 자세한 내용은 Levenberg-Marquardt 방법 (Optimization Toolbox) 항목을 참조하십시오.
기울기 탐색최속강하 최소제곱 탐색.
Trust-Region-Reflective 뉴턴제약 조건이 있는 비선형 솔버. 이 솔버를 사용하려면 Optimization Toolbox가 필요합니다. 자세한 내용은 fmincon의 Trust Region Reflective 알고리즘 (Optimization Toolbox) 항목을 참조하십시오.
패턴 탐색잘 정의된 기울기가 없는 비선형성에 대한 솔버. 이 솔버를 사용하려면 Global Optimization Toolbox가 필요합니다. 자세한 내용은 patternsearch (Global Optimization Toolbox) 항목을 참조하십시오.
순차적 2차 계획법(SQP)제약 조건이 있는 비선형 솔버. 이 솔버를 사용하려면 Optimization Toolbox가 필요합니다. 자세한 내용은 fmincon의 SQP 알고리즘 (Optimization Toolbox) 항목을 참조하십시오.
Interior-Point제약 조건이 있는 비선형 솔버. 이 솔버를 사용하려면 Optimization Toolbox가 필요합니다. 자세한 내용은 fmincon의 Interior Point 알고리즘 (Optimization Toolbox) 항목을 참조하십시오.

오차 최소화 중의 최대 반복 횟수를 설정합니다. 최대 반복 횟수에 도달하거나 다른 중지 기준이 충족될 경우(예: 허용오차) 반복이 중지됩니다.

예상된 개선의 백분율이 허용오차보다 작을 경우 반복이 중지됩니다.

모델 추정 시, 작업에서 최소화하는 손실 함수에 가중 사전 필터를 적용하고자 할 때 이 옵션을 설정합니다. 옵션을 선택할 경우 작업 공간에서 필터 정보가 포함된 연결된 변수도 선택해야 합니다. 가능한 옵션은 데이터 영역에 따라 다릅니다.

가중 사전 필터데이터 영역필터 정보
필터 없음시간 및 주파수 
통과대역시간 및 주파수통과대역 범위로, 1×2 행 벡터 또는 n×2 행렬로 지정됩니다. 여기서 n은 통과대역의 개수입니다.
LTI 필터시간 및 주파수SISO LTI 모델
주파수 가중치 벡터주파수주파수 가중치로, 주파수 벡터와 동일한 길이의 열 벡터로 지정됩니다.

예를 들어 SISO 주파수 영역 데이터를 사용하여 추정을 수행하는 중이며 사전 필터에 대한 주파수 가중치를 포함하는 열 벡터 W가 MATLAB 작업 공간에 있다고 가정해 보겠습니다. 작업에서 가중 사전 필터 > 주파수 가중치 벡터와 변수 W를 선택합니다.

결과 시각화하기

모델 출력과 원래 측정된 데이터를 비교한 내용을 피팅 백분율과 함께 플로팅합니다. 별도의 검증 데이터가 있는 경우, 두 번째 플롯에서 검증 입력 데이터에 대한 모델 응답과 검증 데이터 세트에서 측정된 출력이 비교됩니다.

버전 내역

R2019b에 개발됨

모두 확장

참고 항목

| | | | | | | (Control System Toolbox)